msm: board-msm7x27a: Add support for 8625 FFA
Support MSM8625 FFA for the new machine
CRs-Fixed: 353709
Change-Id: Ic5d8942e4e942b076700f028eb1495c4d84b426e
Signed-off-by: Aparna Mallavarapu <aparnam@codeaurora.org>
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index 076c609..7c7c0bb 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -506,6 +506,14 @@
help
Support for the Qualcomm MSM8625 SURF.
+config MACH_MSM8625_FFA
+ depends on ARCH_MSM8625
+ depends on !MSM_STACKED_MEMORY
+ default y
+ bool "MSM8625 FFA"
+ help
+ Support for the Qualcomm MSM8625 FFA.
+
config MACH_MSM8625_EVB
depends on ARCH_MSM8625
depends on !MSM_STACKED_MEMORY
diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile
index 4833dfa..3c4b5a8 100644
--- a/arch/arm/mach-msm/Makefile
+++ b/arch/arm/mach-msm/Makefile
@@ -241,6 +241,7 @@
obj-$(CONFIG_MACH_MSM8625_SURF) += board-msm7x27a.o board-7627a-all.o
obj-$(CONFIG_MACH_MSM8625_EVB) += board-qrd7627a.o board-7627a-all.o
obj-$(CONFIG_MACH_MSM8625_QRD7) += board-qrd7627a.o board-7627a-all.o
+obj-$(CONFIG_MACH_MSM8625_FFA) += board-msm7x27a.o board-7627a-all.o
obj-$(CONFIG_ARCH_MSM7X30) += board-msm7x30.o devices-msm7x30.o memory_topology.o
obj-$(CONFIG_ARCH_MSM7X30) += clock-local.o clock-7x30.o acpuclock-7x30.o clock-pll.o
obj-$(CONFIG_MACH_MSM7X25_SURF) += board-msm7x27.o devices-msm7x25.o
diff --git a/arch/arm/mach-msm/board-msm7627a-camera.c b/arch/arm/mach-msm/board-msm7627a-camera.c
index 9d01d90..8e64a43 100644
--- a/arch/arm/mach-msm/board-msm7627a-camera.c
+++ b/arch/arm/mach-msm/board-msm7627a-camera.c
@@ -284,7 +284,8 @@
static void __init msm7x27a_init_cam(void)
{
if (!(machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()
- || machine_is_msm7627a_qrd1())) {
+ || machine_is_msm7627a_qrd1()
+ || machine_is_msm8625_ffa())) {
sensor_board_info_s5k4e1.cam_vreg = NULL;
sensor_board_info_s5k4e1.num_vreg = 0;
sensor_board_info_mt9e013.cam_vreg = NULL;
@@ -523,7 +524,8 @@
int rc = 0;
if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()
- || machine_is_msm7627a_qrd1())
+ || machine_is_msm7627a_qrd1()
+ || machine_is_msm8625_ffa())
msm_camera_vreg_config(1);
rc = config_gpio_table(camera_on_gpio_table,
@@ -540,7 +542,8 @@
static void config_camera_off_gpios_rear(void)
{
if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()
- || machine_is_msm7627a_qrd1())
+ || machine_is_msm7627a_qrd1()
+ || machine_is_msm8625_ffa())
msm_camera_vreg_config(0);
config_gpio_table(camera_off_gpio_table,
@@ -552,7 +555,8 @@
int rc = 0;
if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()
- || machine_is_msm7627a_qrd1())
+ || machine_is_msm7627a_qrd1()
+ || machine_is_msm8625_ffa())
msm_camera_vreg_config(1);
rc = config_gpio_table(camera_on_gpio_table,
@@ -569,7 +573,8 @@
static void config_camera_off_gpios_front(void)
{
if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()
- || machine_is_msm7627a_qrd1())
+ || machine_is_msm7627a_qrd1()
+ || machine_is_msm8625_ffa())
msm_camera_vreg_config(0);
config_gpio_table(camera_off_gpio_table,
diff --git a/arch/arm/mach-msm/board-msm7627a-display.c b/arch/arm/mach-msm/board-msm7627a-display.c
index 2a703f0..2de581b 100644
--- a/arch/arm/mach-msm/board-msm7627a-display.c
+++ b/arch/arm/mach-msm/board-msm7627a-display.c
@@ -487,7 +487,8 @@
if (!strncmp(name, "lcdc_toshiba_fwvga_pt", 21) ||
!strncmp(name, "mipi_cmd_renesas_fwvga", 22))
ret = 0;
- } else if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()) {
+ } else if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()
+ || machine_is_msm8625_ffa()) {
if (!strncmp(name, "mipi_cmd_renesas_fwvga", 22))
ret = 0;
} else if (machine_is_msm7627a_qrd1()) {
@@ -1021,8 +1022,8 @@
machine_is_msm8625_surf()) {
gpio_set_value_cansleep(GPIO_DISPLAY_PWR_EN, on);
gpio_set_value_cansleep(GPIO_BACKLIGHT_EN, on);
- } else if (machine_is_msm7x27a_ffa() ||
- machine_is_msm7625a_ffa()) {
+ } else if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()
+ || machine_is_msm8625_ffa()) {
if (on) {
/* This line drives an active low pin on FFA */
rc = gpio_direction_output(GPIO_DISPLAY_PWR_EN, !on);
diff --git a/arch/arm/mach-msm/board-msm7627a-io.c b/arch/arm/mach-msm/board-msm7627a-io.c
index 7f84920..4df2232 100644
--- a/arch/arm/mach-msm/board-msm7627a-io.c
+++ b/arch/arm/mach-msm/board-msm7627a-io.c
@@ -701,7 +701,8 @@
platform_device_register(&led_pdev);
/* Vibrator */
- if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa())
+ if (machine_is_msm7x27a_ffa() || machine_is_msm7625a_ffa()
+ || machine_is_msm8625_ffa())
msm_init_pmic_vibrator();
}
diff --git a/arch/arm/mach-msm/board-msm7x27a.c b/arch/arm/mach-msm/board-msm7x27a.c
index 7b00440..ab52665 100644
--- a/arch/arm/mach-msm/board-msm7x27a.c
+++ b/arch/arm/mach-msm/board-msm7x27a.c
@@ -1034,7 +1034,7 @@
static void __init msm7x27a_add_platform_devices(void)
{
- if (machine_is_msm8625_surf()) {
+ if (machine_is_msm8625_surf() || machine_is_msm8625_ffa()) {
platform_add_devices(msm8625_surf_devices,
ARRAY_SIZE(msm8625_surf_devices));
} else {
@@ -1077,7 +1077,7 @@
static void __init msm7x27a_pm_init(void)
{
- if (machine_is_msm8625_surf()) {
+ if (machine_is_msm8625_surf() || machine_is_msm8625_ffa()) {
msm_pm_set_platform_data(msm8625_pm_data,
ARRAY_SIZE(msm8625_pm_data));
BUG_ON(msm_pm_boot_init(&msm_pm_8625_boot_pdata));
@@ -1200,3 +1200,13 @@
.init_early = msm7x2x_init_early,
.handle_irq = gic_handle_irq,
MACHINE_END
+MACHINE_START(MSM8625_FFA, "QCT MSM8625 FFA")
+ .boot_params = PHYS_OFFSET + 0x100,
+ .map_io = msm8625_map_io,
+ .reserve = msm8625_reserve,
+ .init_irq = msm8625_init_irq,
+ .init_machine = msm7x2x_init,
+ .timer = &msm_timer,
+ .init_early = msm7x2x_init_early,
+ .handle_irq = gic_handle_irq,
+MACHINE_END