Ticket #6806: orion_leds_wrt350nv2.patch

File orion_leds_wrt350nv2.patch, 6.6 KB (added by Maddes <maddes_trac@…>, 6 years ago)

Apply to trunk with -p0 after renaming patches folder.

  • target/linux/orion/config-default

     
    5959# CONFIG_GENERIC_FIND_FIRST_BIT is not set 
    6060# CONFIG_GENERIC_FIND_NEXT_BIT is not set 
    6161CONFIG_GENERIC_GPIO=y 
     62CONFIG_GPIOLIB=y 
     63CONFIG_GPIO_SYSFS=y 
    6264# CONFIG_HAMRADIO is not set 
    6365CONFIG_HARDIRQS_SW_RESEND=y 
    6466CONFIG_HAS_DMA=y 
     
    115117# CONFIG_IWLWIFI_LEDS is not set 
    116118# CONFIG_LANMEDIA is not set 
    117119# CONFIG_LATENCYTOP is not set 
     120CONFIG_LEDS_GPIO=y 
    118121CONFIG_LEGACY_PTY_COUNT=256 
    119122CONFIG_LEGACY_PTYS=y 
    120123# CONFIG_LLC2 is not set 
  • target/linux/orion/patches-2.6.30/150-wrt350nv2_gpio_leds_buttons.patch

     
     1--- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c  2009-12-08 02:39:46.000000000 +0100 
     2+++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c  2010-01-13 15:25:17.000000000 +0100 
     3@@ -15,6 +15,9 @@ 
     4 #include <linux/mtd/physmap.h> 
     5 #include <linux/mv643xx_eth.h> 
     6 #include <linux/ethtool.h> 
     7+#include <linux/leds.h> 
     8+#include <linux/gpio_keys.h> 
     9+#include <linux/input.h> 
     10 #include <net/dsa.h> 
     11 #include <asm/mach-types.h> 
     12 #include <asm/gpio.h> 
     13@@ -24,6 +27,80 @@ 
     14 #include "common.h" 
     15 #include "mpp.h" 
     16  
     17+/* 
     18+ * LEDs attached to GPIO 
     19+ */ 
     20+static struct gpio_led wrt350n_v2_led_pins[] = { 
     21+       { 
     22+               .name           = "wrt350nv2:green:power", 
     23+               .gpio           = 0, 
     24+               .active_low     = 1, 
     25+       }, { 
     26+               .name           = "wrt350nv2:green:security", 
     27+               .gpio           = 1, 
     28+               .active_low     = 1, 
     29+       }, { 
     30+               .name           = "wrt350nv2:orange:power", 
     31+               .gpio           = 5, 
     32+               .active_low     = 1, 
     33+       }, { 
     34+               .name           = "wrt350nv2:green:usb", 
     35+               .gpio           = 6, 
     36+               .active_low     = 1, 
     37+       }, { 
     38+               .name           = "wrt350nv2:green:wireless", 
     39+               .gpio           = 7, 
     40+               .active_low     = 1, 
     41+       }, 
     42+}; 
     43+ 
     44+static struct gpio_led_platform_data wrt350n_v2_led_data = { 
     45+       .leds           = wrt350n_v2_led_pins, 
     46+       .num_leds       = ARRAY_SIZE(wrt350n_v2_led_pins), 
     47+}; 
     48+ 
     49+static struct platform_device wrt350n_v2_leds = { 
     50+       .name   = "leds-gpio", 
     51+       .id     = -1, 
     52+       .dev    = { 
     53+               .platform_data  = &wrt350n_v2_led_data, 
     54+       }, 
     55+}; 
     56+ 
     57+/* 
     58+ * Buttons attached to GPIO 
     59+ */ 
     60+static struct gpio_keys_button wrt350n_v2_buttons[] = { 
     61+        { 
     62+                .code           = KEY_RESTART, 
     63+                .gpio           = 3, 
     64+                .desc           = "Reset Button", 
     65+                .active_low     = 1, 
     66+        }, { 
     67+                .code           = KEY_WLAN, 
     68+                .gpio           = 2, 
     69+                .desc           = "WPS Button", 
     70+                .active_low     = 1, 
     71+        }, 
     72+}; 
     73+ 
     74+static struct gpio_keys_platform_data wrt350n_v2_button_data = { 
     75+        .buttons        = wrt350n_v2_buttons, 
     76+        .nbuttons       = ARRAY_SIZE(wrt350n_v2_buttons), 
     77+}; 
     78+ 
     79+static struct platform_device wrt350n_v2_button_device = { 
     80+        .name           = "gpio-keys", 
     81+        .id             = -1, 
     82+        .num_resources  = 0, 
     83+        .dev            = { 
     84+                .platform_data  = &wrt350n_v2_button_data, 
     85+        }, 
     86+}; 
     87+ 
     88+/* 
     89+ * General setup 
     90+ */ 
     91 static struct orion5x_mpp_mode wrt350n_v2_mpp_modes[] __initdata = { 
     92        {  0, MPP_GPIO },               /* Power LED green (0=on) */ 
     93        {  1, MPP_GPIO },               /* Security LED (0=on) */ 
     94@@ -148,6 +225,8 @@ 
     95        orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, 
     96                                   WRT350N_V2_NOR_BOOT_SIZE); 
     97        platform_device_register(&wrt350n_v2_nor_flash); 
     98+       platform_device_register(&wrt350n_v2_button_device); 
     99+       platform_device_register(&wrt350n_v2_leds); 
     100 } 
     101  
     102 static int __init wrt350n_v2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 
  • target/linux/orion/base-files/etc/hotplug.d/usb/10-usb

     
     1#!/bin/sh 
     2# 
     3# Copyright (C) 2009-2010 OpenWrt.org 
     4# 
     5# This is free software, licensed under the GNU General Public License v2. 
     6# See /LICENSE for more information. 
     7# 
     8 
     9usb_led='' 
     10usb_device='' 
     11 
     12led_set_attr() { 
     13        [ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2" 
     14} 
     15 
     16usb_led_set_timer() { 
     17        led_set_attr "${usb_led}" 'trigger' 'timer' 
     18        led_set_attr "${usb_led}" 'delay_on' "$1" 
     19        led_set_attr "${usb_led}" 'delay_off' "$2" 
     20} 
     21 
     22usb_led_on() { 
     23        led_set_attr "${usb_led}" 'trigger' 'none' 
     24        led_set_attr "${usb_led}" 'brightness' 255 
     25} 
     26 
     27usb_led_off() { 
     28        led_set_attr "${usb_led}" 'trigger' 'none' 
     29        led_set_attr "${usb_led}" 'brightness' 0 
     30} 
     31 
     32get_usb_led() { 
     33        local hardware=`sed -n /Hardware/s/.*:.//p /proc/cpuinfo` 
     34 
     35        case "${hardware}" in 
     36         'Linksys WRT350N v2') 
     37                usb_led='wrt350nv2:green:usb' 
     38                usb_device='1-1:1.0' 
     39                ;; 
     40        esac; 
     41} 
     42 
     43get_usb_led 
     44 
     45case "${ACTION}" in 
     46 add) 
     47        # update LEDs 
     48        [ "${usb_device}" = "${DEVICENAME}" ] && usb_led_on 
     49        ;; 
     50 remove) 
     51        # update LEDs 
     52        [ "${usb_device}" = "${DEVICENAME}" ] && usb_led_off 
     53        ;; 
     54esac 
  • target/linux/orion/base-files/etc/uci-defaults/hardware

     
     1#!/bin/sh 
     2# 
     3# Copyright (C) 2010 OpenWrt.org 
     4# 
     5# This is free software, licensed under the GNU General Public License v2. 
     6# See /LICENSE for more information. 
     7# 
     8 
     9# 
     10# This script sets system defaults for the hardware on firstboot 
     11# 
     12 
     13local hardware=`sed -n /Hardware/s/.*:.//p /proc/cpuinfo` 
     14 
     15wrt350nv2_default() { 
     16# leds 
     17        uci batch <<__EOF 
     18set system.power_led=led 
     19set system.power_led.name='Power LED (green)' 
     20set system.power_led.sysfs='wrt350nv2:green:power' 
     21set system.power_led.default='1' 
     22set system.wifi_led=led 
     23set system.wifi_led.name='Wireless LED (green)' 
     24set system.wifi_led.sysfs='wrt350nv2:green:wireless' 
     25set system.wifi_led.trigger='netdev' 
     26set system.wifi_led.dev='wlan0' 
     27set system.wifi_led.mode='link tx rx' 
     28set system.wifi_led.default='0' 
     29commit system 
     30__EOF 
     31} 
     32 
     33case "${hardware}" in 
     34 'Linksys WRT350N v2') 
     35        wrt350nv2_default 
     36        ;; 
     37esac