解决AW2013用led_classdev_register()注册red但/sys/class/leds下看不到red的问题

432 阅读1分钟

Leds用ls看不到red,注册red的代码如下:

对应的log信息

[ 4.247497] aw2013_led 5-0045: to register led red, rc = 0

[ 4.247513] aw2013_led 5-0045: parsed_leds=1

[ 4.247638] aw2013_led 5-0045: to register led blue, rc = 0

[ 4.247653] aw2013_led 5-0045: parsed_leds=2

rc = 0表示是注册成功的,为什么看不到red呢,用ls -l查看结果如下:

image.png

image.png

这里可以看到有mmc1::red,也可以看到有red,都是在sys/class/leds下注册,注册mmc1::red对应的代码在kernel\msm-3.18\drivers\mmc\host\sdhci.c\sdhci_add_host()中:

image.png

image.png

为了解决都在sys/class/leds下注册red冲突问题,有两个方法:

  1. Aw2013注册的red改个不同的名字

  2. 不定义上图4318行的SDHCI_USE_LEDS_CLASS

因为我们产品中SD这部分没有用到LED来作为指示,所以就采用第2种方法。