记录一次rk3588 tsadc问题调试过程

背景:

自研硬件,使用cat /sys/class/thermal/thermal_zone0/temp查看温度,显示/system/bin/sh: cat: temp: Invalid argumen。 

解决过程:

1. 先使能 &tsadc,温度采集的问题得以解决。但是会不定时在内核启动过程中死机。

2.因为加了温度采集出的问题,猜测是启动阶段采集温度没稳定,可能温度值异常导致保护,于是尝试将dts中

tsadc{pinctrl-1 = <&tsadc_shut>;}   //高温保护   注释掉

thermal_zones {type = "critical";}    //critical紧急处理 改为passive被动处理

不生效。

3.  在驱动文件 drivers/thermal/rockchip_thermal.c中的rk_tsadcv2_code_to_temp函数增加打印,发现挂机前温度值已经采集正常。并确认了硬件电路。tsadc_shut温度保护会导致复位,不是挂住

4.考虑是增加了温度,导致一些依赖温度的驱动开始运行了,于是尝试关闭一些外设做测试,最终定位到是关闭了rk806电源模块的i2c0情况好转。再次研究了硬件电路,发现I2C0确实有问题,多连了一个I2C设备,将多的设备断开后,启动即恢复正常了。

5. 启动正常后,还是偶现Oops信息。

CPU: 4 PID: 456 Comm: udevadm Tainted: G      D           5.10.110 #34

进了el0_sync异常处理。

6. 后续经过测试发现禁用DMC和DFI后改善,经硬件排查,发现是DDR模式选择电路问题,修改电路后正常。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值