From: David Brownell Date: Wed, 15 Aug 2007 10:52:43 +0000 (-0700) Subject: H4 support for tsc210x X-Git-Tag: v2.6.23-omap1~219 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=aac9300dc8cef2227925f9c7b81752fe4c00a6e1;p=linux-2.6-omap-h63xx.git H4 support for tsc210x H4 board support now lists its tsc210x touchscreen/sensor/codec chip. Signed-off-by: David Brownell --- diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index cacfab966d0..a4defbf7a59 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include #include @@ -418,6 +420,33 @@ static struct omap_usb_config h4_usb_config __initdata = { #endif }; +/* ----------------------------------------------------------------------- */ + +static struct tsc210x_config tsc_platform_data = { + .use_internal = 1, + .monitor = TSC_VBAT | TSC_TEMP, + /* REVISIT temp calibration data -- board-specific; from EEPROM? */ + .mclk = "sys_clkout", +}; + +static struct spi_board_info h4_spi_board_info[] __initdata = { + { + .modalias = "tsc2101", + .bus_num = 1, + .chip_select = 0, + .mode = SPI_MODE_1, + .irq = OMAP_GPIO_IRQ(93), + .max_speed_hz = 16000000, + .platform_data = &tsc_platform_data, + }, + + /* nCS1 -- to lcd board, but unused + * nCS2 -- to WLAN/miniPCI + */ +}; + +/* ----------------------------------------------------------------------- */ + static struct omap_board_config_kernel h4_config[] __initdata = { { OMAP_TAG_UART, &h4_uart_config }, { OMAP_TAG_MMC, &h4_mmc_config }, @@ -550,6 +579,28 @@ static void __init omap_h4_init(void) tusb_evm_setup(); #endif + /* defaults seem ok for: + * omap_cfg_reg(U18_24XX_SPI1_SCK); + * omap_cfg_reg(V20_24XX_SPI1_MOSI); + * omap_cfg_reg(T18_24XX_SPI1_MISO); + * omap_cfg_reg(U19_24XX_SPI1_NCS0); + */ + + /* TSC2101 */ + omap_cfg_reg(P20_24XX_GPIO93); + gpio_request(93, "tsc_irq"); + gpio_direction_input(93); + + omap_cfg_reg(W14_24XX_SYS_CLKOUT); /* mclk */ + /* defaults seem ok for: + * omap_cfg_reg(Y15_EAC_AC_SCLK); // bclk + * omap_cfg_reg(R14_EAC_AC_FS); + * omap_cfg_reg(V15_EAC_AC_DOUT); + * omap_cfg_reg(W15_EAC_AC_DIN); + */ + + spi_register_board_info(h4_spi_board_info, + ARRAY_SIZE(h4_spi_board_info)); } static void __init omap_h4_map_io(void)