blob: 83940cf10a236484e340a4458d6dec6f0a2608fd [file] [log] [blame]
Manu Gautam5143b252012-01-05 19:25:23 -08001/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -07002 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include "clock.h"
Pankaj Kumar3912c982011-12-07 16:59:03 +053014#include "clock-pll.h"
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070015#include "clock-pcom.h"
16#include "clock-voter.h"
Steve Mucklef132c6c2012-06-06 18:30:57 -070017#include <linux/io.h>
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070018
Pankaj Kumar3912c982011-12-07 16:59:03 +053019#include <mach/msm_iomap.h>
20#include <mach/socinfo.h>
21
22#define PLLn_MODE(n) (MSM_CLK_CTL_BASE + 0x300 + 28 * (n))
23#define PLL4_MODE (MSM_CLK_CTL_BASE + 0x374)
24
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070025static DEFINE_CLK_PCOM(adm_clk, ADM_CLK, CLKFLAG_SKIP_AUTO_OFF);
26static DEFINE_CLK_PCOM(adsp_clk, ADSP_CLK, CLKFLAG_SKIP_AUTO_OFF);
27static DEFINE_CLK_PCOM(ahb_m_clk, AHB_M_CLK, CLKFLAG_SKIP_AUTO_OFF);
28static DEFINE_CLK_PCOM(ahb_s_clk, AHB_S_CLK, CLKFLAG_SKIP_AUTO_OFF);
29static DEFINE_CLK_PCOM(cam_m_clk, CAM_M_CLK, CLKFLAG_SKIP_AUTO_OFF);
30static DEFINE_CLK_PCOM(axi_rotator_clk, AXI_ROTATOR_CLK, 0);
31static DEFINE_CLK_PCOM(ce_clk, CE_CLK, CLKFLAG_SKIP_AUTO_OFF);
32static DEFINE_CLK_PCOM(csi0_clk, CSI0_CLK, CLKFLAG_SKIP_AUTO_OFF);
33static DEFINE_CLK_PCOM(csi0_p_clk, CSI0_P_CLK, CLKFLAG_SKIP_AUTO_OFF);
34static DEFINE_CLK_PCOM(csi0_vfe_clk, CSI0_VFE_CLK, CLKFLAG_SKIP_AUTO_OFF);
35static DEFINE_CLK_PCOM(csi1_clk, CSI1_CLK, CLKFLAG_SKIP_AUTO_OFF);
36static DEFINE_CLK_PCOM(csi1_p_clk, CSI1_P_CLK, CLKFLAG_SKIP_AUTO_OFF);
37static DEFINE_CLK_PCOM(csi1_vfe_clk, CSI1_VFE_CLK, CLKFLAG_SKIP_AUTO_OFF);
38
Pankaj Kumar3912c982011-12-07 16:59:03 +053039static struct pll_shared_clk pll0_clk = {
40 .id = PLL_0,
41 .mode_reg = PLLn_MODE(0),
42 .c = {
Matt Wagantallae053222012-05-14 19:42:07 -070043 .ops = &clk_ops_pll,
Pankaj Kumar3912c982011-12-07 16:59:03 +053044 .dbg_name = "pll0_clk",
45 CLK_INIT(pll0_clk.c),
46 },
47};
48
49static struct pll_shared_clk pll1_clk = {
50 .id = PLL_1,
51 .mode_reg = PLLn_MODE(1),
52 .c = {
Matt Wagantallae053222012-05-14 19:42:07 -070053 .ops = &clk_ops_pll,
Pankaj Kumar3912c982011-12-07 16:59:03 +053054 .dbg_name = "pll1_clk",
55 CLK_INIT(pll1_clk.c),
56 },
57};
58
59static struct pll_shared_clk pll2_clk = {
60 .id = PLL_2,
61 .mode_reg = PLLn_MODE(2),
62 .c = {
Matt Wagantallae053222012-05-14 19:42:07 -070063 .ops = &clk_ops_pll,
Pankaj Kumar3912c982011-12-07 16:59:03 +053064 .dbg_name = "pll2_clk",
65 CLK_INIT(pll2_clk.c),
66 },
67};
68
69static struct pll_shared_clk pll4_clk = {
70 .id = PLL_4,
71 .mode_reg = PLL4_MODE,
72 .c = {
Matt Wagantallae053222012-05-14 19:42:07 -070073 .ops = &clk_ops_pll,
Pankaj Kumar3912c982011-12-07 16:59:03 +053074 .dbg_name = "pll4_clk",
75 CLK_INIT(pll4_clk.c),
76 },
77};
78
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070079static struct pcom_clk dsi_byte_clk = {
80 .id = P_DSI_BYTE_CLK,
81 .c = {
82 .ops = &clk_ops_pcom_ext_config,
83 .dbg_name = "dsi_byte_clk",
84 CLK_INIT(dsi_byte_clk.c),
85 },
86};
87
88static struct pcom_clk dsi_clk = {
89 .id = P_DSI_CLK,
90 .c = {
91 .ops = &clk_ops_pcom_ext_config,
92 .dbg_name = "dsi_clk",
93 CLK_INIT(dsi_clk.c),
94 },
95};
96
97static struct pcom_clk dsi_esc_clk = {
98 .id = P_DSI_ESC_CLK,
99 .c = {
100 .ops = &clk_ops_pcom_ext_config,
101 .dbg_name = "dsi_esc_clk",
102 CLK_INIT(dsi_esc_clk.c),
103 },
104};
105
106static struct pcom_clk dsi_pixel_clk = {
107 .id = P_DSI_PIXEL_CLK,
108 .c = {
109 .ops = &clk_ops_pcom_ext_config,
110 .dbg_name = "dsi_pixel_clk",
111 CLK_INIT(dsi_pixel_clk.c),
112 },
113};
114
115static DEFINE_CLK_PCOM(dsi_ref_clk, DSI_REF_CLK, 0);
116static DEFINE_CLK_PCOM(ebi1_clk, EBI1_CLK,
117 CLKFLAG_SKIP_AUTO_OFF | CLKFLAG_MIN);
118static DEFINE_CLK_PCOM(ebi2_clk, EBI2_CLK, CLKFLAG_SKIP_AUTO_OFF);
119static DEFINE_CLK_PCOM(ecodec_clk, ECODEC_CLK, CLKFLAG_SKIP_AUTO_OFF);
120static DEFINE_CLK_PCOM(emdh_clk, EMDH_CLK, CLKFLAG_MIN | CLKFLAG_MAX);
121static DEFINE_CLK_PCOM(gp_clk, GP_CLK, CLKFLAG_SKIP_AUTO_OFF);
122static DEFINE_CLK_PCOM(grp_2d_clk, GRP_2D_CLK, CLKFLAG_SKIP_AUTO_OFF);
123static DEFINE_CLK_PCOM(grp_2d_p_clk, GRP_2D_P_CLK, CLKFLAG_SKIP_AUTO_OFF);
124static DEFINE_CLK_PCOM(grp_3d_clk, GRP_3D_CLK, 0);
125static DEFINE_CLK_PCOM(grp_3d_p_clk, GRP_3D_P_CLK, CLKFLAG_SKIP_AUTO_OFF);
126static DEFINE_CLK_PCOM(gsbi1_qup_clk, GSBI1_QUP_CLK, 0);
127static DEFINE_CLK_PCOM(gsbi1_qup_p_clk, GSBI1_QUP_P_CLK, 0);
128static DEFINE_CLK_PCOM(gsbi2_qup_clk, GSBI2_QUP_CLK, 0);
129static DEFINE_CLK_PCOM(gsbi2_qup_p_clk, GSBI2_QUP_P_CLK, 0);
130static DEFINE_CLK_PCOM(gsbi_clk, GSBI_CLK, CLKFLAG_SKIP_AUTO_OFF);
131static DEFINE_CLK_PCOM(gsbi_p_clk, GSBI_P_CLK, CLKFLAG_SKIP_AUTO_OFF);
132static DEFINE_CLK_PCOM(hdmi_clk, HDMI_CLK, CLKFLAG_SKIP_AUTO_OFF);
133static DEFINE_CLK_PCOM(i2c_clk, I2C_CLK, CLKFLAG_SKIP_AUTO_OFF);
134static DEFINE_CLK_PCOM(icodec_rx_clk, ICODEC_RX_CLK, CLKFLAG_SKIP_AUTO_OFF);
135static DEFINE_CLK_PCOM(icodec_tx_clk, ICODEC_TX_CLK, CLKFLAG_SKIP_AUTO_OFF);
136static DEFINE_CLK_PCOM(imem_clk, IMEM_CLK, 0);
137static DEFINE_CLK_PCOM(mdc_clk, MDC_CLK, CLKFLAG_SKIP_AUTO_OFF);
Matt Wagantalla12cc952011-11-08 18:14:50 -0800138static DEFINE_CLK_PCOM(mdp_clk, MDP_CLK, CLKFLAG_MIN);
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700139static DEFINE_CLK_PCOM(mdp_lcdc_pad_pclk_clk, MDP_LCDC_PAD_PCLK_CLK,
140 CLKFLAG_SKIP_AUTO_OFF);
141static DEFINE_CLK_PCOM(mdp_lcdc_pclk_clk, MDP_LCDC_PCLK_CLK,
142 CLKFLAG_SKIP_AUTO_OFF);
143static DEFINE_CLK_PCOM(mdp_vsync_clk, MDP_VSYNC_CLK, 0);
144static DEFINE_CLK_PCOM(mdp_dsi_p_clk, MDP_DSI_P_CLK, 0);
145static DEFINE_CLK_PCOM(pbus_clk, PBUS_CLK,
146 CLKFLAG_SKIP_AUTO_OFF | CLKFLAG_MIN);
147static DEFINE_CLK_PCOM(pcm_clk, PCM_CLK, CLKFLAG_SKIP_AUTO_OFF);
148static DEFINE_CLK_PCOM(pmdh_clk, PMDH_CLK, CLKFLAG_MIN | CLKFLAG_MAX);
149static DEFINE_CLK_PCOM(sdac_clk, SDAC_CLK, 0);
150static DEFINE_CLK_PCOM(sdc1_clk, SDC1_CLK, 0);
151static DEFINE_CLK_PCOM(sdc1_p_clk, SDC1_P_CLK, 0);
152static DEFINE_CLK_PCOM(sdc2_clk, SDC2_CLK, 0);
153static DEFINE_CLK_PCOM(sdc2_p_clk, SDC2_P_CLK, 0);
154static DEFINE_CLK_PCOM(sdc3_clk, SDC3_CLK, 0);
155static DEFINE_CLK_PCOM(sdc3_p_clk, SDC3_P_CLK, 0);
156static DEFINE_CLK_PCOM(sdc4_clk, SDC4_CLK, 0);
157static DEFINE_CLK_PCOM(sdc4_p_clk, SDC4_P_CLK, 0);
158static DEFINE_CLK_PCOM(spi_clk, SPI_CLK, CLKFLAG_SKIP_AUTO_OFF);
159static DEFINE_CLK_PCOM(tsif_clk, TSIF_CLK, CLKFLAG_SKIP_AUTO_OFF);
160static DEFINE_CLK_PCOM(tsif_p_clk, TSIF_P_CLK, CLKFLAG_SKIP_AUTO_OFF);
161static DEFINE_CLK_PCOM(tsif_ref_clk, TSIF_REF_CLK, CLKFLAG_SKIP_AUTO_OFF);
162static DEFINE_CLK_PCOM(tv_dac_clk, TV_DAC_CLK, CLKFLAG_SKIP_AUTO_OFF);
163static DEFINE_CLK_PCOM(tv_enc_clk, TV_ENC_CLK, CLKFLAG_SKIP_AUTO_OFF);
164static DEFINE_CLK_PCOM(uart1_clk, UART1_CLK, 0);
165static DEFINE_CLK_PCOM(uart1dm_clk, UART1DM_CLK, 0);
166static DEFINE_CLK_PCOM(uart2_clk, UART2_CLK, 0);
167static DEFINE_CLK_PCOM(uart2dm_clk, UART2DM_CLK, 0);
168static DEFINE_CLK_PCOM(uart3_clk, UART3_CLK, 0);
169static DEFINE_CLK_PCOM(usb_hs2_clk, USB_HS2_CLK, 0);
170static DEFINE_CLK_PCOM(usb_hs2_p_clk, USB_HS2_P_CLK, 0);
171static DEFINE_CLK_PCOM(usb_hs3_clk, USB_HS3_CLK, 0);
172static DEFINE_CLK_PCOM(usb_hs3_p_clk, USB_HS3_P_CLK, 0);
173static DEFINE_CLK_PCOM(usb_hs_clk, USB_HS_CLK, 0);
174static DEFINE_CLK_PCOM(usb_hs_core_clk, USB_HS_CORE_CLK, 0);
175static DEFINE_CLK_PCOM(usb_hs_p_clk, USB_HS_P_CLK, 0);
176static DEFINE_CLK_PCOM(usb_otg_clk, USB_OTG_CLK, CLKFLAG_SKIP_AUTO_OFF);
177static DEFINE_CLK_PCOM(usb_phy_clk, USB_PHY_CLK, CLKFLAG_SKIP_AUTO_OFF);
178static DEFINE_CLK_PCOM(vdc_clk, VDC_CLK, CLKFLAG_MIN);
179static DEFINE_CLK_PCOM(vfe_axi_clk, VFE_AXI_CLK, 0);
180static DEFINE_CLK_PCOM(vfe_clk, VFE_CLK, 0);
181static DEFINE_CLK_PCOM(vfe_mdc_clk, VFE_MDC_CLK, 0);
182
Matt Wagantall35e78fc2012-04-05 14:18:44 -0700183static DEFINE_CLK_VOTER(ebi_acpu_clk, &ebi1_clk.c, 0);
184static DEFINE_CLK_VOTER(ebi_grp_3d_clk, &ebi1_clk.c, 0);
185static DEFINE_CLK_VOTER(ebi_grp_2d_clk, &ebi1_clk.c, 0);
186static DEFINE_CLK_VOTER(ebi_lcdc_clk, &ebi1_clk.c, 0);
187static DEFINE_CLK_VOTER(ebi_mddi_clk, &ebi1_clk.c, 0);
188static DEFINE_CLK_VOTER(ebi_tv_clk, &ebi1_clk.c, 0);
189static DEFINE_CLK_VOTER(ebi_usb_clk, &ebi1_clk.c, 0);
190static DEFINE_CLK_VOTER(ebi_vfe_clk, &ebi1_clk.c, 0);
191static DEFINE_CLK_VOTER(ebi_adm_clk, &ebi1_clk.c, 0);
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700192
Stephen Boydbb600ae2011-08-02 20:11:40 -0700193static struct clk_lookup msm_clocks_7x01a[] = {
Matt Wagantalle1a86062011-08-18 17:46:10 -0700194 CLK_LOOKUP("core_clk", adm_clk.c, "msm_dmov"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700195 CLK_LOOKUP("adsp_clk", adsp_clk.c, NULL),
196 CLK_LOOKUP("ebi1_clk", ebi1_clk.c, NULL),
197 CLK_LOOKUP("ebi2_clk", ebi2_clk.c, NULL),
198 CLK_LOOKUP("ecodec_clk", ecodec_clk.c, NULL),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700199 CLK_LOOKUP("core_clk", emdh_clk.c, "msm_mddi.1"),
Matt Wagantallc00f95d2012-01-05 14:22:45 -0800200 CLK_LOOKUP("core_clk", gp_clk.c, ""),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700201 CLK_LOOKUP("core_clk", grp_3d_clk.c, "kgsl-3d0.0"),
Matt Wagantallac294852011-08-17 15:44:58 -0700202 CLK_LOOKUP("core_clk", i2c_clk.c, "msm_i2c.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700203 CLK_LOOKUP("icodec_rx_clk", icodec_rx_clk.c, NULL),
204 CLK_LOOKUP("icodec_tx_clk", icodec_tx_clk.c, NULL),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700205 CLK_LOOKUP("mem_clk", imem_clk.c, NULL),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700206 CLK_LOOKUP("mdc_clk", mdc_clk.c, NULL),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700207 CLK_LOOKUP("core_clk", pmdh_clk.c, "mddi.0"),
208 CLK_LOOKUP("core_clk", mdp_clk.c, "mdp.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700209 CLK_LOOKUP("pbus_clk", pbus_clk.c, NULL),
210 CLK_LOOKUP("pcm_clk", pcm_clk.c, NULL),
211 CLK_LOOKUP("sdac_clk", sdac_clk.c, NULL),
Matt Wagantall37ce3842011-08-17 16:00:36 -0700212 CLK_LOOKUP("core_clk", sdc1_clk.c, "msm_sdcc.1"),
213 CLK_LOOKUP("iface_clk", sdc1_p_clk.c, "msm_sdcc.1"),
214 CLK_LOOKUP("core_clk", sdc2_clk.c, "msm_sdcc.2"),
215 CLK_LOOKUP("iface_clk", sdc2_p_clk.c, "msm_sdcc.2"),
216 CLK_LOOKUP("core_clk", sdc3_clk.c, "msm_sdcc.3"),
217 CLK_LOOKUP("iface_clk", sdc3_p_clk.c, "msm_sdcc.3"),
218 CLK_LOOKUP("core_clk", sdc4_clk.c, "msm_sdcc.4"),
219 CLK_LOOKUP("iface_clk", sdc4_p_clk.c, "msm_sdcc.4"),
Matt Wagantall640e5fd2011-08-17 16:08:53 -0700220 CLK_LOOKUP("core_clk", tsif_clk.c, "msm_tsif.0"),
221 CLK_LOOKUP("ref_clk", tsif_ref_clk.c, "msm_tsif.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700222 CLK_LOOKUP("tv_dac_clk", tv_dac_clk.c, NULL),
223 CLK_LOOKUP("tv_enc_clk", tv_enc_clk.c, NULL),
Matt Wagantalle2522372011-08-17 14:52:21 -0700224 CLK_LOOKUP("core_clk", uart1_clk.c, "msm_serial.0"),
225 CLK_LOOKUP("core_clk", uart2_clk.c, "msm_serial.1"),
226 CLK_LOOKUP("core_clk", uart3_clk.c, "msm_serial.2"),
227 CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
228 CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hs.1"),
Manu Gautam5143b252012-01-05 19:25:23 -0800229 CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
230 CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
231 CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_hsusb_otg"),
232 CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_hsusb_otg"),
233 CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_hsusb_peripheral"),
234 CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_hsusb_peripheral"),
235 CLK_LOOKUP("alt_core_clk", usb_otg_clk.c, NULL),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700236 CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
237 CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
238 CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
239};
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700240
Stephen Boydbb600ae2011-08-02 20:11:40 -0700241struct clock_init_data msm7x01a_clock_init_data __initdata = {
242 .table = msm_clocks_7x01a,
243 .size = ARRAY_SIZE(msm_clocks_7x01a),
244};
245
246static struct clk_lookup msm_clocks_7x27[] = {
Matt Wagantalle1a86062011-08-18 17:46:10 -0700247 CLK_LOOKUP("core_clk", adm_clk.c, "msm_dmov"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700248 CLK_LOOKUP("adsp_clk", adsp_clk.c, NULL),
249 CLK_LOOKUP("ebi1_clk", ebi1_clk.c, NULL),
250 CLK_LOOKUP("ebi2_clk", ebi2_clk.c, NULL),
251 CLK_LOOKUP("ecodec_clk", ecodec_clk.c, NULL),
Matt Wagantallc00f95d2012-01-05 14:22:45 -0800252 CLK_LOOKUP("core_clk", gp_clk.c, ""),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700253 CLK_LOOKUP("core_clk", grp_3d_clk.c, "kgsl-3d0.0"),
Matt Wagantall49722712011-08-17 18:50:53 -0700254 CLK_LOOKUP("core_clk", grp_3d_clk.c, "footswitch-pcom.2"),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700255 CLK_LOOKUP("iface_clk", grp_3d_p_clk.c, "kgsl-3d0.0"),
Matt Wagantallac294852011-08-17 15:44:58 -0700256 CLK_LOOKUP("core_clk", i2c_clk.c, "msm_i2c.0"),
Matt Wagantall49722712011-08-17 18:50:53 -0700257 CLK_LOOKUP("iface_clk", grp_3d_p_clk.c, "footswitch-pcom.2"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700258 CLK_LOOKUP("icodec_rx_clk", icodec_rx_clk.c, NULL),
259 CLK_LOOKUP("icodec_tx_clk", icodec_tx_clk.c, NULL),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700260 CLK_LOOKUP("mem_clk", imem_clk.c, NULL),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700261 CLK_LOOKUP("mdc_clk", mdc_clk.c, NULL),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700262 CLK_LOOKUP("core_clk", pmdh_clk.c, "mddi.0"),
263 CLK_LOOKUP("core_clk", mdp_clk.c, "mdp.0"),
264 CLK_LOOKUP("mdp_clk", mdp_lcdc_pclk_clk.c, "lcdc.0"),
265 CLK_LOOKUP("lcdc_clk", mdp_lcdc_pad_pclk_clk.c, "lcdc.0"),
266 CLK_LOOKUP("vsync_clk", mdp_vsync_clk.c, "mdp.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700267 CLK_LOOKUP("pbus_clk", pbus_clk.c, NULL),
268 CLK_LOOKUP("pcm_clk", pcm_clk.c, NULL),
269 CLK_LOOKUP("sdac_clk", sdac_clk.c, NULL),
Matt Wagantall37ce3842011-08-17 16:00:36 -0700270 CLK_LOOKUP("core_clk", sdc1_clk.c, "msm_sdcc.1"),
271 CLK_LOOKUP("iface_clk", sdc1_p_clk.c, "msm_sdcc.1"),
272 CLK_LOOKUP("core_clk", sdc2_clk.c, "msm_sdcc.2"),
273 CLK_LOOKUP("iface_clk", sdc2_p_clk.c, "msm_sdcc.2"),
274 CLK_LOOKUP("core_clk", sdc3_clk.c, "msm_sdcc.3"),
275 CLK_LOOKUP("iface_clk", sdc3_p_clk.c, "msm_sdcc.3"),
276 CLK_LOOKUP("core_clk", sdc4_clk.c, "msm_sdcc.4"),
277 CLK_LOOKUP("iface_clk", sdc4_p_clk.c, "msm_sdcc.4"),
Matt Wagantall640e5fd2011-08-17 16:08:53 -0700278 CLK_LOOKUP("core_clk", tsif_clk.c, "msm_tsif.0"),
279 CLK_LOOKUP("ref_clk", tsif_ref_clk.c, "msm_tsif.0"),
280 CLK_LOOKUP("iface_clk", tsif_p_clk.c, "msm_tsif.0"),
Matt Wagantalle2522372011-08-17 14:52:21 -0700281 CLK_LOOKUP("core_clk", uart1_clk.c, "msm_serial.0"),
282 CLK_LOOKUP("core_clk", uart2_clk.c, "msm_serial.1"),
283 CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
284 CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hs.1"),
Manu Gautam5143b252012-01-05 19:25:23 -0800285 CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
286 CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
287 CLK_LOOKUP("alt_core_clk", usb_otg_clk.c, NULL),
288 CLK_LOOKUP("phy_clk", usb_phy_clk.c, "msm_otg"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700289 CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
Matt Wagantall49722712011-08-17 18:50:53 -0700290 CLK_LOOKUP("core_clk", vdc_clk.c, "footswitch-pcom.7"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700291 CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
Matt Wagantall49722712011-08-17 18:50:53 -0700292 CLK_LOOKUP("core_clk", vfe_clk.c, "footswitch-pcom.8"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700293 CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
294
295 CLK_LOOKUP("ebi1_acpu_clk", ebi_acpu_clk.c, NULL),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700296 CLK_LOOKUP("bus_clk", ebi_grp_3d_clk.c, "kgsl-3d0.0"),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700297 CLK_LOOKUP("mem_clk", ebi_lcdc_clk.c, "lcdc.0"),
298 CLK_LOOKUP("mem_clk", ebi_mddi_clk.c, "mddi.0"),
Manu Gautam5143b252012-01-05 19:25:23 -0800299 CLK_LOOKUP("core_clk", ebi_usb_clk.c, "msm_otg"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700300 CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
Matt Wagantalle1a86062011-08-18 17:46:10 -0700301 CLK_LOOKUP("mem_clk", ebi_adm_clk.c, "msm_dmov"),
Pankaj Kumar3912c982011-12-07 16:59:03 +0530302
303 CLK_LOOKUP("pll0_clk", pll0_clk.c, "acpu"),
304 CLK_LOOKUP("pll1_clk", pll1_clk.c, "acpu"),
305 CLK_LOOKUP("pll2_clk", pll2_clk.c, "acpu"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700306};
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700307
Stephen Boydbb600ae2011-08-02 20:11:40 -0700308struct clock_init_data msm7x27_clock_init_data __initdata = {
309 .table = msm_clocks_7x27,
310 .size = ARRAY_SIZE(msm_clocks_7x27),
Matt Wagantallb64888f2012-04-02 21:35:07 -0700311 .pre_init = msm_shared_pll_control_init,
Stephen Boydbb600ae2011-08-02 20:11:40 -0700312};
313
Pankaj Kumar3912c982011-12-07 16:59:03 +0530314/* Clock table for common clocks between 7627a and 7625a */
315static struct clk_lookup msm_cmn_clk_7625a_7627a[] __initdata = {
Matt Wagantalle1a86062011-08-18 17:46:10 -0700316 CLK_LOOKUP("core_clk", adm_clk.c, "msm_dmov"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700317 CLK_LOOKUP("adsp_clk", adsp_clk.c, NULL),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700318 CLK_LOOKUP("master_iface_clk", ahb_m_clk.c, "mipi_dsi.1"),
319 CLK_LOOKUP("slave_iface_clk", ahb_s_clk.c, "mipi_dsi.1"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700320 CLK_LOOKUP("cam_m_clk", cam_m_clk.c, NULL),
Sandeep Kodimelac6f78672012-03-07 10:44:04 +0530321 CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-0036"),
322 CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-001b"),
323 CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-0010"),
Raju P.L.S.S.S.Ncc400972012-03-13 10:09:59 +0530324 CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-0078"),
325 CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-006c"),
Katta Santhisindhu16746f62012-06-08 13:35:07 +0530326 CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-000d"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700327 CLK_LOOKUP("csi_clk", csi0_clk.c, "msm_camera_ov9726.0"),
328 CLK_LOOKUP("csi_pclk", csi0_p_clk.c, "msm_camera_ov9726.0"),
329 CLK_LOOKUP("csi_vfe_clk", csi0_vfe_clk.c, "msm_camera_ov9726.0"),
Taniya Das7a22cdd2011-09-08 14:57:00 +0530330 CLK_LOOKUP("csi_clk", csi0_clk.c, "msm_camera_ov7692.0"),
331 CLK_LOOKUP("csi_pclk", csi0_p_clk.c, "msm_camera_ov7692.0"),
332 CLK_LOOKUP("csi_vfe_clk", csi0_vfe_clk.c, "msm_camera_ov7692.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700333 CLK_LOOKUP("csi_clk", csi1_clk.c, NULL),
334 CLK_LOOKUP("csi_pclk", csi1_p_clk.c, NULL),
335 CLK_LOOKUP("csi_vfe_clk", csi1_vfe_clk.c, NULL),
Suresh Vankadara4d4d5c52012-01-18 00:45:49 +0530336 CLK_LOOKUP("csi_clk", csi0_clk.c, "msm_csic.0"),
337 CLK_LOOKUP("csi_pclk", csi0_p_clk.c, "msm_csic.0"),
338 CLK_LOOKUP("csi_vfe_clk", csi0_vfe_clk.c, "msm_csic.0"),
339 CLK_LOOKUP("csi_clk", csi1_clk.c, "msm_csic.1"),
340 CLK_LOOKUP("csi_pclk", csi1_p_clk.c, "msm_csic.1"),
341 CLK_LOOKUP("csi_vfe_clk", csi1_vfe_clk.c, "msm_csic.1"),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700342 CLK_LOOKUP("byte_clk", dsi_byte_clk.c, "mipi_dsi.1"),
343 CLK_LOOKUP("core_clk", dsi_clk.c, "mipi_dsi.1"),
344 CLK_LOOKUP("esc_clk", dsi_esc_clk.c, "mipi_dsi.1"),
345 CLK_LOOKUP("pixel_clk", dsi_pixel_clk.c, "mipi_dsi.1"),
346 CLK_LOOKUP("ref_clk", dsi_ref_clk.c, "mipi_dsi.1"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700347 CLK_LOOKUP("ebi1_clk", ebi1_clk.c, NULL),
348 CLK_LOOKUP("ebi2_clk", ebi2_clk.c, NULL),
349 CLK_LOOKUP("ecodec_clk", ecodec_clk.c, NULL),
Matt Wagantallc00f95d2012-01-05 14:22:45 -0800350 CLK_LOOKUP("core_clk", gp_clk.c, ""),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700351 CLK_LOOKUP("core_clk", grp_3d_clk.c, "kgsl-3d0.0"),
Matt Wagantall49722712011-08-17 18:50:53 -0700352 CLK_LOOKUP("core_clk", grp_3d_clk.c, "footswitch-pcom.2"),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700353 CLK_LOOKUP("iface_clk", grp_3d_p_clk.c, "kgsl-3d0.0"),
Matt Wagantall49722712011-08-17 18:50:53 -0700354 CLK_LOOKUP("iface_clk", grp_3d_p_clk.c, "footswitch-pcom.2"),
Matt Wagantallac294852011-08-17 15:44:58 -0700355 CLK_LOOKUP("core_clk", gsbi1_qup_clk.c, "qup_i2c.0"),
356 CLK_LOOKUP("core_clk", gsbi2_qup_clk.c, "qup_i2c.1"),
357 CLK_LOOKUP("iface_clk", gsbi1_qup_p_clk.c, "qup_i2c.0"),
358 CLK_LOOKUP("iface_clk", gsbi2_qup_p_clk.c, "qup_i2c.1"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700359 CLK_LOOKUP("icodec_rx_clk", icodec_rx_clk.c, NULL),
360 CLK_LOOKUP("icodec_tx_clk", icodec_tx_clk.c, NULL),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700361 CLK_LOOKUP("mem_clk", imem_clk.c, NULL),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700362 CLK_LOOKUP("core_clk", pmdh_clk.c, "mddi.0"),
363 CLK_LOOKUP("core_clk", mdp_clk.c, "mdp.0"),
364 CLK_LOOKUP("mdp_clk", mdp_lcdc_pclk_clk.c, "lcdc.0"),
365 CLK_LOOKUP("lcdc_clk", mdp_lcdc_pad_pclk_clk.c, "lcdc.0"),
366 CLK_LOOKUP("vsync_clk", mdp_vsync_clk.c, "mdp.0"),
367 CLK_LOOKUP("mdp_clk", mdp_dsi_p_clk.c, "mipi_dsi.1"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700368 CLK_LOOKUP("pbus_clk", pbus_clk.c, NULL),
369 CLK_LOOKUP("pcm_clk", pcm_clk.c, NULL),
370 CLK_LOOKUP("sdac_clk", sdac_clk.c, NULL),
Matt Wagantall37ce3842011-08-17 16:00:36 -0700371 CLK_LOOKUP("core_clk", sdc1_clk.c, "msm_sdcc.1"),
372 CLK_LOOKUP("iface_clk", sdc1_p_clk.c, "msm_sdcc.1"),
373 CLK_LOOKUP("core_clk", sdc2_clk.c, "msm_sdcc.2"),
374 CLK_LOOKUP("iface_clk", sdc2_p_clk.c, "msm_sdcc.2"),
375 CLK_LOOKUP("core_clk", sdc3_clk.c, "msm_sdcc.3"),
376 CLK_LOOKUP("iface_clk", sdc3_p_clk.c, "msm_sdcc.3"),
377 CLK_LOOKUP("core_clk", sdc4_clk.c, "msm_sdcc.4"),
378 CLK_LOOKUP("iface_clk", sdc4_p_clk.c, "msm_sdcc.4"),
Matt Wagantall640e5fd2011-08-17 16:08:53 -0700379 CLK_LOOKUP("ref_clk", tsif_ref_clk.c, "msm_tsif.0"),
380 CLK_LOOKUP("iface_clk", tsif_p_clk.c, "msm_tsif.0"),
Matt Wagantalle2522372011-08-17 14:52:21 -0700381 CLK_LOOKUP("core_clk", uart1_clk.c, "msm_serial.0"),
382 CLK_LOOKUP("core_clk", uart2_clk.c, "msm_serial.1"),
383 CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
384 CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hsl.0"),
Manu Gautam5143b252012-01-05 19:25:23 -0800385 CLK_LOOKUP("core_clk", usb_hs_core_clk.c, "msm_otg"),
386 CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
387 CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
388 CLK_LOOKUP("phy_clk", usb_phy_clk.c, "msm_otg"),
389 CLK_LOOKUP("alt_core_clk", usb_hs2_clk.c, "msm_hsusb_host.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700390 CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
Matt Wagantall49722712011-08-17 18:50:53 -0700391 CLK_LOOKUP("core_clk", vdc_clk.c, "footswitch-pcom.7"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700392 CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
Suresh Vankadara4d4d5c52012-01-18 00:45:49 +0530393 CLK_LOOKUP("vfe_clk", vfe_clk.c, "msm_vfe.0"),
Matt Wagantall49722712011-08-17 18:50:53 -0700394 CLK_LOOKUP("core_clk", vfe_clk.c, "footswitch-pcom.8"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700395 CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
396
397 CLK_LOOKUP("ebi1_acpu_clk", ebi_acpu_clk.c, NULL),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700398 CLK_LOOKUP("bus_clk", ebi_grp_3d_clk.c, "kgsl-3d0.0"),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700399 CLK_LOOKUP("mem_clk", ebi_lcdc_clk.c, "lcdc.0"),
Padmanabhan Komanduru0769dbd2012-04-19 16:54:09 +0530400 CLK_LOOKUP("mem_clk", ebi_lcdc_clk.c, "mipi_dsi.1"),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700401 CLK_LOOKUP("mem_clk", ebi_mddi_clk.c, "mddi.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700402 CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
Matt Wagantalle1a86062011-08-18 17:46:10 -0700403 CLK_LOOKUP("mem_clk", ebi_adm_clk.c, "msm_dmov"),
Pankaj Kumar3912c982011-12-07 16:59:03 +0530404
405 CLK_LOOKUP("pll0_clk", pll0_clk.c, "acpu"),
406 CLK_LOOKUP("pll1_clk", pll1_clk.c, "acpu"),
407 CLK_LOOKUP("pll2_clk", pll2_clk.c, "acpu"),
408
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700409};
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700410
Pankaj Kumar3912c982011-12-07 16:59:03 +0530411/* PLL 4 clock is available for 7627a target. */
412static struct clk_lookup msm_clk_7627a[] __initdata = {
413 CLK_LOOKUP("pll4_clk", pll4_clk.c, "acpu"),
414};
415
416static struct clk_lookup msm_clk_7627a_7625a[ARRAY_SIZE(msm_cmn_clk_7625a_7627a)
417 + ARRAY_SIZE(msm_clk_7627a)];
418
Matt Wagantallb64888f2012-04-02 21:35:07 -0700419static void __init msm7627a_clock_pre_init(void)
Pankaj Kumar3912c982011-12-07 16:59:03 +0530420{
421 int size = ARRAY_SIZE(msm_cmn_clk_7625a_7627a);
422
423 /* Intialize shared PLL control structure */
424 msm_shared_pll_control_init();
425
426 memcpy(&msm_clk_7627a_7625a, &msm_cmn_clk_7625a_7627a,
427 sizeof(msm_cmn_clk_7625a_7627a));
428 if (!cpu_is_msm7x25a()) {
429 memcpy(&msm_clk_7627a_7625a[size],
430 &msm_clk_7627a, sizeof(msm_clk_7627a));
431 size += ARRAY_SIZE(msm_clk_7627a);
432 }
433 msm7x27a_clock_init_data.size = size;
434}
435
Stephen Boydbb600ae2011-08-02 20:11:40 -0700436struct clock_init_data msm7x27a_clock_init_data __initdata = {
Pankaj Kumar3912c982011-12-07 16:59:03 +0530437 .table = msm_clk_7627a_7625a,
Matt Wagantallb64888f2012-04-02 21:35:07 -0700438 .pre_init = msm7627a_clock_pre_init,
Stephen Boydbb600ae2011-08-02 20:11:40 -0700439};
440
441static struct clk_lookup msm_clocks_8x50[] = {
Matt Wagantalle1a86062011-08-18 17:46:10 -0700442 CLK_LOOKUP("core_clk", adm_clk.c, "msm_dmov"),
Matt Wagantallc4b3a4d2011-08-17 16:58:39 -0700443 CLK_LOOKUP("core_clk", ce_clk.c, "qce.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700444 CLK_LOOKUP("ebi1_clk", ebi1_clk.c, NULL),
445 CLK_LOOKUP("ebi2_clk", ebi2_clk.c, NULL),
446 CLK_LOOKUP("ecodec_clk", ecodec_clk.c, NULL),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700447 CLK_LOOKUP("core_clk", emdh_clk.c, "msm_mddi.1"),
Matt Wagantallc00f95d2012-01-05 14:22:45 -0800448 CLK_LOOKUP("core_clk", gp_clk.c, ""),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700449 CLK_LOOKUP("core_clk", grp_3d_clk.c, "kgsl-3d0.0"),
Matt Wagantallac294852011-08-17 15:44:58 -0700450 CLK_LOOKUP("core_clk", i2c_clk.c, "msm_i2c.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700451 CLK_LOOKUP("icodec_rx_clk", icodec_rx_clk.c, NULL),
452 CLK_LOOKUP("icodec_tx_clk", icodec_tx_clk.c, NULL),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700453 CLK_LOOKUP("mem_clk", imem_clk.c, NULL),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700454 CLK_LOOKUP("mdc_clk", mdc_clk.c, NULL),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700455 CLK_LOOKUP("core_clk", pmdh_clk.c, "mddi.0"),
456 CLK_LOOKUP("core_clk", mdp_clk.c, "mdp.0"),
457 CLK_LOOKUP("mdp_clk", mdp_lcdc_pclk_clk.c, "lcdc.0"),
458 CLK_LOOKUP("lcdc_clk", mdp_lcdc_pad_pclk_clk.c, "lcdc.0"),
459 CLK_LOOKUP("vsync_clk", mdp_vsync_clk.c, "mdp.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700460 CLK_LOOKUP("pbus_clk", pbus_clk.c, NULL),
461 CLK_LOOKUP("pcm_clk", pcm_clk.c, NULL),
462 CLK_LOOKUP("sdac_clk", sdac_clk.c, NULL),
Matt Wagantall37ce3842011-08-17 16:00:36 -0700463 CLK_LOOKUP("core_clk", sdc1_clk.c, "msm_sdcc.1"),
464 CLK_LOOKUP("iface_clk", sdc1_p_clk.c, "msm_sdcc.1"),
465 CLK_LOOKUP("core_clk", sdc2_clk.c, "msm_sdcc.2"),
466 CLK_LOOKUP("iface_clk", sdc2_p_clk.c, "msm_sdcc.2"),
467 CLK_LOOKUP("core_clk", sdc3_clk.c, "msm_sdcc.3"),
468 CLK_LOOKUP("iface_clk", sdc3_p_clk.c, "msm_sdcc.3"),
469 CLK_LOOKUP("core_clk", sdc4_clk.c, "msm_sdcc.4"),
470 CLK_LOOKUP("iface_clk", sdc4_p_clk.c, "msm_sdcc.4"),
Matt Wagantallac294852011-08-17 15:44:58 -0700471 CLK_LOOKUP("core_clk", spi_clk.c, "spi_qsd.0"),
472 CLK_DUMMY("iface_clk", SPI_P_CLK, "spi_qsd.0", 0),
Matt Wagantall640e5fd2011-08-17 16:08:53 -0700473 CLK_LOOKUP("core_clk", tsif_clk.c, "msm_tsif.0"),
474 CLK_LOOKUP("ref_clk", tsif_ref_clk.c, "msm_tsif.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700475 CLK_LOOKUP("tv_dac_clk", tv_dac_clk.c, NULL),
476 CLK_LOOKUP("tv_enc_clk", tv_enc_clk.c, NULL),
Matt Wagantalle2522372011-08-17 14:52:21 -0700477 CLK_LOOKUP("core_clk", uart1_clk.c, "msm_serial.0"),
478 CLK_LOOKUP("core_clk", uart2_clk.c, "msm_serial.1"),
479 CLK_LOOKUP("core_clk", uart3_clk.c, "msm_serial.2"),
480 CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
481 CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hs.1"),
Manu Gautam5143b252012-01-05 19:25:23 -0800482 CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
483 CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
484 CLK_LOOKUP("alt_core_clk", usb_otg_clk.c, NULL),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700485 CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
486 CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
487 CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
488 CLK_LOOKUP("vfe_axi_clk", vfe_axi_clk.c, NULL),
Manu Gautam5143b252012-01-05 19:25:23 -0800489 CLK_LOOKUP("alt_core_clk", usb_hs2_clk.c, "msm_hsusb_host.0"),
490 CLK_LOOKUP("iface_clk", usb_hs2_p_clk.c, "msm_hsusb_host.0"),
Matt Wagantallc00f95d2012-01-05 14:22:45 -0800491 CLK_LOOKUP("alt_core_clk", usb_hs3_clk.c, ""),
492 CLK_LOOKUP("iface_clk", usb_hs3_p_clk.c, ""),
Manu Gautam5143b252012-01-05 19:25:23 -0800493 CLK_LOOKUP("phy_clk", usb_phy_clk.c, "msm_otg"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700494
495 CLK_LOOKUP("ebi1_acpu_clk", ebi_acpu_clk.c, NULL),
Matt Wagantall9dc01632011-08-17 18:55:04 -0700496 CLK_LOOKUP("bus_clk", ebi_grp_3d_clk.c, "kgsl-3d0.0"),
497 CLK_LOOKUP("bus_clk", ebi_grp_2d_clk.c, "kgsl-2d0.0"),
Ravishangar Kalyanam1b064f52012-03-15 18:17:54 -0700498 CLK_LOOKUP("mem_clk", ebi_lcdc_clk.c, "lcdc.0"),
499 CLK_LOOKUP("mem_clk", ebi_lcdc_clk.c, "mipi_dsi.1"),
500 CLK_LOOKUP("mem_clk", ebi_mddi_clk.c, "mddi.0"),
501 CLK_LOOKUP("mem_clk", ebi_tv_clk.c, "tvenc.0"),
Manu Gautam5143b252012-01-05 19:25:23 -0800502 CLK_LOOKUP("core_clk", ebi_usb_clk.c, "msm_otg"),
503 CLK_LOOKUP("core_clk", ebi_usb_clk.c, "msm_hsusb_host.0"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700504 CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
Matt Wagantalle1a86062011-08-18 17:46:10 -0700505 CLK_LOOKUP("mem_clk", ebi_adm_clk.c, "msm_dmov"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700506
Matt Wagantall9dc01632011-08-17 18:55:04 -0700507 CLK_LOOKUP("iface_clk", grp_3d_p_clk.c, "kgsl-3d0.0"),
508 CLK_LOOKUP("core_clk", grp_2d_clk.c, "kgsl-2d0.0"),
509 CLK_LOOKUP("iface_clk", grp_2d_p_clk.c, "kgsl-2d0.0"),
Matt Wagantallac294852011-08-17 15:44:58 -0700510 CLK_LOOKUP("core_clk", gsbi_clk.c, "qup_i2c.4"),
511 CLK_LOOKUP("iface_clk", gsbi_p_clk.c, "qup_i2c.4"),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700512};
Stephen Boydbb600ae2011-08-02 20:11:40 -0700513
514struct clock_init_data qds8x50_clock_init_data __initdata = {
515 .table = msm_clocks_8x50,
516 .size = ARRAY_SIZE(msm_clocks_8x50),
517};