• Home
  • Raw
  • Download

Lines Matching +full:osc +full:- +full:bypass

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright 2013-2014 Freescale Semiconductor, Inc.
13 #include <dt-bindings/clock/imx6sl-clock.h>
33 static const char *step_sels[] = { "osc", "pll2_pfd2", };
38 static const char *periph_clk2_sels[] = { "pll3_usb_otg", "osc", "osc", "dummy", };
42 static const char *csi_sels[] = { "osc", "pll2_pfd2", "pll3_120m", "pll3_pfd1", };
46 static const char *perclk_sels[] = { "ipg", "osc", };
54 static const char *ecspi_sels[] = { "pll3_60m", "osc", };
55 static const char *uart_sels[] = { "pll3_80m", "osc", };
59 "pll3_pfd2", "pll3_pfd3", "osc", "dummy", "dummy", "dummy", "dummy", "dummy",
62 static const char *pll_bypass_src_sels[] = { "osc", "lvds1_in", };
122 * 396MHz -> 132MHz;
123 * 792MHz -> 158.4MHz;
124 * 996MHz -> 142.3MHz;
192 clk_hw_data->num = IMX6SL_CLK_END; in imx6sl_clocks_init()
193 hws = clk_hw_data->hws; in imx6sl_clocks_init()
197 hws[IMX6SL_CLK_OSC] = imx_obtain_fixed_clock_hw("osc", 0); in imx6sl_clocks_init()
201 np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-anatop"); in imx6sl_clocks_init()
216 hws[IMX6SL_CLK_PLL1] = imx_clk_hw_pllv3(IMX_PLLV3_SYS, "pll1", "osc", base + 0x00, 0x7f); in imx6sl_clocks_init()
217 hws[IMX6SL_CLK_PLL2] = imx_clk_hw_pllv3(IMX_PLLV3_GENERIC, "pll2", "osc", base + 0x30, 0x1); in imx6sl_clocks_init()
218 hws[IMX6SL_CLK_PLL3] = imx_clk_hw_pllv3(IMX_PLLV3_USB, "pll3", "osc", base + 0x10, 0x3); in imx6sl_clocks_init()
219 hws[IMX6SL_CLK_PLL4] = imx_clk_hw_pllv3(IMX_PLLV3_AV, "pll4", "osc", base + 0x70, 0x7f); in imx6sl_clocks_init()
220 hws[IMX6SL_CLK_PLL5] = imx_clk_hw_pllv3(IMX_PLLV3_AV, "pll5", "osc", base + 0xa0, 0x7f); in imx6sl_clocks_init()
221 hws[IMX6SL_CLK_PLL6] = imx_clk_hw_pllv3(IMX_PLLV3_ENET, "pll6", "osc", base + 0xe0, 0x3); in imx6sl_clocks_init()
222 hws[IMX6SL_CLK_PLL7] = imx_clk_hw_pllv3(IMX_PLLV3_USB, "pll7", "osc", base + 0x20, 0x3); in imx6sl_clocks_init()
232 /* Do not bypass PLLs initially */ in imx6sl_clocks_init()
233 clk_set_parent(hws[IMX6SL_PLL1_BYPASS]->clk, hws[IMX6SL_CLK_PLL1]->clk); in imx6sl_clocks_init()
234 clk_set_parent(hws[IMX6SL_PLL2_BYPASS]->clk, hws[IMX6SL_CLK_PLL2]->clk); in imx6sl_clocks_init()
235 clk_set_parent(hws[IMX6SL_PLL3_BYPASS]->clk, hws[IMX6SL_CLK_PLL3]->clk); in imx6sl_clocks_init()
236 clk_set_parent(hws[IMX6SL_PLL4_BYPASS]->clk, hws[IMX6SL_CLK_PLL4]->clk); in imx6sl_clocks_init()
237 clk_set_parent(hws[IMX6SL_PLL5_BYPASS]->clk, hws[IMX6SL_CLK_PLL5]->clk); in imx6sl_clocks_init()
238 clk_set_parent(hws[IMX6SL_PLL6_BYPASS]->clk, hws[IMX6SL_CLK_PLL6]->clk); in imx6sl_clocks_init()
239 clk_set_parent(hws[IMX6SL_PLL7_BYPASS]->clk, hws[IMX6SL_CLK_PLL7]->clk); in imx6sl_clocks_init()
422 ret = clk_set_rate(hws[IMX6SL_CLK_AHB]->clk, 132000000); in imx6sl_clocks_init()
428 clk_prepare_enable(hws[IMX6SL_CLK_USBPHY1_GATE]->clk); in imx6sl_clocks_init()
429 clk_prepare_enable(hws[IMX6SL_CLK_USBPHY2_GATE]->clk); in imx6sl_clocks_init()
432 /* Audio-related clocks configuration */ in imx6sl_clocks_init()
433 clk_set_parent(hws[IMX6SL_CLK_SPDIF0_SEL]->clk, hws[IMX6SL_CLK_PLL3_PFD3]->clk); in imx6sl_clocks_init()
436 clk_set_parent(hws[IMX6SL_CLK_LCDIF_PIX_SEL]->clk, in imx6sl_clocks_init()
437 hws[IMX6SL_CLK_PLL5_VIDEO_DIV]->clk); in imx6sl_clocks_init()
439 clk_set_parent(hws[IMX6SL_CLK_LCDIF_AXI_SEL]->clk, in imx6sl_clocks_init()
440 hws[IMX6SL_CLK_PLL2_PFD2]->clk); in imx6sl_clocks_init()
444 CLK_OF_DECLARE(imx6sl, "fsl,imx6sl-ccm", imx6sl_clocks_init);