diff options
Diffstat (limited to 'target/device/Atmel/atstk100x/kernel-patches/linux-2.6.23-200-gpio_mouse-setup-for-atstk1000-board.patch')
-rw-r--r-- | target/device/Atmel/atstk100x/kernel-patches/linux-2.6.23-200-gpio_mouse-setup-for-atstk1000-board.patch | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/target/device/Atmel/atstk100x/kernel-patches/linux-2.6.23-200-gpio_mouse-setup-for-atstk1000-board.patch b/target/device/Atmel/atstk100x/kernel-patches/linux-2.6.23-200-gpio_mouse-setup-for-atstk1000-board.patch new file mode 100644 index 000000000..365ee494d --- /dev/null +++ b/target/device/Atmel/atstk100x/kernel-patches/linux-2.6.23-200-gpio_mouse-setup-for-atstk1000-board.patch @@ -0,0 +1,130 @@ +>From 9c5fa914202d20756c56e0c4fd76035ed8f8ced8 Mon Sep 17 00:00:00 2001 +From: Hans-Christian Egtvedt <hcegtvedt@atmel.com> +Date: Mon, 6 Aug 2007 08:31:14 +0200 +Subject: [PATCH 1/1] Add gpio_mouse board setup to atstk1000 board + +This patch adds a gpio_mouse_platform_data to the atstk1000 board code and +registers a gpio_mouse platform_device. This will enable a GPIO mouse on header +J1 on GPIO of the ATSTK1000 development kit. The board code is enabled/disabled +in menuconfig. + +By connecting J1 (GPIO) to J25 (SWITCH) you can use the following keys to +simulate a mouse: + +SW0: right +SW1: down +SW2: up +SW3: left +SW5: right button +SW6: middle button +SW7: left button + +Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com> +--- + arch/avr32/boards/atstk1000/Kconfig | 16 ++++++++++ + arch/avr32/boards/atstk1000/atstk1002.c | 48 +++++++++++++++++++++++++++++++ + 2 files changed, 64 insertions(+), 0 deletions(-) + +diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig +index 718578f..d99d4bd 100644 +--- a/arch/avr32/boards/atstk1000/Kconfig ++++ b/arch/avr32/boards/atstk1000/Kconfig +@@ -52,6 +52,22 @@ config BOARD_ATSTK100X_SPI1 + GPIO lines and accessed through the J1 jumper block. Say "y" + here to configure that SPI controller. + ++config BOARD_ATSTK1002_GPIO_MOUSE ++ bool "Configure gpio_mouse on GPIO J1 header" ++ depends on !BOARD_ATSTK1002_SW4_CUSTOM ++ help ++ Enable gpio_mouse board configuration on GPIO 0 to 7. Connecting a ++ 10-pin flat cable from J1 (GPIO) to J25 (SWITCH) will let a user give ++ mouse inputs using the the switches SW0 to SW7. ++ ++ SW0: right ++ SW1: down ++ SW2: up ++ SW3: left ++ SW5: right button ++ SW6: middle button ++ SW7: left button ++ + config BOARD_ATSTK1000_J2_LED + bool + default BOARD_ATSTK1000_J2_LED8 || BOARD_ATSTK1000_J2_RGB +diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c +index c958fd4..c7560e5 100644 +--- a/arch/avr32/boards/atstk1000/atstk1002.c ++++ b/arch/avr32/boards/atstk1000/atstk1002.c +@@ -16,6 +16,7 @@ + #include <linux/types.h> + #include <linux/spi/spi.h> + #include <linux/spi/at73c213.h> ++#include <linux/gpio_mouse.h> + + #include <video/atmel_lcdc.h> + +@@ -100,6 +101,49 @@ static struct mci_platform_data __initdata mci0_data = { + .cs = 4, + }; + ++#ifdef CONFIG_BOARD_ATSTK1002_GPIO_MOUSE ++static struct gpio_mouse_platform_data gpio_mouse0_data = { ++ .polarity = GPIO_MOUSE_POLARITY_ACT_LOW, ++ { ++ { ++ .up = GPIO_PIN_PB(2), ++ .down = GPIO_PIN_PB(1), ++ .left = GPIO_PIN_PB(3), ++ .right = GPIO_PIN_PB(0), ++ .bleft = GPIO_PIN_PB(7), ++ .bmiddle = GPIO_PIN_PB(6), ++ .bright = GPIO_PIN_PB(5), ++ }, ++ }, ++ .scan_ms = 10, ++}; ++ ++static struct platform_device gpio_mouse0_device = { ++ .name = "gpio_mouse", ++ .id = 0, ++ .dev = { ++ .platform_data = &gpio_mouse0_data, ++ }, ++}; ++ ++static void __init add_device_gpio_mouse0(void) ++{ ++ struct platform_device *pdev = &gpio_mouse0_device; ++ struct gpio_mouse_platform_data *data = pdev->dev.platform_data; ++ ++ at32_select_gpio(data->up, 0); ++ at32_select_gpio(data->down, 0); ++ at32_select_gpio(data->left, 0); ++ at32_select_gpio(data->right, 0); ++ ++ at32_select_gpio(data->bleft, 0); ++ at32_select_gpio(data->bmiddle, 0); ++ at32_select_gpio(data->bright, 0); ++ ++ platform_device_register(pdev); ++} ++#endif ++ + /* + * The next two functions should go away as the boot loader is + * supposed to initialize the macb address registers with a valid +@@ -269,6 +313,10 @@ static int __init atstk1002_init(void) + atstk1000_setup_j2_leds(); + atstk1002_setup_extdac(); + ++#ifdef CONFIG_BOARD_ATSTK1002_GPIO_MOUSE ++ add_device_gpio_mouse0(); ++#endif ++ + return 0; + } + postcore_initcall(atstk1002_init); +-- +1.5.2.3 + |