[PATCH v3 1/5] i2c: xiic: make the clock optional
Andy Shevchenko
andriy.shevchenko at intel.com
Fri Jan 23 00:29:08 PST 2026
On Fri, Jan 23, 2026 at 08:02:44AM +0000, Abdurrahman Hussain via B4 Relay wrote:
> The xiic driver is designed to operate without explicit clock configuration
> when clocks are not specified in the firmware. This functionality is
> already implemented in xiic_setclk(), which performs an early return when
> either i2c_clk or input_clk are zero:
>
> This condition is satisfied when clocks are missing, as clk_get_rate(NULL)
> returns zero, allowing the driver to rely on hardware-configured timing.
...
> mutex_init(&i2c->lock);
> spin_lock_init(&i2c->atomic_lock);
>
> - i2c->clk = devm_clk_get_enabled(&pdev->dev, NULL);
> + i2c->clk = devm_clk_get_optional_enabled(&pdev->dev, NULL);
You also need to have
struct device *dev = &pdev->dev;
in *this* patch.
> if (IS_ERR(i2c->clk))
> return dev_err_probe(&pdev->dev, PTR_ERR(i2c->clk),
> "failed to enable input clock.\n");
--
With Best Regards,
Andy Shevchenko
More information about the linux-arm-kernel
mailing list