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:
Jared Boone 2012-10-13 16:56:04 -07:00 committed by Piotr Esden-Tempski
parent 25d7853422
commit 18bcbc3d28
2 changed files with 7 additions and 23 deletions

View File

@ -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

View File

@ -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);
}
/**@}*/