LED配置移植说明

LED配置移植说明

1. 驱动注册

AR934x系列:arch/mips/ath79/mach-db120.c
AR953x系列:arch/mips/ath79/mach-ap143.c(单频2.4G)
           arch/mips/ath79/mach-ap147.c(双频2.4G + 5.8G)

2. 配置目录

/ # cd sys/class/leds/
/sys/class/leds # 
/sys/class/leds # ls
db120:green:status   db120:green:wlan-2g  db120:green:wps
db120:green:usb      db120:green:wlan-5g
/sys/class/leds # 

3. 参考脚本

1)led配置文件demo

config led 'led_lan1'
       option name 'LAN1'
       option sysfs 'ap147:green:lan1'
       option port_mask '0x02'
       option trigger 'switch0'
       option default '0'

config led 'led_lan2'
       option name 'LAN2'
       option sysfs 'ap147:green:lan2'
       option port_mask '0x04'
       option trigger 'switch0'
       option default '0'

config led 'led_lan3'
       option name 'LAN3'
       option sysfs 'ap147:green:lan3'
       option port_mask '0x08'
       option trigger 'switch0'
       option default '0'

config led 'led_lan4'
       option name 'LAN4'
       option sysfs 'ap147:green:lan4'
       option port_mask '0x10'
       option trigger 'switch0'
       option default '0'

config led 'led_wlan2g'
       option name 'WLAN 2.4 GHz'
       option sysfs 'ap147:green:wlan-2g'
       option default '0'
       option trigger 'netdev'
       option mode 'link tx rx'
       option dev 'ath0'

2) led控制脚本demo

#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org

START=96

load_led() {
    local name
    local sysfs
    local trigger
    local dev
    local mode
    local default
    local delayon
    local delayoff
    local interval

    config_get sysfs $1 sysfs
    config_get name $1 name "$sysfs"
    config_get trigger $1 trigger "none"
    config_get dev $1 dev
    config_get mode $1 mode "link"
    config_get_bool default $1 default "nil"
    config_get delayon $1 delayon
    config_get delayoff $1 delayoff
    config_get interval $1 interval "50"
    config_get port_state $1 port_state
    config_get delay $1 delay "150"
    config_get message $1 message ""

    if [ "$trigger" = "rssi" ]; then
        # handled by rssileds userspace process
        return
    fi

    [ -e /sys/class/leds/${sysfs}/brightness ] && {
        echo "setting up led ${name}"

        [ "$default" = 0 ] &&
            echo 0 >/sys/class/leds/${sysfs}/brightness

        echo $trigger > /sys/class/leds/${sysfs}/trigger 2> /dev/null
        ret="$?"

        [ $default = 1 ] &&
            echo 1 >/sys/class/leds/${sysfs}/brightness

        [ $ret = 0 ] || {
            echo >&2 "Skipping trigger '$trigger' for led '$name' due to missing kernel module"
            return 1
        }
        case "$trigger" in
        "netdev")
            [ -n "$dev" ] && {
                echo $dev > /sys/class/leds/${sysfs}/device_name
                echo $mode > /sys/class/leds/${sysfs}/mode
            }
            ;;

        "timer")
            [ -n "$delayon" ] && \
                echo $delayon > /sys/class/leds/${sysfs}/delay_on
            [ -n "$delayoff" ] && \
                echo $delayoff > /sys/class/leds/${sysfs}/delay_off
            ;;

        "usbdev")
            [ -n "$dev" ] && {
                echo $dev > /sys/class/leds/${sysfs}/device_name
                echo $interval > /sys/class/leds/${sysfs}/activity_interval
            }
            ;;

        "port_state")
            [ -n "$port_state" ] && \
                echo $port_state > /sys/class/leds/${sysfs}/port_state
            ;;

        "morse")
            echo $message > /sys/class/leds/${sysfs}/message
            echo $delay > /sys/class/leds/${sysfs}/delay
            ;;

        switch[0-9]*)
            local port_mask

            config_get port_mask $1 port_mask
            [ -n "$port_mask" ] && \
                echo $port_mask > /sys/class/leds/${sysfs}/port_mask
            ;;
        esac
    }
}

start() {
    [ -e /sys/class/leds/ ] && {
        config_load system
        config_foreach load_led led
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值