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