Samsung SPH-L720 (Sprint) source updates
/arch/arm/mach-msm/board-jf_eur.c
blob:847d0a6186dc7949cea98ef57b2725d8bb6cc652 -> blob:38321904b2e8a3679bfd03c30918a10a9aadb92d
--- arch/arm/mach-msm/board-jf_eur.c
+++ arch/arm/mach-msm/board-jf_eur.c
@@ -50,7 +50,6 @@
#ifdef CONFIG_VIBETONZ
#include <linux/vibrator.h>
#endif
-
#include <linux/power_supply.h>
#ifdef CONFIG_SND_SOC_ES325
#include <linux/i2c/esxxx.h>
@@ -89,7 +88,6 @@
#include <mach/msm_iomap.h>
#include <linux/sec_jack.h>
#include "clock.h"
-
#include <mach/apq8064-gpio.h>
#ifdef CONFIG_KEYBOARD_CYPRESS_TOUCH_236
@@ -390,7 +388,8 @@ static void irda_device_init(void)
.output_buffer = PM_GPIO_OUT_BUF_CMOS,
.output_value = 0,
};
- printk(KERN_ERR "%s called!\n", __func__);
+ printk(KERN_ERR "%s called!\n", __func__);
+
gpio_request(PM8921_GPIO_PM_TO_SYS(PMIC_GPIO_IRDA_WAKE), "irda_wake");
gpio_direction_output(PM8921_GPIO_PM_TO_SYS(PMIC_GPIO_IRDA_WAKE), 0);
pm8xxx_gpio_config(PM8921_GPIO_PM_TO_SYS( \
@@ -1268,6 +1267,12 @@ static void __init apq8064_early_reserve
static struct msm_bus_vectors hsic_init_vectors[] = {
{
.src = MSM_BUS_MASTER_SPS,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = 0,
+ .ib = 0,
+ },
+ {
+ .src = MSM_BUS_MASTER_SPS,
.dst = MSM_BUS_SLAVE_SPS,
.ab = 0,
.ib = 0,
@@ -1278,9 +1283,15 @@ static struct msm_bus_vectors hsic_init_
static struct msm_bus_vectors hsic_max_vectors[] = {
{
.src = MSM_BUS_MASTER_SPS,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = 60000000, /* At least 480Mbps on bus. */
+ .ib = 960000000, /* MAX bursts rate */
+ },
+ {
+ .src = MSM_BUS_MASTER_SPS,
.dst = MSM_BUS_SLAVE_SPS,
.ab = 0,
- .ib = 256000000, /*vote for 32Mhz dfab clk rate*/
+ .ib = 512000000, /*vote for 64Mhz dfab clk rate*/
},
};
@@ -1466,8 +1477,8 @@ static void sii8240_hw_onoff(bool onoff)
{
int rc = 0;
/*VPH_PWR : mhl_power_source
- VMHL_3.3V, VSIL_A_1.2V, VMHL_1.8V
- just power control with HDMI_EN pin or control Regulator12*/
+ VMHL_3.3V, VSIL_A_1.2V, VMHL_1.8V
+ just power control with HDMI_EN pin or control Regulator12*/
pr_info("%s: onoff =%d\n", __func__, onoff);
if (mhl_hw_onoff == onoff) {
pr_info("mhl_hw_onoff already %d\n", onoff);
@@ -1518,7 +1529,6 @@ static void sii8240_hw_onoff(bool onoff)
ice_gpiox_set(FPGA_VSIL_A_1P2_EN, 1);
if (system_rev >= 4 && system_rev < 6)
gpio_direction_output(PM8921_GPIO_PM_TO_SYS(32), 1);
-
} else {
if (system_rev >= 6)
ice_gpiox_set(FPGA_VSIL_A_1P2_EN, 0);
@@ -1594,7 +1604,7 @@ struct sii8240_platform_data sii8240_pda
.power = sii8240_hw_onoff,
.hw_reset = sii8240_hw_reset,
.gpio_cfg = mhl_gpio_config,
- .swing_level = 0x26,
+ .swing_level = 0x36,
.vbus_present = muic77693_mhl_cb,
};
@@ -1957,11 +1967,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);
@@ -1969,6 +1980,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__);
}
@@ -2004,6 +2016,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__);
@@ -2125,9 +2138,7 @@ static int ssp_check_changes(void)
*/
static void ssp_get_positions(int *acc, int *mag)
{
- if (system_rev == BOARD_REV13)
- *acc = MPU6500_TOP_RIGHT_UPPER;
- else if (system_rev > BOARD_REV09)
+ if (system_rev > BOARD_REV09)
*acc = K330_TOP_LEFT_UPPER;
else if (system_rev > BOARD_REV04)
*acc = MPU6500_TOP_RIGHT_UPPER;
@@ -2289,6 +2300,7 @@ static int ice4_clock_en(int onoff)
}
return 0;
}
+
static void barcode_emul_poweron(int onoff)
{
int ret;
@@ -2415,18 +2427,16 @@ static void barcode_gpio_config(void)
pr_info("%s\n", __func__);
pm8xxx_gpio_config(PM8921_GPIO_PM_TO_SYS( \
PMIC_GPIO_FPGA_RST_N), &creset_b);
-
gpio_request_one(GPIO_FPGA_CDONE, GPIOF_IN, "FPGA_CDONE");
if (system_rev < BOARD_REV06)
gpio_request_one(GPIO_FPGA_SPI_EN, GPIOF_OUT_INIT_LOW,
"FPGA_SPI_EN");
- if (system_rev > BOARD_REV05) {
+ if (system_rev > BOARD_REV05)
pm8xxx_gpio_config(PM8921_GPIO_PM_TO_SYS( \
PMIC_GPIO_FPGA_CRESET_B), &creset_b);
- } else {
+ else
gpio_request_one(GPIO_FPGA_CRESET_B, GPIOF_OUT_INIT_LOW,
"FPGA_CRESET_B");
- }
if (system_rev > BOARD_REV03 && system_rev < BOARD_REV06)
barcode_emul_info.fw_type = ICE_19M;
else if (system_rev > BOARD_REV05 && system_rev < BOARD_REV09)
@@ -3175,9 +3185,9 @@ static struct platform_device msm_tsens_
};
static struct msm_thermal_data msm_thermal_pdata = {
- .sensor_id = 7,
+ .sensor_id = 0,
.poll_ms = 250,
- .limit_temp_degC = 60,
+ .limit_temp_degC = 75,
.temp_hysteresis_degC = 10,
.freq_step = 2,
};
@@ -3245,14 +3255,14 @@ static struct msm_rpmrs_level msm_rpmrs_
MSM_PM_SLEEP_MODE_WAIT_FOR_INTERRUPT,
MSM_RPMRS_LIMITS(ON, ACTIVE, MAX, ACTIVE),
true,
- 1, 784, 180000, 100,
+ 1, 650, 180000, 100,
},
{
MSM_PM_SLEEP_MODE_RETENTION,
MSM_RPMRS_LIMITS(ON, ACTIVE, MAX, ACTIVE),
true,
- 415, 715, 340827, 475,
+ 415, 650, 340827, 475,
},
{
@@ -4323,7 +4333,7 @@ static struct msm_i2c_platform_data apq8
};
static struct msm_i2c_platform_data apq8064_i2c_qup_gsbi4_pdata = {
- .clk_freq = 100000,
+ .clk_freq = 400000,
.src_clk_rate = 24000000,
};
@@ -4887,6 +4897,7 @@ static void __init register_i2c_devices(
apq8064_camera_board_info.board_info,
apq8064_camera_board_info.num_i2c_board_info,
};
+
struct i2c_registry apq8064_front_camera_i2c_devices = {
I2C_SURF | I2C_FFA | I2C_LIQUID | I2C_RUMI,
APQ_8064_GSBI7_QUP_I2C_BUS_ID,
@@ -4990,6 +5001,7 @@ static void main_mic_bias_init(void)
static void __init gpio_rev_init(void)
{
+
#ifdef CONFIG_SEC_FPGA
barcode_i2c_gpio_data.sda_pin =
PM8921_MPP_PM_TO_SYS(PMIC_MPP_FPGA_SPI_SI);