Sorry. There is an accidental change in the second version of the patch. "opio_request(48, "tsc_irq");" I will fix it. Lauro 2007/12/21, Lauro Ramos Venancio <lauro.venancio@xxxxxxxxx>: > Use the newer touchscreen driver (tsc210x). > The old one doesn't compile anymore. > > Signed-off-by: Lauro Ramos Venancio <lauro.venancio@xxxxxxxxxxx> > --- > arch/arm/mach-omap1/board-h3.c | 86 ++++++---------------------------------- > 1 files changed, 13 insertions(+), 73 deletions(-) > > diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c > index df77cf5..7d9f7bb 100644 > --- a/arch/arm/mach-omap1/board-h3.c > +++ b/arch/arm/mach-omap1/board-h3.c > @@ -27,7 +27,7 @@ > #include <linux/input.h> > #include <linux/clk.h> > #include <linux/spi/spi.h> > -#include <linux/spi/tsc2101.h> > +#include <linux/spi/tsc210x.h> > > #include <asm/setup.h> > #include <asm/page.h> > @@ -374,77 +374,10 @@ static struct platform_device h3_lcd_device = { > .id = -1, > }; > > -struct { > - struct clk *mclk; > - int initialized; > -} h3_tsc2101; > - > -#define TSC2101_MUX_MCLK_ON V5_1710_MCLK_ON > -#define TSC2101_MUX_MCLK_OFF V5_1710_MCLK_OFF > - > -static int h3_tsc2101_init(struct spi_device *spi) > -{ > - u8 io_exp_val; > - int r; > - > - if (h3_tsc2101.initialized) { > - printk(KERN_ERR "tsc2101: already initialized\n"); > - return -ENODEV; > - } > - > - /* Get the MCLK */ > - h3_tsc2101.mclk = clk_get(&spi->dev, "mclk"); > - if (IS_ERR(h3_tsc2101.mclk)) { > - dev_err(&spi->dev, "unable to get the clock MCLK\n"); > - return PTR_ERR(h3_tsc2101.mclk); > - } > - if ((r = clk_set_rate(h3_tsc2101.mclk, 12000000)) < 0) { > - dev_err(&spi->dev, "unable to set rate to the MCLK\n"); > - goto err; > - } > - > - if ((r = read_gpio_expa(&io_exp_val, 0x24))) { > - dev_err(&spi->dev, "error reading from I/O EXPANDER\n"); > - goto err; > - } > - io_exp_val |= 0x8; > - if ((r = write_gpio_expa(io_exp_val, 0x24))) { > - dev_err(&spi->dev, "error writing to I/O EXPANDER\n"); > - goto err; > - } > - > - omap_cfg_reg(N14_1610_UWIRE_CS0); > - omap_cfg_reg(TSC2101_MUX_MCLK_OFF); > - > - return 0; > -err: > - clk_put(h3_tsc2101.mclk); > - return r; > -} > - > -static void h3_tsc2101_cleanup(struct spi_device *spi) > -{ > - clk_put(h3_tsc2101.mclk); > - omap_cfg_reg(TSC2101_MUX_MCLK_OFF); > -} > - > -static void h3_tsc2101_enable_mclk(struct spi_device *spi) > -{ > - omap_cfg_reg(TSC2101_MUX_MCLK_ON); > - clk_enable(h3_tsc2101.mclk); > -} > - > -static void h3_tsc2101_disable_mclk(struct spi_device *spi) > -{ > - clk_disable(h3_tsc2101.mclk); > - omap_cfg_reg(R10_1610_MCLK_OFF); > -} > - > -static struct tsc2101_platform_data h3_tsc2101_platform_data = { > - .init = h3_tsc2101_init, > - .cleanup = h3_tsc2101_cleanup, > - .enable_mclk = h3_tsc2101_enable_mclk, > - .disable_mclk = h3_tsc2101_disable_mclk, > +static struct tsc210x_config tsc_platform_data = { > + .use_internal = 1, > + .monitor = TSC_VBAT | TSC_TEMP, > + .mclk = "mclk", > }; > > static struct spi_board_info h3_spi_board_info[] __initdata = { > @@ -452,8 +385,9 @@ static struct spi_board_info h3_spi_board_info[] __initdata = { > .modalias = "tsc2101", > .bus_num = 2, > .chip_select = 0, > + .irq = OMAP_GPIO_IRQ(48), > .max_speed_hz = 16000000, > - .platform_data = &h3_tsc2101_platform_data, > + .platform_data = &tsc_platform_data, > }, > }; > > @@ -569,6 +503,12 @@ static void __init h3_init(void) > /* GPIO10 pullup/down register, Enable pullup on GPIO10 */ > omap_cfg_reg(V2_1710_GPIO10); > > + /* TSC2101 */ > + omap_cfg_reg(W19_1610_GPIO48); > + opio_request(48, "tsc_irq"); > + gpio_direction_input(48); > + omap_cfg_reg(N14_1610_UWIRE_CS0); > + > platform_add_devices(devices, ARRAY_SIZE(devices)); > spi_register_board_info(h3_spi_board_info, > ARRAY_SIZE(h3_spi_board_info)); > -- > 1.5.2.5 > > - To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html