Consolidate ssp_read and ssp_write into a single function, ssp_transfer. SSP bus transfers are bi-directional -- when bytes are written, they are also read.
This commit is contained in:
parent
25d7853422
commit
18bcbc3d28
|
@ -194,9 +194,7 @@ void ssp_init(ssp_num_t ssp_num,
|
|||
ssp_master_slave_t master_slave,
|
||||
ssp_slave_option_t slave_option);
|
||||
|
||||
uint16_t ssp_read(ssp_num_t ssp_num);
|
||||
|
||||
void ssp_write(ssp_num_t ssp_num, uint16_t data);
|
||||
u16 ssp_transfer(ssp_num_t ssp_num, u16 data);
|
||||
|
||||
END_DECLS
|
||||
|
||||
|
|
|
@ -89,25 +89,6 @@ void ssp_init(ssp_num_t ssp_num,
|
|||
SSP_CR1(ssp_port) = (SSP_ENABLE | mode | master_slave | slave_option);
|
||||
}
|
||||
|
||||
/*
|
||||
* This Function Wait until Data RX Ready, and return Data Read from SSP.
|
||||
*/
|
||||
uint16_t ssp_read(ssp_num_t ssp_num)
|
||||
{
|
||||
uint32_t ssp_port;
|
||||
|
||||
if (ssp_num == SSP0_NUM) {
|
||||
ssp_port = SSP0;
|
||||
} else {
|
||||
ssp_port = SSP1;
|
||||
}
|
||||
|
||||
/* Wait Until Data Received (Rx FIFO not Empty) */
|
||||
while ((SSP_SR(ssp_port) & SSP_SR_RNE) == 0);
|
||||
|
||||
return SSP_DR(ssp_port);
|
||||
}
|
||||
|
||||
void ssp_wait_until_not_busy(ssp_num_t ssp_num)
|
||||
{
|
||||
uint32_t ssp_port;
|
||||
|
@ -122,7 +103,7 @@ void ssp_wait_until_not_busy(ssp_num_t ssp_num)
|
|||
}
|
||||
|
||||
/* This Function Wait Data TX Ready, and Write Data to SSP */
|
||||
void ssp_write(ssp_num_t ssp_num, uint16_t data)
|
||||
u16 ssp_transfer(ssp_num_t ssp_num, u16 data)
|
||||
{
|
||||
uint32_t ssp_port;
|
||||
|
||||
|
@ -147,6 +128,11 @@ void ssp_write(ssp_num_t ssp_num, uint16_t data)
|
|||
* example...
|
||||
*/
|
||||
ssp_wait_until_not_busy(ssp_num);
|
||||
|
||||
/* Wait Until Data Received (Rx FIFO not Empty) */
|
||||
while( (SSP_SR(ssp_port) & SSP_SR_RNE) == 0);
|
||||
|
||||
return SSP_DR(ssp_port);
|
||||
}
|
||||
/**@}*/
|
||||
|
||||
|
|
Loading…
Reference in New Issue