16 #include "sw/device/lib/testing/spi_device_testutils.h"
17 #include "sw/device/lib/testing/spi_flash_testutils.h"
18 #include "sw/device/lib/testing/spi_host_testutils.h"
19 #include "sw/device/lib/testing/test_framework/check.h"
21 #include "sw/device/tests/spi_host_flash_test_impl.h"
25 static_assert(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__,
26 "This test assumes the target platform is little endian.");
28 OTTF_DEFINE_TEST_CONFIG();
30 static void init_test(dif_spi_host_t *spi_host) {
34 CHECK_DIF_OK(dif_pinmux_init(base_addr, &pinmux));
36 spi_pinmux_platform_id_t platform_id = kSpiPinmuxPlatformIdCount;
39 platform_id = kSpiPinmuxPlatformIdTeacup;
42 platform_id = kSpiPinmuxPlatformIdCw310;
45 platform_id = kSpiPinmuxPlatformIdCw340;
48 CHECK(
false,
"Device not supported: %u",
kDeviceType);
51 dt_pad_t csb_pad = kDtPadIoc12;
53 spi_host1_pinmux_connect_to_bob(&pinmux, csb_pad, platform_id));
56 CHECK_DIF_OK(dif_spi_host_init(base_addr, spi_host));
58 CHECK(
kClockFreqUsbHz <= UINT32_MAX,
"kClockFreqUsbHz must fit in uint32_t");
66 "SPI_HOST config failed!");
72 dif_spi_host_t spi_host;
76 enum IssiVendorSpecific {
77 kManufacturerId = 0x9D,
80 kPageQuadProgramOpcode = 0x32,
87 EXECUTE_TEST(result, test_read_jedec, &spi_host, kManufacturerId);
90 if (is_4_bytes_address_mode_supported()) {
98 kPageQuadProgramOpcode, kTransactionWidthMode114);
102 return status_ok(result);