]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
i2c: thunderx: ACPI support for clock settings
authorJan Glauber <jglauber@cavium.com>
Thu, 2 Mar 2017 10:34:07 +0000 (11:34 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Thu, 23 Mar 2017 20:49:27 +0000 (21:49 +0100)
Add support for reading the system clock and the TWSI clock
frequency from ACPI DSDT.

TWSI clock was already covered by using device_property_read().

Signed-off-by: Jan Glauber <jglauber@cavium.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-thunderx-pcidrv.c

index 1d4c2beacf2e7044011110593fbeafa2f839bb37..b4bc884cef93cc100a7cd9f3002e1f313ee96230 100644 (file)
@@ -85,17 +85,23 @@ static void thunder_i2c_clock_enable(struct device *dev, struct octeon_i2c *i2c)
 {
        int ret;
 
-       i2c->clk = clk_get(dev, NULL);
-       if (IS_ERR(i2c->clk)) {
-               i2c->clk = NULL;
-               goto skip;
+       if (acpi_disabled) {
+               /* DT */
+               i2c->clk = clk_get(dev, NULL);
+               if (IS_ERR(i2c->clk)) {
+                       i2c->clk = NULL;
+                       goto skip;
+               }
+
+               ret = clk_prepare_enable(i2c->clk);
+               if (ret)
+                       goto skip;
+               i2c->sys_freq = clk_get_rate(i2c->clk);
+       } else {
+               /* ACPI */
+               device_property_read_u32(dev, "sclk", &i2c->sys_freq);
        }
 
-       ret = clk_prepare_enable(i2c->clk);
-       if (ret)
-               goto skip;
-       i2c->sys_freq = clk_get_rate(i2c->clk);
-
 skip:
        if (!i2c->sys_freq)
                i2c->sys_freq = SYS_FREQ_DEFAULT;