45 #define SPI_CLK_PORT_BASE GPIO_PORT_TO_BASE(SPI_CLK_PORT)
46 #define SPI_CLK_PIN_MASK GPIO_PIN_MASK(SPI_CLK_PIN)
47 #define SPI_MOSI_PORT_BASE GPIO_PORT_TO_BASE(SPI_MOSI_PORT)
48 #define SPI_MOSI_PIN_MASK GPIO_PIN_MASK(SPI_MOSI_PIN)
49 #define SPI_MISO_PORT_BASE GPIO_PORT_TO_BASE(SPI_MISO_PORT)
50 #define SPI_MISO_PIN_MASK GPIO_PIN_MASK(SPI_MISO_PIN)
51 #define SPI_SEL_PORT_BASE GPIO_PORT_TO_BASE(SPI_SEL_PORT)
52 #define SPI_SEL_PIN_MASK GPIO_PIN_MASK(SPI_SEL_PIN)
55 #ifndef SPI_CONF_PHASE
56 #define SPI_CONF_PHASE SSI_CR0_SPH
58 #ifndef SPI_CONF_POLARITY
59 #define SPI_CONF_POLARITY SSI_CR0_SPO
61 #ifndef SPI_CONF_DATA_SIZE
62 #define SPI_CONF_DATA_SIZE 8
65 #if SPI_CONF_DATA_SIZE < 4 || SPI_CONF_DATA_SIZE > 16
66 #error SPI_CONF_DATA_SIZE must be set between 4 and 16 inclusive.
95 ioc_set_sel(SPI_CLK_PORT, SPI_CLK_PIN, IOC_PXX_SEL_SSI0_CLKOUT);
96 ioc_set_sel(SPI_MOSI_PORT, SPI_MOSI_PIN, IOC_PXX_SEL_SSI0_TXD);
98 ioc_set_sel(SPI_SEL_PORT, SPI_SEL_PIN, IOC_PXX_SEL_SSI0_FSSOUT);
116 REG(
SSI0_BASE +
SSI_CR0) = SPI_CONF_PHASE | SPI_CONF_POLARITY | (SPI_CONF_DATA_SIZE - 1);