你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32mp135, i2c3无法正常probe

[复制链接]
huangguansong 提问时间:2024-7-1 21:19 / 已解决

你好我的板子基于stm32mp135f-dk板子来设计的,使用buildroot编译(st/2023.02.2),通过修改开发板的设备树来实现我的功能(buildroot-external-st/board/stmicroelectronics/stm32mp1/linux-dts/stm32mp135f-dk-mx.dts)。

我一共使用了3路i2c,i21,i2c3和i2c5

设备树添加如下

&i2c1{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c1_pins_mx>; pinctrl-1 = <&i2c1_sleep_pins_mx>; //status = "okay"; status = "okay";

/ USER CODE BEGIN i2c1 / i2c-scl-rising-time-ns = <170>; i2c-scl-falling-time-ns = <5>; clock-frequency = <100000>; /delete-property/ dmas; /delete-property/ dma-names; //pcf8563@51{ // compatible = "nxp,pcf8563"; // reg = <0x51>; // status = "okay"; //}; }; &i2c3{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c3_pins_mx>; pinctrl-1 = <&i2c3_sleep_pins_mx>; status = "okay";

/ USER CODE BEGIN i2c1 / i2c-scl-rising-time-ns = <170>; i2c-scl-falling-time-ns = <5>; clock-frequency = <100000>; /delete-property/ dmas; /delete-property/ dma-names; pcf8563@51{ compatible = "nxp,pcf8563"; reg = <0x51>; status = "okay"; }; }; &i2c5{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c5_pins_mx>; pinctrl-1 = <&i2c5_sleep_pins_mx>; status = "okay";

/ USER CODE BEGIN i2c5 / i2c-scl-rising-time-ns = <170>; i2c-scl-falling-time-ns = <5>;

...

但编译下载到板子上发现并没有i2c3下的设备枚举过程

然后在i2c/busses/i2c-stm32f7.c中增加log打印(stm32f7_i2c_probe的进入)

diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.c index 7bb4a4af4..db6957db7 100644 --- a/drivers/i2c/busses/i2c-stm32f7.c +++ b/drivers/i2c/busses/i2c-stm32f7.c @@ -2092,6 +2092,7 @@ static int stm32f7_i2c_probe(struct platform_device pdev) struct reset_control rst; dma_addr_t phy_addr; int irq_error, irq_event, ret;

  • printk("hgs begin stm32f7_i2c_probe\n");

编译烧录通过dmesg查看只有i2c1和i2c5有正常probe,而i2c3没有probe

dmesg | grep hgs

[ 3.629664] hgs begin stm32f7_i2c_probe [ 3.632602] stm32f7-i2c 40012000.i2c: hgs stm32f7_i2c_probe [ 3.702230] hgs begin stm32f7_i2c_probe [ 3.708457] stm32f7-i2c 4c006000.i2c: hgs stm32f7_i2c_probe

请问如果让i2c3正常probe

收藏 评论3 发布时间:2024-7-1 21:19

举报

3个回答
wgzzz 最优答案 回答时间:2024-7-4 11:29:21

你好,i2c3默认是安全外设,需要配置OP-TEE设备树将其改为非安全可读写外设,参考配置如下,编译更新OP-TEE后,重启系统,再检查Linux下能否识别。

&etzpc{
...
    DECPROT(STM32MP1_ETZPC_I2C3_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
...
huangguansong 回答时间:2024-7-2 14:15:15

各位大佬,有人能帮忙看看吗

huangguansong 回答时间:2024-7-8 10:19:07

wgzzz 发表于 2024-7-4 11:29
你好,i2c3默认是安全外设,需要配置OP-TEE设备树将其改为非安全可读写外设,参考配置如下,编译更新OP ...

[md]多谢 按这样已解决

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版