1bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland/* linux/arch/arm/mach-msm/devices.c
2bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland *
3bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland * Copyright (C) 2008 Google, Inc.
4bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland *
5bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland * This software is licensed under the terms of the GNU General Public
6bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland * License version 2, as published by the Free Software Foundation, and
7bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland * may be copied, distributed, and modified under those terms.
8bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland *
9bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland * This program is distributed in the hope that it will be useful,
10bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland * but WITHOUT ANY WARRANTY; without even the implied warranty of
11bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland * GNU General Public License for more details.
13bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland *
14bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland */
15bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
16bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland#include <linux/kernel.h>
17bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland#include <linux/platform_device.h>
18bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd#include <linux/clkdev.h>
19bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
2080b02c172bdecd3744513b97f330c7b1d74eea35Russell King#include <mach/irqs.h>
21bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland#include <mach/msm_iomap.h>
22bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland#include "devices.h"
23bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
24bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland#include <asm/mach/flash.h>
25bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland#include <linux/mtd/nand.h>
26bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland#include <linux/mtd/partitions.h>
27bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
285e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker#include "clock.h"
29ce1c80fbaa3b8e132d4e430cbf7cb4a9cd28b2d5Stephen Boyd#include "clock-pcom.h"
305d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat#include <mach/mmc.h>
315d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat
32bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_uart1[] = {
33bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
34bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_UART1,
35bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= INT_UART1,
36bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_IRQ,
37bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
38bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
39bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_UART1_PHYS,
40bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_UART1_PHYS + MSM_UART1_SIZE - 1,
41bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
42d41cb8c95681345ded5ef1e78d235d06d68baee2Stepan Moskovchenko		.name  = "uart_resource"
43bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
44bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
45bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
46bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_uart2[] = {
47bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
48bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_UART2,
49bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= INT_UART2,
50bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_IRQ,
51bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
52bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
53bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_UART2_PHYS,
54bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_UART2_PHYS + MSM_UART2_SIZE - 1,
55bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
56d41cb8c95681345ded5ef1e78d235d06d68baee2Stepan Moskovchenko		.name  = "uart_resource"
57bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
58bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
59bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
60bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_uart3[] = {
61bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
62bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_UART3,
63bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= INT_UART3,
64bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_IRQ,
65bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
66bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
67bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_UART3_PHYS,
68bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_UART3_PHYS + MSM_UART3_SIZE - 1,
69bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
70d41cb8c95681345ded5ef1e78d235d06d68baee2Stepan Moskovchenko		.name  = "uart_resource"
71bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
72bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
73bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
74bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_uart1 = {
75bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name	= "msm_serial",
76bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id	= 0,
77bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_uart1),
78bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_uart1,
79bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
80bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
81bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_uart2 = {
82bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name	= "msm_serial",
83bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id	= 1,
84bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_uart2),
85bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_uart2,
86bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
87bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
88bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_uart3 = {
89bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name	= "msm_serial",
90bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id	= 2,
91bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_uart3),
92bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_uart3,
93bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
94bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
95bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_i2c[] = {
96bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
97bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_I2C_PHYS,
98bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_I2C_PHYS + MSM_I2C_SIZE - 1,
99bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
100bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
101bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
102bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_PWB_I2C,
103bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= INT_PWB_I2C,
104bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_IRQ,
105bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
106bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
107bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
108bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_i2c = {
109bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name		= "msm_i2c",
110bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id		= 0,
111bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_i2c),
112bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_i2c,
113bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
114bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
115bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_hsusb[] = {
116bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
117bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_HSUSB_PHYS,
118bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_HSUSB_PHYS + MSM_HSUSB_SIZE,
119bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
120bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
121bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
122bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_USB_HS,
123bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= INT_USB_HS,
124bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_IRQ,
125bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
126bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
127bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
128bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_hsusb = {
129bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name		= "msm_hsusb",
130bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id		= -1,
131bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_hsusb),
132bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_hsusb,
133bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.dev		= {
134bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.coherent_dma_mask	= 0xffffffff,
135bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
136bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
137bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
138bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct flash_platform_data msm_nand_data = {
139bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.parts		= NULL,
140bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.nr_parts	= 0,
141bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
142bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
143bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_nand[] = {
144bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	[0] = {
145bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= 7,
146bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= 7,
147bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_DMA,
148bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
149bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
150bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
151bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_nand = {
152bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name		= "msm_nand",
153bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id		= -1,
154bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_nand),
155bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_nand,
156bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.dev		= {
157bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.platform_data	= &msm_nand_data,
158bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
159bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
160bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
161bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_smd = {
162bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name	= "msm_smd",
163bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id	= -1,
164bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
165bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
166bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_sdc1[] = {
167bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
168bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_SDC1_PHYS,
169bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_SDC1_PHYS + MSM_SDC1_SIZE - 1,
170bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
171bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
172bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
173bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_SDC1_0,
174830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.end	= INT_SDC1_0,
175830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.flags	= IORESOURCE_IRQ,
176830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.name	= "cmd_irq",
177830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	},
178830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	{
179830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
180830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.name	= "status_irq"
181bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
182bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
183bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= 8,
184bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= 8,
185bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_DMA,
186bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
187bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
188bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
189bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_sdc2[] = {
190bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
191bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_SDC2_PHYS,
192bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_SDC2_PHYS + MSM_SDC2_SIZE - 1,
193bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
194bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
195bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
196bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_SDC2_0,
197830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.end	= INT_SDC2_0,
198830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.flags	= IORESOURCE_IRQ,
199830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.name	= "cmd_irq",
200830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	},
201830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	{
202830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
203830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.name	= "status_irq"
204bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
205bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
206bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= 8,
207bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= 8,
208bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_DMA,
209bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
210bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
211bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
212bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_sdc3[] = {
213bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
214bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_SDC3_PHYS,
215bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_SDC3_PHYS + MSM_SDC3_SIZE - 1,
216bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
217bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
218bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
219bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_SDC3_0,
220830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.end	= INT_SDC3_0,
221830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.flags	= IORESOURCE_IRQ,
222830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.name	= "cmd_irq",
223830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	},
224830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	{
225830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
226830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.name	= "status_irq"
227bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
228bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
229bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= 8,
230bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= 8,
231bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_DMA,
232bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
233bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
234bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
235bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstatic struct resource resources_sdc4[] = {
236bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
237bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= MSM_SDC4_PHYS,
238bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= MSM_SDC4_PHYS + MSM_SDC4_SIZE - 1,
239bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_MEM,
240bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
241bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
242bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= INT_SDC4_0,
243830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.end	= INT_SDC4_0,
244830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.flags	= IORESOURCE_IRQ,
245830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.name	= "cmd_irq",
246830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	},
247830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	{
248830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.flags	= IORESOURCE_IRQ | IORESOURCE_DISABLED,
249830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		.name	= "status_irq"
250bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
251bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	{
252bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.start	= 8,
253bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.end	= 8,
254bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.flags	= IORESOURCE_DMA,
255bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
256bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
257bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
258bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_sdc1 = {
259bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name		= "msm_sdcc",
260bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id		= 1,
261bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_sdc1),
262bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_sdc1,
263bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.dev		= {
264bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.coherent_dma_mask	= 0xffffffff,
265bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
266bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
267bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
268bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_sdc2 = {
269bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name		= "msm_sdcc",
270bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id		= 2,
271bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_sdc2),
272bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_sdc2,
273bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.dev		= {
274bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.coherent_dma_mask	= 0xffffffff,
275bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
276bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
277bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
278bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_sdc3 = {
279bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name		= "msm_sdcc",
280bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id		= 3,
281bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_sdc3),
282bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_sdc3,
283bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.dev		= {
284bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.coherent_dma_mask	= 0xffffffff,
285bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
286bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
287bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland
288bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetlandstruct platform_device msm_device_sdc4 = {
289bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.name		= "msm_sdcc",
290bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.id		= 4,
291bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.num_resources	= ARRAY_SIZE(resources_sdc4),
292bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.resource	= resources_sdc4,
293bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	.dev		= {
294bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland		.coherent_dma_mask	= 0xffffffff,
295bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland	},
296bcc0f6af0798e60e7527485f7125ed26632ce698Brian Swetland};
2975d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat
2985d4f77ffefdcfbe9432db371126b74478964b4a0San Mehatstatic struct platform_device *msm_sdcc_devices[] __initdata = {
2995d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	&msm_device_sdc1,
3005d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	&msm_device_sdc2,
3015d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	&msm_device_sdc3,
3025d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	&msm_device_sdc4,
3035d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat};
3045d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat
305b5d643de3ea28d7844a3a1a00a0a6f50897a2a6bSahitya Tummalaint __init msm_add_sdcc(unsigned int controller,
306b5d643de3ea28d7844a3a1a00a0a6f50897a2a6bSahitya Tummala			struct msm_mmc_platform_data *plat,
307830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin			unsigned int stat_irq, unsigned long stat_irq_flags)
3085d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat{
3095d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	struct platform_device	*pdev;
310830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	struct resource *res;
3115d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat
3125d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	if (controller < 1 || controller > 4)
3135d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat		return -EINVAL;
3145d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat
3155d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	pdev = msm_sdcc_devices[controller-1];
3165d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	pdev->dev.platform_data = plat;
317830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin
318830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "status_irq");
319830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	if (!res)
320830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		return -EINVAL;
321830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	else if (stat_irq) {
322830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		res->start = res->end = stat_irq;
323830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		res->flags &= ~IORESOURCE_DISABLED;
324830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin		res->flags |= stat_irq_flags;
325830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin	}
326830d843b75338b94b7c769a2c3b59b04744a9323Dima Zavin
3275d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat	return platform_device_register(pdev);
3285d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat}
3295d4f77ffefdcfbe9432db371126b74478964b4a0San Mehat
33050bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walkerstatic struct resource resources_mddi0[] = {
33150bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	{
33250bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.start	= MSM_PMDH_PHYS,
33350bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.end	= MSM_PMDH_PHYS + MSM_PMDH_SIZE - 1,
33450bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.flags	= IORESOURCE_MEM,
33550bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	},
33650bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	{
33750bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.start	= INT_MDDI_PRI,
33850bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.end	= INT_MDDI_PRI,
33950bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.flags	= IORESOURCE_IRQ,
34050bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	},
34150bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker};
34250bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker
34350bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walkerstatic struct resource resources_mddi1[] = {
34450bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	{
34550bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.start	= MSM_EMDH_PHYS,
34650bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.end	= MSM_EMDH_PHYS + MSM_EMDH_SIZE - 1,
34750bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.flags	= IORESOURCE_MEM,
34850bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	},
34950bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	{
35050bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.start	= INT_MDDI_EXT,
35150bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.end	= INT_MDDI_EXT,
35250bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.flags	= IORESOURCE_IRQ,
35350bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	},
35450bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker};
35550bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker
35650bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walkerstruct platform_device msm_device_mddi0 = {
35750bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.name = "msm_mddi",
35850bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.id = 0,
35950bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.num_resources = ARRAY_SIZE(resources_mddi0),
36050bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.resource = resources_mddi0,
36150bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.dev = {
36250bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.coherent_dma_mask      = 0xffffffff,
36350bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	},
36450bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker};
36550bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker
36650bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walkerstruct platform_device msm_device_mddi1 = {
36750bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.name = "msm_mddi",
36850bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.id = 1,
36950bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.num_resources = ARRAY_SIZE(resources_mddi1),
37050bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.resource = resources_mddi1,
37150bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.dev = {
37250bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.coherent_dma_mask      = 0xffffffff,
37350bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	},
37450bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker};
37550bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker
37650bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walkerstatic struct resource resources_mdp[] = {
37750bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	{
37850bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.start	= MSM_MDP_PHYS,
37950bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.end	= MSM_MDP_PHYS + MSM_MDP_SIZE - 1,
38050bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.name	= "mdp",
38150bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.flags	= IORESOURCE_MEM
38250bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	},
38350bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	{
38450bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.start	= INT_MDP,
38550bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.end	= INT_MDP,
38650bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker		.flags	= IORESOURCE_IRQ,
38750bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	},
38850bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker};
38950bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker
39050bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walkerstruct platform_device msm_device_mdp = {
39150bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.name = "msm_mdp",
39250bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.id = 0,
39350bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.num_resources = ARRAY_SIZE(resources_mdp),
39450bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker	.resource = resources_mdp,
39550bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker};
39650bc0ef42c76879f5d68a88c7063603dc0c9789bDaniel Walker
397bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boydstruct clk_lookup msm_clocks_7x01a[] = {
3985e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("adm_clk",	ADM_CLK,	NULL, 0),
3995e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("adsp_clk",	ADSP_CLK,	NULL, 0),
4005e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("ebi1_clk",	EBI1_CLK,	NULL, 0),
4015e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("ebi2_clk",	EBI2_CLK,	NULL, 0),
4025e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("ecodec_clk",	ECODEC_CLK,	NULL, 0),
4035e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("emdh_clk",	EMDH_CLK,	NULL, OFF),
4045e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("gp_clk",		GP_CLK,		NULL, 0),
4055e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("grp_clk",	GRP_3D_CLK,	NULL, OFF),
406bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("i2c_clk",	I2C_CLK,	"msm_i2c.0", 0),
4075e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("icodec_rx_clk",	ICODEC_RX_CLK,	NULL, 0),
4085e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("icodec_tx_clk",	ICODEC_TX_CLK,	NULL, 0),
4095e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("imem_clk",	IMEM_CLK,	NULL, OFF),
4105e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("mdc_clk",	MDC_CLK,	NULL, 0),
4115e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("mdp_clk",	MDP_CLK,	NULL, OFF),
4125e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("pbus_clk",	PBUS_CLK,	NULL, 0),
4135e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("pcm_clk",	PCM_CLK,	NULL, 0),
414304a09c3251c7c74660fc2ff9c590edf3d4bdd7eDaniel Walker	CLK_PCOM("mddi_clk",	PMDH_CLK,	NULL, OFF | CLK_MINMAX),
4155e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("sdac_clk",	SDAC_CLK,	NULL, OFF),
416bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("sdc_clk",	SDC1_CLK,	"msm_sdcc.1", OFF),
417bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("sdc_pclk",	SDC1_P_CLK,	"msm_sdcc.1", OFF),
418bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("sdc_clk",	SDC2_CLK,	"msm_sdcc.2", OFF),
419bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("sdc_pclk",	SDC2_P_CLK,	"msm_sdcc.2", OFF),
420bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("sdc_clk",	SDC3_CLK,	"msm_sdcc.3", OFF),
421bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("sdc_pclk",	SDC3_P_CLK,	"msm_sdcc.3", OFF),
422bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("sdc_clk",	SDC4_CLK,	"msm_sdcc.4", OFF),
423bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("sdc_pclk",	SDC4_P_CLK,	"msm_sdcc.4", OFF),
4245e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("tsif_clk",	TSIF_CLK,	NULL, 0),
4255e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("tsif_ref_clk",	TSIF_REF_CLK,	NULL, 0),
4265e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("tv_dac_clk",	TV_DAC_CLK,	NULL, 0),
4275e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("tv_enc_clk",	TV_ENC_CLK,	NULL, 0),
428bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("uart_clk",	UART1_CLK,	"msm_serial.0", OFF),
429bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("uart_clk",	UART2_CLK,	"msm_serial.1", 0),
430bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("uart_clk",	UART3_CLK,	"msm_serial.2", OFF),
4315e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("uart1dm_clk",	UART1DM_CLK,	NULL, OFF),
4325e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("uart2dm_clk",	UART2DM_CLK,	NULL, 0),
433bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("usb_hs_clk",	USB_HS_CLK,	"msm_hsusb", OFF),
434bd32344a6baa8baac9c2b3e9c6c649cc4ed53920Stephen Boyd	CLK_PCOM("usb_hs_pclk",	USB_HS_P_CLK,	"msm_hsusb", OFF),
4355e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("usb_otg_clk",	USB_OTG_CLK,	NULL, 0),
4365e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("vdc_clk",	VDC_CLK,	NULL, OFF ),
4375e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("vfe_clk",	VFE_CLK,	NULL, OFF),
4385e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker	CLK_PCOM("vfe_mdc_clk",	VFE_MDC_CLK,	NULL, OFF),
4395e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker};
4405e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walker
4415e96da5d5074eae3b94d4abadfc114febb6e2a51Daniel Walkerunsigned msm_num_clocks_7x01a = ARRAY_SIZE(msm_clocks_7x01a);
442