15 #include "sw/device/lib/testing/spi_device_testutils.h"
16 #include "sw/device/lib/testing/spi_flash_testutils.h"
17 #include "sw/device/lib/testing/test_framework/check.h"
19 #include "sw/device/tests/spi_host_flash_test_impl.h"
23 static_assert(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__,
24 "This test assumes the target platform is little endian.");
26 OTTF_DEFINE_TEST_CONFIG();
29 dif_spi_host_t spi_host;
30 CHECK_DIF_OK(dif_spi_host_init(
33 uint32_t spi_speed = 10000000;
40 CHECK_DIF_OK(dif_pinmux_init(base_addr, &pinmux));
46 .flags = kDifPinmuxPadAttrPullResistorEnable |
47 kDifPinmuxPadAttrPullResistorUp};
59 "kClockFreqHiSpeedPeripheralHz must fit in uint32_t");
63 .spi_clock = spi_speed,
64 .peripheral_clock_freq_hz =
67 "SPI_HOST config failed!");
70 enum WinbondVendorSpecific {
71 kManufactureId = 0xef,
72 kPageQuadProgramOpcode = 0x32,
79 EXECUTE_TEST(result, test_read_jedec, &spi_host, kManufactureId);
82 if (is_4_bytes_address_mode_supported()) {
90 kPageQuadProgramOpcode, kTransactionWidthMode114);
94 return status_ok(result);