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:如何为 IC LP5024安装 Linux 驱动程序-安装错误

Guru**** 2539500 points
Other Parts Discussed in Thread: LP5036, LP5024

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/902123/compiler-lp5024-how-to-install-the-linux-driver-for-the-ic-lp5024---installation-error

器件型号:LP5024
主题中讨论的其他器件:LP5036

工具/软件:TI C/C++编译器

您好!

我已从以下链接应用了补丁文件:

https://git.ti.com/gitweb/?p=ti-analogue-linux-kernel/dmurphy-analogue.git;a=commit;h=1480753ee31bb0ca69579ccba804058723901054  

并在 menuconfig 中启用"TI LP5036/30/24/18 LED 驱动器芯片的 LED 支持"、然后尝试再次构建内核、但这会产生错误、如"error:implicit declaration of function 'struct size"[-Werror=implicit-function-declaration]"

请找到屏幕截图供您参考。

此致、

Ashok S

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

    您好、Ashok、

    很抱歉、我们都是该器件的硬件工程师、没有 Linux 相关经验。 我联系了代码作者、下周将回复您。

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

    请指出您使用的是哪个版本的 Linux。

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

    使用的内核版本为 4.14.98

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

    好的、您将需要定义 struct_size 宏、或者找到该版本内核的类似替代产品。

    struct size 宏直到4.18内核才可用  

    这是您可以查找的提交。

    提交610b15c50e86eb1e4b77274fabcaea29ac72d6a8 overflow.h:添加分配大小计算帮助程序

    另请注意、官方上游版本位于此补丁系列中

    https://lore.kernel.org/patchwork/project/lkml/list/?series=441759

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

    您好!

    我已经尝试实现了该修补程序、但由于版本不匹配、因此缺少许多依赖函数。

    您能不能帮助我安装版本4.18 (或)吗?您能提供可 添加到我们"C"程序中以控制 LP5024的任何支持库/SDK 吗?

    此致、

    Ashok  

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

    您好!

    我已按照您的建议使用了以下链接中提到的补丁。

    https://lore.kernel.org/patchwork/project/lkml/list/?series=441759

    此致、

    Ashok  

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

    由于这是一个独立的宏,因此您可以从上游复制宏并将其添加到顶部的 lp50xx 文件中。

    当然、您必须了解如何调整其他宏。

    或者、您可以对所需的存储器大小进行硬编码并删除结构大小

    这可能类似于

    count * sizeof (LED)

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

    我添加了补丁 lp50xx 和相应的 dt 绑定 YAML 补丁、后来发现 lp50xx 与 led 类多色器具有相关性。 我还添加了 led 类多色补丁、此补丁更新了 led-core.c 的某些部分、但 我使用的内核版本为4.18大多数其他函数已过时。

    这会导致为 lp50xx 应用修补程序时出现问题。

    请帮助解决任何替代解决方案、例如用户空间程序支持库或 SDK。(无需是内核级)

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

    Dan、您好!

    只需将 我尝试用于此 LP5024 Linux 驱动程序的所有内容相加即可

    1) 1)我已按照以下链接进行操作  

    https://git.ti.com/gitweb/?p=ti-analogue-linux-kernel/dmurphy-analogue.git;a=commit;h=1480753ee31bb0ca69579ccba804058723901054  

    此外、我还在 LED-lp50xx.c 文件中添加了 struct_size 宏及其依赖函数代码。

    但是,在成功部署已编译的内核后,我无法在/sys/class/leds 下找到 lp5024文件夹

    2) 2)我稍后根据以下链接进行了尝试

    https://lore.kernel.org/patchwork/project/lkml/list/?series=441759、 

    但缺少如此多的依赖项文件(如我之前的注释中所述)

    您能帮我解决这个问题吗?我正在寻找内核级别(首选) 或用户空间级别(支持库、如果可用)的解决方案?

    此致、

    Ashok

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

    Ashok

    遗憾的是、由于内核的使用时间较长、您可能必须通过对 kzalloc 的大小进行硬编码来解决此问题

    您有 LED 的数量、也可以获得结构尺寸。

    示例非实数代码:

    count * sizeof (struct LEDs)

    您可以过度分配内存、但不在分配下。

    如果您需要精确的计数、请尝试升级到具有宏的较新内核、这样就可以获得大小、而只需对大小进行硬编码

    Dan