部分内容5--sys灯

感谢同事jack,否则这点修改得花一部分时间了

系统灯不亮,即要修改GPIO,刚开始以为挺简单的,因为设备树文件前面也分析几次,看来是自己轻视了

这次有个关键的东西,pinctrl,现在还是比较迷糊。而DTS文件的内容也要深入理解了。

1、分析原理图和datasheet,找到系统灯的GPIO是38,要低电平点亮,即gpios = <&gpio1 14 0>;在dts文件增加相关代码即可。

2、在dtsi文件发现,发现gpio1居然status = "disabled";,删掉status = "disabled",即可

3、编译发现,结果还是不亮,在diag.sh里,增加对应开发板的status_led="   ",这样就OK了。

但是这个LED驱动其实还是不咋懂,看了简单一些东西,如下:

1.在leds-gpio.c:里面有 

static const struct of_device_id of_gpio_leds_match[] = {
{ .compatible = "gpio-leds", },
{},
};

这个函数,就跟DTS文件相关联了。

2.cat /sys/kernel/debug/gpio 可以查看GPIO状态

3.在mt76**.c里有static struct rt2880_pmx_func refclk_grp[] = { FUNC("spi refclk", 0, 37, 3) };这样一句,即修改在DTS文件里ralink,group = "spi refclk"


你可能感兴趣的:(部分内容5--sys灯)