diff options
author | Teresa Gámez <t.gamez@phytec.de> | 2014-10-01 16:37:16 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-10-02 07:50:16 +0200 |
commit | 0abb68b10799f80e1b505b95e0ba1273c8615f2d (patch) | |
tree | 3fbaa2ee17b7a7ebe7ee9771df33e7e2904a98e8 /drivers/i2c | |
parent | 68805a19b935641552e37ae609d904392f97de1f (diff) | |
download | barebox-0abb68b10799f80e1b505b95e0ba1273c8615f2d.tar.gz barebox-0abb68b10799f80e1b505b95e0ba1273c8615f2d.tar.xz |
i2c: omap: fix dts property "clock-frequency" usage
Looking at the linux kernel the clock-frequency property of
the device tree is used to set the bus speed and not the
fclk_rate. Adapted this to be compliant with linux kernel.
Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index adc952b043..48bdfbe625 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c @@ -151,7 +151,6 @@ struct omap_i2c_struct { u8 reg_shift; struct omap_i2c_driver_data *data; struct resource *ioarea; - u32 fclk_rate; u32 speed; /* Speed of bus in Khz */ u16 scheme; u16 cmd_err; @@ -421,7 +420,7 @@ static int omap_i2c_init(struct omap_i2c_struct *i2c_omap) internal_clk = 4000; /* Compute prescaler divisor */ - psc = i2c_omap->fclk_rate / internal_clk; + psc = i2c_data->fclk_rate / internal_clk; psc = psc - 1; /* If configured for High Speed */ @@ -1016,9 +1015,16 @@ i2c_omap_probe(struct device_d *pdev) i2c_omap->reg_shift = (i2c_data->flags >> OMAP_I2C_FLAG_BUS_SHIFT__SHIFT) & 3; - if (pdev->platform_data != NULL) + if (pdev->platform_data != NULL) { speed = *(u32 *)pdev->platform_data; - else + } else { + of_property_read_u32(pdev->device_node, "clock-frequency", + &speed); + /* convert DT freq value in Hz into kHz for speed */ + speed /= 1000; + } + + if (!speed) speed = 100; /* Default speed */ i2c_omap->speed = speed; @@ -1080,12 +1086,6 @@ i2c_omap_probe(struct device_d *pdev) i2c_omap->b_hw = 1; /* Enable hardware fixes */ } - i2c_omap->fclk_rate = i2c_data->fclk_rate; - - if (!i2c_omap->fclk_rate) - of_property_read_u32(pdev->device_node, "clock-frequency", - &i2c_omap->fclk_rate); - /* reset ASAP, clearing any IRQs */ omap_i2c_init(i2c_omap); |