blob: 1b9a3b766269f4940fe97c50e8d00c428a3ae61d [file] [log] [blame]
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -07001/* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
2 *
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
14#include <linux/kernel.h>
15#include <linux/list.h>
16#include <linux/platform_device.h>
17#include <linux/msm_rotator.h>
18#include <linux/clkdev.h>
19#include <mach/irqs-8064.h>
20#include <mach/board.h>
21#include <mach/msm_iomap.h>
Yan He06913ce2011-08-26 16:33:46 -070022#include <mach/usbdiag.h>
23#include <mach/msm_sps.h>
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070024#include "clock.h"
25#include "devices.h"
26
27/* Address of GSBI blocks */
Stepan Moskovchenko2701a442011-08-19 13:47:22 -070028#define MSM_GSBI1_PHYS 0x12440000
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070029#define MSM_GSBI3_PHYS 0x16200000
Harini Jayaramanc4c58692011-07-19 14:50:10 -060030#define MSM_GSBI4_PHYS 0x16300000
31#define MSM_GSBI5_PHYS 0x1A200000
32#define MSM_GSBI6_PHYS 0x16500000
33#define MSM_GSBI7_PHYS 0x16600000
34
Kenneth Heitke748593a2011-07-15 15:45:11 -060035/* GSBI UART devices */
Stepan Moskovchenko2701a442011-08-19 13:47:22 -070036#define MSM_UART1DM_PHYS (MSM_GSBI1_PHYS + 0x10000)
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070037#define MSM_UART3DM_PHYS (MSM_GSBI3_PHYS + 0x40000)
38
Harini Jayaramanc4c58692011-07-19 14:50:10 -060039/* GSBI QUP devices */
40#define MSM_GSBI3_QUP_PHYS (MSM_GSBI3_PHYS + 0x80000)
41#define MSM_GSBI4_QUP_PHYS (MSM_GSBI4_PHYS + 0x80000)
42#define MSM_GSBI5_QUP_PHYS (MSM_GSBI5_PHYS + 0x80000)
43#define MSM_GSBI6_QUP_PHYS (MSM_GSBI6_PHYS + 0x80000)
44#define MSM_GSBI7_QUP_PHYS (MSM_GSBI7_PHYS + 0x80000)
45#define MSM_QUP_SIZE SZ_4K
46
Kenneth Heitke36920d32011-07-20 16:44:30 -060047/* Address of SSBI CMD */
48#define MSM_PMIC1_SSBI_CMD_PHYS 0x00500000
49#define MSM_PMIC2_SSBI_CMD_PHYS 0x00C00000
50#define MSM_PMIC_SSBI_SIZE SZ_4K
Harini Jayaramanc4c58692011-07-19 14:50:10 -060051
Hemant Kumarcaa09092011-07-30 00:26:33 -070052/* Address of HS USBOTG1 */
53#define MSM_HSUSB_PHYS 0x12500000
54#define MSM_HSUSB_SIZE SZ_4K
55
56
Joel King0581896d2011-07-19 16:43:28 -070057static struct resource msm_dmov_resource[] = {
58 {
59 .start = ADM_0_SCSS_0_IRQ,
60 .end = (resource_size_t)MSM_DMOV_BASE,
61 .flags = IORESOURCE_IRQ,
62 },
63};
64
Stepan Moskovchenkodf13d342011-08-03 19:01:25 -070065struct platform_device apq8064_device_dmov = {
Joel King0581896d2011-07-19 16:43:28 -070066 .name = "msm_dmov",
67 .id = -1,
68 .resource = msm_dmov_resource,
69 .num_resources = ARRAY_SIZE(msm_dmov_resource),
70};
71
Stepan Moskovchenko2701a442011-08-19 13:47:22 -070072static struct resource resources_uart_gsbi1[] = {
73 {
74 .start = APQ8064_GSBI1_UARTDM_IRQ,
75 .end = APQ8064_GSBI1_UARTDM_IRQ,
76 .flags = IORESOURCE_IRQ,
77 },
78 {
79 .start = MSM_UART1DM_PHYS,
80 .end = MSM_UART1DM_PHYS + PAGE_SIZE - 1,
81 .name = "uartdm_resource",
82 .flags = IORESOURCE_MEM,
83 },
84 {
85 .start = MSM_GSBI1_PHYS,
86 .end = MSM_GSBI1_PHYS + PAGE_SIZE - 1,
87 .name = "gsbi_resource",
88 .flags = IORESOURCE_MEM,
89 },
90};
91
92struct platform_device apq8064_device_uart_gsbi1 = {
93 .name = "msm_serial_hsl",
94 .id = 0,
95 .num_resources = ARRAY_SIZE(resources_uart_gsbi1),
96 .resource = resources_uart_gsbi1,
97};
98
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070099static struct resource resources_uart_gsbi3[] = {
100 {
101 .start = GSBI3_UARTDM_IRQ,
102 .end = GSBI3_UARTDM_IRQ,
103 .flags = IORESOURCE_IRQ,
104 },
105 {
106 .start = MSM_UART3DM_PHYS,
107 .end = MSM_UART3DM_PHYS + PAGE_SIZE - 1,
108 .name = "uartdm_resource",
109 .flags = IORESOURCE_MEM,
110 },
111 {
112 .start = MSM_GSBI3_PHYS,
113 .end = MSM_GSBI3_PHYS + PAGE_SIZE - 1,
114 .name = "gsbi_resource",
115 .flags = IORESOURCE_MEM,
116 },
117};
118
119struct platform_device apq8064_device_uart_gsbi3 = {
120 .name = "msm_serial_hsl",
121 .id = 0,
122 .num_resources = ARRAY_SIZE(resources_uart_gsbi3),
123 .resource = resources_uart_gsbi3,
124};
125
Kenneth Heitke748593a2011-07-15 15:45:11 -0600126static struct resource resources_qup_i2c_gsbi4[] = {
127 {
128 .name = "gsbi_qup_i2c_addr",
129 .start = MSM_GSBI4_PHYS,
Harini Jayaramane1554a92011-09-15 14:43:02 -0600130 .end = MSM_GSBI4_PHYS + 4 - 1,
Kenneth Heitke748593a2011-07-15 15:45:11 -0600131 .flags = IORESOURCE_MEM,
132 },
133 {
134 .name = "qup_phys_addr",
135 .start = MSM_GSBI4_QUP_PHYS,
Harini Jayaramane1554a92011-09-15 14:43:02 -0600136 .end = MSM_GSBI4_QUP_PHYS + MSM_QUP_SIZE - 1,
Kenneth Heitke748593a2011-07-15 15:45:11 -0600137 .flags = IORESOURCE_MEM,
138 },
139 {
140 .name = "qup_err_intr",
141 .start = GSBI4_QUP_IRQ,
142 .end = GSBI4_QUP_IRQ,
143 .flags = IORESOURCE_IRQ,
144 },
145};
146
147struct platform_device apq8064_device_qup_i2c_gsbi4 = {
148 .name = "qup_i2c",
149 .id = 4,
150 .num_resources = ARRAY_SIZE(resources_qup_i2c_gsbi4),
151 .resource = resources_qup_i2c_gsbi4,
152};
153
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700154static struct resource resources_qup_spi_gsbi5[] = {
155 {
156 .name = "spi_base",
157 .start = MSM_GSBI5_QUP_PHYS,
158 .end = MSM_GSBI5_QUP_PHYS + SZ_4K - 1,
159 .flags = IORESOURCE_MEM,
160 },
161 {
162 .name = "gsbi_base",
163 .start = MSM_GSBI5_PHYS,
164 .end = MSM_GSBI5_PHYS + 4 - 1,
165 .flags = IORESOURCE_MEM,
166 },
167 {
168 .name = "spi_irq_in",
169 .start = GSBI5_QUP_IRQ,
170 .end = GSBI5_QUP_IRQ,
171 .flags = IORESOURCE_IRQ,
172 },
173};
174
175struct platform_device apq8064_device_qup_spi_gsbi5 = {
176 .name = "spi_qsd",
177 .id = 0,
178 .num_resources = ARRAY_SIZE(resources_qup_spi_gsbi5),
179 .resource = resources_qup_spi_gsbi5,
180};
181
182static struct resource resources_ssbi_pmic1[] = {
183 {
184 .start = MSM_PMIC1_SSBI_CMD_PHYS,
185 .end = MSM_PMIC1_SSBI_CMD_PHYS + MSM_PMIC_SSBI_SIZE - 1,
186 .flags = IORESOURCE_MEM,
187 },
188};
189
190struct platform_device apq8064_device_ssbi_pmic1 = {
191 .name = "msm_ssbi",
192 .id = 0,
193 .resource = resources_ssbi_pmic1,
194 .num_resources = ARRAY_SIZE(resources_ssbi_pmic1),
195};
196
197static struct resource resources_ssbi_pmic2[] = {
198 {
199 .start = MSM_PMIC2_SSBI_CMD_PHYS,
200 .end = MSM_PMIC2_SSBI_CMD_PHYS + MSM_PMIC_SSBI_SIZE - 1,
201 .flags = IORESOURCE_MEM,
202 },
203};
204
205struct platform_device apq8064_device_ssbi_pmic2 = {
206 .name = "msm_ssbi",
207 .id = 1,
208 .resource = resources_ssbi_pmic2,
209 .num_resources = ARRAY_SIZE(resources_ssbi_pmic2),
210};
211
212static struct resource resources_otg[] = {
213 {
214 .start = MSM_HSUSB_PHYS,
215 .end = MSM_HSUSB_PHYS + MSM_HSUSB_SIZE - 1,
216 .flags = IORESOURCE_MEM,
217 },
218 {
219 .start = USB1_HS_IRQ,
220 .end = USB1_HS_IRQ,
221 .flags = IORESOURCE_IRQ,
222 },
223};
224
Stepan Moskovchenko14aa6492011-08-08 15:15:01 -0700225struct platform_device apq8064_device_otg = {
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700226 .name = "msm_otg",
227 .id = -1,
228 .num_resources = ARRAY_SIZE(resources_otg),
229 .resource = resources_otg,
230 .dev = {
231 .coherent_dma_mask = 0xffffffff,
232 },
233};
234
235static struct resource resources_hsusb[] = {
236 {
237 .start = MSM_HSUSB_PHYS,
238 .end = MSM_HSUSB_PHYS + MSM_HSUSB_SIZE - 1,
239 .flags = IORESOURCE_MEM,
240 },
241 {
242 .start = USB1_HS_IRQ,
243 .end = USB1_HS_IRQ,
244 .flags = IORESOURCE_IRQ,
245 },
246};
247
Stepan Moskovchenko14aa6492011-08-08 15:15:01 -0700248struct platform_device apq8064_device_gadget_peripheral = {
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700249 .name = "msm_hsusb",
250 .id = -1,
251 .num_resources = ARRAY_SIZE(resources_hsusb),
252 .resource = resources_hsusb,
253 .dev = {
254 .coherent_dma_mask = 0xffffffff,
255 },
256};
257
258#define MSM_SDC1_BASE 0x12400000
259#define MSM_SDC1_DML_BASE (MSM_SDC1_BASE + 0x800)
260#define MSM_SDC1_BAM_BASE (MSM_SDC1_BASE + 0x2000)
261#define MSM_SDC2_BASE 0x12140000
262#define MSM_SDC2_DML_BASE (MSM_SDC2_BASE + 0x800)
263#define MSM_SDC2_BAM_BASE (MSM_SDC2_BASE + 0x2000)
264#define MSM_SDC3_BASE 0x12180000
265#define MSM_SDC3_DML_BASE (MSM_SDC3_BASE + 0x800)
266#define MSM_SDC3_BAM_BASE (MSM_SDC3_BASE + 0x2000)
267#define MSM_SDC4_BASE 0x121C0000
268#define MSM_SDC4_DML_BASE (MSM_SDC4_BASE + 0x800)
269#define MSM_SDC4_BAM_BASE (MSM_SDC4_BASE + 0x2000)
270
271static struct resource resources_sdc1[] = {
272 {
273 .name = "core_mem",
274 .flags = IORESOURCE_MEM,
275 .start = MSM_SDC1_BASE,
276 .end = MSM_SDC1_DML_BASE - 1,
277 },
278 {
279 .name = "core_irq",
280 .flags = IORESOURCE_IRQ,
281 .start = SDC1_IRQ_0,
282 .end = SDC1_IRQ_0
283 },
284#ifdef CONFIG_MMC_MSM_SPS_SUPPORT
285 {
286 .name = "sdcc_dml_addr",
287 .start = MSM_SDC1_DML_BASE,
288 .end = MSM_SDC1_BAM_BASE - 1,
289 .flags = IORESOURCE_MEM,
290 },
291 {
292 .name = "sdcc_bam_addr",
293 .start = MSM_SDC1_BAM_BASE,
294 .end = MSM_SDC1_BAM_BASE + (2 * SZ_4K) - 1,
295 .flags = IORESOURCE_MEM,
296 },
297 {
298 .name = "sdcc_bam_irq",
299 .start = SDC1_BAM_IRQ,
300 .end = SDC1_BAM_IRQ,
301 .flags = IORESOURCE_IRQ,
302 },
303#endif
304};
305
306static struct resource resources_sdc2[] = {
307 {
308 .name = "core_mem",
309 .flags = IORESOURCE_MEM,
310 .start = MSM_SDC2_BASE,
311 .end = MSM_SDC2_DML_BASE - 1,
312 },
313 {
314 .name = "core_irq",
315 .flags = IORESOURCE_IRQ,
316 .start = SDC2_IRQ_0,
317 .end = SDC2_IRQ_0
318 },
319#ifdef CONFIG_MMC_MSM_SPS_SUPPORT
320 {
321 .name = "sdcc_dml_addr",
322 .start = MSM_SDC2_DML_BASE,
323 .end = MSM_SDC2_BAM_BASE - 1,
324 .flags = IORESOURCE_MEM,
325 },
326 {
327 .name = "sdcc_bam_addr",
328 .start = MSM_SDC2_BAM_BASE,
329 .end = MSM_SDC2_BAM_BASE + (2 * SZ_4K) - 1,
330 .flags = IORESOURCE_MEM,
331 },
332 {
333 .name = "sdcc_bam_irq",
334 .start = SDC2_BAM_IRQ,
335 .end = SDC2_BAM_IRQ,
336 .flags = IORESOURCE_IRQ,
337 },
338#endif
339};
340
341static struct resource resources_sdc3[] = {
342 {
343 .name = "core_mem",
344 .flags = IORESOURCE_MEM,
345 .start = MSM_SDC3_BASE,
346 .end = MSM_SDC3_DML_BASE - 1,
347 },
348 {
349 .name = "core_irq",
350 .flags = IORESOURCE_IRQ,
351 .start = SDC3_IRQ_0,
352 .end = SDC3_IRQ_0
353 },
354#ifdef CONFIG_MMC_MSM_SPS_SUPPORT
355 {
356 .name = "sdcc_dml_addr",
357 .start = MSM_SDC3_DML_BASE,
358 .end = MSM_SDC3_BAM_BASE - 1,
359 .flags = IORESOURCE_MEM,
360 },
361 {
362 .name = "sdcc_bam_addr",
363 .start = MSM_SDC3_BAM_BASE,
364 .end = MSM_SDC3_BAM_BASE + (2 * SZ_4K) - 1,
365 .flags = IORESOURCE_MEM,
366 },
367 {
368 .name = "sdcc_bam_irq",
369 .start = SDC3_BAM_IRQ,
370 .end = SDC3_BAM_IRQ,
371 .flags = IORESOURCE_IRQ,
372 },
373#endif
374};
375
376static struct resource resources_sdc4[] = {
377 {
378 .name = "core_mem",
379 .flags = IORESOURCE_MEM,
380 .start = MSM_SDC4_BASE,
381 .end = MSM_SDC4_DML_BASE - 1,
382 },
383 {
384 .name = "core_irq",
385 .flags = IORESOURCE_IRQ,
386 .start = SDC4_IRQ_0,
387 .end = SDC4_IRQ_0
388 },
389#ifdef CONFIG_MMC_MSM_SPS_SUPPORT
390 {
391 .name = "sdcc_dml_addr",
392 .start = MSM_SDC4_DML_BASE,
393 .end = MSM_SDC4_BAM_BASE - 1,
394 .flags = IORESOURCE_MEM,
395 },
396 {
397 .name = "sdcc_bam_addr",
398 .start = MSM_SDC4_BAM_BASE,
399 .end = MSM_SDC4_BAM_BASE + (2 * SZ_4K) - 1,
400 .flags = IORESOURCE_MEM,
401 },
402 {
403 .name = "sdcc_bam_irq",
404 .start = SDC4_BAM_IRQ,
405 .end = SDC4_BAM_IRQ,
406 .flags = IORESOURCE_IRQ,
407 },
408#endif
409};
410
411struct platform_device apq8064_device_sdc1 = {
412 .name = "msm_sdcc",
413 .id = 1,
414 .num_resources = ARRAY_SIZE(resources_sdc1),
415 .resource = resources_sdc1,
416 .dev = {
417 .coherent_dma_mask = 0xffffffff,
418 },
419};
420
421struct platform_device apq8064_device_sdc2 = {
422 .name = "msm_sdcc",
423 .id = 2,
424 .num_resources = ARRAY_SIZE(resources_sdc2),
425 .resource = resources_sdc2,
426 .dev = {
427 .coherent_dma_mask = 0xffffffff,
428 },
429};
430
431struct platform_device apq8064_device_sdc3 = {
432 .name = "msm_sdcc",
433 .id = 3,
434 .num_resources = ARRAY_SIZE(resources_sdc3),
435 .resource = resources_sdc3,
436 .dev = {
437 .coherent_dma_mask = 0xffffffff,
438 },
439};
440
441struct platform_device apq8064_device_sdc4 = {
442 .name = "msm_sdcc",
443 .id = 4,
444 .num_resources = ARRAY_SIZE(resources_sdc4),
445 .resource = resources_sdc4,
446 .dev = {
447 .coherent_dma_mask = 0xffffffff,
448 },
449};
450
451static struct platform_device *apq8064_sdcc_devices[] __initdata = {
452 &apq8064_device_sdc1,
453 &apq8064_device_sdc2,
454 &apq8064_device_sdc3,
455 &apq8064_device_sdc4,
456};
457
458int __init apq8064_add_sdcc(unsigned int controller,
459 struct mmc_platform_data *plat)
460{
461 struct platform_device *pdev;
462
463 if (!plat)
464 return 0;
465 if (controller < 1 || controller > 4)
466 return -EINVAL;
467
468 pdev = apq8064_sdcc_devices[controller-1];
469 pdev->dev.platform_data = plat;
470 return platform_device_register(pdev);
471}
472
Yan He06913ce2011-08-26 16:33:46 -0700473static struct resource resources_sps[] = {
474 {
475 .name = "pipe_mem",
476 .start = 0x12800000,
477 .end = 0x12800000 + 0x4000 - 1,
478 .flags = IORESOURCE_MEM,
479 },
480 {
481 .name = "bamdma_dma",
482 .start = 0x12240000,
483 .end = 0x12240000 + 0x1000 - 1,
484 .flags = IORESOURCE_MEM,
485 },
486 {
487 .name = "bamdma_bam",
488 .start = 0x12244000,
489 .end = 0x12244000 + 0x4000 - 1,
490 .flags = IORESOURCE_MEM,
491 },
492 {
493 .name = "bamdma_irq",
494 .start = SPS_BAM_DMA_IRQ,
495 .end = SPS_BAM_DMA_IRQ,
496 .flags = IORESOURCE_IRQ,
497 },
498};
499
500static struct msm_sps_platform_data msm_sps_pdata = {
501 .bamdma_restricted_pipes = 0x06,
502};
503
504struct platform_device msm_device_sps_apq8064 = {
505 .name = "msm_sps",
506 .id = -1,
507 .num_resources = ARRAY_SIZE(resources_sps),
508 .resource = resources_sps,
509 .dev.platform_data = &msm_sps_pdata,
510};
511
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700512static struct clk_lookup msm_clocks_8064_dummy[] = {
513 CLK_DUMMY("pll2", PLL2, NULL, 0),
514 CLK_DUMMY("pll8", PLL8, NULL, 0),
515 CLK_DUMMY("pll4", PLL4, NULL, 0),
516
517 CLK_DUMMY("afab_clk", AFAB_CLK, NULL, 0),
518 CLK_DUMMY("afab_a_clk", AFAB_A_CLK, NULL, 0),
519 CLK_DUMMY("cfpb_clk", CFPB_CLK, NULL, 0),
520 CLK_DUMMY("cfpb_a_clk", CFPB_A_CLK, NULL, 0),
521 CLK_DUMMY("dfab_clk", DFAB_CLK, NULL, 0),
522 CLK_DUMMY("dfab_a_clk", DFAB_A_CLK, NULL, 0),
523 CLK_DUMMY("ebi1_clk", EBI1_CLK, NULL, 0),
524 CLK_DUMMY("ebi1_a_clk", EBI1_A_CLK, NULL, 0),
525 CLK_DUMMY("mmfab_clk", MMFAB_CLK, NULL, 0),
526 CLK_DUMMY("mmfab_a_clk", MMFAB_A_CLK, NULL, 0),
527 CLK_DUMMY("mmfpb_clk", MMFPB_CLK, NULL, 0),
528 CLK_DUMMY("mmfpb_a_clk", MMFPB_A_CLK, NULL, 0),
529 CLK_DUMMY("sfab_clk", SFAB_CLK, NULL, 0),
530 CLK_DUMMY("sfab_a_clk", SFAB_A_CLK, NULL, 0),
531 CLK_DUMMY("sfpb_clk", SFPB_CLK, NULL, 0),
532 CLK_DUMMY("sfpb_a_clk", SFPB_A_CLK, NULL, 0),
533
Matt Wagantalle2522372011-08-17 14:52:21 -0700534 CLK_DUMMY("core_clk", GSBI1_UART_CLK, NULL, OFF),
535 CLK_DUMMY("core_clk", GSBI2_UART_CLK, NULL, OFF),
536 CLK_DUMMY("core_clk", GSBI3_UART_CLK,
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700537 "msm_serial_hsl.0", OFF),
Matt Wagantalle2522372011-08-17 14:52:21 -0700538 CLK_DUMMY("core_clk", GSBI4_UART_CLK, NULL, OFF),
539 CLK_DUMMY("core_clk", GSBI5_UART_CLK, NULL, OFF),
540 CLK_DUMMY("core_clk", GSBI6_UART_CLK, NULL, OFF),
541 CLK_DUMMY("core_clk", GSBI7_UART_CLK, NULL, OFF),
542 CLK_DUMMY("core_clk", GSBI8_UART_CLK, NULL, OFF),
543 CLK_DUMMY("core_clk", GSBI9_UART_CLK, NULL, OFF),
544 CLK_DUMMY("core_clk", GSBI10_UART_CLK, NULL, OFF),
545 CLK_DUMMY("core_clk", GSBI11_UART_CLK, NULL, OFF),
546 CLK_DUMMY("core_clk", GSBI12_UART_CLK, NULL, OFF),
Matt Wagantall62cf63e2011-08-17 16:34:47 -0700547 CLK_DUMMY("core_clk", GSBI1_QUP_CLK, NULL, OFF),
548 CLK_DUMMY("core_clk", GSBI2_QUP_CLK, NULL, OFF),
549 CLK_DUMMY("core_clk", GSBI3_QUP_CLK, NULL, OFF),
Matt Wagantallac294852011-08-17 15:44:58 -0700550 CLK_DUMMY("core_clk", GSBI4_QUP_CLK, "qup_i2c.4", OFF),
551 CLK_DUMMY("core_clk", GSBI5_QUP_CLK, "spi_qsd.0", OFF),
Matt Wagantall62cf63e2011-08-17 16:34:47 -0700552 CLK_DUMMY("core_clk", GSBI6_QUP_CLK, NULL, OFF),
553 CLK_DUMMY("core_clk", GSBI7_QUP_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700554 CLK_DUMMY("pdm_clk", PDM_CLK, NULL, OFF),
Matt Wagantalld86d6832011-08-17 14:06:55 -0700555 CLK_DUMMY("mem_clk", PMEM_CLK, NULL, OFF),
Matt Wagantallc1205292011-08-11 17:19:31 -0700556 CLK_DUMMY("core_clk", PRNG_CLK, NULL, OFF),
Matt Wagantall37ce3842011-08-17 16:00:36 -0700557 CLK_DUMMY("core_clk", SDC1_CLK, NULL, OFF),
558 CLK_DUMMY("core_clk", SDC2_CLK, NULL, OFF),
559 CLK_DUMMY("core_clk", SDC3_CLK, NULL, OFF),
560 CLK_DUMMY("core_clk", SDC4_CLK, NULL, OFF),
Matt Wagantall640e5fd2011-08-17 16:08:53 -0700561 CLK_DUMMY("ref_clk", TSIF_REF_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700562 CLK_DUMMY("tssc_clk", TSSC_CLK, NULL, OFF),
563 CLK_DUMMY("usb_hs_clk", USB_HS1_XCVR_CLK, NULL, OFF),
Tianyi Gou86bb4722011-08-09 13:28:02 -0700564 CLK_DUMMY("usb_hs_clk", USB_HS3_XCVR_CLK, NULL, OFF),
565 CLK_DUMMY("usb_hs_clk", USB_HS4_XCVR_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700566 CLK_DUMMY("usb_phy_clk", USB_PHY0_CLK, NULL, OFF),
567 CLK_DUMMY("usb_fs_src_clk", USB_FS1_SRC_CLK, NULL, OFF),
568 CLK_DUMMY("usb_fs_clk", USB_FS1_XCVR_CLK, NULL, OFF),
569 CLK_DUMMY("usb_fs_sys_clk", USB_FS1_SYS_CLK, NULL, OFF),
Matt Wagantallc4b3a4d2011-08-17 16:58:39 -0700570 CLK_DUMMY("core_clk", CE2_CLK, NULL, OFF),
571 CLK_DUMMY("core_clk", CE1_CORE_CLK, NULL, OFF),
572 CLK_DUMMY("core_clk", CE3_CORE_CLK, NULL, OFF),
573 CLK_DUMMY("iface_clk", CE3_P_CLK, NULL, OFF),
Tianyi Gou86bb4722011-08-09 13:28:02 -0700574 CLK_DUMMY("pcie_pclk", PCIE_P_CLK, NULL, OFF),
575 CLK_DUMMY("pcie_alt_ref_clk", PCIE_ALT_REF_CLK, NULL, OFF),
576 CLK_DUMMY("sata_rxoob_clk", SATA_RXOOB_CLK, NULL, OFF),
577 CLK_DUMMY("sata_pmalive_clk", SATA_PMALIVE_CLK, NULL, OFF),
578 CLK_DUMMY("sata_phy_ref_clk", SATA_PHY_REF_CLK, NULL, OFF),
Matt Wagantall62cf63e2011-08-17 16:34:47 -0700579 CLK_DUMMY("iface_clk", GSBI1_P_CLK, NULL, OFF),
580 CLK_DUMMY("iface_clk", GSBI2_P_CLK, NULL, OFF),
Matt Wagantalle2522372011-08-17 14:52:21 -0700581 CLK_DUMMY("iface_clk", GSBI3_P_CLK, "msm_serial_hsl.0", OFF),
Matt Wagantallac294852011-08-17 15:44:58 -0700582 CLK_DUMMY("iface_clk", GSBI4_P_CLK, "qup_i2c.4", OFF),
583 CLK_DUMMY("iface_clk", GSBI5_P_CLK, "spi_qsd.0", OFF),
Matt Wagantalle2522372011-08-17 14:52:21 -0700584 CLK_DUMMY("iface_clk", GSBI6_P_CLK, NULL, OFF),
Matt Wagantall62cf63e2011-08-17 16:34:47 -0700585 CLK_DUMMY("iface_clk", GSBI7_P_CLK, NULL, OFF),
Matt Wagantall640e5fd2011-08-17 16:08:53 -0700586 CLK_DUMMY("iface_clk", TSIF_P_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700587 CLK_DUMMY("usb_fs_pclk", USB_FS1_P_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700588 CLK_DUMMY("usb_hs_pclk", USB_HS1_P_CLK, NULL, OFF),
Tianyi Gou86bb4722011-08-09 13:28:02 -0700589 CLK_DUMMY("usb_hs_pclk", USB_HS3_P_CLK, NULL, OFF),
590 CLK_DUMMY("usb_hs_pclk", USB_HS4_P_CLK, NULL, OFF),
Matt Wagantall37ce3842011-08-17 16:00:36 -0700591 CLK_DUMMY("iface_clk", SDC1_P_CLK, NULL, OFF),
592 CLK_DUMMY("iface_clk", SDC2_P_CLK, NULL, OFF),
593 CLK_DUMMY("iface_clk", SDC3_P_CLK, NULL, OFF),
594 CLK_DUMMY("iface_clk", SDC4_P_CLK, NULL, OFF),
Matt Wagantalle1a86062011-08-18 17:46:10 -0700595 CLK_DUMMY("core_clk", ADM0_CLK, NULL, OFF),
596 CLK_DUMMY("iface_clk", ADM0_P_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700597 CLK_DUMMY("pmic_arb_pclk", PMIC_ARB0_P_CLK, NULL, OFF),
598 CLK_DUMMY("pmic_arb_pclk", PMIC_ARB1_P_CLK, NULL, OFF),
599 CLK_DUMMY("pmic_ssbi2", PMIC_SSBI2_CLK, NULL, OFF),
600 CLK_DUMMY("rpm_msg_ram_pclk", RPM_MSG_RAM_P_CLK, NULL, OFF),
601 CLK_DUMMY("amp_clk", AMP_CLK, NULL, OFF),
602 CLK_DUMMY("cam_clk", CAM0_CLK, NULL, OFF),
603 CLK_DUMMY("cam_clk", CAM1_CLK, NULL, OFF),
604 CLK_DUMMY("csi_src_clk", CSI0_SRC_CLK, NULL, OFF),
605 CLK_DUMMY("csi_src_clk", CSI1_SRC_CLK, NULL, OFF),
606 CLK_DUMMY("csi_clk", CSI0_CLK, NULL, OFF),
607 CLK_DUMMY("csi_clk", CSI1_CLK, NULL, OFF),
608 CLK_DUMMY("csi_pix_clk", CSI_PIX_CLK, NULL, OFF),
609 CLK_DUMMY("csi_rdi_clk", CSI_RDI_CLK, NULL, OFF),
610 CLK_DUMMY("csiphy_timer_src_clk", CSIPHY_TIMER_SRC_CLK, NULL, OFF),
611 CLK_DUMMY("csi0phy_timer_clk", CSIPHY0_TIMER_CLK, NULL, OFF),
612 CLK_DUMMY("csi1phy_timer_clk", CSIPHY1_TIMER_CLK, NULL, OFF),
613 CLK_DUMMY("dsi_byte_div_clk", DSI1_BYTE_CLK, NULL, OFF),
614 CLK_DUMMY("dsi_byte_div_clk", DSI2_BYTE_CLK, NULL, OFF),
615 CLK_DUMMY("dsi_esc_clk", DSI1_ESC_CLK, NULL, OFF),
616 CLK_DUMMY("dsi_esc_clk", DSI2_ESC_CLK, NULL, OFF),
Tianyi Gou86bb4722011-08-09 13:28:02 -0700617 CLK_DUMMY("vcap_clk", VCAP_CLK, NULL, OFF),
618 CLK_DUMMY("vcap_npl_clk", VCAP_NPL_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700619 CLK_DUMMY("gfx3d_clk", GFX3D_CLK, NULL, OFF),
620 CLK_DUMMY("ijpeg_clk", IJPEG_CLK, NULL, OFF),
621 CLK_DUMMY("imem_clk", IMEM_CLK, NULL, OFF),
622 CLK_DUMMY("jpegd_clk", JPEGD_CLK, NULL, OFF),
623 CLK_DUMMY("mdp_clk", MDP_CLK, NULL, OFF),
624 CLK_DUMMY("mdp_vsync_clk", MDP_VSYNC_CLK, NULL, OFF),
625 CLK_DUMMY("lut_mdp", LUT_MDP_CLK, NULL, OFF),
626 CLK_DUMMY("rot_clk", ROT_CLK, NULL, OFF),
627 CLK_DUMMY("tv_src_clk", TV_SRC_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700628 CLK_DUMMY("vcodec_clk", VCODEC_CLK, NULL, OFF),
629 CLK_DUMMY("mdp_tv_clk", MDP_TV_CLK, NULL, OFF),
Tianyi Gou86bb4722011-08-09 13:28:02 -0700630 CLK_DUMMY("rgb_tv_clk", RGB_TV_CLK, NULL, OFF),
631 CLK_DUMMY("npl_tv_clk", NPL_TV_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700632 CLK_DUMMY("hdmi_clk", HDMI_TV_CLK, NULL, OFF),
633 CLK_DUMMY("hdmi_app_clk", HDMI_APP_CLK, NULL, OFF),
634 CLK_DUMMY("vpe_clk", VPE_CLK, NULL, OFF),
635 CLK_DUMMY("vfe_clk", VFE_CLK, NULL, OFF),
636 CLK_DUMMY("csi_vfe_clk", CSI0_VFE_CLK, NULL, OFF),
637 CLK_DUMMY("vfe_axi_clk", VFE_AXI_CLK, NULL, OFF),
638 CLK_DUMMY("ijpeg_axi_clk", IJPEG_AXI_CLK, NULL, OFF),
639 CLK_DUMMY("mdp_axi_clk", MDP_AXI_CLK, NULL, OFF),
640 CLK_DUMMY("rot_axi_clk", ROT_AXI_CLK, NULL, OFF),
641 CLK_DUMMY("vcodec_axi_clk", VCODEC_AXI_CLK, NULL, OFF),
642 CLK_DUMMY("vcodec_axi_a_clk", VCODEC_AXI_A_CLK, NULL, OFF),
643 CLK_DUMMY("vcodec_axi_b_clk", VCODEC_AXI_B_CLK, NULL, OFF),
644 CLK_DUMMY("vpe_axi_clk", VPE_AXI_CLK, NULL, OFF),
Tianyi Gou86bb4722011-08-09 13:28:02 -0700645 CLK_DUMMY("gfx3d_axi_clk", GFX3D_AXI_CLK, NULL, OFF),
646 CLK_DUMMY("vcap_axi_clk", VCAP_AXI_CLK, NULL, OFF),
647 CLK_DUMMY("vcap_ahb_clk", VCAP_AHB_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700648 CLK_DUMMY("amp_pclk", AMP_P_CLK, NULL, OFF),
649 CLK_DUMMY("csi_pclk", CSI0_P_CLK, NULL, OFF),
650 CLK_DUMMY("dsi_m_pclk", DSI1_M_P_CLK, NULL, OFF),
651 CLK_DUMMY("dsi_s_pclk", DSI1_S_P_CLK, NULL, OFF),
652 CLK_DUMMY("dsi_m_pclk", DSI2_M_P_CLK, NULL, OFF),
653 CLK_DUMMY("dsi_s_pclk", DSI2_S_P_CLK, NULL, OFF),
Tianyi Gou86bb4722011-08-09 13:28:02 -0700654 CLK_DUMMY("lvds_clk", LVDS_CLK, NULL, OFF),
655 CLK_DUMMY("mdp_p2clk", MDP_P2CLK, NULL, OFF),
656 CLK_DUMMY("dsi2_pixel_clk", DSI2_PIXEL_CLK, NULL, OFF),
657 CLK_DUMMY("lvds_ref_clk", LVDS_REF_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700658 CLK_DUMMY("gfx3d_pclk", GFX3D_P_CLK, NULL, OFF),
659 CLK_DUMMY("hdmi_m_pclk", HDMI_M_P_CLK, NULL, OFF),
660 CLK_DUMMY("hdmi_s_pclk", HDMI_S_P_CLK, NULL, OFF),
661 CLK_DUMMY("ijpeg_pclk", IJPEG_P_CLK, NULL, OFF),
662 CLK_DUMMY("jpegd_pclk", JPEGD_P_CLK, NULL, OFF),
663 CLK_DUMMY("imem_pclk", IMEM_P_CLK, NULL, OFF),
664 CLK_DUMMY("mdp_pclk", MDP_P_CLK, NULL, OFF),
665 CLK_DUMMY("smmu_pclk", SMMU_P_CLK, NULL, OFF),
666 CLK_DUMMY("rotator_pclk", ROT_P_CLK, NULL, OFF),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700667 CLK_DUMMY("vcodec_pclk", VCODEC_P_CLK, NULL, OFF),
668 CLK_DUMMY("vfe_pclk", VFE_P_CLK, NULL, OFF),
669 CLK_DUMMY("vpe_pclk", VPE_P_CLK, NULL, OFF),
670 CLK_DUMMY("mi2s_osr_clk", MI2S_OSR_CLK, NULL, OFF),
671 CLK_DUMMY("mi2s_bit_clk", MI2S_BIT_CLK, NULL, OFF),
672 CLK_DUMMY("i2s_mic_osr_clk", CODEC_I2S_MIC_OSR_CLK, NULL, OFF),
673 CLK_DUMMY("i2s_mic_bit_clk", CODEC_I2S_MIC_BIT_CLK, NULL, OFF),
674 CLK_DUMMY("i2s_mic_osr_clk", SPARE_I2S_MIC_OSR_CLK, NULL, OFF),
675 CLK_DUMMY("i2s_mic_bit_clk", SPARE_I2S_MIC_BIT_CLK, NULL, OFF),
676 CLK_DUMMY("i2s_spkr_osr_clk", CODEC_I2S_SPKR_OSR_CLK, NULL, OFF),
677 CLK_DUMMY("i2s_spkr_bit_clk", CODEC_I2S_SPKR_BIT_CLK, NULL, OFF),
678 CLK_DUMMY("i2s_spkr_osr_clk", SPARE_I2S_SPKR_OSR_CLK, NULL, OFF),
679 CLK_DUMMY("i2s_spkr_bit_clk", SPARE_I2S_SPKR_BIT_CLK, NULL, OFF),
680 CLK_DUMMY("pcm_clk", PCM_CLK, NULL, OFF),
681 CLK_DUMMY("iommu_clk", JPEGD_AXI_CLK, NULL, 0),
682 CLK_DUMMY("iommu_clk", VFE_AXI_CLK, NULL, 0),
683 CLK_DUMMY("iommu_clk", VCODEC_AXI_CLK, NULL, 0),
684 CLK_DUMMY("iommu_clk", GFX3D_CLK, NULL, 0),
685 CLK_DUMMY("iommu_clk", GFX2D0_CLK, NULL, 0),
686 CLK_DUMMY("iommu_clk", GFX2D1_CLK, NULL, 0),
687
688 CLK_DUMMY("dfab_dsps_clk", DFAB_DSPS_CLK, NULL, 0),
689 CLK_DUMMY("dfab_usb_hs_clk", DFAB_USB_HS_CLK, NULL, 0),
Matt Wagantall37ce3842011-08-17 16:00:36 -0700690 CLK_DUMMY("bus_clk", DFAB_SDC1_CLK, NULL, 0),
691 CLK_DUMMY("bus_clk", DFAB_SDC2_CLK, NULL, 0),
692 CLK_DUMMY("bus_clk", DFAB_SDC3_CLK, NULL, 0),
693 CLK_DUMMY("bus_clk", DFAB_SDC4_CLK, NULL, 0),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700694 CLK_DUMMY("dfab_clk", DFAB_CLK, NULL, 0),
695 CLK_DUMMY("dma_bam_pclk", DMA_BAM_P_CLK, NULL, 0),
696};
697
Stephen Boydbb600ae2011-08-02 20:11:40 -0700698struct clock_init_data apq8064_dummy_clock_init_data __initdata = {
699 .table = msm_clocks_8064_dummy,
700 .size = ARRAY_SIZE(msm_clocks_8064_dummy),
701};