48 #undef SSIConfigSetExpClk
49 #define SSIConfigSetExpClk NOROM_SSIConfigSetExpClk
51 #define SSIDataPut NOROM_SSIDataPut
52 #undef SSIDataPutNonBlocking
53 #define SSIDataPutNonBlocking NOROM_SSIDataPutNonBlocking
55 #define SSIDataGet NOROM_SSIDataGet
56 #undef SSIDataGetNonBlocking
57 #define SSIDataGetNonBlocking NOROM_SSIDataGetNonBlocking
59 #define SSIIntRegister NOROM_SSIIntRegister
60 #undef SSIIntUnregister
61 #define SSIIntUnregister NOROM_SSIIntUnregister
71 uint32_t ui32Protocol, uint32_t ui32Mode,
72 uint32_t ui32BitRate, uint32_t ui32DataWidth)
74 uint32_t ui32MaxBitRate;
83 ASSERT(SSIBaseValid(ui32Base));
95 ASSERT((ui32SSIClk / ui32BitRate) <= (254 * 256));
96 ASSERT((ui32DataWidth >= 4) && (ui32DataWidth <= 16));
103 HWREG(ui32Base +
SSI_O_CR1) = ui32RegVal;
108 ui32MaxBitRate = ui32SSIClk / ui32BitRate;
113 ui32SCR = (ui32MaxBitRate / ui32PreDiv) - 1;
115 while(ui32SCR > 255);
121 ui32SPH_SPO = (ui32Protocol & 3) << 6;
123 ui32RegVal = (ui32SCR << 8) | ui32SPH_SPO | ui32Protocol | (ui32DataWidth - 1);
124 HWREG(ui32Base +
SSI_O_CR0) = ui32RegVal;
138 ASSERT(SSIBaseValid(ui32Base));
147 HWREG(ui32Base +
SSI_O_DR) = ui32Data;
168 ASSERT(SSIBaseValid(ui32Base));
182 HWREG(ui32Base +
SSI_O_DR) = ui32Data;
196 ASSERT(SSIBaseValid(ui32Base));
208 *pui32Data = HWREG(ui32Base +
SSI_O_DR);
239 ASSERT(SSIBaseValid(ui32Base));
246 *pui32Data = HWREG(ui32Base +
SSI_O_DR);
283 ASSERT(SSIBaseValid(ui32Base));
288 ui32Int = (ui32Base ==
SSI0_BASE) ? INT_SSI0 : INT_SSI1;
325 ASSERT(SSIBaseValid(ui32Base));
330 ui32Int = (ui32Base ==
SSI0_BASE) ? INT_SSI0 : INT_SSI1;
#define SSI_MODE_SLAVE_OD
void SSIDataGet(uint32_t ui32Base, uint32_t *pui32Data)
Gets a data element from the SSI receive FIFO.
#define SSI_FRF_MOTO_MODE_0
#define SSI_FRF_MOTO_MODE_2
int32_t SSIDataPutNonBlocking(uint32_t ui32Base, uint32_t ui32Data)
Puts a data element into the SSI transmit FIFO.
int32_t SSIDataGetNonBlocking(uint32_t ui32Base, uint32_t *pui32Data)
Gets a data element from the SSI receive FIFO.
void SSIDataPut(uint32_t ui32Base, uint32_t ui32Data)
Puts a data element into the SSI transmit FIFO.
void SSIIntRegister(uint32_t ui32Base, void(*pfnHandler)(void))
Registers an interrupt handler for the synchronous serial port.
void IntUnregister(uint32_t ui32Interrupt)
Unregisters the function to be called when an interrupt occurs.
#define SSI_FRF_MOTO_MODE_3
void SSIIntUnregister(uint32_t ui32Base)
Unregisters an interrupt handler for the synchronous serial port.
#define SSI_FRF_MOTO_MODE_1
void SSIConfigSetExpClk(uint32_t ui32Base, uint32_t ui32SSIClk, uint32_t ui32Protocol, uint32_t ui32Mode, uint32_t ui32BitRate, uint32_t ui32DataWidth)
Configures the synchronous serial port.
void IntDisable(uint32_t ui32Interrupt)
Disables an interrupt.
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
Registers a function to be called when an interrupt occurs.
void IntEnable(uint32_t ui32Interrupt)
Enables an interrupt.