[PATCH v2] i2c: omap: fix fclk_rate for ti,omap4-i2c

Jan Weitzel j.weitzel at phytec.de
Thu Dec 11 01:47:59 PST 2014


The compatible "ti,omap4-i2c" don't help to get fclk_rate. So set it acording to
cpu compatible: "ti,am33xx" and "ti,omap4"

Signed-off-by: Jan Weitzel <j.weitzel at phytec.de>
---
v2: set i2c_data directly

 drivers/i2c/busses/i2c-omap.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 094f591..96c3c2b 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -271,11 +271,6 @@ static struct omap_i2c_driver_data am33xx_data = {
 	.fclk_rate =	48000,
 };
 
-static struct omap_i2c_driver_data omap4_of_data = {
-	.flags =	OMAP_I2C_FLAG_BUS_SHIFT_NONE,
-	.fclk_rate =	0,
-};
-
 static inline void omap_i2c_write_reg(struct omap_i2c_struct *i2c_omap,
 				      int reg, u16 val)
 {
@@ -1011,6 +1006,11 @@ i2c_omap_probe(struct device_d *pdev)
 	if (r)
 		return r;
 
+	if (of_machine_is_compatible("ti,am33xx"))
+		i2c_data = &am33xx_data;
+	if (of_machine_is_compatible("ti,omap4"))
+		i2c_data = &omap4_data;
+
 	i2c_omap->data = i2c_data;
 	i2c_omap->reg_shift = (i2c_data->flags >>
 					OMAP_I2C_FLAG_BUS_SHIFT__SHIFT) & 3;
@@ -1140,7 +1140,6 @@ static __maybe_unused struct of_device_id omap_i2c_dt_ids[] = {
 		.data = (unsigned long)&omap3_data,
 	}, {
 		.compatible = "ti,omap4-i2c",
-		.data = (unsigned long)&omap4_of_data,
 	}, {
 		/* sentinel */
 	}
-- 
1.9.1




More information about the barebox mailing list