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.

[参考译文] TPS65023:访问 I2C 的标准方法

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1107349/tps65023-standard-way-to-access-i2c

器件型号:TPS65023

大家好、  

我不熟悉嵌入式 Linux。

我已配置 TPS65023驱动程序(reguler_TPS65023=Y)并根据设置器件树  

https://www.kernel.org/doc/Documentation/devicetree/bindings/regulator/tps65023.txt

i2cdetect 显示我的器件寄存器成功。

0 1 2 3 4 5 6 7 8 9 A b c d e f
00:------------ ------------ ------
10:------------ ------------ ------------ --
20:------------ ------------ ------------ --
30:------------ ------------ ------------ --
40:------------ ------ UU -------------- ----
50:---------- ------------ ------------ --
60:------------ ------------ ------------ --

现在、我想编写一个客户端程序、通过 I2C 控制 LDO 和 DCDC。

是否有一些标准方法来实现这一点?

我希望有类似的东西

include "some_system_file"

some_system_function_openI2C(int I2C5);
some_system_function_writeBlockI2C(int I2C5, char* data, int length);
some_system_function_closeI2C(int I2C5);

我已阅读 https://www.kernel.org/doc/html/latest/i2c/dev-interface.html

smbus 功能似乎非常适合。 但是、I2C_funcs ioctl 检查器件和 用户空间器件驱动程序器件会让我对 smbus 是否真正满足我的要求犹豫不决。

如有任何建议,请提出。

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

    您好、梁建邦、

    感谢您发帖。 我们应该能够在本周结束前作出反应。

    此致、

    Alex

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

    您好、梁建邦、

    感谢您的联系。 您使用哪个处理器/MCU 通过 I2C 控制 TPS65023? 只需要这些信息、我就可以联系合适的团队、因为这是一个 Linux 问题。   

    谢谢、

    Brenda

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

    您好、Brenda、  

    我将 stm32mp 与 Linux 5.10配合使用。

    现在、我可以使用 ioctl 和读取/写入来执行此操作。 这种方法非常有效、但它是一种相当"低级"的方法。 我想知道还有其他方法可以让事情变得更容易。

    此致、  

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

    您好、梁建邦、

     我不熟悉该驱动程序、需要确认是否有更高级别的 API 可用。  电压调节是否是您尝试实现的唯一功能?

    谢谢、
    Chris

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

    尊敬的 Chris:  

    实际上、我不需要访问整个器件和所有控制寄存器。

    此致、  

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

    您好!

      如果 ioctl 正在工作、我建议保持这种方法。  我还能在 GitHub 上找到此参考资料供您考虑。

    https://github.com/torvalds/linux/blob/master/drivers/regulator/tps65023-regulator.c

    此致、
    Chris