Samsung SCH-I545 (Verizon) source updates
/arch/arm/mach-msm/board-jactive_att.c
blob:82f123f55442ccee3223babf15c00aa65aa71093 -> blob:bd520c5d2c684a1e22d921a187869521fb5f308d
--- arch/arm/mach-msm/board-jactive_att.c
+++ arch/arm/mach-msm/board-jactive_att.c
@@ -1174,6 +1174,35 @@ static struct i2c_board_info touchkey_i2
},
};
+
+static struct i2c_gpio_platform_data cypress_touchkey_i2c_gpio_data = {
+ .sda_pin = GPIO_TOUCHKEY_SDA,
+ .scl_pin = GPIO_TOUCHKEY_SCL,
+ .udelay = 0,
+ .sda_is_open_drain = 0,
+ .scl_is_open_drain = 0,
+ .scl_is_output_only = 0,
+};
+static struct platform_device touchkey_i2c_gpio_device = {
+ .name = "i2c-gpio",
+ .id = MSM_TOUCHKEY_I2C_BUS_ID,
+ .dev.platform_data = &cypress_touchkey_i2c_gpio_data,
+};
+
+static struct i2c_gpio_platform_data cypress_touchkey_i2c_gpio_data_2 = {
+ .sda_pin = GPIO_TOUCHKEY_SDA,
+ .scl_pin = GPIO_TOUCHKEY_SCL_2,
+ .udelay = 0,
+ .sda_is_open_drain = 0,
+ .scl_is_open_drain = 0,
+ .scl_is_output_only = 0,
+};
+static struct platform_device touchkey_i2c_gpio_device_2 = {
+ .name = "i2c-gpio",
+ .id = MSM_TOUCHKEY_I2C_BUS_ID,
+ .dev.platform_data = &cypress_touchkey_i2c_gpio_data_2,
+};
+
#endif
static int apq8064_change_memory_power(u64 start, u64 size,
@@ -1930,11 +1959,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -1942,6 +1972,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -1977,6 +2008,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
@@ -5168,6 +5200,13 @@ static void __init apq8064_common_init(v
platform_add_devices(common_not_mpq_devices,
ARRAY_SIZE(common_not_mpq_devices));
+#ifdef CONFIG_KEYBOARD_CYPRESS_TOUCH_236
+ if (system_rev < 9)
+ platform_device_register(&touchkey_i2c_gpio_device);
+ else
+ platform_device_register(&touchkey_i2c_gpio_device_2);
+#endif
+
enable_ddr3_regulator();
msm_hsic_pdata.swfi_latency =
msm_rpmrs_levels[0].latency_us;
@@ -5214,8 +5253,12 @@ static void __init apq8064_common_init(v
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) || defined(CONFIG_TOUCHSCREEN_ATMEL_MXTS)
printk(KERN_DEBUG"[TSP] System revision, LPM mode : %d %d\n",
system_rev, poweroff_charging);
- if (!poweroff_charging)
- S5000_tsp_input_init(lcd_tsp_panel_version);
+ if (!poweroff_charging) {
+ if (sec_tsp_synaptics_mode)
+ S5000_tsp_input_init(lcd_tsp_panel_version);
+ else
+ mxt540s_tsp_input_init();
+ }
#endif
#if defined(CONFIG_VIDEO_MHL_V2)