blob: ed48659956ff41ecc943c2bff4ff489d6fb6787b [file] [log] [blame]
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -07001/* linux/arch/arm/mach-msm/devices.h
2 *
3 * Copyright (C) 2008 Google, Inc.
Pratik Patel17f3b822011-11-21 12:41:47 -08004 * Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -07005 *
6 * This software is licensed under the terms of the GNU General Public
7 * License version 2, as published by the Free Software Foundation, and
8 * may be copied, distributed, and modified under those terms.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 */
16
17#ifndef __ARCH_ARM_MACH_MSM_DEVICES_H
18#define __ARCH_ARM_MACH_MSM_DEVICES_H
19
Stephen Boydbd323442011-02-23 09:37:42 -080020#include <linux/clkdev.h>
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070021#include <linux/platform_device.h>
Daniel Walker5e96da52010-05-12 13:43:28 -070022#include "clock.h"
Rohit Vaswaniced9b3b2011-08-23 17:21:49 -070023
24void __init msm9615_device_init(void);
25void __init msm9615_map_io(void);
26void __init msm_map_msm9615_io(void);
27void __init msm9615_init_irq(void);
28
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070029extern struct platform_device asoc_msm_pcm;
30extern struct platform_device asoc_msm_dai0;
31extern struct platform_device asoc_msm_dai1;
32#if defined (CONFIG_SND_MSM_MVS_DAI_SOC)
33extern struct platform_device asoc_msm_mvs;
34extern struct platform_device asoc_mvs_dai0;
35extern struct platform_device asoc_mvs_dai1;
36#endif
37
38extern struct platform_device msm_ebi0_thermal;
39extern struct platform_device msm_ebi1_thermal;
Daniel Walker5e96da52010-05-12 13:43:28 -070040
Laxminath Kasam5faa1ca2012-02-15 12:06:45 +053041extern struct platform_device msm_adsp_device;
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -070042extern struct platform_device msm_device_uart1;
43extern struct platform_device msm_device_uart2;
44extern struct platform_device msm_device_uart3;
Taniya Das43bcdd62011-12-02 17:33:27 +053045extern struct platform_device msm8625_device_uart1;
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -070046
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070047extern struct platform_device msm_device_uart_dm1;
48extern struct platform_device msm_device_uart_dm2;
49extern struct platform_device msm_device_uart_dm3;
50extern struct platform_device msm_device_uart_dm12;
51extern struct platform_device *msm_device_uart_gsbi9;
Mayank Rana9f51f582011-08-04 18:35:59 +053052extern struct platform_device msm_device_uart_dm6;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070053
Stepan Moskovchenkod056fca2011-01-27 12:12:07 -080054extern struct platform_device msm8960_device_uart_gsbi2;
55extern struct platform_device msm8960_device_uart_gsbi5;
Jay Chokshi33c044a2011-12-07 13:05:40 -080056extern struct platform_device msm8960_device_ssbi_pmic;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070057extern struct platform_device msm8960_device_qup_i2c_gsbi3;
58extern struct platform_device msm8960_device_qup_i2c_gsbi4;
59extern struct platform_device msm8960_device_qup_i2c_gsbi10;
60extern struct platform_device msm8960_device_qup_i2c_gsbi12;
61extern struct platform_device msm8960_device_qup_spi_gsbi1;
62extern struct platform_device msm8960_gemini_device;
Kevin Chanbb8ef862012-02-14 13:03:04 -080063extern struct platform_device msm8960_device_i2c_mux_gsbi4;
Kevin Chanf6216f22011-10-25 18:40:11 -070064extern struct platform_device msm8960_device_csiphy0;
65extern struct platform_device msm8960_device_csiphy1;
Sreesudhan Ramakrish Ramkumarb1edcd02012-01-17 11:33:05 -080066extern struct platform_device msm8960_device_csiphy2;
Kevin Chanc8b52e82011-10-25 23:20:21 -070067extern struct platform_device msm8960_device_csid0;
68extern struct platform_device msm8960_device_csid1;
Sreesudhan Ramakrish Ramkumarb1edcd02012-01-17 11:33:05 -080069extern struct platform_device msm8960_device_csid2;
Kevin Chane12c6672011-10-26 11:55:26 -070070extern struct platform_device msm8960_device_ispif;
Kevin Chan5827c552011-10-28 18:36:32 -070071extern struct platform_device msm8960_device_vfe;
Kevin Chana0853122011-11-07 19:48:44 -080072extern struct platform_device msm8960_device_vpe;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070073
Stepan Moskovchenko2701a442011-08-19 13:47:22 -070074extern struct platform_device apq8064_device_uart_gsbi1;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070075extern struct platform_device apq8064_device_uart_gsbi3;
Jin Hong4bbbfba2012-02-02 21:48:07 -080076extern struct platform_device apq8064_device_uart_gsbi7;
David Keitel3c40fc52012-02-09 17:53:52 -080077extern struct platform_device apq8064_device_qup_i2c_gsbi1;
Jing Lin04601f92012-02-05 15:36:07 -080078extern struct platform_device apq8064_device_qup_i2c_gsbi3;
Kenneth Heitke748593a2011-07-15 15:45:11 -060079extern struct platform_device apq8064_device_qup_i2c_gsbi4;
Harini Jayaramanc4c58692011-07-19 14:50:10 -060080extern struct platform_device apq8064_device_qup_spi_gsbi5;
Sagar Dharia8bdcdaf2011-09-16 16:01:15 -060081extern struct platform_device apq8064_slim_ctrl;
Kenneth Heitke36920d32011-07-20 16:44:30 -060082extern struct platform_device apq8064_device_ssbi_pmic1;
83extern struct platform_device apq8064_device_ssbi_pmic2;
Stepan Moskovchenkod056fca2011-01-27 12:12:07 -080084
Rohit Vaswani09666872011-08-23 17:41:54 -070085extern struct platform_device msm9615_device_uart_gsbi4;
Harini Jayaramaneba52672011-09-08 15:13:00 -060086extern struct platform_device msm9615_device_qup_i2c_gsbi5;
Harini Jayaraman738c9312011-09-08 15:22:38 -060087extern struct platform_device msm9615_device_qup_spi_gsbi3;
Sagar Dharia2a5378d2011-12-01 20:00:11 -070088extern struct platform_device msm9615_slim_ctrl;
Kenneth Heitkeaf3d3cf2011-09-08 11:45:31 -070089extern struct platform_device msm9615_device_ssbi_pmic1;
Siddartha Mohanadoss5d49cec2011-09-21 10:26:15 -070090extern struct platform_device msm9615_device_tsens;
Gagan Mac7a827642011-09-22 19:42:21 -060091extern struct platform_device msm_bus_9615_sys_fabric;
92extern struct platform_device msm_bus_def_fab;
Rohit Vaswani09666872011-08-23 17:41:54 -070093
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -070094extern struct platform_device msm_device_sdc1;
95extern struct platform_device msm_device_sdc2;
96extern struct platform_device msm_device_sdc3;
97extern struct platform_device msm_device_sdc4;
98
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070099extern struct platform_device msm_device_gadget_peripheral;
Pavankumar Kondeti7032d512010-12-08 13:37:07 +0530100extern struct platform_device msm_device_hsusb_host;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700101extern struct platform_device msm_device_hsusb_host2;
Vijayavardhan Vennapusaeb566482011-09-18 07:48:37 +0530102extern struct platform_device msm_device_hsic_host;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700103
104extern struct platform_device msm_device_otg;
Ofir Cohen06789f12012-01-16 09:43:13 +0200105extern struct platform_device msm_device_hsic_peripheral;
Stepan Moskovchenko14aa6492011-08-08 15:15:01 -0700106extern struct platform_device msm8960_device_otg;
107extern struct platform_device msm8960_device_gadget_peripheral;
108
109extern struct platform_device apq8064_device_otg;
110extern struct platform_device apq8064_usb_diag_device;
111extern struct platform_device apq8064_device_gadget_peripheral;
Hemant Kumard86c4882012-01-24 19:39:37 -0800112extern struct platform_device apq8064_device_hsusb_host;
Hemant Kumara945b472012-01-25 15:08:06 -0800113extern struct platform_device apq8064_device_hsic_host;
Manu Gautam91223e02011-11-08 15:27:22 +0530114extern struct platform_device apq8064_device_ehci_host3;
Stepan Moskovchenko14aa6492011-08-08 15:15:01 -0700115
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -0700116extern struct platform_device msm_device_i2c;
117
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700118extern struct platform_device msm_device_i2c_2;
119
120extern struct platform_device qup_device_i2c;
121
122extern struct platform_device msm_gsbi0_qup_i2c_device;
123extern struct platform_device msm_gsbi1_qup_i2c_device;
124extern struct platform_device msm_gsbi3_qup_i2c_device;
125extern struct platform_device msm_gsbi4_qup_i2c_device;
126extern struct platform_device msm_gsbi7_qup_i2c_device;
127extern struct platform_device msm_gsbi8_qup_i2c_device;
128extern struct platform_device msm_gsbi9_qup_i2c_device;
129extern struct platform_device msm_gsbi12_qup_i2c_device;
130
Taniya Das9d187142011-12-02 15:53:25 +0530131extern struct platform_device msm8625_device_qup_i2c_gsbi0;
Trilok Soni633e59c2012-02-13 20:28:30 +0530132extern struct platform_device msm8625_device_qup_i2c_gsbi1;
Trilok Soni269fff42012-02-13 20:35:30 +0530133extern struct platform_device msm8625_device_uart_dm1;
134extern struct platform_device msm8625_device_uart_dm2;
Trilok Soniee75f6c2012-02-13 20:45:07 +0530135extern struct platform_device msm8625_device_sdc1;
136extern struct platform_device msm8625_device_sdc2;
137extern struct platform_device msm8625_device_sdc3;
138extern struct platform_device msm8625_device_sdc4;
Trilok Sonida63a8b2012-02-13 20:50:03 +0530139extern struct platform_device msm8625_device_gadget_peripheral;
140extern struct platform_device msm8625_device_hsusb_host;
141extern struct platform_device msm8625_device_otg;
Trilok Soni664b95d2012-02-13 21:13:15 +0530142extern struct platform_device msm8625_kgsl_3d0;
Laxminath Kasam5faa1ca2012-02-15 12:06:45 +0530143extern struct platform_device msm8625_device_adsp;
Taniya Das9d187142011-12-02 15:53:25 +0530144
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700145extern struct platform_device msm_slim_ctrl;
146extern struct platform_device msm_device_sps;
Ofir Cohen40a4e862011-12-08 15:17:52 +0200147extern struct platform_device msm_device_usb_bam;
Yan He06913ce2011-08-26 16:33:46 -0700148extern struct platform_device msm_device_sps_apq8064;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700149extern struct platform_device msm_device_bam_dmux;
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -0700150extern struct platform_device msm_device_smd;
Jeff Hugo0c0f5e92011-09-28 13:55:45 -0600151extern struct platform_device msm_device_smd_apq8064;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700152extern struct platform_device msm_device_dmov;
Stepan Moskovchenkodf13d342011-08-03 19:01:25 -0700153extern struct platform_device msm8960_device_dmov;
154extern struct platform_device apq8064_device_dmov;
Jeff Ohlsteind19bf442011-09-09 12:48:18 -0700155extern struct platform_device msm9615_device_dmov;
Taniya Das43bcdd62011-12-02 17:33:27 +0530156extern struct platform_device msm8625_device_dmov;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700157extern struct platform_device msm_device_dmov_adm0;
158extern struct platform_device msm_device_dmov_adm1;
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -0700159
160extern struct platform_device msm_device_nand;
161
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700162extern struct platform_device msm_device_tssc;
163
164extern struct platform_device msm_rotator_device;
165
Nagamalleswararao Ganji5fabbd62011-11-06 23:10:43 -0800166#ifdef CONFIG_MSM_BUS_SCALING
167extern struct msm_bus_scale_pdata rotator_bus_scale_pdata;
168#endif
169
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700170extern struct platform_device msm_device_tsif[2];
171
Anirudh Ghayal9d9cdc22011-10-10 17:17:07 +0530172extern struct platform_device msm_device_ssbi_pmic1;
Anirudh Ghayalc49157f2011-11-09 14:49:59 +0530173extern struct platform_device msm_device_ssbi_pmic2;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700174extern struct platform_device msm_device_ssbi1;
175extern struct platform_device msm_device_ssbi2;
176extern struct platform_device msm_device_ssbi3;
177extern struct platform_device msm_device_ssbi6;
178extern struct platform_device msm_device_ssbi7;
179
180extern struct platform_device msm_gsbi1_qup_spi_device;
181
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700182extern struct platform_device msm_device_vidc_720p;
183
184extern struct platform_device msm_pcm;
Kiran Kandi5e809b02012-01-31 00:24:33 -0800185extern struct platform_device msm_multi_ch_pcm;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700186extern struct platform_device msm_pcm_routing;
187extern struct platform_device msm_cpudai0;
188extern struct platform_device msm_cpudai1;
189extern struct platform_device msm_cpudai_hdmi_rx;
190extern struct platform_device msm_cpudai_bt_rx;
191extern struct platform_device msm_cpudai_bt_tx;
192extern struct platform_device msm_cpudai_fm_rx;
193extern struct platform_device msm_cpudai_fm_tx;
Bhalchandra Gajare0e795c42011-08-15 18:10:30 -0700194extern struct platform_device msm_cpudai_auxpcm_rx;
195extern struct platform_device msm_cpudai_auxpcm_tx;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700196extern struct platform_device msm_cpu_fe;
197extern struct platform_device msm_stub_codec;
198extern struct platform_device msm_voice;
199extern struct platform_device msm_voip;
200extern struct platform_device msm_lpa_pcm;
201extern struct platform_device msm_pcm_hostless;
Laxminath Kasamcee1d602011-08-01 19:26:57 +0530202extern struct platform_device msm_cpudai_afe_01_rx;
203extern struct platform_device msm_cpudai_afe_01_tx;
204extern struct platform_device msm_cpudai_afe_02_rx;
205extern struct platform_device msm_cpudai_afe_02_tx;
206extern struct platform_device msm_pcm_afe;
Asish Bhattacharya96bb6f42011-11-01 20:36:09 +0530207extern struct platform_device msm_compr_dsp;
Helen Zeng0705a5f2011-10-14 15:29:52 -0700208extern struct platform_device msm_cpudai_incall_music_rx;
Helen Zenge3d716a2011-10-14 16:32:16 -0700209extern struct platform_device msm_cpudai_incall_record_rx;
210extern struct platform_device msm_cpudai_incall_record_tx;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700211
Stephen Boyd3acc9e42011-09-28 16:46:40 -0700212extern struct platform_device msm_pil_q6v3;
Stephen Boyd4eb885b2011-09-29 01:16:03 -0700213extern struct platform_device msm_pil_modem;
Stephen Boydd89eebe2011-09-28 23:28:11 -0700214extern struct platform_device msm_pil_tzapps;
Stephen Boydeb819882011-08-29 14:46:30 -0700215extern struct platform_device msm_8960_q6_lpass;
216extern struct platform_device msm_8960_q6_mss_fw;
217extern struct platform_device msm_8960_q6_mss_sw;
Stephen Boyd322a9922011-09-20 01:05:54 -0700218extern struct platform_device msm_8960_riva;
Matt Wagantall292aace2012-01-26 19:12:34 -0800219extern struct platform_device msm_gss;
Stephen Boydeb819882011-08-29 14:46:30 -0700220
Bharath Ramachandramurthyb8e797f2011-11-30 12:08:42 -0800221extern struct platform_device apq_pcm;
222extern struct platform_device apq_pcm_routing;
223extern struct platform_device apq_cpudai0;
224extern struct platform_device apq_cpudai1;
225extern struct platform_device apq_cpudai_hdmi_rx;
226extern struct platform_device apq_cpudai_bt_rx;
227extern struct platform_device apq_cpudai_bt_tx;
228extern struct platform_device apq_cpudai_fm_rx;
229extern struct platform_device apq_cpudai_fm_tx;
230extern struct platform_device apq_cpudai_auxpcm_rx;
231extern struct platform_device apq_cpudai_auxpcm_tx;
232extern struct platform_device apq_cpu_fe;
233extern struct platform_device apq_stub_codec;
234extern struct platform_device apq_voice;
235extern struct platform_device apq_voip;
236extern struct platform_device apq_lpa_pcm;
237extern struct platform_device apq_pcm_hostless;
238extern struct platform_device apq_cpudai_afe_01_rx;
239extern struct platform_device apq_cpudai_afe_01_tx;
240extern struct platform_device apq_cpudai_afe_02_rx;
241extern struct platform_device apq_cpudai_afe_02_tx;
242extern struct platform_device apq_pcm_afe;
Neema Shetty8427c262012-02-16 11:23:43 -0800243extern struct platform_device apq_cpudai_stub;
Bharath Ramachandramurthyb8e797f2011-11-30 12:08:42 -0800244
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700245extern struct platform_device *msm_footswitch_devices[];
246extern unsigned msm_num_footswitch_devices;
Matt Wagantall1875d322012-02-22 16:11:33 -0800247extern struct platform_device *apq8064_fs_devices[];
248extern unsigned apq8064_num_fs_devices;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700249
250extern struct platform_device fsm_qfp_fuse_device;
251
Rohit Vaswani4c0d3042011-07-13 14:19:23 -0700252extern struct platform_device fsm_xo_device;
253
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700254extern struct platform_device qfec_device;
Daniel Walker50bc0ef2010-12-13 14:35:11 -0800255
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700256extern struct platform_device msm_kgsl_3d0;
257extern struct platform_device msm_kgsl_2d0;
258extern struct platform_device msm_kgsl_2d1;
259
260extern struct platform_device msm_mipi_dsi1_device;
Ravishangar Kalyanamc2fee312012-02-09 19:11:22 -0800261extern struct platform_device msm_lvds_device;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700262
263extern struct clk_lookup msm_clocks_fsm9xxx[];
264extern unsigned msm_num_clocks_fsm9xxx;
265
266extern struct platform_device msm_footswitch;
267
268void __init msm_fb_register_device(char *name, void *data);
269void __init msm_camera_register_device(void *, uint32_t, void *);
270struct platform_device *msm_add_gsbi9_uart(void);
271extern struct platform_device msm_device_touchscreen;
272
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700273extern struct platform_device led_pdev;
Laura Abbotta2e93632011-08-19 13:36:32 -0700274
Praveen Chidambaram78499012011-11-01 17:15:17 -0600275extern struct platform_device msm8960_rpm_device;
276extern struct platform_device msm8960_rpm_stat_device;
277extern struct platform_device msm8960_rpm_log_device;
278
279extern struct platform_device msm8930_rpm_device;
280extern struct platform_device msm8930_rpm_stat_device;
281extern struct platform_device msm8930_rpm_log_device;
282
283extern struct platform_device msm8660_rpm_device;
284extern struct platform_device msm8660_rpm_stat_device;
285extern struct platform_device msm8660_rpm_log_device;
286
287extern struct platform_device msm9615_rpm_device;
288extern struct platform_device msm9615_rpm_stat_device;
289extern struct platform_device msm9615_rpm_log_device;
290
291extern struct platform_device apq8064_rpm_device;
292extern struct platform_device apq8064_rpm_stat_device;
293extern struct platform_device apq8064_rpm_log_device;
294
Ramesh Masavarapu5ad37392011-10-10 10:44:10 -0700295extern struct platform_device msm_device_rng;
Ramesh Masavarapuf46be1b2011-11-03 11:13:41 -0700296extern struct platform_device apq8064_device_rng;
Ramesh Masavarapuaa28b5b2011-10-21 10:26:03 -0700297
298#if defined(CONFIG_CRYPTO_DEV_QCRYPTO) || \
299 defined(CONFIG_CRYPTO_DEV_QCRYPTO_MODULE)
300extern struct platform_device msm9615_qcrypto_device;
301#endif
302
303#if defined(CONFIG_CRYPTO_DEV_QCEDEV) || \
304 defined(CONFIG_CRYPTO_DEV_QCEDEV_MODULE)
305extern struct platform_device msm9615_qcedev_device;
306#endif
Jeff Ohlstein7e668552011-10-06 16:17:25 -0700307extern struct platform_device msm8960_device_watchdog;
308extern struct platform_device msm8660_device_watchdog;
309extern struct platform_device msm8064_device_watchdog;
310extern struct platform_device msm9615_device_watchdog;
Pratik Patelfd6f56a2011-10-10 17:47:55 -0700311
312extern struct platform_device msm_etb_device;
313extern struct platform_device msm_tpiu_device;
314extern struct platform_device msm_funnel_device;
Pratik Patelfd6f56a2011-10-10 17:47:55 -0700315extern struct platform_device msm_ptm_device;
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -0700316#endif
Gagan Mac8a7a5d32011-11-11 16:43:06 -0700317
318extern struct platform_device msm_bus_8064_apps_fabric;
319extern struct platform_device msm_bus_8064_sys_fabric;
320extern struct platform_device msm_bus_8064_mm_fabric;
321extern struct platform_device msm_bus_8064_sys_fpb;
322extern struct platform_device msm_bus_8064_cpss_fpb;
Joel Kingdacbc822012-01-25 13:30:57 -0800323
324extern struct platform_device mdm_8064_device;