msm: 8x60: enable dragonboard platform
Dragonboard platform is a low cost development platform for APQ8060.
Add dragonboard platform detection support.
Signed-off-by: Zhang Chang Ken <kenz@codeaurora.org>
Conflicts:
arch/arm/mach-msm/gpiomux-8x60.c
arch/arm/mach-msm/gpiomux-8x60.h
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index dc2facd..76635b8 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -448,6 +448,13 @@
help
Support for the Qualcomm MSM8x60 Fusion FFA device.
+config MACH_MSM8X60_DRAGON
+ depends on ARCH_MSM8X60
+ default n
+ bool "MSM8x60 DRAGON"
+ help
+ Support for the Qualcomm MSM8x60 Dragon board.
+
config MACH_MSM8960_SIM
depends on ARCH_MSM8960
bool "MSM8960 Simulator"
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c
index 4333cfb..c3a60d0 100644
--- a/arch/arm/mach-msm/board-msm8x60.c
+++ b/arch/arm/mach-msm/board-msm8x60.c
@@ -9568,6 +9568,10 @@
.gpiomux_cfgs = msm8x60_charm_gpiomux_cfgs,
};
+static struct msm_board_data msm8x60_dragon_board_data __initdata = {
+ .gpiomux_cfgs = msm8x60_dragon_gpiomux_cfgs,
+};
+
static void __init msm8x60_init(struct msm_board_data *board_data)
{
uint32_t soc_platform_version;
@@ -9854,6 +9858,11 @@
msm8x60_allocate_memory_regions();
}
+static void __init msm8x60_dragon_init(void)
+{
+ msm8x60_init(&msm8x60_dragon_board_data);
+}
+
MACHINE_START(MSM8X60_RUMI3, "QCT MSM8X60 RUMI3")
.map_io = msm8x60_map_io,
.reserve = msm8x60_reserve,
@@ -9916,3 +9925,12 @@
.timer = &msm_timer,
.init_early = msm8x60_charm_init_early,
MACHINE_END
+
+MACHINE_START(MSM8X60_DRAGON, "QCT MSM8X60 DRAGON")
+ .map_io = msm8x60_map_io,
+ .reserve = msm8x60_reserve,
+ .init_irq = msm8x60_init_irq,
+ .init_machine = msm8x60_dragon_init,
+ .timer = &msm_timer,
+ .init_early = msm8x60_charm_init_early,
+MACHINE_END
diff --git a/arch/arm/mach-msm/gpiomux-8x60.c b/arch/arm/mach-msm/gpiomux-8x60.c
index 4293f18..a719ea9 100644
--- a/arch/arm/mach-msm/gpiomux-8x60.c
+++ b/arch/arm/mach-msm/gpiomux-8x60.c
@@ -1691,6 +1691,29 @@
{NULL, 0},
};
+struct msm_gpiomux_configs
+msm8x60_dragon_gpiomux_cfgs[] __initdata = {
+ {msm8x60_gsbi_configs, ARRAY_SIZE(msm8x60_gsbi_configs)},
+ {msm8x60_ebi2_configs, ARRAY_SIZE(msm8x60_ebi2_configs)},
+ {msm8x60_uart_configs, ARRAY_SIZE(msm8x60_uart_configs)},
+#if defined(CONFIG_USB_PEHCI_HCD) || defined(CONFIG_USB_PEHCI_HCD_MODULE)
+ {msm8x60_isp_usb_configs, ARRAY_SIZE(msm8x60_isp_usb_configs)},
+#endif
+ {msm8x60_ts_configs, ARRAY_SIZE(msm8x60_ts_configs)},
+ {msm8x60_aux_pcm_configs, ARRAY_SIZE(msm8x60_aux_pcm_configs)},
+ {msm8x60_sdc_configs, ARRAY_SIZE(msm8x60_sdc_configs)},
+ {msm8x60_snd_configs, ARRAY_SIZE(msm8x60_snd_configs)},
+ {msm8x60_mi2s_configs, ARRAY_SIZE(msm8x60_mi2s_configs)},
+ {msm8x60_lcdc_configs, ARRAY_SIZE(msm8x60_lcdc_configs)},
+ {msm8x60_mdp_vsync_configs, ARRAY_SIZE(msm8x60_mdp_vsync_configs)},
+ {msm8x60_hdmi_configs, ARRAY_SIZE(msm8x60_hdmi_configs)},
+ {msm8x60_pmic_configs, ARRAY_SIZE(msm8x60_pmic_configs)},
+ {msm8x60_common_configs, ARRAY_SIZE(msm8x60_common_configs)},
+ {msm8x60_cam_configs, ARRAY_SIZE(msm8x60_cam_configs)},
+ {msm8x60_tmg200_configs, ARRAY_SIZE(msm8x60_tmg200_configs)},
+ {NULL, 0},
+};
+
void __init msm8x60_init_gpiomux(struct msm_gpiomux_configs *cfgs)
{
int rc;
diff --git a/arch/arm/mach-msm/gpiomux-8x60.h b/arch/arm/mach-msm/gpiomux-8x60.h
index 1839a82..cacd1ba 100644
--- a/arch/arm/mach-msm/gpiomux-8x60.h
+++ b/arch/arm/mach-msm/gpiomux-8x60.h
@@ -17,5 +17,6 @@
extern struct msm_gpiomux_configs msm8x60_surf_ffa_gpiomux_cfgs[] __initdata;
extern struct msm_gpiomux_configs msm8x60_fluid_gpiomux_cfgs[] __initdata;
extern struct msm_gpiomux_configs msm8x60_charm_gpiomux_cfgs[] __initdata;
+extern struct msm_gpiomux_configs msm8x60_dragon_gpiomux_cfgs[] __initdata;
#endif
diff --git a/arch/arm/mach-msm/socinfo.c b/arch/arm/mach-msm/socinfo.c
index 2a4117f..f3e4b45 100644
--- a/arch/arm/mach-msm/socinfo.c
+++ b/arch/arm/mach-msm/socinfo.c
@@ -31,6 +31,7 @@
HW_PLATFORM_FLUID = 3,
HW_PLATFORM_SVLTE_FFA = 4,
HW_PLATFORM_SVLTE_SURF = 5,
+ HW_PLATFORM_DRAGON = 6,
HW_PLATFORM_INVALID
};
@@ -40,7 +41,8 @@
[HW_PLATFORM_FFA] = "FFA",
[HW_PLATFORM_FLUID] = "Fluid",
[HW_PLATFORM_SVLTE_FFA] = "SVLTE_FFA",
- [HW_PLATFORM_SVLTE_SURF] = "SLVTE_SURF"
+ [HW_PLATFORM_SVLTE_SURF] = "SLVTE_SURF",
+ [HW_PLATFORM_DRAGON] = "Dragon"
};
enum {