38 #define SSP_Write2BFifo(pSSP, xf_setup) \
39 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, xf_setup) \
47 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, rDat) \
55 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, rDat) \
66 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; \
157 wdata16 = (uint16_t *) buffer;
159 while (tx_cnt < buffer_len || rx_cnt < buffer_len) {
186 while (tx_cnt < buffer_len || rx_cnt < buffer_len) {
226 rdata16 = (uint16_t *) buffer;
228 while (tx_cnt < buffer_len || rx_cnt < buffer_len) {
255 while (tx_cnt < buffer_len || rx_cnt < buffer_len) {
374 uint32_t ssp_clk, cr0_div, cmp_clk, prescale;
387 ssp_clk = main_clk / ssp_div;
390 cmp_clk = 0xFFFFFFFF;
393 while (cmp_clk > bitRate) {
394 cmp_clk = ssp_clk / ((cr0_div + 1) * prescale);
395 if (cmp_clk > bitRate) {
397 if (cr0_div > 0xFF) {