--- 847d0a6186dc7949cea98ef57b2725d8bb6cc652 +++ 38321904b2e8a3679bfd03c30918a10a9aadb92d @@ -50,7 +50,6 @@ #ifdef CONFIG_VIBETONZ #include #endif - #include #ifdef CONFIG_SND_SOC_ES325 #include @@ -89,7 +88,6 @@ #include #include #include "clock.h" - #include #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);