]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
i2c: xiic: skip input clock setup on non-OF systems
authorAbdurrahman Hussain <abdurrahman@nexthop.ai>
Mon, 23 Feb 2026 15:59:22 +0000 (15:59 +0000)
committerAndi Shyti <andi.shyti@kernel.org>
Wed, 1 Apr 2026 23:28:03 +0000 (01:28 +0200)
Currently Linux does not implement ACPI ClockInput() resource to describe
clocks, unlike DT. However the xiic driver is happy if something
magically enables the clock before the driver probes, and does not
turn it off again. The clock should always be considered optional for
ACPI.

Signed-off-by: Abdurrahman Hussain <abdurrahman@nexthop.ai>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260223-i2c-xiic-v12-7-b6c9ce4e4f3c@nexthop.ai
drivers/i2c/busses/i2c-xiic.c

index 6eb0c6a2618a9d2eb9fd1b2ddf7e4f812adb81e1..3e7735e1dae009040f941b97ab89258465f268a1 100644 (file)
@@ -1464,10 +1464,12 @@ static int xiic_i2c_probe(struct platform_device *pdev)
 
        spin_lock_init(&i2c->atomic_lock);
 
-       i2c->clk = devm_clk_get_enabled(&pdev->dev, NULL);
-       if (IS_ERR(i2c->clk))
-               return dev_err_probe(&pdev->dev, PTR_ERR(i2c->clk),
-                                    "failed to enable input clock.\n");
+       if (is_of_node(fwnode)) {
+               i2c->clk = devm_clk_get_enabled(dev, NULL);
+               if (IS_ERR(i2c->clk))
+                       return dev_err_probe(dev, PTR_ERR(i2c->clk),
+                                       "failed to enable input clock.\n");
+       }
 
        i2c->dev = dev;