tingpan

生命不息,折腾不止!
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

newifi mini将led指示灯引出当gpio使用

Posted on 2015-11-22 12:47  tingpan  阅读(2246)  评论(0编辑  收藏  举报

之前买了个newifi mini的路由器,CPU是mt7620a的,有7个led指示灯。现在想要把控制led灯的gpio引出来,方便其他驱动或应用的开发。

一、硬件部分

1、联想路由

clip_image002

现在想要把USB、5G、LAN、INTERNET这四个指示灯引出,原本是打算把WAN指示灯也引出来的,但是WAN指示灯没有被当作普通的gpio使用,所以没办法引出(引出了也没法当作gpio使用)。

2、将路由器拆开,去掉这四个led灯,以及对应的电容(如果不去掉,会影响i2c通讯),并将四个led灯对应的测试点连接杜邦线引出,认真观察电路板可以看出。另外也多引出一条电源线,也就是led灯的正极。

clip_image004

二、软件部分

1、进入/target/linux/ramips/dts/Y1.dts,修改如下

/dts-v1/;

/include/ "Y1.dtsi"

/ {
    compatible = "lenovo,Y1", "ralink,mt7620a-soc";
    model = "Lenovo Y1";

    ethernet@10100000 {
        pinctrl-names = "default";
        pinctrl-0 = <&ephy_pins>;
        mtd-mac-address = <&factory 0x4>;
        ralink,port-map = "llllw";
    };
    
    gpio-leds {
        compatible = "gpio-leds";
        power1 {
            label = "lenovo:blue:power";
            gpios = <&gpio0 9 1>;
        };
        wlan1 {
            label = "lenovo:blue:wifi";
            gpios = <&gpio3 0 1>;
        };
    };
};

2、编译,重新烧写固件。

三、测试

1、四个led灯对应的gpio如下:

USB:gpio52

5G:gpio50

LAN:gpio55

INTERNET:gpio51

2、依次输入如下

root@OpenWrt:/sys/class/gpio# echo 50 > export
root@OpenWrt:/sys/class/gpio# echo 51 > export 
root@OpenWrt:/sys/class/gpio# echo 52 > export 
root@OpenWrt:/sys/class/gpio# echo 55 > export

3、将引出来的四个gpio外接led灯,依次输入如下,并观察哪盏led灯亮起:

root@OpenWrt:/sys/class/gpio# echo out >gpio50/direction 
root@OpenWrt:/sys/class/gpio# echo out >gpio51/direction 
root@OpenWrt:/sys/class/gpio# echo out >gpio52/direction 
root@OpenWrt:/sys/class/gpio# echo out >gpio55/direction

就可以知道哪个引线对应哪个gpio。