Commit f2990f86 authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Andi Shyti
Browse files

i2c: synquacer: Deal with optional PCLK correctly



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: 55750148 ("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: default avatarArd Biesheuvel <ardb@kernel.org>
Signed-off-by: default avatarAndi Shyti <andi.shyti@kernel.org>
parent 5d69d5a0
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -550,11 +550,12 @@ static int synquacer_i2c_probe(struct platform_device *pdev)
	device_property_read_u32(&pdev->dev, "socionext,pclk-rate",
				 &i2c->pclkrate);

	pclk = devm_clk_get_enabled(&pdev->dev, "pclk");
	pclk = devm_clk_get_optional_enabled(&pdev->dev, "pclk");
	if (IS_ERR(pclk))
		return dev_err_probe(&pdev->dev, PTR_ERR(pclk),
				     "failed to get and enable clock\n");

	if (pclk)
		i2c->pclkrate = clk_get_rate(pclk);

	if (i2c->pclkrate < SYNQUACER_I2C_MIN_CLK_RATE ||