From: kfx Date: Tue, 27 Sep 2011 07:02:19 +0000 (+0800) Subject: set minimum clock frequency for 10Khz X-Git-Tag: firefly_0821_release~9766^2~48 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d8ead40003106a92ff449d50c7a0a5856d911b3e;p=firefly-linux-kernel-4.4.55.git set minimum clock frequency for 10Khz --- diff --git a/drivers/i2c/busses/i2c-rk29.c b/drivers/i2c/busses/i2c-rk29.c index 03715e2744c4..5049c1acb5d9 100755 --- a/drivers/i2c/busses/i2c-rk29.c +++ b/drivers/i2c/busses/i2c-rk29.c @@ -539,10 +539,16 @@ static int rk29_i2c_xfer(struct i2c_adapter *adap, if(i2c->suspended ==1) return -EIO; */ - if(msgs[0].scl_rate <= 400000 && msgs[0].scl_rate > 0) + // 400k > scl_rate > 10k + if(msgs[0].scl_rate <= 400000 && msgs[0].scl_rate >= 10000) i2c->scl_rate = msgs[0].scl_rate; - else + else if(msgs[0].scl_rate > 400000) i2c->scl_rate = 400000; + else{ + dev_info(i2c->dev, "Warning: msg[0].scl_rate( = %dKhz) is too low!", + msgs[0].scl_rate/1000); + i2c->scl_rate = 10000; + } rk29_i2c_clockrate(i2c); i2c->udelay_time = RK29_UDELAY_TIME(i2c->scl_rate);