参考:
[1]【WRTnode2R试用体验】修改DTS关闭闪瞎眼的WIFI指示灯(一)
[2]【WRTnode2R试用体验】修改DTS关闭闪瞎眼的WIFI指示灯(二)
[3]Widora控制GPIO
[4]Widora控制寄存器 ⇐ 通过控制GPIO2_MODE寄存器无法控制WLED亮灭,因为GPIO2_MODE仅对MT7628有效。
用的widora原生固件进行试验。
1、先修改target/linux/ramips/patches-3.18/0300-mt7628_fixes.patch
,将
+static struct rt2880_pmx_func wled_an_grp_mt7628[] = {
+ FUNC("rsvd", 3, 35 , 1),
+ FUNC("rsvd", 2, 35, 1),
+ FUNC("gpio", 1, 35, 1),
+ FUNC("wled_an", 0, 35, 1),
+};
修改为
+static struct rt2880_pmx_func wled_an_grp_mt7628[] = {
+ FUNC("rsvd", 3, 44 , 1),
+ FUNC("rsvd", 2, 44, 1),
+ FUNC("gpio", 1, 44, 1),
+ FUNC("wled_an", 0, 44, 1),
+};
2、找到target/linux/ramips/dts/Widora.dts
,
在
pinctrl {
state_default: pinctrl0 {
gpio {
ralink,group = "gpio","wled_an";//确保这里有"wled_an"
然后在
gpio-keys-polled {
...
};
//在这里添加
的下一行添加:
gpio-leds {
compatible = "gpio-leds";
indicator {
label = "ph:blue:indicator";
gpios = <&gpio1 12 0>;// 0 表示低电平有效
};
};
<&gpio1 12 0>
是怎么得来的呢?需要参照datasheet哈。
3、编译完后刷好固件,输入命令可看到:
这时候可以手动控制WLED的亮灭: