[Feature] STM32的drv_hard_i2c缺少一个设置I2c速度的接口
Describe problem solved by the proposed feature
就像UART一样,在应用层通过name找到设备之后,可以通过config来设置uart的属性; 目前的drv_hard_i2c中缺少这个接口,所以无法从上层来设置I2c的速度,而原始速度只有100khz;
Describe your preferred solution
所以希望在drv_hard_i2c中补充这个config接口,因为内核的ops中就是有i2c_bus_control的接口的;
Describe possible alternatives
如果直接修改drv_hard_i2c里面的参数,把100k改掉,这样的方式还是不够优雅;
https://github.com/RT-Thread/rt-thread/blob/af2c8ae1745f2231f04f94b65d4c41bee6b393c7/bsp/stm32/libraries/HAL_Drivers/drivers/drv_hard_i2c.c#L128-L134
- 这里不就是吗
- ?
rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_hard_i2c.c
Lines 128 to 134 in af2c8ae
static rt_err_t stm32_i2c_configure(struct rt_i2c_bus_device *bus) { RT_ASSERT(RT_NULL != bus); struct stm32_i2c *i2c_drv = rt_container_of(bus, struct stm32_i2c, i2c_bus);
return stm32_i2c_init(i2c_drv);}
- 这里不就是吗
- ?
可能我没有描述清楚,这个接口是静态的,没有向上暴露; 您有空的话,可以帮我review一下,https://github.com/RT-Thread/rt-thread/pull/10637
rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_hard_i2c.c Lines 128 to 134 in af2c8ae static rt_err_t stm32_i2c_configure(struct rt_i2c_bus_device *bus) { RT_ASSERT(RT_NULL != bus); struct stm32_i2c *i2c_drv = rt_container_of(bus, struct stm32_i2c, i2c_bus);
return stm32_i2c_init(i2c_drv);}
- 这里不就是吗
- ?
可能我没有描述清楚,这个接口是静态的,没有向上暴露; 您有空的话,可以帮我review一下,#10637
- 你是对的,确实没有提供^_^
rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_hard_i2c.c Lines 128 to 134 in af2c8ae static rt_err_t stm32_i2c_configure(struct rt_i2c_bus_device *bus) { RT_ASSERT(RT_NULL != bus); struct stm32_i2c *i2c_drv = rt_container_of(bus, struct stm32_i2c, i2c_bus);
return stm32_i2c_init(i2c_drv);}
- 这里不就是吗
- ?
可能我没有描述清楚,这个接口是静态的,没有向上暴露; 您有空的话,可以帮我review一下,#10637
- 你是对的,确实没有提供^_^
看到您的comment了,感谢感谢,我会抽空按照您的建议再优化一下;