[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