diff options
Diffstat (limited to 'arch/arm/mach-imx/clk-imx6q.c')
| -rw-r--r-- | arch/arm/mach-imx/clk-imx6q.c | 29 | 
1 files changed, 22 insertions, 7 deletions
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index 17dc66a085a..ea89520b6e2 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c @@ -147,18 +147,19 @@ enum mx6q_clks {  	esai, gpt_ipg, gpt_ipg_per, gpu2d_core, gpu3d_core, hdmi_iahb,  	hdmi_isfr, i2c1, i2c2, i2c3, iim, enfc, ipu1, ipu1_di0, ipu1_di1, ipu2,  	ipu2_di0, ldb_di0, ldb_di1, ipu2_di1, hsi_tx, mlb, mmdc_ch0_axi, -	mmdc_ch1_axi, ocram, openvg_axi, pcie_axi, pwm1, pwm2, pwm3, pwm4, +	mmdc_ch1_axi, ocram, openvg_axi, pcie_axi, pwm1, pwm2, pwm3, pwm4, per1_bch,  	gpmi_bch_apb, gpmi_bch, gpmi_io, gpmi_apb, sata, sdma, spba, ssi1,  	ssi2, ssi3, uart_ipg, uart_serial, usboh3, usdhc1, usdhc2, usdhc3,  	usdhc4, vdo_axi, vpu_axi, cko1, pll1_sys, pll2_bus, pll3_usb_otg,  	pll4_audio, pll5_video, pll6_mlb, pll7_usb_host, pll8_enet, ssi1_ipg, -	ssi2_ipg, ssi3_ipg, clk_max +	ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2, +	clk_max  };  static struct clk *clk[clk_max];  static enum mx6q_clks const clks_init_on[] __initconst = { -	mmdc_ch0_axi, mmdc_ch1_axi, +	mmdc_ch0_axi, rom,  };  int __init mx6q_clocks_init(void) @@ -197,6 +198,9 @@ int __init mx6q_clocks_init(void)  	clk[pll7_usb_host] = imx_clk_pllv3(IMX_PLLV3_USB,	"pll7_usb_host","osc", base + 0x20, 0x2000,   0x3);  	clk[pll8_enet]     = imx_clk_pllv3(IMX_PLLV3_ENET,	"pll8_enet",	"osc", base + 0xe0, 0x182000, 0x3); +	clk[usbphy1] = imx_clk_gate("usbphy1", "pll3_usb_otg", base + 0x10, 6); +	clk[usbphy2] = imx_clk_gate("usbphy2", "pll7_usb_host", base + 0x20, 6); +  	/*                                name              parent_name        reg       idx */  	clk[pll2_pfd0_352m] = imx_clk_pfd("pll2_pfd0_352m", "pll2_bus",     base + 0x100, 0);  	clk[pll2_pfd1_594m] = imx_clk_pfd("pll2_pfd1_594m", "pll2_bus",     base + 0x100, 1); @@ -317,7 +321,7 @@ int __init mx6q_clocks_init(void)  	clk[ahb]               = imx_clk_busy_divider("ahb",               "periph",      base + 0x14, 10,  3,   base + 0x48, 1);  	/*                                name             parent_name          reg         shift */ -	clk[apbh_dma]     = imx_clk_gate2("apbh_dma",      "ahb",               base + 0x68, 4); +	clk[apbh_dma]     = imx_clk_gate2("apbh_dma",      "usdhc3",            base + 0x68, 4);  	clk[asrc]         = imx_clk_gate2("asrc",          "asrc_podf",         base + 0x68, 6);  	clk[can1_ipg]     = imx_clk_gate2("can1_ipg",      "ipg",               base + 0x68, 14);  	clk[can1_serial]  = imx_clk_gate2("can1_serial",   "can_root",          base + 0x68, 16); @@ -356,6 +360,7 @@ int __init mx6q_clocks_init(void)  	clk[ocram]        = imx_clk_gate2("ocram",         "ahb",               base + 0x74, 28);  	clk[openvg_axi]   = imx_clk_gate2("openvg_axi",    "axi",               base + 0x74, 30);  	clk[pcie_axi]     = imx_clk_gate2("pcie_axi",      "pcie_axi_sel",      base + 0x78, 0); +	clk[per1_bch]     = imx_clk_gate2("per1_bch",      "usdhc3",            base + 0x78, 12);  	clk[pwm1]         = imx_clk_gate2("pwm1",          "ipg_per",           base + 0x78, 16);  	clk[pwm2]         = imx_clk_gate2("pwm2",          "ipg_per",           base + 0x78, 18);  	clk[pwm3]         = imx_clk_gate2("pwm3",          "ipg_per",           base + 0x78, 20); @@ -364,6 +369,7 @@ int __init mx6q_clocks_init(void)  	clk[gpmi_bch]     = imx_clk_gate2("gpmi_bch",      "usdhc4",            base + 0x78, 26);  	clk[gpmi_io]      = imx_clk_gate2("gpmi_io",       "enfc",              base + 0x78, 28);  	clk[gpmi_apb]     = imx_clk_gate2("gpmi_apb",      "usdhc3",            base + 0x78, 30); +	clk[rom]          = imx_clk_gate2("rom",           "ahb",               base + 0x7c, 0);  	clk[sata]         = imx_clk_gate2("sata",          "ipg",               base + 0x7c, 4);  	clk[sdma]         = imx_clk_gate2("sdma",          "ahb",               base + 0x7c, 6);  	clk[spba]         = imx_clk_gate2("spba",          "ipg",               base + 0x7c, 12); @@ -386,12 +392,21 @@ int __init mx6q_clocks_init(void)  			pr_err("i.MX6q clk %d: register failed with %ld\n",  				i, PTR_ERR(clk[i])); -	clk_register_clkdev(clk[mmdc_ch0_axi], NULL, "mmdc_ch0_axi"); -	clk_register_clkdev(clk[mmdc_ch1_axi], NULL, "mmdc_ch1_axi");  	clk_register_clkdev(clk[gpt_ipg], "ipg", "imx-gpt.0");  	clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0");  	clk_register_clkdev(clk[twd], NULL, "smp_twd"); -	clk_register_clkdev(clk[usboh3], NULL, "usboh3"); +	clk_register_clkdev(clk[apbh_dma], NULL, "110000.dma-apbh"); +	clk_register_clkdev(clk[per1_bch], "per1_bch", "112000.gpmi-nand"); +	clk_register_clkdev(clk[gpmi_bch_apb], "gpmi_bch_apb", "112000.gpmi-nand"); +	clk_register_clkdev(clk[gpmi_bch], "gpmi_bch", "112000.gpmi-nand"); +	clk_register_clkdev(clk[gpmi_apb], "gpmi_apb", "112000.gpmi-nand"); +	clk_register_clkdev(clk[gpmi_io], "gpmi_io", "112000.gpmi-nand"); +	clk_register_clkdev(clk[usboh3], NULL, "2184000.usb"); +	clk_register_clkdev(clk[usboh3], NULL, "2184200.usb"); +	clk_register_clkdev(clk[usboh3], NULL, "2184400.usb"); +	clk_register_clkdev(clk[usboh3], NULL, "2184600.usb"); +	clk_register_clkdev(clk[usbphy1], NULL, "20c9000.usbphy"); +	clk_register_clkdev(clk[usbphy2], NULL, "20ca000.usbphy");  	clk_register_clkdev(clk[uart_serial], "per", "2020000.serial");  	clk_register_clkdev(clk[uart_ipg], "ipg", "2020000.serial");  	clk_register_clkdev(clk[uart_serial], "per", "21e8000.serial");  |