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

Commit b0286f20 authored by Richard Zhao's avatar Richard Zhao Committed by Sascha Hauer
Browse files

ARM: imx6q: prepare and enable init on clks directly instead of clk_get first



This also removes the usboh3 clk from the initially turned on
clocks which leaked in from an internal development tree.

Signed-off-by: default avatarRichard Zhao <richard.zhao@freescale.com>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
parent 2cfb4518
Loading
Loading
Loading
Loading
+6 −14
Original line number Original line Diff line number Diff line
@@ -122,10 +122,6 @@ static const char *cko1_sels[] = { "pll3_usb_otg", "pll2_bus", "pll1_sys", "pll5
				    "dummy", "axi", "enfc", "ipu1_di0", "ipu1_di1", "ipu2_di0",
				    "dummy", "axi", "enfc", "ipu1_di0", "ipu1_di1", "ipu2_di0",
				    "ipu2_di1", "ahb", "ipg", "ipg_per", "ckil", "pll4_audio", };
				    "ipu2_di1", "ahb", "ipg", "ipg_per", "ckil", "pll4_audio", };


static const char * const clks_init_on[] __initconst = {
	"mmdc_ch0_axi", "mmdc_ch1_axi", "usboh3",
};

enum mx6q_clks {
enum mx6q_clks {
	dummy, ckil, ckih, osc, pll2_pfd0_352m, pll2_pfd1_594m, pll2_pfd2_396m,
	dummy, ckil, ckih, osc, pll2_pfd0_352m, pll2_pfd1_594m, pll2_pfd2_396m,
	pll3_pfd0_720m, pll3_pfd1_540m, pll3_pfd2_508m, pll3_pfd3_454m,
	pll3_pfd0_720m, pll3_pfd1_540m, pll3_pfd2_508m, pll3_pfd3_454m,
@@ -160,11 +156,14 @@ enum mx6q_clks {


static struct clk *clk[clk_max];
static struct clk *clk[clk_max];


static enum mx6q_clks const clks_init_on[] __initconst = {
	mmdc_ch0_axi, mmdc_ch1_axi,
};

int __init mx6q_clocks_init(void)
int __init mx6q_clocks_init(void)
{
{
	struct device_node *np;
	struct device_node *np;
	void __iomem *base;
	void __iomem *base;
	struct clk *c;
	int i, irq;
	int i, irq;


	clk[dummy] = imx_clk_fixed("dummy", 0);
	clk[dummy] = imx_clk_fixed("dummy", 0);
@@ -419,15 +418,8 @@ int __init mx6q_clocks_init(void)
	clk_register_clkdev(clk[dummy], NULL, "20bc000.wdog");
	clk_register_clkdev(clk[dummy], NULL, "20bc000.wdog");
	clk_register_clkdev(clk[dummy], NULL, "20c0000.wdog");
	clk_register_clkdev(clk[dummy], NULL, "20c0000.wdog");


	for (i = 0; i < ARRAY_SIZE(clks_init_on); i++) {
	for (i = 0; i < ARRAY_SIZE(clks_init_on); i++)
		c = clk_get_sys(clks_init_on[i], NULL);
		clk_prepare_enable(clk[clks_init_on[i]]);
		if (IS_ERR(c)) {
			pr_err("%s: failed to get clk %s", __func__,
			       clks_init_on[i]);
			return PTR_ERR(c);
		}
		clk_prepare_enable(c);
	}


	np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt");
	np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt");
	base = of_iomap(np, 0);
	base = of_iomap(np, 0);