mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-07 09:55:19 +02:00
i2c: synquacer: Deal with optional PCLK correctly
[ Upstream commitf2990f8630
] ACPI boot does not provide clocks and regulators, but instead, provides the PCLK rate directly, and enables the clock in firmware. So deal gracefully with this. Fixes:55750148e5
("i2c: synquacer: Fix an error handling path in synquacer_i2c_probe()") Cc: stable@vger.kernel.org # v6.10+ Cc: Andi Shyti <andi.shyti@kernel.org> Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Andi Shyti <andi.shyti@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
6109f5319b
commit
c7e0da7449
|
@ -550,12 +550,13 @@ static int synquacer_i2c_probe(struct platform_device *pdev)
|
||||||
device_property_read_u32(&pdev->dev, "socionext,pclk-rate",
|
device_property_read_u32(&pdev->dev, "socionext,pclk-rate",
|
||||||
&i2c->pclkrate);
|
&i2c->pclkrate);
|
||||||
|
|
||||||
pclk = devm_clk_get_enabled(&pdev->dev, "pclk");
|
pclk = devm_clk_get_optional_enabled(&pdev->dev, "pclk");
|
||||||
if (IS_ERR(pclk))
|
if (IS_ERR(pclk))
|
||||||
return dev_err_probe(&pdev->dev, PTR_ERR(pclk),
|
return dev_err_probe(&pdev->dev, PTR_ERR(pclk),
|
||||||
"failed to get and enable clock\n");
|
"failed to get and enable clock\n");
|
||||||
|
|
||||||
i2c->pclkrate = clk_get_rate(pclk);
|
if (pclk)
|
||||||
|
i2c->pclkrate = clk_get_rate(pclk);
|
||||||
|
|
||||||
if (i2c->pclkrate < SYNQUACER_I2C_MIN_CLK_RATE ||
|
if (i2c->pclkrate < SYNQUACER_I2C_MIN_CLK_RATE ||
|
||||||
i2c->pclkrate > SYNQUACER_I2C_MAX_CLK_RATE)
|
i2c->pclkrate > SYNQUACER_I2C_MAX_CLK_RATE)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user