#define MX6SL_ARM2_EPDC_PMIC_WAKE IMX_GPIO_NR(2, 14) /* EPDC_PWRWAKEUP */
#define MX6SL_ARM2_EPDC_PMIC_INT IMX_GPIO_NR(2, 12) /* EPDC_PWRINT */
#define MX6SL_ARM2_EPDC_VCOM IMX_GPIO_NR(2, 3)
+#define MX6SL_ARM2_ELAN_CE IMX_GPIO_NR(2, 9)
+#define MX6SL_ARM2_ELAN_INT IMX_GPIO_NR(2, 10)
+#define MX6SL_ARM2_ELAN_RST IMX_GPIO_NR(4, 4)
static int max17135_regulator_init(struct max17135 *max17135);
struct clk *extern_audio_root;
{
I2C_BOARD_INFO("max17135", 0x48),
.platform_data = &max17135_pdata,
+ }, {
+ I2C_BOARD_INFO("elan-touch", 0x10),
+ .irq = gpio_to_irq(MX6SL_ARM2_ELAN_INT),
},
};
.keymap = mx6sl_arm2_keymap,
.keymap_size = ARRAY_SIZE(mx6sl_arm2_keymap),
};
+static void __init elan_ts_init(void)
+{
+ mxc_iomux_v3_setup_multiple_pads(mx6sl_arm2_elan_pads,
+ ARRAY_SIZE(mx6sl_arm2_elan_pads));
+
+ /* ELAN Touchscreen */
+ gpio_request(MX6SL_ARM2_ELAN_INT, "elan-interrupt");
+ gpio_direction_input(MX6SL_ARM2_ELAN_INT);
+
+ gpio_request(MX6SL_ARM2_ELAN_CE, "elan-cs");
+ gpio_direction_output(MX6SL_ARM2_ELAN_CE, 1);
+ gpio_direction_output(MX6SL_ARM2_ELAN_CE, 0);
+
+ gpio_request(MX6SL_ARM2_ELAN_RST, "elan-rst");
+ gpio_direction_output(MX6SL_ARM2_ELAN_RST, 1);
+ gpio_direction_output(MX6SL_ARM2_ELAN_RST, 0);
+ mdelay(1);
+ gpio_direction_output(MX6SL_ARM2_ELAN_RST, 1);
+ gpio_direction_output(MX6SL_ARM2_ELAN_CE, 1);
+}
+
/*!
* Board specific initialization.
*/
{
mxc_iomux_v3_setup_multiple_pads(mx6sl_arm2_pads, ARRAY_SIZE(mx6sl_arm2_pads));
+ elan_ts_init();
+
gp_reg_id = "cpu_vddgp";
mx6_cpu_regulator_init();
#define MX6SL_KEYPAD_CTRL (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \
PAD_CTL_PUS_100K_UP | PAD_CTL_DSE_120ohm)
+#define MX6SL_TSPAD_CTRL (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_47K_UP)
+
#define MX6SL_PAD_AUD_MCLK__AUDMUX_AUDIO_CLK_OUT \
IOMUX_PAD(0x02A4, 0x004C, 0, 0x0000, 0, NO_PAD_CTRL)
#define MX6SL_PAD_AUD_MCLK__PWM4_PWMO \
#define MX6SL_PAD_EPDC_PWRCTRL3__TCON_YDIODL \
IOMUX_PAD(0x03E0, 0x00F0, 4, 0x0000, 0, NO_PAD_CTRL)
#define MX6SL_PAD_EPDC_PWRCTRL3__GPIO_2_10 \
- IOMUX_PAD(0x03E0, 0x00F0, 5, 0x0000, 0, NO_PAD_CTRL)
+ IOMUX_PAD(0x03E0, 0x00F0, 5, 0x0000, 0, MX6SL_TSPAD_CTRL)
#define MX6SL_PAD_EPDC_PWRCTRL3__USDHC4_CD \
IOMUX_PAD(0x03E0, 0x00F0, 6, 0x0854, 1, MX6SL_USDHC_PAD_CTRL)
#define MX6SL_PAD_EPDC_PWRCTRL3__MMDC_MMDC_DEBUG_4 \