Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78ae71ac authored by Markus Pargmann's avatar Markus Pargmann Committed by Shawn Guo
Browse files

clk: imx25: Remove osc clock from driver



The 'osc' clock is already initialized by the fixed clock defined in
imx25.dtsi. The imx25 clock driver tries to add this clock for a second
time and fails with -EEXIST:
	i.MX clk 1: register failed with -17

As the clock is already properly setup in DT with a different driver, we
can completely remove the handling in the imx25 clock driver.

Signed-off-by: default avatarMarkus Pargmann <mpa@pengutronix.de>
Reviewed-by: default avatarLucas Stach <l.stach@pengutronix.de>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent 8005c49d
Loading
Loading
Loading
Loading
+2 −16
Original line number Diff line number Diff line
@@ -96,13 +96,11 @@ static struct clk ** const uart_clks[] __initconst = {
	NULL
};

static int __init __mx25_clocks_init(unsigned long osc_rate,
				     void __iomem *ccm_base)
static int __init __mx25_clocks_init(void __iomem *ccm_base)
{
	BUG_ON(!ccm_base);

	clk[dummy] = imx_clk_fixed("dummy", 0);
	clk[osc] = imx_clk_fixed("osc", osc_rate);
	clk[mpll] = imx_clk_pllv1(IMX_PLLV1_IMX25, "mpll", "osc", ccm(CCM_MPCTL));
	clk[upll] = imx_clk_pllv1(IMX_PLLV1_IMX25, "upll", "osc", ccm(CCM_UPCTL));
	clk[mpll_cpu_3_4] = imx_clk_fixed_factor("mpll_cpu_3_4", "mpll", 3, 4);
@@ -250,22 +248,10 @@ static int __init __mx25_clocks_init(unsigned long osc_rate,

static void __init mx25_clocks_init_dt(struct device_node *np)
{
	struct device_node *refnp;
	unsigned long osc_rate = 24000000;
	void __iomem *ccm;

	/* retrieve the freqency of fixed clocks from device tree */
	for_each_compatible_node(refnp, NULL, "fixed-clock") {
		u32 rate;
		if (of_property_read_u32(refnp, "clock-frequency", &rate))
			continue;

		if (of_device_is_compatible(refnp, "fsl,imx-osc"))
			osc_rate = rate;
	}

	ccm = of_iomap(np, 0);
	__mx25_clocks_init(osc_rate, ccm);
	__mx25_clocks_init(ccm);

	clk_data.clks = clk;
	clk_data.clk_num = ARRAY_SIZE(clk);