Changeset 23682


Ignore:
Timestamp:
2010-10-27T23:22:07+02:00 (6 years ago)
Author:
lars
Message:

[kirkwood] Adds leds and gpio keys support for Iomega iConnect.

Signed-off-by: Wojciech Dubowik <Wojciech.Dubowik@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/kirkwood/patches/200-iconnect.patch

    r23217 r23682  
    2424  
    2525 endif 
     26--- a/arch/arm/mach-kirkwood/mpp.h 
     27+++ b/arch/arm/mach-kirkwood/mpp.h  
     28@@ -103,6 +103,7 @@ 
     29 #define MPP11_SATA0_ACTn       MPP( 11, 0x5, 0, 1, 0,   1,   1,   1    ) 
     30  
     31 #define MPP12_GPO              MPP( 12, 0x0, 0, 1, 1,   1,   1,   1    ) 
     32+#define MPP12_GPIO             MPP( 12, 0x0, 1, 1, 1,   1,   1,   1    ) 
     33 #define MPP12_SD_CLK           MPP( 12, 0x1, 0, 1, 1,   1,   1,   1    ) 
     34  
     35 #define MPP13_GPIO             MPP( 13, 0x0, 1, 1, 1,   1,   1,   1    ) 
    2636--- /dev/null  
    2737+++ b/arch/arm/mach-kirkwood/iconnect-setup.c  
    28 @@ -0,0 +1,95 @@ 
     38@@ -1,0 +1,190 @@ 
    2939+/* 
    3040+ * arch/arm/mach-kirkwood/iconnect-setup.c 
     
    4454+#include <linux/mv643xx_eth.h> 
    4555+#include <linux/ethtool.h> 
     56+#include <linux/gpio.h> 
     57+#include <linux/gpio_keys.h> 
     58+#include <linux/input.h> 
     59+#include <linux/leds.h> 
    4660+#include <asm/mach-types.h> 
    4761+#include <asm/mach/arch.h> 
     
    7488+}; 
    7589+ 
     90+static struct gpio_led iconnect_led_pins[] = { 
     91+       { 
     92+               .name                   = "iconnect:blue:power", 
     93+               .default_trigger        = "default-on", 
     94+               .gpio                   = 42, 
     95+       }, 
     96+       { 
     97+               .name                   = "iconnect:red:power", 
     98+               .gpio                   = 43, 
     99+       }, 
     100+       { 
     101+               .name                   = "iconnect:blue:usb1", 
     102+               .gpio                   = 44, 
     103+       }, 
     104+       { 
     105+               .name                   = "iconnect:blue:usb2", 
     106+               .gpio                   = 45, 
     107+       }, 
     108+       { 
     109+               .name                   = "iconnect:blue:usb3", 
     110+               .gpio                   = 46, 
     111+       }, 
     112+       { 
     113+               .name                   = "iconnect:blue:usb4", 
     114+               .gpio                   = 47, 
     115+       }, 
     116+       { 
     117+               .name                   = "iconnect:blue:otb", 
     118+               .gpio                   = 48, 
     119+       }, 
     120+}; 
     121+ 
     122+static struct gpio_led_platform_data iconnect_led_data = { 
     123+       .leds           = iconnect_led_pins, 
     124+       .num_leds       = ARRAY_SIZE(iconnect_led_pins), 
     125+}; 
     126+ 
     127+static struct platform_device iconnect_leds = { 
     128+       .name   = "leds-gpio", 
     129+       .id     = -1, 
     130+       .dev    = { 
     131+               .platform_data  = &iconnect_led_data, 
     132+       } 
     133+}; 
     134+ 
     135+#define ICONNECT_GPIO_KEY_RESET                12 
     136+#define ICONNECT_GPIO_KEY_OTB          35 
     137+ 
     138+#define ICONNECT_SW_RESET              0x00 
     139+#define ICONNECT_SW_OTB                        0x01 
     140+ 
     141+static struct gpio_keys_button iconnect_buttons[] = { 
     142+               { 
     143+               .type           = EV_SW, 
     144+               .code           = ICONNECT_SW_RESET, 
     145+               .gpio           = ICONNECT_GPIO_KEY_RESET, 
     146+               .desc           = "Reset Button", 
     147+               .active_low     = 1, 
     148+               .debounce_interval = 100, 
     149+               },  
     150+               { 
     151+               .type           = EV_SW, 
     152+               .code           = ICONNECT_SW_OTB, 
     153+               .gpio           = ICONNECT_GPIO_KEY_OTB, 
     154+               .desc           = "OTB Button", 
     155+               .active_low     = 1, 
     156+               .debounce_interval = 100, 
     157+               }, 
     158+}; 
     159+ 
     160+static struct gpio_keys_platform_data iconnect_button_data = { 
     161+       .buttons        = iconnect_buttons, 
     162+       .nbuttons       = ARRAY_SIZE(iconnect_buttons), 
     163+}; 
     164+ 
     165+static struct platform_device iconnect_button_device = { 
     166+       .name      = "gpio-keys", 
     167+       .id          = -1, 
     168+       .num_resources  = 0, 
     169+       .dev        =   { 
     170+                                       .platform_data  = &iconnect_button_data, 
     171+                                       }, 
     172+}; 
     173+ 
    76174+static unsigned int iconnect_mpp_config[] __initdata = { 
    77 +       MPP8_TW_SDA, 
    78 +       MPP9_TW_SCK, 
    79 +       MPP10_UART0_TXD, 
    80 +       MPP11_UART0_RXD, 
    81 +       MPP28_GPIO, 
     175+       MPP12_GPIO, /*Input for reset button*/ 
     176+       MPP35_GPIO, /*Input for OTB button*/ 
     177+       MPP42_GPIO, 
     178+       MPP43_GPIO, 
     179+       MPP44_GPIO, 
     180+       MPP45_GPIO, 
     181+       MPP46_GPIO, 
     182+       MPP47_GPIO, 
     183+       MPP48_GPIO, 
    82184+       0 
    83185+}; 
     
    101203+       kirkwood_uart0_init(); 
    102204+       kirkwood_i2c_init(); 
     205+ 
     206+       platform_device_register(&iconnect_leds); 
     207+       platform_device_register(&iconnect_button_device); 
    103208+} 
    104209+ 
Note: See TracChangeset for help on using the changeset viewer.