部分内容6-无线灯

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,完成。


你可能感兴趣的:(部分内容6-无线灯)