1.在dts文件上直接加:
wled{
label = "wr503:wlanLed";
gpios = <&gpio3 0 0>;
};
注意看datasheet ,有WLED_N WLAN_LED_N GPO#72,所以是gpio3,当然在dtsi文件上要增加gpio3这一组的定义
并加到ralink,group = "“里
2.开启和关闭无线,无线灯常亮,显然不正确
是否是wled的GPIO模式不正确呢?
同事移植了reg和rdm,用reg s 0;reg r 60,读出来WLED_GPIO_MODE 这一位寄存器值为1
当把这一位寄存器的值,修改为0,则结果正常
那么找关键文件吧
有#define ****_GPIO_MODE_WLED 13,这个看补丁文件看看,当初是BIT(13),即13位为1,现在应该仍是这个意思,但是我需要把它的13位置0,怎么处理?只有继续跟踪
GRP("wled", wled_grp, 1, ****_GPIO_MODE_WLED),这个把WLED的系统打包处理了,继续跟踪
在pinctrl-rt2880.c函数的rt2880_pmx_group_enable()函数里有mode关键字,就是这了
增加:
if (p->groups[group].name = "wled")
{
mode &= ~(p->groups[group].mask << p->groups[group].shift);
}
OK,完成。