feat[i2c]: add bus configuration and max-hz control#11241
feat[i2c]: add bus configuration and max-hz control#11241wdfk-prog wants to merge 1 commit intoRT-Thread:masterfrom
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: componentsReviewers: Maihuanyi Changed Files (Click to expand)
🏷️ Tag: components_driver_i2cReviewers: wdfk-prog Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-03-09 08:49 CST)
📝 Review Instructions
|
f25bcf9 to
64f39d1
Compare
为什么提交这份PR (why to submit this PR)
当前 I2C 框架层缺少统一的总线频率配置接口,I2C bus device 本身也没有用于保存运行配置的结构体。
这使得上层在需要限制 I2C 最大通信频率时,缺少通用控制入口,也不便于底层驱动记录和复用实际工作频率等配置信息。
为了给 I2C 总线提供统一的最大频率设置能力,并为后续驱动适配提供基础配置结构,提交此 PR。
你的解决方案是什么 (what is your solution)
本 PR 在 I2C 核心层做了以下改动:
RT_I2C_CTRL_SET_MAX_HZ,用于设置 I2C 总线最大通信频率;rt_i2c_control()中增加对RT_I2C_CTRL_SET_MAX_HZ的处理逻辑:bus->config.max_hz;i2c_bus_control回调分发逻辑,确保其他控制命令行为不变;dev_i2c.h中新增struct rt_i2c_configuration:mode:I2C 工作模式;max_hz:最大限制波特率;usage_freq:实际使用波特率;struct rt_i2c_bus_device中新增config成员,用于保存 I2C 总线配置;通过这些调整,I2C 核心层具备了统一保存和设置总线频率参数的能力,也为后续底层驱动根据
max_hz配置实际时钟提供了基础支持。请提供验证的bsp和config (provide the config and bsp)
BSP:
bsp/stm32/stm32l496-st-nucleo.config:
action: