[PATCH v6 2/2] pxa/hx4700: Add Synaptics NavPoint (PXA27x SSP/SPI) driver

Philipp Zabel philipp.zabel at gmail.com
Sun Feb 26 06:03:27 EST 2012


On Fri, Jan 6, 2012 at 3:37 AM, Paul Parsons <lost.distance at yahoo.com> wrote:
> Add support for the Synaptics NavPoint touchpad connected to a PXA27x SSP port
> in SPI slave mode. The driver implements a simple navigation pad. The four
> raised dots are mapped to UP/DOWN/LEFT/RIGHT buttons and the centre of the
> touchpad is mapped to the ENTER button.
>
> Signed-off-by: Paul Parsons <lost.distance at yahoo.com>
> ---
>
> V6:
> Rebased to linux-3.2.
>
> diff -uprN clean-3.2/arch/arm/mach-pxa/hx4700.c linux-3.2/arch/arm/mach-pxa/hx4700.c
> --- clean-3.2/arch/arm/mach-pxa/hx4700.c        2012-01-04 23:55:44.000000000 +0000
> +++ linux-3.2/arch/arm/mach-pxa/hx4700.c        2012-01-06 02:25:35.580520397 +0000
> @@ -22,6 +22,7 @@
>  #include <linux/gpio.h>
>  #include <linux/gpio_keys.h>
>  #include <linux/input.h>
> +#include <linux/input/navpoint.h>
>  #include <linux/lcd.h>
>  #include <linux/mfd/htc-egpio.h>
>  #include <linux/mfd/asic3.h>
> @@ -111,7 +112,7 @@ static unsigned long hx4700_pin_config[]
>        GPIO113_I2S_SYSCLK,
>
>        /* SSP 1 (NavPoint) */
> -       GPIO23_SSP1_SCLK,
> +       GPIO23_SSP1_SCLK_IN,
>        GPIO24_SSP1_SFRM,
>        GPIO25_SSP1_TXD,
>        GPIO26_SSP1_RXD,
> @@ -181,6 +182,23 @@ static struct platform_device gpio_keys
>  };
>
>  /*
> + * Synaptics NavPoint connected to SSP1
> + */
> +
> +static struct navpoint_platform_data navpoint_platform_data = {
> +       .port   = 1,
> +       .gpio   = GPIO102_HX4700_SYNAPTICS_ON,
> +};
> +
> +static struct platform_device navpoint = {
> +       .name   = "navpoint",
> +       .id     = -1,
> +       .dev = {
> +               .platform_data = &navpoint_platform_data,
> +       },
> +};
> +
> +/*
>  * ASIC3
>  */
>
> @@ -782,6 +800,7 @@ static struct platform_device pcmcia = {
>  static struct platform_device *devices[] __initdata = {
>        &asic3,
>        &gpio_keys,
> +       &navpoint,
>        &backlight,
>        &w3220,
>        &hx4700_lcd,
> @@ -806,6 +825,7 @@ static struct gpio global_gpios[] = {
>        { GPIO32_HX4700_RS232_ON,         GPIOF_OUT_INIT_HIGH, "RS232_ON" },
>        { GPIO71_HX4700_ASIC3_nRESET,     GPIOF_OUT_INIT_HIGH, "ASIC3_nRESET" },
>        { GPIO82_HX4700_EUART_RESET,      GPIOF_OUT_INIT_HIGH, "EUART_RESET" },
> +       { GPIO102_HX4700_SYNAPTICS_ON,    GPIOF_OUT_INIT_LOW,  "SYNAPTICS_ON" },
>        { GPIO105_HX4700_nIR_ON,          GPIOF_OUT_INIT_HIGH, "nIR_EN" },
>  };
>
> diff -uprN clean-3.2/arch/arm/mach-pxa/include/mach/hx4700.h linux-3.2/arch/arm/mach-pxa/include/mach/hx4700.h
> --- clean-3.2/arch/arm/mach-pxa/include/mach/hx4700.h   2012-01-04 23:55:44.000000000 +0000
> +++ linux-3.2/arch/arm/mach-pxa/include/mach/hx4700.h   2012-01-06 02:25:35.580520397 +0000
> @@ -62,7 +62,7 @@
>  #define GPIO97_HX4700_nBL_DETECT               97
>  #define GPIO99_HX4700_KEY_CONTACTS             99
>  #define GPIO100_HX4700_AUTO_SENSE              100 /* BL auto brightness */
> -#define GPIO102_HX4700_SYNAPTICS_POWER_ON      102
> +#define GPIO102_HX4700_SYNAPTICS_ON            102
>  #define GPIO103_HX4700_SYNAPTICS_INT           103
>  #define GPIO105_HX4700_nIR_ON                  105
>  #define GPIO106_HX4700_CPU_BT_nRESET           106

Acked-by: Philipp Zabel <philipp.zabel at gmail.com>



More information about the linux-arm-kernel mailing list