i2c: sh_mobile: honor DT bus speed settings
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Fri, 2 May 2014 19:15:09 +0000 (21:15 +0200)
committerSimon Horman <horms@verge.net.au>
Fri, 5 Dec 2014 00:22:41 +0000 (09:22 +0900)
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit 88c289ec28dfb0f383dcdbadd2c759f910585815)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/i2c/busses/i2c-sh_mobile.c

index d2fa222..2e481ab 100644 (file)
@@ -657,6 +657,7 @@ static int sh_mobile_i2c_probe(struct platform_device *dev)
        struct resource *res;
        int size;
        int ret;
+       u32 bus_speed;
 
        pd = kzalloc(sizeof(struct sh_mobile_i2c_data), GFP_KERNEL);
        if (pd == NULL) {
@@ -697,7 +698,9 @@ static int sh_mobile_i2c_probe(struct platform_device *dev)
        }
 
        /* Use platform data bus speed or STANDARD_MODE */
-       pd->bus_speed = STANDARD_MODE;
+       ret = of_property_read_u32(dev->dev.of_node, "clock-frequency", &bus_speed);
+       pd->bus_speed = ret ? STANDARD_MODE : bus_speed;
+
        if (pdata && pdata->bus_speed)
                pd->bus_speed = pdata->bus_speed;
        pd->clks_per_count = 1;