This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LP5024:用于"sys/class/LEDs/&quot 的内核 DTSI 条目;用于访问单个 LED 颜色的条目

Guru**** 2535150 points
Other Parts Discussed in Thread: LP5024

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/937066/lp5024-kernel-dtsi-entry-for-sys-class-leds-entries-for-accessing-the-individual-led-colour

器件型号:LP5024

尊敬的 TI 团队:

我们使用的是 LP5024 IC、我们从以下链接获得了源代码、并且我们能够成功编译它。

现在、我们将尝试创建相同的系统类条目、以便从"/sys/class/led "访问 LED 单独颜色。 我们访问了以下链接、但没有帮助。 请编辑 DTSI 文件、以便我们可以为 SYS/CLASS/LED/中的每个 LED 创建单独的节点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好

    针对5.10的上游内核接受了 LP50xx 驱动程序、该驱动程序具有不同的接口。

    请参阅这些应用于文档和代码的补丁。

    文档

    代码

    此处介绍了多色框架 sysfs 接口

    Dan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好

    我还忘了提及、此新驱动程序依赖于多色框架、可在此处找到。

    git.kernel.org/.../led-class-multicolor.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dan、您好、感谢您的回复。  

    Dan、根据您的共享链接、我将使用您的驱动程序"LED-lp50xx.c"、因为我们的器件内核基于4.17、因此修复了依赖项、如下所示  

    led-class-multolor.c

    led-class-multicolor.h

    /include/dt-bindings/leds/common.h  

    /include/linux/leds.h

    /include/linux/property.h

    现在、驾驶员正在变得很新。  

    但仍然无法获取 sys/class/LED 条目:

    下面是我正在使用的 dtsi 条目、并得到此错误、无论我添加了什么条目。

    /# dmesg | grep lp50xx
    [4.674694] lp50xx 2-0028:未找到2-0028电源电压、使用虚拟稳压器
    [4.699646] lp50xx 2-0028:LED 寄存器错误:-22
    [4.709583] lp50xx:2-0028探测器失败,错误-22

    秘书长的报告

    &i2c_2{
    status ="ok";
    QCOM、clk-freq-out =<100000>;
    
    /* LP50XX LED 驱动器*/
    
    led 控制器@28{
    compatible ="ti、lp5024";
    reg =<0x28>;
    #address-cells =<1>;
    #size-cells =<0>;
    
    multi-led@cells =<0>
    
    
    
    =<0>;颜色单元格=<0>=<1.reg =<0> ;
    函数= LED_FUNC功能性 指示符;
    
    LED-0{
    颜色= ;
    };
    
    LED-1{
    颜色= ;
    };
    
    LED-2{
    颜色= ;
    };
    };
    多 LED@2{
    #address-cells =<1>;
    #size-cells =<0>;
    reg =<0x2>;
    color = ;
    函数= LED_FUNCK_STANDBY;
    
    
    LED-3{
    颜色= ;
    };
    
    LED-4 {
    颜色= ;
    };
    
    LED-5 {
    颜色= ;
    };
    };
    
    };
    }; 

    请建议这些条目是否正确。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好

    尝试为每个 LED 条目添加 reg、如下所示

    #address-cells =<1>;
    #size-cells =<0>;
    reg =<0>;
    颜色= ;
    函数= LED_FUNC功能性 指示符;

    LED@0{
    reg =<0>;
    颜色= ;
    };

    LED@1{
    reg =<1>;
    颜色= ;
    };

    LED@2{
    reg =<2>;
    颜色= ;
    };

    可能需要更新 YAML

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dan、您好!  

    我已经尝试过您共享的更改、但问题仍然相同。 您是否能够与您的一方创建 sysfs 节点? 如果是、请分享您的更改。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好

    是否已检查引导日志以查看是否有任何错误?

    这个 DT 对我来说很有用。

    Dan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dan、您好!

    我已检查引导日志、没有错误、问题仍然存在。

    正如您所说、DT 适合您、也可以共享其他文件。

    LED-lp50xx.c

    DTSI 文件

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在使用的代码是针对5.10内核的分阶段代码 



    LED-controller@28{ #address-cells =<1>; #size-cells =<0>; compatible ="ti、lp5024"; reg =<0x28>; multi-led@0{ #address-cells =<1>; #size-cells =<0>; reg =<0>; color = ; 函数= LED_FUNC功能性; LED@0{ reg =<0>; 颜色= ; }; LED@1 { reg =<1>; 颜色= ; }; LED@2 { reg =<2>; 颜色= ; }; }; 多 LED@1{ #address-cells =<1>; #size-cells =<0>; reg =<0x1>; color = ; 函数= LED_FUNC功能性 充电; LED-0{ 颜色= ; }; LED-1{ 颜色= ; }; LED-2{ 颜色= ; }; }; 多 LED@2{ #address-cells =<1>; #size-cells =<0>; reg =<2 3 5>; color = ; 函数= LED_FUNCK_STANDBY; LED-6{ 颜色= ; }; LED-7 { 颜色= ; }; LED-8 { 颜色= ; }; }; 多 LED@4{ #address-cells =<1>; #size-cells =<0>; reg =<4>; color = ; 函数= LED_FUNC功能性_RAPON_LED; LED@12{ reg =<0x12>; 颜色= ; }; LED@13{ reg =<0x13>; 颜色= ; }; LED@14{ reg =<0x14>; 颜色= ; }; }; };