Change read_bit() to return 0 or -1UL, rather than 0 or 1.
This commit is contained in:
parent
2e49441535
commit
51a36f1cfb
|
@ -48,8 +48,10 @@ void write_bit ( struct bit_basher *basher, unsigned int bit_id,
|
||||||
* @v bit_id Bit number
|
* @v bit_id Bit number
|
||||||
* @ret data Value read
|
* @ret data Value read
|
||||||
*
|
*
|
||||||
* @c data will always be either 0 or 1.
|
* @c data will always be either 0 or -1UL. The idea is that the
|
||||||
|
* caller can simply binary-AND the returned value with whatever mask
|
||||||
|
* it needs to apply.
|
||||||
*/
|
*/
|
||||||
int read_bit ( struct bit_basher *basher, unsigned int bit_id ) {
|
int read_bit ( struct bit_basher *basher, unsigned int bit_id ) {
|
||||||
return ( basher->read ( basher, bit_id ) ? 1 : 0 );
|
return ( basher->read ( basher, bit_id ) ? -1UL : 0 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,7 +153,7 @@ static uint8_t i2c_recv_byte ( struct bit_basher *basher ) {
|
||||||
/* Receive byte */
|
/* Receive byte */
|
||||||
for ( i = 8 ; i ; i-- ) {
|
for ( i = 8 ; i ; i-- ) {
|
||||||
value <<= 1;
|
value <<= 1;
|
||||||
value |= i2c_recv_bit ( basher );
|
value |= ( i2c_recv_bit ( basher ) & 0x1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send NACK */
|
/* Send NACK */
|
||||||
|
|
|
@ -82,7 +82,9 @@ struct i2c_bit_basher {
|
||||||
|
|
||||||
/** Bit indices used for I2C bit-bashing interface */
|
/** Bit indices used for I2C bit-bashing interface */
|
||||||
enum {
|
enum {
|
||||||
|
/** Serial clock */
|
||||||
I2C_BIT_SCL = 0,
|
I2C_BIT_SCL = 0,
|
||||||
|
/** Serial data */
|
||||||
I2C_BIT_SDA,
|
I2C_BIT_SDA,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Reference in New Issue