summaryrefslogtreecommitdiff
path: root/firmware/drivers/generic_i2c.c
diff options
context:
space:
mode:
authorBertrik Sikken <bertrik@sikken.nl>2009-06-20 21:45:04 +0000
committerBertrik Sikken <bertrik@sikken.nl>2009-06-20 21:45:04 +0000
commitfa4135e43db182f6278ff9f28d074e5b97182c1f (patch)
treef38f271b4010c3b2e4deaea899cb95078d3bc1b6 /firmware/drivers/generic_i2c.c
parente70a23a9d41b1b0be2e7d24cb446e99963ce3ed0 (diff)
downloadrockbox-fa4135e43db182f6278ff9f28d074e5b97182c1f.tar.gz
rockbox-fa4135e43db182f6278ff9f28d074e5b97182c1f.zip
Fix delays in generic i2c driver, reduce delays in ams sansa fmradio i2c driver (tested on m200v4, clip, e200v2, fuze).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21421 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/generic_i2c.c')
-rw-r--r--firmware/drivers/generic_i2c.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/firmware/drivers/generic_i2c.c b/firmware/drivers/generic_i2c.c
index 31a6e580ff..87e9091a3d 100644
--- a/firmware/drivers/generic_i2c.c
+++ b/firmware/drivers/generic_i2c.c
@@ -91,9 +91,9 @@ static unsigned char i2c_inb(const struct i2c_interface *iface, bool ack)
91 91
92 iface->sda_input(); 92 iface->sda_input();
93 93
94 iface->delay_su_dat();
95 /* clock in each bit, MSB first */ 94 /* clock in each bit, MSB first */
96 for ( i=0x80; i; i>>=1 ) { 95 for ( i=0x80; i; i>>=1 ) {
96 iface->delay_su_dat();
97 iface->scl_hi(); 97 iface->scl_hi();
98 iface->delay_thigh(); 98 iface->delay_thigh();
99 if (iface->sda()) 99 if (iface->sda())
@@ -123,7 +123,6 @@ static int i2c_outb(const struct i2c_interface *iface, unsigned char byte)
123 iface->scl_hi(); 123 iface->scl_hi();
124 iface->delay_thigh(); 124 iface->delay_thigh();
125 iface->scl_lo(); 125 iface->scl_lo();
126 iface->delay_hd_dat();
127 } 126 }
128 127
129 return i2c_getack(iface); 128 return i2c_getack(iface);