Merge "Added jactive support" into cm-11.0
This commit is contained in:
commit
0d2f847d93
File diff suppressed because it is too large
Load Diff
|
@ -81,7 +81,11 @@ static struct gpiomux_setting cam_settings[] = {
|
|||
|
||||
{
|
||||
.func = GPIOMUX_FUNC_1, /*active 1*/
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
.drv = GPIOMUX_DRV_4MA,
|
||||
#else
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
#endif
|
||||
.pull = GPIOMUX_PULL_NONE,
|
||||
.dir = GPIOMUX_OUT_LOW,
|
||||
},
|
||||
|
@ -89,7 +93,11 @@ static struct gpiomux_setting cam_settings[] = {
|
|||
{
|
||||
.func = GPIOMUX_FUNC_GPIO, /*active 2*/
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
#else
|
||||
.pull = GPIOMUX_PULL_NONE,
|
||||
#endif
|
||||
},
|
||||
|
||||
{
|
||||
|
@ -145,7 +153,11 @@ static struct gpiomux_setting cam_settings[] = {
|
|||
},
|
||||
{
|
||||
.func = GPIOMUX_FUNC_4, /*active 12*/
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
.drv = GPIOMUX_DRV_4MA,
|
||||
#else
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
#endif
|
||||
.pull = GPIOMUX_PULL_NONE,
|
||||
.dir = GPIOMUX_OUT_LOW,
|
||||
},
|
||||
|
|
|
@ -387,6 +387,9 @@ static bool oled_power_on;
|
|||
/* [junesok] Power on for samsung oled */
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define LCD_22V_EN 33
|
||||
#if defined(CONFIG_FB_MSM_ENABLE_LCD_EN2)
|
||||
#define LCD_22V_EN_2 20
|
||||
#endif
|
||||
#define PMIC_GPIO_LED_DRIVER 31
|
||||
#elif defined(CONFIG_MACH_JACTIVE_ATT)
|
||||
#define LCD_22V_EN 33
|
||||
|
@ -556,6 +559,21 @@ static int mipi_dsi_power_tft_request(void)
|
|||
pr_info("[lcd] configure LCD_22V_EN\n");
|
||||
gpio_tlmm_config(GPIO_CFG(LCD_22V_EN, 0, GPIO_CFG_OUTPUT,
|
||||
GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
|
||||
|
||||
#if defined(CONFIG_FB_MSM_ENABLE_LCD_EN2)
|
||||
if( system_rev >= 16 ) // rev0.6 + 10
|
||||
{
|
||||
pr_info("[lcd] request gpio lcd_22v_en_2\n");
|
||||
rc = gpio_request(LCD_22V_EN_2, "lcd_22v_en_2");
|
||||
if (rc) {
|
||||
pr_err("request gpio lcd_22v_en_2 failed, rc=%d\n", rc);
|
||||
return -ENODEV;
|
||||
}
|
||||
pr_info("[lcd] configure LCD_22V_EN_2\n");
|
||||
gpio_tlmm_config(GPIO_CFG(LCD_22V_EN_2, 0, GPIO_CFG_OUTPUT,
|
||||
GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (system_rev == 0) {
|
||||
|
@ -595,6 +613,7 @@ static int mipi_dsi_power_tft_request(void)
|
|||
pr_err("gpio_config led_dirver failed (3), rc=%d\n", rc);
|
||||
return -EINVAL;
|
||||
}
|
||||
#if !defined(CONFIG_MACH_JACTIVE_ATT) && !defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT)
|
||||
if(system_rev < 10)
|
||||
gpio_direction_output(gpio33, 0);
|
||||
|
@ -611,15 +630,26 @@ static int mipi_dsi_power_tft_request(void)
|
|||
&MLCD_RESET_LOW_CONFIG);
|
||||
|
||||
msleep(1000);
|
||||
|
||||
#endif
|
||||
gpio_direction_output(gpio27, 0);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT)
|
||||
static int first_boot = 0;
|
||||
#endif
|
||||
|
||||
static int mipi_panel_power_tft(int enable)
|
||||
{
|
||||
int rc = 0;
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT)
|
||||
if(first_boot < 2) {
|
||||
first_boot++;
|
||||
printk("<0> First init Occurred ..... Finished Successfully \n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
pr_info("%s %d", __func__, enable);
|
||||
if (enable) {
|
||||
|
@ -667,8 +697,16 @@ static int mipi_panel_power_tft(int enable)
|
|||
gpio_direction_output(LCD_22V_EN, 1);
|
||||
#else
|
||||
gpio_direction_output(LCD_22V_EN, 1);
|
||||
#if defined(CONFIG_FB_MSM_ENABLE_LCD_EN2)
|
||||
if( system_rev >= 16 ) // rev0.6 + 10
|
||||
{
|
||||
mdelay(10);
|
||||
gpio_direction_output(LCD_22V_EN_2, 1);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_MACH_JACTIVE_ATT) && !defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
/*active_reset_ldi(gpio43);*/
|
||||
if (system_rev == 0)
|
||||
gpio_direction_output(gpio43, 1);
|
||||
|
@ -677,8 +715,9 @@ static int mipi_panel_power_tft(int enable)
|
|||
PM8921_MPP_PM_TO_SYS(MLCD_RST_MPP2),
|
||||
&MLCD_RESET_HIGH_CONFIG);
|
||||
|
||||
msleep(20);
|
||||
|
||||
msleep(20);
|
||||
#endif
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
if( system_rev >= 15 ) // rev0.5 + 10
|
||||
{
|
||||
|
@ -726,6 +765,13 @@ static int mipi_panel_power_tft(int enable)
|
|||
else
|
||||
gpio_direction_output(LCD_22V_EN, 0);
|
||||
#else
|
||||
#if defined(CONFIG_FB_MSM_ENABLE_LCD_EN2)
|
||||
if( system_rev >= 16 ) // rev0.6 + 10
|
||||
{
|
||||
gpio_direction_output(LCD_22V_EN_2, 0);
|
||||
mdelay(10);
|
||||
}
|
||||
#endif
|
||||
gpio_direction_output(LCD_22V_EN, 0);
|
||||
#endif
|
||||
usleep(2000); /*1ms delay(minimum) required between VDD off and AVDD off*/
|
||||
|
|
|
@ -735,6 +735,21 @@ sec_battery_platform_data_t sec_battery_pdata = {
|
|||
.temp_high_recovery_lpm = 430,
|
||||
.temp_low_threshold_lpm = -30,
|
||||
.temp_low_recovery_lpm = 0,
|
||||
#elif defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
.temp_high_threshold_event = 600,
|
||||
.temp_high_recovery_event = 400,
|
||||
.temp_low_threshold_event = -50,
|
||||
.temp_low_recovery_event = 0,
|
||||
|
||||
.temp_high_threshold_normal = 600,
|
||||
.temp_high_recovery_normal = 400,
|
||||
.temp_low_threshold_normal = -50,
|
||||
.temp_low_recovery_normal = 0,
|
||||
|
||||
.temp_high_threshold_lpm = 600,
|
||||
.temp_high_recovery_lpm = 400,
|
||||
.temp_low_threshold_lpm = -50,
|
||||
.temp_low_recovery_lpm = 0,
|
||||
#elif defined(CONFIG_MACH_JF_CRI)
|
||||
.temp_high_threshold_event = 600,
|
||||
.temp_high_recovery_event = 450,
|
||||
|
|
|
@ -27,14 +27,12 @@
|
|||
#include "board-8064.h"
|
||||
#include <mach/apq8064-gpio.h>
|
||||
|
||||
#if 0
|
||||
/* The SPI configurations apply to GSBI 5*/
|
||||
static struct gpiomux_setting gpio_spi_config = {
|
||||
.func = GPIOMUX_FUNC_2,
|
||||
.drv = GPIOMUX_DRV_12MA,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
|
||||
static struct gpiomux_setting gpio_eth_config = {
|
||||
|
@ -336,6 +334,13 @@ struct msm_gpiomux_config vcap_configs[] = {
|
|||
};
|
||||
#endif
|
||||
|
||||
static struct gpiomux_setting gpio_nc_config = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
};
|
||||
|
||||
/*
|
||||
static struct gpiomux_setting gpio_i2c_config = {
|
||||
.func = GPIOMUX_FUNC_1,
|
||||
.drv = GPIOMUX_DRV_8MA,
|
||||
|
@ -347,6 +352,7 @@ static struct gpiomux_setting gpio_i2c_config_sus = {
|
|||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_KEEPER,
|
||||
};
|
||||
*/
|
||||
|
||||
static struct gpiomux_setting mbhc_hs_detect = {
|
||||
.func = GPIOMUX_FUNC_1,
|
||||
|
@ -517,13 +523,6 @@ static struct msm_gpiomux_config cyts_gpio_configs[] __initdata = {
|
|||
[GPIOMUX_SUSPENDED] = &cyts_int_sus_cfg,
|
||||
},
|
||||
},
|
||||
{ /* TS SLEEP */
|
||||
.gpio = 33,
|
||||
.settings = {
|
||||
[GPIOMUX_ACTIVE] = &cyts_sleep_act_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &cyts_sleep_sus_cfg,
|
||||
},
|
||||
},
|
||||
};
|
||||
static struct msm_gpiomux_config cyts_gpio_alt_config[] __initdata = {
|
||||
{ /* TS INTERRUPT */
|
||||
|
@ -741,20 +740,6 @@ static struct msm_gpiomux_config apq8064_gsbi_configs[] __initdata = {
|
|||
[GPIOMUX_SUSPENDED] = &gsbi1_uart_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 21, /* GSBI1 QUP I2C_CLK */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_i2c_config_sus,
|
||||
[GPIOMUX_ACTIVE] = &gpio_i2c_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 20, /* GSBI1 QUP I2C_DATA */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_i2c_config_sus,
|
||||
[GPIOMUX_ACTIVE] = &gpio_i2c_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 24, /* GSBI2 I2C QUP SDA */
|
||||
.settings = {
|
||||
|
@ -772,29 +757,29 @@ static struct msm_gpiomux_config apq8064_gsbi_configs[] __initdata = {
|
|||
{
|
||||
.gpio = 51, /* GSBI5 QUP SPI_DATA_MOSI */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gsbi5_suspended_cfg,
|
||||
[GPIOMUX_ACTIVE] = &gsbi5_active_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &gpio_spi_config,
|
||||
[GPIOMUX_ACTIVE] = &gpio_spi_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 52, /* GSBI5 QUP SPI_DATA_MISO */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gsbi5_suspended_cfg,
|
||||
[GPIOMUX_ACTIVE] = &gsbi5_active_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &gpio_spi_config,
|
||||
[GPIOMUX_ACTIVE] = &gpio_spi_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 53, /* Funny CS0 */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gsbi5_suspended_cfg,
|
||||
[GPIOMUX_ACTIVE] = &gsbi5_active_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &gpio_spi_config,
|
||||
[GPIOMUX_ACTIVE] = &gpio_spi_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 54, /* GSBI5 QUP SPI_CLK */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gsbi5_suspended_cfg,
|
||||
[GPIOMUX_ACTIVE] = &gsbi5_active_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &gpio_spi_config,
|
||||
[GPIOMUX_ACTIVE] = &gpio_spi_config,
|
||||
},
|
||||
},
|
||||
#if !defined(CONFIG_USB_EHCI_MSM_HSIC)
|
||||
|
@ -819,6 +804,50 @@ static struct msm_gpiomux_config apq8064_gsbi_configs[] __initdata = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config apq8064_nc_configs[] __initdata = {
|
||||
{
|
||||
.gpio = 20,
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_nc_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 21,
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_nc_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 29,
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_nc_config,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config apq8064_nc_configs_rev05[] __initdata = {
|
||||
#if !defined(CONFIG_FB_MSM_ENABLE_LCD_EN2)
|
||||
{
|
||||
.gpio = 20,
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_nc_config,
|
||||
},
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.gpio = 21,
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_nc_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 29,
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_nc_config,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config apq8064_slimbus_config[] __initdata = {
|
||||
{
|
||||
.gpio = 40, /* slimbus clk */
|
||||
|
@ -1478,7 +1507,7 @@ static struct msm_gpiomux_config sx150x_int_configs[] __initdata = {
|
|||
static struct gpiomux_setting sd_det_line = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_UP,
|
||||
.pull = GPIOMUX_PULL_NONE,
|
||||
.dir = GPIOMUX_IN,
|
||||
};
|
||||
|
||||
|
@ -1492,6 +1521,25 @@ static struct msm_gpiomux_config msm8064_sd_det_config[] = {
|
|||
},
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MMC_MSM_SDC4_SUPPORT
|
||||
|
||||
static struct gpiomux_setting ls_en_suspended_cfg = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.pull = GPIOMUX_PULL_NONE,
|
||||
.dir = GPIOMUX_OUT_LOW,
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config msm8064_ls_en_config[] = {
|
||||
{
|
||||
.gpio = 64, /* Level Shifter Enable */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &ls_en_suspended_cfg,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_LEDS_AN30259A)
|
||||
static struct gpiomux_setting leds_active_cfg = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
|
@ -1745,6 +1793,9 @@ void __init apq8064_init_gpiomux(void)
|
|||
else
|
||||
msm_gpiomux_install(sdc2_interface,
|
||||
ARRAY_SIZE(sdc2_interface));
|
||||
|
||||
msm_gpiomux_install(msm8064_ls_en_config,
|
||||
ARRAY_SIZE(msm8064_ls_en_config));
|
||||
#else
|
||||
msm_gpiomux_install(wcnss_5wire_interface,
|
||||
ARRAY_SIZE(wcnss_5wire_interface));
|
||||
|
@ -1769,6 +1820,17 @@ void __init apq8064_init_gpiomux(void)
|
|||
msm_gpiomux_install(apq8064_gsbi_configs,
|
||||
ARRAY_SIZE(apq8064_gsbi_configs));
|
||||
}
|
||||
|
||||
if( system_rev >= 13 ) // rev0.5 + 8
|
||||
{
|
||||
msm_gpiomux_install(apq8064_nc_configs_rev05,
|
||||
ARRAY_SIZE(apq8064_nc_configs_rev05));
|
||||
}
|
||||
else
|
||||
{
|
||||
msm_gpiomux_install(apq8064_nc_configs,
|
||||
ARRAY_SIZE(apq8064_nc_configs));
|
||||
}
|
||||
|
||||
msm_gpiomux_install(sensorhub_configs,
|
||||
ARRAY_SIZE(sensorhub_configs));
|
||||
|
|
|
@ -1009,23 +1009,8 @@ static void __init reserve_ion_memory(void)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_ANDROID_RAM_CONSOLE
|
||||
static char bootreason[128] = {0,};
|
||||
int __init device_boot_reason(char *s)
|
||||
{
|
||||
int n;
|
||||
|
||||
if (*s == '=')
|
||||
s++;
|
||||
n = snprintf(bootreason, sizeof(bootreason),
|
||||
"Boot info:\n"
|
||||
"Last boot reason: %s\n", s);
|
||||
bootreason[n] = '\0';
|
||||
return 1;
|
||||
}
|
||||
__setup("bootreason", device_boot_reason);
|
||||
|
||||
static struct ram_console_platform_data ram_console_pdata = {
|
||||
.bootinfo = bootreason,
|
||||
.bootinfo = NULL,
|
||||
};
|
||||
|
||||
static struct platform_device ram_console_device = {
|
||||
|
@ -1239,6 +1224,7 @@ static void __init apq8064_reserve(void)
|
|||
static void __init apq8064_early_reserve(void)
|
||||
{
|
||||
reserve_info = &apq8064_reserve_info;
|
||||
|
||||
}
|
||||
#ifdef CONFIG_USB_EHCI_MSM_HSIC
|
||||
/* Bandwidth requests (zero) if no vote placed */
|
||||
|
@ -3460,6 +3446,7 @@ static uint8_t spm_power_collapse_with_rpm_krait_v3[] __initdata = {
|
|||
0x24, 0x30, 0x0f,
|
||||
};
|
||||
|
||||
|
||||
static struct msm_spm_seq_entry msm_spm_boot_cpu_seq_list[] __initdata = {
|
||||
[0] = {
|
||||
.mode = MSM_SPM_MODE_CLOCK_GATING,
|
||||
|
@ -4009,8 +3996,9 @@ static struct platform_device *common_devices[] __initdata = {
|
|||
&apq8064_device_hsusb_host,
|
||||
&android_usb_device,
|
||||
&msm_device_wcnss_wlan,
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
&apq8064_device_qup_spi_gsbi5,
|
||||
&apq8064_device_qup_spi_gsbi5, // Fortius AF
|
||||
#if 0
|
||||
&msm8930_device_qup_spi_gsbi1,
|
||||
#endif
|
||||
&msm_device_iris_fm,
|
||||
&apq8064_fmem_device,
|
||||
|
@ -4164,6 +4152,7 @@ static struct platform_device *cdp_devices[] __initdata = {
|
|||
#ifdef CONFIG_MSM_ROTATOR
|
||||
&msm_rotator_device,
|
||||
#endif
|
||||
&msm8064_pc_cntr,
|
||||
&msm8064_cpu_slp_status,
|
||||
&sec_device_jack,
|
||||
#ifdef CONFIG_SENSORS_SSP_C12SD
|
||||
|
@ -5066,7 +5055,6 @@ static void __init register_i2c_devices(void)
|
|||
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,
|
||||
|
@ -5114,6 +5102,7 @@ static void __init register_i2c_devices(void)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
static void enable_avc_i2c_bus(void)
|
||||
{
|
||||
int avc_i2c_en_mpp = PM8921_MPP_PM_TO_SYS(8);
|
||||
|
@ -5318,12 +5307,11 @@ static void __init apq8064_common_init(void)
|
|||
if (cpu_is_apq8064ab())
|
||||
apq8064ab_update_krait_spm();
|
||||
if (cpu_is_krait_v3()) {
|
||||
struct msm_pm_init_data_type *pdata =
|
||||
msm8064_pm_8x60.dev.platform_data;
|
||||
pdata->retention_calls_tz = false;
|
||||
msm_pm_set_tz_retention_flag(0);
|
||||
apq8064ab_update_retention_spm();
|
||||
} else {
|
||||
msm_pm_set_tz_retention_flag(1);
|
||||
}
|
||||
platform_device_register(&msm8064_pm_8x60);
|
||||
msm_spm_init(msm_spm_data, ARRAY_SIZE(msm_spm_data));
|
||||
msm_spm_l2_init(msm_spm_l2_data);
|
||||
msm_tsens_early_init(&apq_tsens_pdata);
|
||||
|
@ -5381,13 +5369,8 @@ static void __init apq8064_common_init(void)
|
|||
}
|
||||
}
|
||||
|
||||
rpmrs_level =
|
||||
msm_rpmrs_levels[MSM_PM_SLEEP_MODE_WAIT_FOR_INTERRUPT];
|
||||
msm_hsic_pdata.swfi_latency = rpmrs_level.latency_us;
|
||||
rpmrs_level =
|
||||
msm_rpmrs_levels[MSM_PM_SLEEP_MODE_POWER_COLLAPSE_STANDALONE];
|
||||
msm_hsic_pdata.standalone_latency = rpmrs_level.latency_us;
|
||||
|
||||
msm_hsic_pdata.swfi_latency =
|
||||
msm_rpmrs_levels[0].latency_us;
|
||||
if (machine_is_apq8064_mtp() || machine_is_JF()) {
|
||||
msm_hsic_pdata.log2_irq_thresh = 5,
|
||||
apq8064_device_hsic_host.dev.platform_data = &msm_hsic_pdata;
|
||||
|
@ -5573,17 +5556,6 @@ static void __init samsung_jf_init(void)
|
|||
#if defined(CONFIG_BATTERY_SAMSUNG)
|
||||
msm8960_init_battery();
|
||||
#endif
|
||||
|
||||
if (machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) {
|
||||
#ifdef CONFIG_SERIAL_MSM_HS
|
||||
/* GSBI6(2) - UARTDM_RX */
|
||||
mpq8064_gsbi6_uartdm_pdata.wakeup_irq = gpio_to_irq(15);
|
||||
mpq8064_device_uartdm_gsbi6.dev.platform_data =
|
||||
&mpq8064_gsbi6_uartdm_pdata;
|
||||
#endif
|
||||
platform_device_register(&mpq8064_device_uartdm_gsbi6);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SENSORS_SSP
|
||||
clear_ssp_gpio();
|
||||
sensor_power_on_vdd(SNS_PWR_ON, SNS_PWR_ON);
|
||||
|
|
|
@ -27,14 +27,76 @@
|
|||
#include "board-8064.h"
|
||||
#include <mach/apq8064-gpio.h>
|
||||
|
||||
#if 0
|
||||
|
||||
/* The SPI configurations apply to GSBI 5*/
|
||||
static struct gpiomux_setting gpio_spi_config = {
|
||||
.func = GPIOMUX_FUNC_2,
|
||||
.drv = GPIOMUX_DRV_12MA,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
};
|
||||
|
||||
static struct gpiomux_setting nc_init_cfg = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
.dir = GPIOMUX_IN,
|
||||
};
|
||||
static struct gpiomux_setting nc_sleep_cfg = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
.dir = GPIOMUX_IN,
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config apq8064_nc_config[] __initdata = {
|
||||
{
|
||||
.gpio = 20,
|
||||
.settings = {
|
||||
[GPIOMUX_ACTIVE] = &nc_init_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &nc_sleep_cfg,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 21,
|
||||
.settings = {
|
||||
[GPIOMUX_ACTIVE] = &nc_init_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &nc_sleep_cfg,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 29,
|
||||
.settings = {
|
||||
[GPIOMUX_ACTIVE] = &nc_init_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &nc_sleep_cfg,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config apq8064_nc_config_rev06[] __initdata = {
|
||||
#if !defined(CONFIG_FB_MSM_ENABLE_LCD_EN2)
|
||||
{
|
||||
.gpio = 20,
|
||||
.settings = {
|
||||
[GPIOMUX_ACTIVE] = &nc_init_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &nc_sleep_cfg,
|
||||
},
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.gpio = 21,
|
||||
.settings = {
|
||||
[GPIOMUX_ACTIVE] = &nc_init_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &nc_sleep_cfg,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 29,
|
||||
.settings = {
|
||||
[GPIOMUX_ACTIVE] = &nc_init_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &nc_sleep_cfg,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
|
||||
static struct gpiomux_setting gpio_eth_config = {
|
||||
|
@ -144,13 +206,7 @@ static struct gpiomux_setting gpio_vcap_config[] = {
|
|||
};
|
||||
|
||||
struct msm_gpiomux_config vcap_configs[] = {
|
||||
{
|
||||
.gpio = 20,
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_vcap_config[7],
|
||||
[GPIOMUX_ACTIVE] = &gpio_vcap_config[7],
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
.gpio = 25,
|
||||
.settings = {
|
||||
|
@ -418,9 +474,9 @@ static struct gpiomux_setting gsbi7_func2_cfg = {
|
|||
};
|
||||
|
||||
static struct gpiomux_setting gsbi3_suspended_cfg = {
|
||||
.func = GPIOMUX_FUNC_1,
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_KEEPER,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
};
|
||||
|
||||
static struct gpiomux_setting gsbi3_active_cfg = {
|
||||
|
@ -697,13 +753,7 @@ static struct msm_gpiomux_config apq8064_gsbi_configs[] __initdata = {
|
|||
[GPIOMUX_ACTIVE] = &gpio_i2c_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 20, /* GSBI1 QUP I2C_DATA */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gpio_i2c_config_sus,
|
||||
[GPIOMUX_ACTIVE] = &gpio_i2c_config,
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
.gpio = 24, /* GSBI2 I2C QUP SDA */
|
||||
.settings = {
|
||||
|
@ -721,29 +771,29 @@ static struct msm_gpiomux_config apq8064_gsbi_configs[] __initdata = {
|
|||
{
|
||||
.gpio = 51, /* GSBI5 QUP SPI_DATA_MOSI */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gsbi5_suspended_cfg,
|
||||
[GPIOMUX_ACTIVE] = &gsbi5_active_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &gpio_spi_config,
|
||||
[GPIOMUX_ACTIVE] = &gpio_spi_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 52, /* GSBI5 QUP SPI_DATA_MISO */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gsbi5_suspended_cfg,
|
||||
[GPIOMUX_ACTIVE] = &gsbi5_active_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &gpio_spi_config,
|
||||
[GPIOMUX_ACTIVE] = &gpio_spi_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 53, /* Funny CS0 */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gsbi5_suspended_cfg,
|
||||
[GPIOMUX_ACTIVE] = &gsbi5_active_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &gpio_spi_config,
|
||||
[GPIOMUX_ACTIVE] = &gpio_spi_config,
|
||||
},
|
||||
},
|
||||
{
|
||||
.gpio = 54, /* GSBI5 QUP SPI_CLK */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &gsbi5_suspended_cfg,
|
||||
[GPIOMUX_ACTIVE] = &gsbi5_active_cfg,
|
||||
[GPIOMUX_SUSPENDED] = &gpio_spi_config,
|
||||
[GPIOMUX_ACTIVE] = &gpio_spi_config,
|
||||
},
|
||||
},
|
||||
#if !defined(CONFIG_USB_EHCI_MSM_HSIC)
|
||||
|
@ -1301,7 +1351,7 @@ static struct msm_gpiomux_config sx150x_int_configs[] __initdata = {
|
|||
static struct gpiomux_setting sd_det_line = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_UP,
|
||||
.pull = GPIOMUX_PULL_NONE,
|
||||
.dir = GPIOMUX_IN,
|
||||
};
|
||||
|
||||
|
@ -1345,6 +1395,29 @@ static struct msm_gpiomux_config apq8064_leds_configs[] __initdata = {
|
|||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI
|
||||
static struct gpiomux_setting touch_irq_init_state = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
};
|
||||
|
||||
static struct gpiomux_setting touch_irq_sleep_state = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config apq8064_touch_irq_config[] = {
|
||||
{
|
||||
.gpio = 67, /* touch_irq__config */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &touch_irq_sleep_state,
|
||||
[GPIOMUX_ACTIVE] = &touch_irq_init_state,
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif
|
||||
#ifdef CONFIG_MFD_MAX77693
|
||||
static struct gpiomux_setting muic_init_cfg = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
|
@ -1370,6 +1443,56 @@ static struct msm_gpiomux_config apq8064_muic_config[] __initdata = {
|
|||
},
|
||||
};
|
||||
#endif
|
||||
#ifdef CONFIG_SAMSUNG_JACK
|
||||
static struct gpiomux_setting apq8064_sec_jack_cfg = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_NONE,
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config apq8064_sec_jack_configs[] __initdata = {
|
||||
{
|
||||
.gpio = 81,
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &apq8064_sec_jack_cfg,
|
||||
[GPIOMUX_ACTIVE] = &apq8064_sec_jack_cfg,
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif
|
||||
static struct gpiomux_setting auxpcm_sleep_cfg = {
|
||||
.func = GPIOMUX_FUNC_GPIO,
|
||||
.drv = GPIOMUX_DRV_2MA,
|
||||
.pull = GPIOMUX_PULL_DOWN,
|
||||
.dir = GPIOMUX_IN,
|
||||
};
|
||||
|
||||
static struct msm_gpiomux_config apq8064_auxpcm_configs[] __initdata = {
|
||||
{
|
||||
.gpio = 43, /* AUX_PCM_DOUT */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &auxpcm_sleep_cfg,
|
||||
}
|
||||
},
|
||||
{
|
||||
.gpio = 44, /* AUX_PCM_DIN */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &auxpcm_sleep_cfg,
|
||||
}
|
||||
},
|
||||
{
|
||||
.gpio = 45, /* AUX_PCM_SYNC */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &auxpcm_sleep_cfg,
|
||||
}
|
||||
},
|
||||
{
|
||||
.gpio = 46, /* AUX_PCM_CLK */
|
||||
.settings = {
|
||||
[GPIOMUX_SUSPENDED] = &auxpcm_sleep_cfg,
|
||||
}
|
||||
},
|
||||
};
|
||||
void __init apq8064_init_gpiomux(void)
|
||||
{
|
||||
int rc;
|
||||
|
@ -1430,6 +1553,9 @@ void __init apq8064_init_gpiomux(void)
|
|||
pr_debug("%s(): audio-auxpcm: Include GPIO configs"
|
||||
" as audio is not the primary user"
|
||||
" for these GPIO Pins\n", __func__);
|
||||
|
||||
msm_gpiomux_install(apq8064_auxpcm_configs,
|
||||
ARRAY_SIZE(apq8064_auxpcm_configs));
|
||||
|
||||
if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() ||
|
||||
machine_is_mpq8064_dtv())
|
||||
|
@ -1474,8 +1600,29 @@ void __init apq8064_init_gpiomux(void)
|
|||
msm_gpiomux_install(apq8064_leds_configs,
|
||||
ARRAY_SIZE(apq8064_leds_configs));
|
||||
#endif
|
||||
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI
|
||||
printk(KERN_INFO "%s: config touch_irq config.\n",__func__);
|
||||
msm_gpiomux_install(apq8064_touch_irq_config,
|
||||
ARRAY_SIZE(apq8064_touch_irq_config));
|
||||
#endif
|
||||
#ifdef CONFIG_MFD_MAX77693
|
||||
msm_gpiomux_install(apq8064_muic_config,
|
||||
ARRAY_SIZE(apq8064_muic_config));
|
||||
#endif
|
||||
#if defined (CONFIG_MACH_JACTIVE_EUR)
|
||||
if( system_rev >= 16 ) // rev0.6 + 10
|
||||
{
|
||||
msm_gpiomux_install(apq8064_nc_config_rev06,
|
||||
ARRAY_SIZE(apq8064_nc_config_rev06));
|
||||
}
|
||||
else
|
||||
{
|
||||
msm_gpiomux_install(apq8064_nc_config,
|
||||
ARRAY_SIZE(apq8064_nc_config));
|
||||
}
|
||||
#ifdef CONFIG_SAMSUNG_JACK
|
||||
msm_gpiomux_install(apq8064_sec_jack_configs,
|
||||
ARRAY_SIZE(apq8064_sec_jack_configs));
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -3312,6 +3312,11 @@ static uint8_t spm_power_collapse_without_rpm[] __initdata = {
|
|||
0x24, 0x30, 0x0f,
|
||||
};
|
||||
|
||||
static uint8_t spm_retention_cmd_sequence[] __initdata = {
|
||||
0x00, 0x05, 0x03, 0x0D,
|
||||
0x0B, 0x00, 0x0f,
|
||||
};
|
||||
|
||||
static uint8_t spm_retention_with_krait_v3_cmd_sequence[] __initdata = {
|
||||
0x42, 0x1B, 0x00,
|
||||
0x05, 0x03, 0x0D, 0x0B,
|
||||
|
|
|
@ -195,6 +195,9 @@ static struct synaptics_rmi4_platform_data rmi4_platformdata = {
|
|||
#ifdef CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_VIDEO_FULL_HD_PT_PANEL
|
||||
.tout1_on = touch_tout1_on,
|
||||
#endif
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
.hsync_onoff = lcd_hsync_onoff,
|
||||
#endif
|
||||
};
|
||||
|
||||
static struct i2c_board_info bus2_i2c_devices[] = {
|
||||
|
|
|
@ -509,6 +509,13 @@ config TOUCHSCREEN_SYNAPTICS_RMI4_I2C
|
|||
help
|
||||
This enables support for Synaptics RMI over I2C based touchscreens(ClearPad 3000).
|
||||
|
||||
config TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE
|
||||
bool "Synaptics prevent leakage i2c due to hsync"
|
||||
default n
|
||||
help
|
||||
There is leakage current on TSP I2C by HW defect. TSP I2C Failed.
|
||||
So To prevent leakage, hsync off, tsp on, hsync on.
|
||||
|
||||
config SYNA_MULTI_TOUCH
|
||||
tristate "Synaptics i2c touchscreen(ClearPad 3000) MutilTouch support"
|
||||
depends on TOUCHSCREEN_SYNAPTICS_RMI4_I2C
|
||||
|
|
|
@ -81,8 +81,9 @@
|
|||
#define STATUS_POLLING_PERIOD_US 3000
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
|
||||
#define FW_SUPPORT_HYNC(x) ((strncmp(x->product_id, "SY 03", 5))
|
||||
#define FW_NOT_SUPPORT_HYNC(x) ((strncmp(x->product_id, "SY 01", 5) == 0) || (strncmp(x->product_id, "S5000B", 6) == 0) || (strncmp(x->product_id, "SY 02", 5) == 0))
|
||||
#define FW_SUPPORT_HSYNC03(x) (strncmp(x->product_id, "SY 03", 5) == 0)
|
||||
#define FW_SUPPORT_HSYNC04(x) ((strncmp(x->product_id, "SY 04", 5) == 0)|| (strncmp(x->product_id, "S5000B", 6) == 0))
|
||||
#define FW_NOT_SUPPORT_HSYNC(x) ((strncmp(x->product_id, "SY 01", 5) == 0) || (strncmp(x->product_id, "SY 02", 5) == 0))
|
||||
#endif
|
||||
|
||||
static ssize_t fwu_sysfs_show_image(struct file *data_file,
|
||||
|
@ -967,24 +968,31 @@ static int fwu_start_reflash(bool mode, bool factory_fw)
|
|||
dev_info(&fwu->rmi4_data->i2c_client->dev,
|
||||
"%s: run fw update for FACTORY FIRMWARE\n",
|
||||
__func__);
|
||||
if (FW_NOT_SUPPORT_HYNC(fwu))
|
||||
if (FW_NOT_SUPPORT_HSYNC(fwu))
|
||||
snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
|
||||
"%s", FW_IMAGE_NAME_B0_NON_HSYNC_FAC);
|
||||
else
|
||||
else if (FW_SUPPORT_HSYNC03(fwu))
|
||||
snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
|
||||
"%s", FW_IMAGE_NAME_B0_HSYNC_FAC);
|
||||
else // FW_SUPPORT_HSYNC04(fwu)
|
||||
snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
|
||||
"%s", FW_IMAGE_NAME_B0_HSYNC04_FAC);
|
||||
} else {
|
||||
/* Read firmware according to ic revision */
|
||||
if ((fwu->rmi4_data->ic_revision_of_ic >> 4) == 0xB) {
|
||||
/* Read firmware according to panel ID */
|
||||
switch (fwu->rmi4_data->panel_revision) {
|
||||
case OCTA_PANEL_REVISION_34:
|
||||
if (FW_NOT_SUPPORT_HYNC(fwu))
|
||||
if (FW_NOT_SUPPORT_HSYNC(fwu))
|
||||
snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
|
||||
"%s", FW_IMAGE_NAME_B0_NON_HSYNC);
|
||||
else
|
||||
else if (FW_SUPPORT_HSYNC03(fwu)){
|
||||
snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
|
||||
"%s", FW_IMAGE_NAME_B0_HSYNC);
|
||||
}
|
||||
else // FW_SUPPORT_HSYNC04(fwu)
|
||||
snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
|
||||
"%s", FW_IMAGE_NAME_B0_HSYNC04);
|
||||
break;
|
||||
default:
|
||||
dev_info(&fwu->rmi4_data->i2c_client->dev,
|
||||
|
|
|
@ -3492,6 +3492,9 @@ int synaptics_rmi4_reset_device(struct synaptics_rmi4_data *rmi4_data)
|
|||
msleep(SYNAPTICS_HW_RESET_TIME);
|
||||
|
||||
} else {
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
rmi4_data->board->hsync_onoff(false);
|
||||
#endif
|
||||
rmi4_data->board->power(false);
|
||||
msleep(30);
|
||||
rmi4_data->board->power(true);
|
||||
|
@ -3503,6 +3506,9 @@ int synaptics_rmi4_reset_device(struct synaptics_rmi4_data *rmi4_data)
|
|||
else
|
||||
msleep(SYNAPTICS_HW_RESET_TIME);
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
rmi4_data->board->hsync_onoff(true);
|
||||
#endif
|
||||
retval = synaptics_rmi4_f54_set_control(rmi4_data);
|
||||
if (retval < 0)
|
||||
dev_err(&rmi4_data->i2c_client->dev,
|
||||
|
@ -3822,8 +3828,14 @@ static int __devinit synaptics_rmi4_probe(struct i2c_client *client,
|
|||
/* define panel version : M4 / M4+ */
|
||||
rmi4_data->panel_revision = rmi4_data->board->panel_revision;
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
rmi4_data->board->hsync_onoff(false);
|
||||
#endif
|
||||
rmi4_data->board->power(true);
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
rmi4_data->board->hsync_onoff(true);
|
||||
#endif
|
||||
rmi4_data->i2c_read = synaptics_rmi4_i2c_read;
|
||||
rmi4_data->i2c_write = synaptics_rmi4_i2c_write;
|
||||
rmi4_data->irq_enable = synaptics_rmi4_irq_enable;
|
||||
|
@ -4126,9 +4138,15 @@ static int synaptics_rmi4_input_open(struct input_dev *dev)
|
|||
|
||||
if (rmi4_data->touch_stopped) {
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
rmi4_data->board->hsync_onoff(false);
|
||||
#endif
|
||||
rmi4_data->board->power(true);
|
||||
rmi4_data->touch_stopped = false;
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
rmi4_data->board->hsync_onoff(true);
|
||||
#endif
|
||||
ret = synaptics_rmi4_reinit_device(rmi4_data);
|
||||
if (ret < 0) {
|
||||
dev_err(&rmi4_data->i2c_client->dev,
|
||||
|
@ -4230,10 +4248,16 @@ static void synaptics_rmi4_late_resume(struct early_suspend *h)
|
|||
if (rmi4_data->touch_stopped) {
|
||||
dev_info(&rmi4_data->i2c_client->dev, "%s\n", __func__);
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
rmi4_data->board->hsync_onoff(false);
|
||||
#endif
|
||||
rmi4_data->board->power(true);
|
||||
rmi4_data->touch_stopped = false;
|
||||
rmi4_data->current_page = MASK_8BIT;
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
rmi4_data->board->hsync_onoff(true);
|
||||
#endif
|
||||
retval = gpio_request(rmi4_data->board->gpio, "tsp_int");
|
||||
if (retval != 0) {
|
||||
dev_info(&rmi4_data->i2c_client->dev, "%s: tsp int request failed, ret=%d", __func__, retval);
|
||||
|
|
|
@ -52,6 +52,8 @@
|
|||
#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
|
||||
#define FW_IMAGE_NAME_B0_HSYNC "tsp_synaptics/jactive/synaptics_b0_hsync.fw"
|
||||
#define FW_IMAGE_NAME_B0_HSYNC_FAC "tsp_synaptics/jactive/synaptics_b0_hsync_fac.fw"
|
||||
#define FW_IMAGE_NAME_B0_HSYNC04 "tsp_synaptics/jactive/synaptics_b0_hsync04.fw"
|
||||
#define FW_IMAGE_NAME_B0_HSYNC04_FAC "tsp_synaptics/jactive/synaptics_b0_hsync04_fac.fw"
|
||||
|
||||
/* NON HYNC F/W will be removed */
|
||||
/* PRODUCT ID : SY 01, SY 02, S5000B */
|
||||
|
|
|
@ -527,6 +527,7 @@ static int32_t msm_actuator_init(struct msm_actuator_ctrl_t *a_ctrl,
|
|||
a_ctrl->reg_tbl_size *
|
||||
sizeof(struct msm_actuator_reg_params_t))) {
|
||||
kfree(a_ctrl->i2c_reg_tbl);
|
||||
a_ctrl->i2c_reg_tbl = NULL;
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
|
@ -537,6 +538,7 @@ static int32_t msm_actuator_init(struct msm_actuator_ctrl_t *a_ctrl,
|
|||
GFP_KERNEL);
|
||||
if (init_settings == NULL) {
|
||||
kfree(a_ctrl->i2c_reg_tbl);
|
||||
a_ctrl->i2c_reg_tbl = NULL;
|
||||
pr_err("%s Error allocating memory for init_settings\n",
|
||||
__func__);
|
||||
return -EFAULT;
|
||||
|
@ -547,6 +549,7 @@ static int32_t msm_actuator_init(struct msm_actuator_ctrl_t *a_ctrl,
|
|||
sizeof(struct reg_settings_t))) {
|
||||
kfree(init_settings);
|
||||
kfree(a_ctrl->i2c_reg_tbl);
|
||||
a_ctrl->i2c_reg_tbl = NULL;
|
||||
pr_err("%s Error copying init_settings\n",
|
||||
__func__);
|
||||
return -EFAULT;
|
||||
|
@ -558,6 +561,7 @@ static int32_t msm_actuator_init(struct msm_actuator_ctrl_t *a_ctrl,
|
|||
kfree(init_settings);
|
||||
if (rc < 0) {
|
||||
kfree(a_ctrl->i2c_reg_tbl);
|
||||
a_ctrl->i2c_reg_tbl = NULL;
|
||||
pr_err("%s Error actuator_init_focus\n",
|
||||
__func__);
|
||||
return -EFAULT;
|
||||
|
|
|
@ -522,6 +522,12 @@ config FB_MSM_OVERLAY0_WRITEBACK
|
|||
---help---
|
||||
Support for MDP4 OVERLAY0 write back mode
|
||||
|
||||
config FB_MSM_ENABLE_LCD_EN2
|
||||
bool "LCD_EN2 Enable for J Active project"
|
||||
default n
|
||||
---help---
|
||||
Enable LCD EN2 pin to control AVDD
|
||||
|
||||
config FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT
|
||||
bool
|
||||
select FB_MSM_MIPI_DSI_RENESAS_TFT
|
||||
|
|
|
@ -71,7 +71,12 @@
|
|||
|
||||
int play_speed_1_5;
|
||||
#if defined(CONFIG_FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT_PANEL)
|
||||
#if defined (CONFIG_MACH_JACTIVE_EUR) || defined (CONFIG_MACH_JACTIVE_ATT)
|
||||
static int cabc = -1;
|
||||
#else
|
||||
static int cabc = 0;
|
||||
#endif
|
||||
|
||||
extern int mipi_samsung_cabc_onoff ( int enable );
|
||||
#endif
|
||||
|
||||
|
@ -1032,7 +1037,12 @@ static ssize_t cabc_store(struct device *dev,
|
|||
|
||||
return size;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT_PANEL)
|
||||
int is_cabc_on ( void )
|
||||
{
|
||||
return cabc;
|
||||
}
|
||||
#endif
|
||||
static DEVICE_ATTR(cabc, 0664,
|
||||
cabc_show,
|
||||
cabc_store);
|
||||
|
|
|
@ -133,6 +133,9 @@ struct mdnie_lite_tun_type {
|
|||
void mdnie_lite_tuning_init(void);
|
||||
void init_mdnie_class(void);
|
||||
void is_negative_on(void);
|
||||
#if defined(CONFIG_FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT_PANEL)
|
||||
int is_cabc_on ( void );
|
||||
#endif
|
||||
|
||||
void coordinate_tunning(int x, int y);
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -170,6 +170,9 @@ static int mipi_dsi_on(struct platform_device *pdev)
|
|||
u32 dummy_xres, dummy_yres;
|
||||
int target_type = 0;
|
||||
u32 tmp;
|
||||
#if defined(CONFIG_FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT_PANEL)
|
||||
static int is_booting = 1;
|
||||
#endif
|
||||
|
||||
pr_debug("%s+:\n", __func__);
|
||||
|
||||
|
@ -185,6 +188,23 @@ static int mipi_dsi_on(struct platform_device *pdev)
|
|||
mipi_dsi_pdata->power_common();
|
||||
|
||||
#if defined(CONFIG_SUPPORT_SECOND_POWER)
|
||||
#if defined(CONFIG_FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT_PANEL)
|
||||
if( is_booting == 1 )
|
||||
{
|
||||
is_booting = 0;
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
usleep(5000);
|
||||
if (mipi_dsi_pdata && mipi_dsi_pdata->active_reset)
|
||||
mipi_dsi_pdata->active_reset(0); /* low */
|
||||
usleep(2000);
|
||||
|
||||
if (mipi_dsi_pdata && mipi_dsi_pdata->panel_power_save)
|
||||
mipi_dsi_pdata->panel_power_save(0);
|
||||
msleep(10);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
if (mipi_dsi_pdata && mipi_dsi_pdata->panel_power_save)
|
||||
mipi_dsi_pdata->panel_power_save(1);
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,11 @@ static struct mipi_panel_data mipi_pd;
|
|||
enum {
|
||||
GAMMA_0CD = 1,
|
||||
GAMMA_5CD = 2,
|
||||
#if defined (CONFIG_MACH_JACTIVE_EUR) || defined (CONFIG_MACH_JACTIVE_ATT)
|
||||
GAMMA_10CD = 3, // MIN 10 from platform
|
||||
#else
|
||||
GAMMA_10CD = 4, // MIN 10 from platform
|
||||
#endif
|
||||
GAMMA_15CD = 7,
|
||||
GAMMA_20CD = 10,
|
||||
GAMMA_25CD = 13,
|
||||
|
@ -121,16 +125,23 @@ static char renesas_backlight_control[] = {
|
|||
0x2C,
|
||||
};
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
static char renesas_teon_control[] = {
|
||||
0x35,
|
||||
0x01,
|
||||
};
|
||||
|
||||
static char renesas_teoff_control[] = {
|
||||
0x35,
|
||||
0x00,
|
||||
};
|
||||
#endif
|
||||
|
||||
static char renesas_memory_access_control[] = {
|
||||
0x36,
|
||||
0xC0,
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_MACH_JACTIVE_ATT) && !defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
static char renesas_F0_control[] = {
|
||||
0xF0,
|
||||
0x5A,0x5A,
|
||||
|
@ -157,12 +168,25 @@ static char renesas_FB_control[] = {
|
|||
0x19,0x1D,0x20,0x22,0x24,0x23,0x22,0x1C,0x14,0x10,
|
||||
0x12,0x15,0x1B,0x1A,0x18,0x15,0x10,0x05,0x06,
|
||||
};
|
||||
|
||||
#endif
|
||||
static char renesas_display_on[] = { 0x29, /* no param */ };
|
||||
static char renesas_display_off[] = { 0x28, /* no param */ };
|
||||
static char renesas_sleep_in[] = { 0x10, /* no param */ };
|
||||
static char renesas_sleep_out[] = { 0x11, /* no param */ };
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
static char renesas_cabc_off_test[] = {
|
||||
0xCE,
|
||||
0x80, 0x19, 0x19, 0x19, 0x19,
|
||||
0x19, 0x19, 0x19, 0x19, 0x19,
|
||||
0x19, 0x19, 0x19, 0x19,
|
||||
};
|
||||
|
||||
static char renesas_cabc_on_test[] = {
|
||||
0xCE,
|
||||
0x00,
|
||||
};
|
||||
#endif
|
||||
static struct dsi_cmd_desc renesas_ready_to_on_cmds[] = {
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_brightness_setting), renesas_brightness_setting},
|
||||
|
@ -173,24 +197,34 @@ static struct dsi_cmd_desc renesas_ready_to_on_cmds[] = {
|
|||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_backlight_control), renesas_backlight_control},
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_teon_control), renesas_teon_control},
|
||||
#endif
|
||||
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 120,
|
||||
sizeof(renesas_sleep_out), renesas_sleep_out},
|
||||
|
||||
#if !defined(CONFIG_MACH_JACTIVE_ATT) && !defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0, sizeof(renesas_F0_control), renesas_F0_control},
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0, sizeof(renesas_FA_control), renesas_FA_control},
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0, sizeof(renesas_FB_control), renesas_FB_control},
|
||||
|
||||
#endif
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_display_on), renesas_display_on},
|
||||
};
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
static struct dsi_cmd_desc panel_off_cmds[] = {
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 40, sizeof(renesas_display_off), renesas_display_off},
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 120, sizeof(renesas_sleep_in), renesas_sleep_in},
|
||||
};
|
||||
#else
|
||||
static struct dsi_cmd_desc panel_off_cmds[] = {
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_display_off), renesas_display_off},
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
static struct dsi_cmd_desc panel_late_on_cmds[] = {
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 5,
|
||||
|
@ -231,16 +265,35 @@ static struct dsi_cmd_desc brightness_packet[] = {
|
|||
|
||||
#if defined(AUTO_BRIGHTNESS_CABC_FUNCTION)
|
||||
static struct dsi_cmd_desc panel_cabc_enable_cmds[] = {
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
{DTYPE_GEN_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_cabc_on_test), renesas_cabc_on_test},
|
||||
#endif
|
||||
{DTYPE_GEN_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_cabc_enable_control), renesas_cabc_enable_control},
|
||||
};
|
||||
|
||||
static struct dsi_cmd_desc panel_cabc_disable_cmds[] = {
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
{DTYPE_GEN_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_cabc_off_test), renesas_cabc_off_test},
|
||||
#endif
|
||||
{DTYPE_GEN_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_cabc_disable_control), renesas_cabc_disable_control},
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
static struct dsi_cmd_desc panel_hsync_on_cmds[] = {
|
||||
{DTYPE_GEN_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_teon_control), renesas_teon_control},
|
||||
};
|
||||
|
||||
static struct dsi_cmd_desc panel_hsync_off_cmds[] = {
|
||||
{DTYPE_GEN_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(renesas_teoff_control), renesas_teoff_control},
|
||||
};
|
||||
#endif
|
||||
static int get_candela_index(int bl_level)
|
||||
{
|
||||
int backlightlevel;
|
||||
|
@ -462,6 +515,12 @@ static struct mipi_panel_data mipi_pd = {
|
|||
.cabc_disable = {panel_cabc_disable_cmds
|
||||
, ARRAY_SIZE(panel_cabc_disable_cmds)},
|
||||
#endif
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
.hsync_on = {panel_hsync_on_cmds
|
||||
, ARRAY_SIZE(panel_hsync_on_cmds)},
|
||||
.hsync_off = {panel_hsync_off_cmds
|
||||
, ARRAY_SIZE(panel_hsync_off_cmds)},
|
||||
#endif
|
||||
};
|
||||
|
||||
static struct mipi_dsi_phy_ctrl dsi_video_mode_phy_db = {
|
||||
|
@ -469,8 +528,13 @@ static struct mipi_dsi_phy_ctrl dsi_video_mode_phy_db = {
|
|||
/* regulator */
|
||||
.regulator = {0x03, 0x0a, 0x04, 0x00, 0x20},
|
||||
/* timing */
|
||||
#if defined (CONFIG_MACH_JACTIVE_EUR) || defined (CONFIG_MACH_JACTIVE_ATT)
|
||||
.timing = {0x5C, 0x37, 0x39, 0x00, 0x62, 0x57, 0x3B, 0x3B,
|
||||
0x44, 0x03, 0x04, 0xa0},
|
||||
#else
|
||||
.timing = {0xD9, 0x40, 0x3C, 0x00, 0x52, 0x5E, 0x32, 0x40,
|
||||
0x3C, 0x03, 0x04, 0xa0},
|
||||
#endif
|
||||
/* phy ctrl */
|
||||
.ctrl = {0x5f, 0x00, 0x00, 0x10},
|
||||
/* strength */
|
||||
|
@ -526,9 +590,11 @@ static int __init mipi_cmd_samsung_tft_full_hd_pt_init(void)
|
|||
pinfo.bl_max = 255;
|
||||
pinfo.bl_min = 1;
|
||||
pinfo.fb_num = 2;
|
||||
|
||||
#if defined (CONFIG_MACH_JACTIVE_EUR) || defined (CONFIG_MACH_JACTIVE_ATT)
|
||||
pinfo.clk_rate = 906000000;
|
||||
#else
|
||||
pinfo.clk_rate = 898000000;
|
||||
|
||||
#endif
|
||||
pinfo.mipi.mode = DSI_VIDEO_MODE;
|
||||
pinfo.mipi.pulse_mode_hsa_he = FALSE;
|
||||
pinfo.mipi.hfp_power_stop = TRUE;
|
||||
|
|
|
@ -132,6 +132,16 @@ static int mipi_samsung_disp_send_cmd(struct msm_fb_data_type *mfd,
|
|||
cmd_desc = msd.mpd->cabc_disable.cmd;
|
||||
cmd_size = msd.mpd->cabc_disable.size;
|
||||
break;
|
||||
#endif
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
case PANEL_HSYNC_ON:
|
||||
cmd_desc = msd.mpd->hsync_on.cmd;
|
||||
cmd_size = msd.mpd->hsync_on.size;
|
||||
break;
|
||||
case PANEL_HSYNC_OFF:
|
||||
cmd_desc = msd.mpd->hsync_off.cmd;
|
||||
cmd_size = msd.mpd->hsync_off.size;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
goto unknown_command;
|
||||
|
@ -168,6 +178,43 @@ unknown_command:
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
void lcd_hsync_onoff(bool onoff)
|
||||
{
|
||||
struct msm_fb_data_type *mfd;
|
||||
mfd = platform_get_drvdata(msd.msm_pdev);
|
||||
|
||||
if (unlikely(!mfd)) { pr_err("%s : panel no mfd",__func__); return;}
|
||||
// return -ENODEV;
|
||||
if (unlikely(mfd->key != MFD_KEY)) { pr_err("%s : panel mfd invlaid",__func__); return;}
|
||||
// return -EINVAL;
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR) /* HW DEFECT under REV 0.5 */
|
||||
if( system_rev > 16 )
|
||||
return;
|
||||
#endif
|
||||
|
||||
if (mfd->panel_power_on == TRUE)
|
||||
{
|
||||
if( onoff )
|
||||
{
|
||||
msleep(30);
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_HSYNC_ON, true);
|
||||
pr_info("%s : HSYNC On\n",__func__);
|
||||
}
|
||||
else
|
||||
{
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_HSYNC_OFF, true);
|
||||
msleep(10); /* Need time to discharging by capacitance*/
|
||||
pr_info("%s : HSYNC Off\n",__func__);
|
||||
}
|
||||
}
|
||||
else
|
||||
pr_err("%s : panel power off\n",__func__);
|
||||
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
static char manufacture_id1[2] = {0xDA, 0x00}; /* DTYPE_DCS_READ */
|
||||
static char manufacture_id2[2] = {0xDB, 0x00}; /* DTYPE_DCS_READ */
|
||||
static char manufacture_id3[2] = {0xDC, 0x00}; /* DTYPE_DCS_READ */
|
||||
|
@ -241,8 +288,52 @@ static void execute_panel_init(struct msm_fb_data_type *mfd)
|
|||
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_MTP_DISABLE, false);
|
||||
}
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
static int mipi_samsung_disp_on_in_video_engine(struct platform_device *pdev)
|
||||
{
|
||||
struct msm_fb_data_type *mfd;
|
||||
|
||||
printk(KERN_INFO "[lcd] mipi_samsung_disp_on_in_video_engine start\n" );
|
||||
|
||||
mfd = platform_get_drvdata(pdev);
|
||||
if (unlikely(!mfd))
|
||||
return -ENODEV;
|
||||
if (unlikely(mfd->key != MFD_KEY))
|
||||
return -EINVAL;
|
||||
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_ON, false);
|
||||
mfd->resume_state = MIPI_RESUME_STATE;
|
||||
|
||||
#if defined(RUMTIME_MIPI_CLK_CHANGE)
|
||||
current_fps = mfd->panel_info.mipi.frame_rate;
|
||||
#endif
|
||||
|
||||
#if defined(AUTO_BRIGHTNESS_CABC_FUNCTION)
|
||||
is_disp_on = 1;
|
||||
|
||||
if( is_cabc_on() == true )
|
||||
{
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_CABC_ENABLE, false);
|
||||
is_cabc_delayed = 0;
|
||||
printk ( KERN_ERR "%s-PANEL_CABC_ENABLE(keystring)\n", __func__ );
|
||||
}
|
||||
else if( (is_cabc_on() != false) && ((is_cabc_delayed == 1) || (msd.mpd->siop_status == true)) )
|
||||
{
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_CABC_ENABLE, false);
|
||||
is_cabc_delayed = 0;
|
||||
printk ( KERN_ERR "%s-PANEL_CABC_ENABLE(delayed)\n", __func__ );
|
||||
}
|
||||
#endif
|
||||
|
||||
printk(KERN_INFO "[lcd] mipi_samsung_disp_on_in_video_engine end %d\n", gpio_get_value(err_fg_gpio));
|
||||
|
||||
#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
|
||||
enable_irq(PM8921_GPIO_IRQ(PM8921_IRQ_BASE, PMIC_GPIO_ERR_FG));
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
static int mipi_samsung_disp_on(struct platform_device *pdev)
|
||||
{
|
||||
struct msm_fb_data_type *mfd = NULL;
|
||||
|
@ -270,7 +361,7 @@ static int mipi_samsung_disp_on(struct platform_device *pdev)
|
|||
mipi_samsung_disp_send_cmd(mfd,
|
||||
PANEL_NEED_FLIP, false);
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_MACH_JACTIVE_ATT) && !defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_ON, false);
|
||||
mfd->resume_state = MIPI_RESUME_STATE;
|
||||
|
||||
|
@ -301,6 +392,7 @@ static int mipi_samsung_disp_on(struct platform_device *pdev)
|
|||
|
||||
#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
|
||||
enable_irq(PM8921_GPIO_IRQ(PM8921_IRQ_BASE, PMIC_GPIO_ERR_FG));
|
||||
#endif
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
@ -340,22 +432,34 @@ static int mipi_samsung_disp_off(struct platform_device *pdev)
|
|||
static void __devinit mipi_samsung_disp_shutdown(struct platform_device *pdev)
|
||||
{
|
||||
static struct mipi_dsi_platform_data *mipi_dsi_pdata = NULL;
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
struct msm_fb_data_type *mfd = NULL;
|
||||
#endif
|
||||
if (pdev->id != 0)
|
||||
return;
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
mfd = platform_get_drvdata(msd.msm_pdev);
|
||||
if (unlikely(!mfd))
|
||||
return;
|
||||
#endif
|
||||
mipi_dsi_pdata = pdev->dev.platform_data;
|
||||
if (mipi_dsi_pdata == NULL) {
|
||||
pr_err("LCD Power off failure: No Platform Data\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
mfd->resume_state = MIPI_SUSPEND_STATE;
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_OFF, false);
|
||||
#endif
|
||||
if (mipi_dsi_pdata && mipi_dsi_pdata->active_reset)
|
||||
mipi_dsi_pdata->active_reset(0); /* low */
|
||||
|
||||
usleep(2000); /*1ms delay(minimum) required between reset low and AVDD off*/
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
msleep ( 10 ); // need more delay for POWER OFF SIGNAL
|
||||
#endif
|
||||
|
||||
if (mipi_dsi_pdata && mipi_dsi_pdata->panel_power_save)
|
||||
mipi_dsi_pdata->panel_power_save(0);
|
||||
|
||||
|
@ -472,14 +576,30 @@ int mipi_samsung_cabc_onoff ( int enable )
|
|||
{
|
||||
if( enable )
|
||||
{
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR) || defined (CONFIG_MACH_JACTIVE_ATT)
|
||||
if( is_cabc_on() != false )
|
||||
{
|
||||
#endif
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_CABC_ENABLE, false);
|
||||
printk ( KERN_ERR "@@@@@%s-PANEL_CABC_ENABLE\n", __func__ );
|
||||
}
|
||||
else
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR) || defined (CONFIG_MACH_JACTIVE_ATT)
|
||||
printk ( KERN_ERR "@@@@@%s-CABC KEYSTRING is OFF, so skip ENABLE\n", __func__ );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( is_cabc_on() != true )
|
||||
#endif
|
||||
{
|
||||
mipi_samsung_disp_send_cmd(mfd, PANEL_CABC_DISABLE, false);
|
||||
printk ( KERN_ERR "@@@@@%s-PANEL_CABC_DISABLE\n", __func__ );
|
||||
}
|
||||
#if defined(CONFIG_MACH_JACTIVE_EUR) || defined (CONFIG_MACH_JACTIVE_ATT)
|
||||
else
|
||||
printk ( KERN_ERR "@@@@@%s-CABC KEYSTRING is ON, so skip DISABLE\n", __func__ );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -734,7 +854,31 @@ static char tuning_file[MAX_FILE_NAME];
|
|||
|
||||
static char mdni_tuning1[TUNE_FIRST_SIZE];
|
||||
static char mdni_tuning2[TUNE_SECOND_SIZE];
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
static char level1_key_enable[] = {
|
||||
0xF0,
|
||||
0x5A, 0x5A,
|
||||
};
|
||||
|
||||
static char level1_key_disable[] = {
|
||||
0xF0,
|
||||
0xA5, 0xA5,
|
||||
};
|
||||
|
||||
static struct dsi_cmd_desc mdni_tune_cmd[] = {
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(level1_key_enable), level1_key_enable},
|
||||
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(mdni_tuning1), mdni_tuning1},
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(mdni_tuning2), mdni_tuning2},
|
||||
|
||||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(level1_key_disable), level1_key_disable},
|
||||
};
|
||||
|
||||
#else
|
||||
static char level1_key[] = {
|
||||
0xF0,
|
||||
0x5A, 0x5A,
|
||||
|
@ -756,7 +900,7 @@ static struct dsi_cmd_desc mdni_tune_cmd[] = {
|
|||
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
|
||||
sizeof(mdni_tuning2), mdni_tuning2},
|
||||
};
|
||||
|
||||
#endif
|
||||
static char char_to_dec(char data1, char data2)
|
||||
{
|
||||
char dec;
|
||||
|
@ -1125,6 +1269,9 @@ static struct platform_driver this_driver = {
|
|||
};
|
||||
|
||||
static struct msm_fb_panel_data samsung_panel_data = {
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
.late_init = mipi_samsung_disp_on_in_video_engine,
|
||||
#endif
|
||||
.on = mipi_samsung_disp_on,
|
||||
.off = mipi_samsung_disp_off,
|
||||
.set_backlight = mipi_samsung_disp_backlight,
|
||||
|
|
|
@ -50,6 +50,10 @@ enum mipi_samsung_cmd_list {
|
|||
PANEL_CABC_ENABLE,
|
||||
PANEL_CABC_DISABLE,
|
||||
#endif
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
PANEL_HSYNC_ON,
|
||||
PANEL_HSYNC_OFF,
|
||||
#endif
|
||||
};
|
||||
|
||||
enum {
|
||||
|
@ -95,6 +99,10 @@ struct mipi_panel_data {
|
|||
struct cmd_set cabc_enable;
|
||||
struct cmd_set cabc_disable;
|
||||
#endif
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
struct cmd_set hsync_on;
|
||||
struct cmd_set hsync_off;
|
||||
#endif
|
||||
|
||||
unsigned int manufacture_id;
|
||||
struct mipi_samsung_driver_data *msd;
|
||||
|
|
|
@ -158,6 +158,8 @@ fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_b0
|
|||
ifdef CONFIG_MACH_JACTIVE_EUR
|
||||
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_hsync.fw
|
||||
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_hsync_fac.fw
|
||||
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_hsync04.fw
|
||||
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_hsync04_fac.fw
|
||||
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_non_hsync.fw
|
||||
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_non_hsync_fac.fw
|
||||
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_d0.fw
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -70,9 +70,15 @@ struct synaptics_rmi4_platform_data {
|
|||
#ifdef CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_VIDEO_FULL_HD_PT_PANEL
|
||||
int (*tout1_on)(void);
|
||||
#endif
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
void (*hsync_onoff)(bool onoff);
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_VIDEO_FULL_HD_PT_PANEL
|
||||
extern int touch_tout1_on(void);
|
||||
#endif
|
||||
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_PREVENT_HSYNC_LEAKAGE)
|
||||
extern void lcd_hsync_onoff(bool onoff);
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -253,6 +253,11 @@
|
|||
#define MSM_CAM_IOCTL_INTF_MCTL_MAPPING_CFG \
|
||||
_IOR(MSM_CAM_IOCTL_MAGIC, 71, struct intf_mctl_mapping_cfg *)
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define MSM_CAM_IOCTL_VFE_STATS_VERSION\
|
||||
_IOWR(MSM_CAM_IOCTL_MAGIC, 72, uint32_t *)
|
||||
#endif
|
||||
|
||||
struct ioctl_native_cmd {
|
||||
unsigned short mode;
|
||||
unsigned short address;
|
||||
|
@ -320,7 +325,11 @@ struct msm_mctl_post_proc_cmd {
|
|||
#define PP_PREV BIT(2)
|
||||
#define PP_THUMB BIT(3)
|
||||
#define PP_RDI BIT(4)
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define PP_MASK (PP_SNAP|PP_RAW_SNAP|PP_PREV|PP_THUMB|PP_RDI_PREV)
|
||||
#else
|
||||
#define PP_MASK (PP_SNAP|PP_RAW_SNAP|PP_PREV|PP_THUMB)
|
||||
#endif
|
||||
|
||||
#define MSM_CAM_CTRL_CMD_DONE 0
|
||||
#define MSM_CAM_SENSOR_VFE_CMD 1
|
||||
|
@ -915,8 +924,13 @@ struct msm_stats_buf {
|
|||
#define MSM_V4L2_PID_INST_HANDLE (V4L2_CID_PRIVATE_BASE+16)
|
||||
#define MSM_V4L2_PID_MMAP_INST (V4L2_CID_PRIVATE_BASE+17)
|
||||
#define MSM_V4L2_PID_PP_PLANE_INFO (V4L2_CID_PRIVATE_BASE+18)
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define MSM_V4L2_PID_PREVIEW_SIZE (V4L2_CID_PRIVATE_BASE+19)
|
||||
#define MSM_V4L2_PID_MAX MSM_V4L2_PID_PREVIEW_SIZE
|
||||
#else
|
||||
#define MSM_V4L2_PID_AVTIMER (V4L2_CID_PRIVATE_BASE+19)
|
||||
#define MSM_V4L2_PID_MAX MSM_V4L2_PID_AVTIMER
|
||||
#endif
|
||||
|
||||
/* camera operation mode for video recording - two frame output queues */
|
||||
#define MSM_V4L2_CAM_OP_DEFAULT 0
|
||||
|
@ -1024,28 +1038,136 @@ struct msm_snapshot_pp_status {
|
|||
#define CFG_CONFIG_VREG_ARRAY 52
|
||||
#define CFG_CONFIG_CLK_ARRAY 53
|
||||
#define CFG_GPIO_OP 54
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define CFG_EEPROM_DIRECT_DATA_READ 55
|
||||
#define CFG_EEPROM_DIRECT_DATA_WRITE 56
|
||||
#define CFG_EEPROM_DIRECT_DATA_ERASE 57
|
||||
#define CFG_SET_STREAMING_MODE 58
|
||||
#define CFG_SET_VISION_AE 59
|
||||
#define CFG_FINAL_AF 60 //SEMCO Request by Lizk
|
||||
#define CFG_MAX 61
|
||||
#else
|
||||
#define CFG_SET_VISION_MODE 55
|
||||
#define CFG_SET_VISION_AE 56
|
||||
#define CFG_HDR_UPDATE 57
|
||||
#define CFG_ACTUAOTOR_REG_INIT 58
|
||||
#define CFG_MAX 59
|
||||
#endif
|
||||
|
||||
|
||||
#define MOVE_NEAR 0
|
||||
#define MOVE_FAR 1
|
||||
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define CAMERA_MODE_INIT 0
|
||||
#define CAMERA_MODE_PREVIEW 1
|
||||
#define CAMERA_MODE_CAPTURE 2
|
||||
#define CAMERA_MODE_RECORDING 3
|
||||
|
||||
#define SENSOR_SNAPSHOT_MODE 0
|
||||
#define SENSOR_RAW_SNAPSHOT_MODE 1
|
||||
#define SENSOR_PREVIEW_MODE 2
|
||||
#define SENSOR_VIDEO_MODE 3
|
||||
#define SENSOR_HFR_60FPS_MODE 4
|
||||
#define SENSOR_HFR_90FPS_MODE 5
|
||||
#define SENSOR_HFR_120FPS_MODE 6
|
||||
#define SENSOR_INVALID_MODE 7
|
||||
#else
|
||||
#define SENSOR_PREVIEW_MODE 0
|
||||
#define SENSOR_SNAPSHOT_MODE 1
|
||||
#define SENSOR_RAW_SNAPSHOT_MODE 2
|
||||
#define SENSOR_HFR_60FPS_MODE 3
|
||||
#define SENSOR_HFR_90FPS_MODE 4
|
||||
#define SENSOR_HFR_120FPS_MODE 5
|
||||
#endif
|
||||
|
||||
#define SENSOR_QTR_SIZE 0
|
||||
#define SENSOR_FULL_SIZE 1
|
||||
#define SENSOR_QVGA_SIZE 2
|
||||
#define SENSOR_INVALID_SIZE 3
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define CAMERA_EFFECT_OFF 0
|
||||
#define CAMERA_EFFECT_MONO 1
|
||||
#define CAMERA_EFFECT_NEGATIVE 2
|
||||
#define CAMERA_EFFECT_SOLARIZE 3
|
||||
#define CAMERA_EFFECT_SEPIA 4
|
||||
#define CAMERA_EFFECT_POSTERIZE 5
|
||||
#define CAMERA_EFFECT_WHITEBOARD 6
|
||||
#define CAMERA_EFFECT_BLACKBOARD 7
|
||||
#define CAMERA_EFFECT_AQUA 8
|
||||
#define CAMERA_EFFECT_EMBOSS 9
|
||||
#define CAMERA_EFFECT_SKETCH 10
|
||||
#define CAMERA_EFFECT_NEON 11
|
||||
#define CAMERA_EFFECT_WARM 12
|
||||
#define CAMERA_EFFECT_COLD 13
|
||||
#define CAMERA_EFFECT_WASHED 14
|
||||
#define CAMERA_EFFECT_VINTAGE_WARM 15 //13
|
||||
#define CAMERA_EFFECT_VINTAGE_COLD 16 //14
|
||||
#define CAMERA_EFFECT_POINT_COLOR_1 17 //15
|
||||
#define CAMERA_EFFECT_POINT_COLOR_2 18 //16
|
||||
#define CAMERA_EFFECT_POINT_COLOR_3 19 //17
|
||||
#define CAMERA_EFFECT_POINT_COLOR_4 20 //18
|
||||
#define CAMERA_EFFECT_USER_DEFINED1 21 //19
|
||||
#define CAMERA_EFFECT_USER_DEFINED2 22 //20
|
||||
#define CAMERA_EFFECT_USER_DEFINED3 23 //21
|
||||
#define CAMERA_EFFECT_USER_DEFINED4 24 //22
|
||||
#define CAMERA_EFFECT_USER_DEFINED5 25 //23
|
||||
#define CAMERA_EFFECT_USER_DEFINED6 26 //24
|
||||
#define CAMERA_EFFECT_MAX 27 //25
|
||||
|
||||
#define CAMERA_WHITE_BALANCE_AUTO 1
|
||||
#define CAMERA_WHITE_BALANCE_INCANDESCENT 3
|
||||
#define CAMERA_WHITE_BALANCE_FLUORESCENT 4
|
||||
#define CAMERA_WHITE_BALANCE_DAYLIGHT 5
|
||||
#define CAMERA_WHITE_BALANCE_CLOUDY_DAYLIGHT 6
|
||||
|
||||
#define CAMERA_FLASH_OFF 0
|
||||
#define CAMERA_FLASH_ON 2
|
||||
#define CAMERA_FLASH_AUTO 1
|
||||
#define CAMERA_FLASH_TORCH 3
|
||||
|
||||
#define CAMERA_EV_M4 0
|
||||
#define CAMERA_EV_M3 1
|
||||
#define CAMERA_EV_M2 2
|
||||
#define CAMERA_EV_M1 3
|
||||
#define CAMERA_EV_DEFAULT 4
|
||||
#define CAMERA_EV_P1 5
|
||||
#define CAMERA_EV_P2 6
|
||||
#define CAMERA_EV_P3 7
|
||||
#define CAMERA_EV_P4 8
|
||||
|
||||
#define CAMERA_ISO_MODE_AUTO 0
|
||||
#define CAMERA_ISO_MODE_50 1
|
||||
#define CAMERA_ISO_MODE_100 2
|
||||
#define CAMERA_ISO_MODE_200 3
|
||||
#define CAMERA_ISO_MODE_400 4
|
||||
#define CAMERA_ISO_MODE_800 5
|
||||
|
||||
#define CAMERA_AVERAGE 0
|
||||
#define CAMERA_CENTER_WEIGHT 1
|
||||
#define CAMERA_SPOT 2
|
||||
#define CAMERA_SCENE_AUTO 1
|
||||
#define CAMERA_SCENE_LANDSCAPE 2
|
||||
#define CAMERA_SCENE_BEACH 4
|
||||
#define CAMERA_SCENE_SUNSET 5
|
||||
#define CAMERA_SCENE_NIGHT 6
|
||||
#define CAMERA_SCENE_PORTRAIT 7
|
||||
#define CAMERA_SCENE_AGAINST_LIGHT 8
|
||||
#define CAMERA_SCENE_SPORT 9
|
||||
#define CAMERA_SCENE_CANDLE 12
|
||||
#define CAMERA_SCENE_FIRE 13
|
||||
#define CAMERA_SCENE_PARTY 14
|
||||
#define CAMERA_SCENE_TEXT 19
|
||||
#define CAMERA_SCENE_FALL 20
|
||||
#define CAMERA_SCENE_DAWN 21
|
||||
|
||||
#define CAMERA_AF_MACRO 1
|
||||
#define CAMERA_AF_AUTO 2
|
||||
|
||||
#endif
|
||||
|
||||
/* QRD */
|
||||
#define CAMERA_EFFECT_BW 10
|
||||
#define CAMERA_EFFECT_BLUISH 12
|
||||
|
@ -1216,6 +1338,16 @@ enum msm_v4l2_power_line_frequency {
|
|||
MSM_V4L2_POWER_LINE_AUTO,
|
||||
};
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
enum msm_v4l2_fw_control_mode {
|
||||
CAM_FW_MODE_NONE = 0,
|
||||
CAM_FW_MODE_VERSION,
|
||||
CAM_FW_MODE_UPDATE,
|
||||
CAM_FW_MODE_DUMP,
|
||||
CAM_FW_MODE_MAX,
|
||||
};
|
||||
#endif
|
||||
|
||||
#define CAMERA_ISO_TYPE_AUTO 0
|
||||
#define CAMEAR_ISO_TYPE_HJR 1
|
||||
#define CAMEAR_ISO_TYPE_100 2
|
||||
|
@ -1229,12 +1361,20 @@ struct sensor_pict_fps {
|
|||
uint16_t pictfps;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
struct exp_gain_cfg {
|
||||
/* uint16_t gain;*/
|
||||
uint32_t gain;
|
||||
uint32_t line;
|
||||
};
|
||||
#else
|
||||
struct exp_gain_cfg {
|
||||
uint16_t gain;
|
||||
uint32_t line;
|
||||
int32_t luma_avg;
|
||||
uint16_t fgain;
|
||||
};
|
||||
#endif
|
||||
|
||||
struct focus_cfg {
|
||||
int32_t steps;
|
||||
|
@ -1344,6 +1484,7 @@ struct msm_sensor_output_reg_addr_t {
|
|||
uint16_t frame_length_lines;
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_MACH_JACTIVE_ATT) && !defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
enum sensor_hdr_update_t {
|
||||
SENSOR_HDR_UPDATE_AWB,
|
||||
SENSOR_HDR_UPDATE_LSC,
|
||||
|
@ -1354,6 +1495,7 @@ struct sensor_hdr_update_parm_t {
|
|||
uint16_t awb_gain_r, awb_gain_b;
|
||||
uint8_t lsc_table[504];
|
||||
};
|
||||
#endif
|
||||
|
||||
struct sensor_driver_params_type {
|
||||
struct msm_camera_i2c_reg_setting *init_settings;
|
||||
|
@ -1671,7 +1813,9 @@ struct sensor_cfg_data {
|
|||
struct sensor_output_info_t output_info;
|
||||
struct msm_eeprom_data_t eeprom_data;
|
||||
struct csi_lane_params_t csi_lane_params;
|
||||
#if !defined(CONFIG_MACH_JACTIVE_ATT) && !defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
struct sensor_hdr_update_parm_t hdr_update_parm;
|
||||
#endif
|
||||
/* QRD */
|
||||
uint16_t antibanding;
|
||||
uint8_t contrast;
|
||||
|
@ -1717,6 +1861,9 @@ enum actuator_type {
|
|||
ACTUATOR_VCM,
|
||||
ACTUATOR_PIEZO,
|
||||
ACTUATOR_HALL_EFFECT,
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
ACTUATOR_HVCA,
|
||||
#endif
|
||||
};
|
||||
|
||||
enum msm_actuator_data_type {
|
||||
|
@ -1843,6 +1990,14 @@ struct msm_calib_af {
|
|||
uint16_t macro_dac;
|
||||
uint16_t inf_dac;
|
||||
uint16_t start_dac;
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
uint16_t macro_dac1; /*Mechanical MACRO*/
|
||||
uint16_t macro_dac2; /*10cm*/
|
||||
uint16_t inf_dac1; /*Mechanical INFINITY*/
|
||||
uint16_t inf_dac2; /*1.05M*/
|
||||
uint16_t pid_dac; /* Randy PID */
|
||||
uint16_t cal_offset_dac ; /* SEMCO by Liz 05112013 */
|
||||
#endif
|
||||
};
|
||||
|
||||
struct msm_calib_lsc {
|
||||
|
@ -1868,13 +2023,23 @@ struct msm_calib_raw {
|
|||
uint8_t *data;
|
||||
uint32_t size;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
struct eeprom_data_access_t {
|
||||
uint8_t *data;
|
||||
uint32_t addr;
|
||||
uint32_t num_bytes;
|
||||
};
|
||||
#endif
|
||||
struct msm_camera_eeprom_info_t {
|
||||
struct msm_eeprom_support af;
|
||||
struct msm_eeprom_support wb;
|
||||
struct msm_eeprom_support lsc;
|
||||
struct msm_eeprom_support dpc;
|
||||
struct msm_eeprom_support raw;
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
struct msm_eeprom_support gld_wb;
|
||||
struct msm_eeprom_support gld_lsc;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct msm_eeprom_cfg_data {
|
||||
|
@ -1883,6 +2048,9 @@ struct msm_eeprom_cfg_data {
|
|||
union {
|
||||
struct msm_eeprom_data_t get_data;
|
||||
struct msm_camera_eeprom_info_t get_info;
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
struct eeprom_data_access_t direct_access;
|
||||
#endif
|
||||
} cfg;
|
||||
};
|
||||
|
||||
|
@ -2086,6 +2254,10 @@ struct msm_mctl_set_sdev_data {
|
|||
#define VIDIOC_MSM_AXI_LOW_POWER_MODE \
|
||||
_IO('V', BASE_VIDIOC_PRIVATE + 26)
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define VIDIOC_MSM_VFE_STATS_VERSION \
|
||||
_IOWR('V', BASE_VIDIOC_PRIVATE + 27, uint32_t *)
|
||||
#endif
|
||||
|
||||
struct msm_camera_v4l2_ioctl_t {
|
||||
uint32_t id;
|
||||
|
@ -2303,5 +2475,54 @@ struct intf_mctl_mapping_cfg {
|
|||
#define SET_VIDEO_INST_IDX(handle, data) \
|
||||
(handle |= (0x1 << 7) | (data & 0x7F))
|
||||
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
/* Samsung native cmd code */
|
||||
#define EXT_CAM_SNAPSHOT_MODE 1
|
||||
#define EXT_CAM_AF 2
|
||||
#define EXT_CAM_PREVIEW_SIZE 3
|
||||
#define EXT_CAM_CAPTURE_SIZE 4
|
||||
#define EXT_CAM_METERING 5
|
||||
#define EXT_CAM_WB 6
|
||||
#define EXT_CAM_EFFECT 7
|
||||
#define EXT_CAM_QUALITY 8
|
||||
#define EXT_CAM_ISO 9
|
||||
#define EXT_CAM_EV 10
|
||||
#define EXT_CAM_HJ_REDUCTION 11
|
||||
#define EXT_CAM_LED 12
|
||||
#define EXT_CAM_SCENEMODE 13
|
||||
#define EXT_CAM_SET_PREVIEW_SIZE 14
|
||||
#define EXT_CAM_SET_CAPTURE_SIZE 15
|
||||
#define EXT_CAM_FOCUS_MODE 16
|
||||
#define EXT_CAM_SET_WDR 17
|
||||
#define EXT_CAM_SET_MOVIE_MODE 18
|
||||
#define EXT_CAM_SET_ZOOM 19
|
||||
#define EXT_CAM_FD_MODE 20
|
||||
#define EXT_CAM_SET_TOUCHAF_POS 21
|
||||
#define EXT_CAM_MOVIE_MODE 22
|
||||
#define EXT_CAM_SET_FPS 23
|
||||
#define EXT_CAM_START_AE_AWB_LOCK 24
|
||||
#define EXT_CAM_SET_ANTIBANDING 25
|
||||
#define EXT_CAM_SET_ANTI_STREAMOFF 26
|
||||
#define EXT_CAM_SET_OCR_FOCUS_MODE 27
|
||||
#if defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
|
||||
#define EXT_CAM_SET_ORIENTATION 28
|
||||
#endif
|
||||
#define EXT_CAM_SET_AF_WINDOW 29
|
||||
#define EXT_CAM_SET_HDR 33
|
||||
#define EXT_CAM_START_HDR 34
|
||||
#define EXT_CAM_RESET_HDR 35
|
||||
#define EXT_CAM_SET_LLS 36
|
||||
#define EXT_CAM_SET_BEST 37
|
||||
#define EXT_CAM_SET_HW_VDIS 38
|
||||
#define EXT_CAM_SET_SHOT_MODE 39
|
||||
#define EXT_CAM_UPDATE_FW 42
|
||||
#define EXT_CAM_GET_ISP_DBG_LOG 43
|
||||
#define EXT_CAM_SET_RAW 44
|
||||
#define EXT_CAM_RESUME_PREVIEW 45
|
||||
#define EXT_CAM_SET_FACTORY_BIN 46
|
||||
#define EXT_CAM_START_GOLF_SHOT 47
|
||||
#define EXT_CAM_STOP_GOLF_SHOT 48
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_MSM_CAMERA_H */
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue