Exemplo n.º 1
0
void __init lge_add_input_devices(void)
{
    int rc = 0;

    gpio_tlmm_config(GPIO_CFG(TS_GPIO_IRQ, 0, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
    gpio_tlmm_config(GPIO_CFG(TS_GPIO_I2C_SDA, 1, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
    gpio_tlmm_config(GPIO_CFG(TS_GPIO_I2C_SCL, 1, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);

    gpio_tlmm_config(GPIO_CFG(TS_GPIO_RESET, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
    rc = gpio_request(MSM_8930_TS_MAKER_ID, "TOUCH_PANEL_MAKERID");

    if (unlikely(rc < 0))
        pr_err("%s not able to get gpio\n", __func__);

    /*	maker_id set 0 - normal , maker_id set 1 - dummy pattern */
    gpio_direction_input(MSM_8930_TS_MAKER_ID);

    ts_set_vreg(1, false);

    i2c_register_board_info(MSM_8930_GSBI3_QUP_I2C_BUS_ID,
                            (&msm_i2c_synaptics_ts_info[0]), 1);

//
#if defined(CONFIG_MACH_LGE_FX3_SPCS)
    if(system_rev < HW_REV_B) {
        keys_8930[1].gpio = PM8038_GPIO_PM_TO_SYS(8);
        printk("%s : VOL_DOWN pin is changed to PM_GPIO(8) for SPCS Rev.A\n", __func__);
    }
#endif
    platform_device_register(&gpio_keys_8930);
//

}
void __init lge_add_input_devices(void)
{
	int rc = 0;
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_IRQ, 0, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_I2C_SDA, 1, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_I2C_SCL, 1, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	
	rc = gpio_request(MSM_8930_TS_MAKER_ID, "TOUCH_PANEL_MAKERID");
	
	if (unlikely(rc < 0))
		pr_err("%s not able to get gpio\n", __func__);
	

	/*  maker_id set 0 - normal , maker_id set 1 - dummy pattern */
	gpio_direction_input(MSM_8930_TS_MAKER_ID);
	
    ts_set_vreg(1, false);
	i2c_register_board_info(MSM_8930_GSBI3_QUP_I2C_BUS_ID,
			(&melfas_touch_panel_i2c_bdinfo[0]), 1);	

//   if(system_rev == HW_REV_A)
        platform_device_register(&gpio_keys_8930); 
//   else if(system_rev > HW_REV_A)
//        platform_device_register(&gpio_keys_8930_temp);
}
void touch_init(void)
{
	int rc;
	maker_id_val = 0;
	
	/* gpio init */
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_IRQ, 0, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_I2C_SDA, 1, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_I2C_SCL, 1, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
#if defined(CONFIG_LGE_TOUCH_SYNAPTICS_325)
	/* reset pin control */
	gpio_tlmm_config(GPIO_CFG(MSM_8960_TS_PWR, 0, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	gpio_tlmm_config(GPIO_CFG(MSM_8960_TS_MAKER_ID, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_DOWN, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
#else
	/* reset pin control */
	gpio_tlmm_config(GPIO_CFG(MSM_8960_TS_PWR, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
#endif

	/* gpio init */
	rc = gpio_request(MSM_8960_TS_PWR, "TOUCH_PANEL_PWR");
	if (unlikely(rc < 0))
		pr_err("%s not able to get gpio\n", __func__);

	rc = gpio_request(MSM_8960_TS_MAKER_ID, "TOUCH_PANEL_MAKERID");
	if (unlikely(rc < 0))
		pr_err("%s not able to get gpio\n", __func__);

	/*  maker_id */
	gpio_direction_input(MSM_8960_TS_MAKER_ID);

	/* power on */
#if defined(CONFIG_LGE_TOUCH_SYNAPTICS_325)
	gpio_direction_output(MSM_8960_TS_PWR, 1);
#else
	rc = ts_set_vreg(1, false);
#endif
	/* read gpio value */
	maker_id_val = gpio_get_value(MSM_8960_TS_MAKER_ID);
	/* power off */
#if defined(CONFIG_LGE_TOUCH_SYNAPTICS_325)
	gpio_direction_output(MSM_8960_TS_PWR, 0);
#else
	rc = ts_set_vreg(0, false);
#endif

}
/*	LGE_UPDATE_TOUCH_E */
void __init lge_add_input_devices(void)
{
	int rc = 0;

	gpio_tlmm_config(GPIO_CFG(TS_GPIO_IRQ, 0, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_I2C_SDA, 1, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_I2C_SCL, 1, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);
	gpio_tlmm_config(GPIO_CFG(TS_GPIO_RESET, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);

	rc = gpio_request(MSM_8930_TS_MAKER_ID, "TOUCH_PANEL_MAKERID");

	if (unlikely(rc < 0))
		pr_err("%s not able to get gpio\n", __func__);

	/*	maker_id set 0 - normal , maker_id set 1 - dummy pattern */
	gpio_direction_input(MSM_8930_TS_MAKER_ID);

	ts_set_vreg(1, false);

	i2c_register_board_info(MSM_8930_GSBI3_QUP_I2C_BUS_ID,
		(&msm_i2c_synaptics_ts_info[0]), 1);

	platform_device_register(&gpio_keys_8930);

#if defined(CONFIG_KEYBOARD_PP2106)
	pp2106_init_gpio();
#if defined(CONFIG_MACH_LGE_FX3Q_TMUS)
	if (system_rev >= HW_REV_A) {
		platform_device_register(&pp2106_keypad_device_revC);
	} else {
		platform_device_register(&pp2106_keypad_device);
	}
#else /* !CONFIG_MACH_LGE_FX3Q_TMUS */
	if (system_rev >= HW_REV_C) {
		platform_device_register(&pp2106_keypad_device_revC);
	} else {
		platform_device_register(&pp2106_keypad_device);
	}
#endif /* CONFIG_MACH_LGE_FX3Q_TMUS */
#endif

#if defined(CONFIG_HALLIC_S5712ACDL1)
	hallic_init_gpio();
    platform_add_devices(hallic_input_devices, ARRAY_SIZE(hallic_input_devices));
#endif

#ifdef CONFIG_BU52031NVX
	cradle_init_gpio();
	platform_device_register(&cradle_device);
#endif
}
static int mddi_novatek_lcd_on(struct platform_device *pdev)
{
	EPRINTK("%s: started.\n", __func__);

	if(is_lcd_on == -1) {
		is_lcd_on = TRUE;
		return 0;
	}
	if (system_state == SYSTEM_BOOTING && mddi_novatek_pdata->initialized) {
		is_lcd_on = TRUE;
	}

#ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT
	ts_set_vreg(1);
#endif

	// LCD HW Reset
	mddi_novatek_lcd_panel_poweron();	
	display_table(mddi_novatek_initialize, sizeof(mddi_novatek_initialize)/sizeof(struct display_table));
	// display_table(mddi_novatek_display_on, sizeof(mddi_novatek_display_on) / sizeof(struct display_table));
	is_lcd_on = TRUE;
	return 0;
}