mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-19 05:04:04 +02:00
[kirkwood] Adds leds and gpio keys support for Iomega iConnect.
Signed-off-by: Wojciech Dubowik <Wojciech.Dubowik@neratec.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23682 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
b82622f018
commit
240961d891
@ -23,9 +23,19 @@
|
|||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
--- a/arch/arm/mach-kirkwood/mpp.h
|
||||||
|
+++ b/arch/arm/mach-kirkwood/mpp.h
|
||||||
|
@@ -103,6 +103,7 @@
|
||||||
|
#define MPP11_SATA0_ACTn MPP( 11, 0x5, 0, 1, 0, 1, 1, 1 )
|
||||||
|
|
||||||
|
#define MPP12_GPO MPP( 12, 0x0, 0, 1, 1, 1, 1, 1 )
|
||||||
|
+#define MPP12_GPIO MPP( 12, 0x0, 1, 1, 1, 1, 1, 1 )
|
||||||
|
#define MPP12_SD_CLK MPP( 12, 0x1, 0, 1, 1, 1, 1, 1 )
|
||||||
|
|
||||||
|
#define MPP13_GPIO MPP( 13, 0x0, 1, 1, 1, 1, 1, 1 )
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-kirkwood/iconnect-setup.c
|
+++ b/arch/arm/mach-kirkwood/iconnect-setup.c
|
||||||
@@ -0,0 +1,95 @@
|
@@ -1,0 +1,190 @@
|
||||||
+/*
|
+/*
|
||||||
+ * arch/arm/mach-kirkwood/iconnect-setup.c
|
+ * arch/arm/mach-kirkwood/iconnect-setup.c
|
||||||
+ *
|
+ *
|
||||||
@ -43,6 +53,10 @@
|
|||||||
+#include <linux/mtd/partitions.h>
|
+#include <linux/mtd/partitions.h>
|
||||||
+#include <linux/mv643xx_eth.h>
|
+#include <linux/mv643xx_eth.h>
|
||||||
+#include <linux/ethtool.h>
|
+#include <linux/ethtool.h>
|
||||||
|
+#include <linux/gpio.h>
|
||||||
|
+#include <linux/gpio_keys.h>
|
||||||
|
+#include <linux/input.h>
|
||||||
|
+#include <linux/leds.h>
|
||||||
+#include <asm/mach-types.h>
|
+#include <asm/mach-types.h>
|
||||||
+#include <asm/mach/arch.h>
|
+#include <asm/mach/arch.h>
|
||||||
+#include <mach/kirkwood.h>
|
+#include <mach/kirkwood.h>
|
||||||
@ -73,12 +87,100 @@
|
|||||||
+ .phy_addr = MV643XX_ETH_PHY_ADDR(11),
|
+ .phy_addr = MV643XX_ETH_PHY_ADDR(11),
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
|
+static struct gpio_led iconnect_led_pins[] = {
|
||||||
|
+ {
|
||||||
|
+ .name = "iconnect:blue:power",
|
||||||
|
+ .default_trigger = "default-on",
|
||||||
|
+ .gpio = 42,
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ .name = "iconnect:red:power",
|
||||||
|
+ .gpio = 43,
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ .name = "iconnect:blue:usb1",
|
||||||
|
+ .gpio = 44,
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ .name = "iconnect:blue:usb2",
|
||||||
|
+ .gpio = 45,
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ .name = "iconnect:blue:usb3",
|
||||||
|
+ .gpio = 46,
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ .name = "iconnect:blue:usb4",
|
||||||
|
+ .gpio = 47,
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ .name = "iconnect:blue:otb",
|
||||||
|
+ .gpio = 48,
|
||||||
|
+ },
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static struct gpio_led_platform_data iconnect_led_data = {
|
||||||
|
+ .leds = iconnect_led_pins,
|
||||||
|
+ .num_leds = ARRAY_SIZE(iconnect_led_pins),
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static struct platform_device iconnect_leds = {
|
||||||
|
+ .name = "leds-gpio",
|
||||||
|
+ .id = -1,
|
||||||
|
+ .dev = {
|
||||||
|
+ .platform_data = &iconnect_led_data,
|
||||||
|
+ }
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+#define ICONNECT_GPIO_KEY_RESET 12
|
||||||
|
+#define ICONNECT_GPIO_KEY_OTB 35
|
||||||
|
+
|
||||||
|
+#define ICONNECT_SW_RESET 0x00
|
||||||
|
+#define ICONNECT_SW_OTB 0x01
|
||||||
|
+
|
||||||
|
+static struct gpio_keys_button iconnect_buttons[] = {
|
||||||
|
+ {
|
||||||
|
+ .type = EV_SW,
|
||||||
|
+ .code = ICONNECT_SW_RESET,
|
||||||
|
+ .gpio = ICONNECT_GPIO_KEY_RESET,
|
||||||
|
+ .desc = "Reset Button",
|
||||||
|
+ .active_low = 1,
|
||||||
|
+ .debounce_interval = 100,
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ .type = EV_SW,
|
||||||
|
+ .code = ICONNECT_SW_OTB,
|
||||||
|
+ .gpio = ICONNECT_GPIO_KEY_OTB,
|
||||||
|
+ .desc = "OTB Button",
|
||||||
|
+ .active_low = 1,
|
||||||
|
+ .debounce_interval = 100,
|
||||||
|
+ },
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static struct gpio_keys_platform_data iconnect_button_data = {
|
||||||
|
+ .buttons = iconnect_buttons,
|
||||||
|
+ .nbuttons = ARRAY_SIZE(iconnect_buttons),
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static struct platform_device iconnect_button_device = {
|
||||||
|
+ .name = "gpio-keys",
|
||||||
|
+ .id = -1,
|
||||||
|
+ .num_resources = 0,
|
||||||
|
+ .dev = {
|
||||||
|
+ .platform_data = &iconnect_button_data,
|
||||||
|
+ },
|
||||||
|
+};
|
||||||
|
+
|
||||||
+static unsigned int iconnect_mpp_config[] __initdata = {
|
+static unsigned int iconnect_mpp_config[] __initdata = {
|
||||||
+ MPP8_TW_SDA,
|
+ MPP12_GPIO, /*Input for reset button*/
|
||||||
+ MPP9_TW_SCK,
|
+ MPP35_GPIO, /*Input for OTB button*/
|
||||||
+ MPP10_UART0_TXD,
|
+ MPP42_GPIO,
|
||||||
+ MPP11_UART0_RXD,
|
+ MPP43_GPIO,
|
||||||
+ MPP28_GPIO,
|
+ MPP44_GPIO,
|
||||||
|
+ MPP45_GPIO,
|
||||||
|
+ MPP46_GPIO,
|
||||||
|
+ MPP47_GPIO,
|
||||||
|
+ MPP48_GPIO,
|
||||||
+ 0
|
+ 0
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
@ -100,6 +202,9 @@
|
|||||||
+
|
+
|
||||||
+ kirkwood_uart0_init();
|
+ kirkwood_uart0_init();
|
||||||
+ kirkwood_i2c_init();
|
+ kirkwood_i2c_init();
|
||||||
|
+
|
||||||
|
+ platform_device_register(&iconnect_leds);
|
||||||
|
+ platform_device_register(&iconnect_button_device);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static int __init iconnect_pci_init(void)
|
+static int __init iconnect_pci_init(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user