38 #define SSP_Write2BFifo(pSSP, \
39 xf_setup) if (xf_setup->tx_data) {IP_SSP_SendFrame(pSSP, \
40 (*(uint16_t *) ((uint32_t) xf_setup->tx_data \
41 + xf_setup->tx_cnt))); } \
42 else {IP_SSP_SendFrame(pSSP, 0xFFFF); } \
43 xf_setup->tx_cnt += 2;
46 #define SSP_Write1BFifo(pSSP, \
47 xf_setup) if (xf_setup->tx_data) {IP_SSP_SendFrame(pSSP, \
48 (*(uint8_t *) ((uint32_t) xf_setup->tx_data \
49 + xf_setup->tx_cnt))); } \
50 else {IP_SSP_SendFrame(pSSP, 0xFF); } \
54 #define SSP_Read2BFifo(pSSP, xf_setup, \
55 rDat) while (IP_SSP_GetStatus(pSSP, \
56 SSP_STAT_RNE) == SET && xf_setup->rx_cnt < xf_setup->length) { \
57 rDat = IP_SSP_ReceiveFrame(pSSP); \
58 if (xf_setup->rx_data) { \
59 *(uint16_t *) ((uint32_t) xf_setup->rx_data + xf_setup->rx_cnt) = rDat; \
61 xf_setup->rx_cnt += 2; \
65 #define SSP_Read1BFifo(pSSP, xf_setup, \
66 rDat) while (IP_SSP_GetStatus(pSSP, \
67 SSP_STAT_RNE) == SET && xf_setup->rx_cnt < xf_setup->length) { \
68 rDat = IP_SSP_ReceiveFrame(pSSP); \
69 if (xf_setup->rx_data) { \
70 *(uint8_t *) ((uint32_t) xf_setup->rx_data + xf_setup->rx_cnt) = rDat; \
166 wdata16 = (uint16_t *) buffer;
168 while (tx_cnt < buffer_len || rx_cnt < buffer_len) {
195 while (tx_cnt < buffer_len || rx_cnt < buffer_len) {
235 rdata16 = (uint16_t *) buffer;
237 while (tx_cnt < buffer_len || rx_cnt < buffer_len) {
264 while (tx_cnt < buffer_len || rx_cnt < buffer_len) {
382 uint32_t ssp_clk, cr0_div, cmp_clk, prescale;
392 cmp_clk = 0xFFFFFFFF;
395 while (cmp_clk > bit_rate) {
396 cmp_clk = ssp_clk / ((cr0_div + 1) * prescale);
397 if (cmp_clk > bit_rate) {
399 if (cr0_div > 0xFF) {