Software APIs
spi_host_smoketest.c
1 // Copyright lowRISC contributors (OpenTitan project).
2 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
3 // SPDX-License-Identifier: Apache-2.0
4 #include <assert.h>
5 
14 #include "sw/device/lib/testing/spi_device_testutils.h"
15 #include "sw/device/lib/testing/spi_flash_testutils.h"
16 #include "sw/device/lib/testing/test_framework/check.h"
18 #include "sw/device/tests/spi_host_flash_test_impl.h"
19 
21 
22 static_assert(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__,
23  "This test assumes the target platform is little endian.");
24 
25 OTTF_DEFINE_TEST_CONFIG();
26 
27 bool test_main(void) {
28  dif_spi_host_t spi_host;
29  CHECK_DIF_OK(dif_spi_host_init(
31 
32  CHECK(kClockFreqHiSpeedPeripheralHz <= UINT32_MAX,
33  "kClockFreqHiSpeedPeripheralHz must fit in uint32_t");
34 
35  CHECK_DIF_OK(
36  dif_spi_host_configure(&spi_host,
38  .spi_clock = 1000000,
39  .peripheral_clock_freq_hz =
41  }),
42  "SPI_HOST config failed!");
43  CHECK_DIF_OK(dif_spi_host_output_set_enabled(&spi_host, true));
44 
45  status_t result = OK_STATUS();
46  EXECUTE_TEST(result, test_software_reset, &spi_host);
47  EXECUTE_TEST(result, test_read_sfdp, &spi_host);
48  EXECUTE_TEST(result, test_sector_erase, &spi_host);
49  EXECUTE_TEST(result, test_enable_quad_mode, &spi_host);
50  EXECUTE_TEST(result, test_page_program, &spi_host);
51  return status_ok(result);
52 }