问题描述:
SM6125平台相机上下电时I2C出现台阶
问题原因:
- 此平台的IOVDD与I2C的供电部分接通,所以在IOVDD上电时,I2C会被动上拉。
但是被动上拉时电压达不到1.8V,大概在1.6-1.7V. - 上电时序完成后,平台才走IO的上电流程,此时I2C才主动上电,并达到1.8V。造成台阶现象。
相关代码调用关系如下:
cam_sensor_power_up
|-cam_sensor_core_power_up —— 按照驱动中配置的上电时序上电
|-camera_io_init —— 平台IO上电
|-|-cam_sensor_cci_i2c_util(io_master_info->cci_client, MSM_CCI_INIT);
通过MSM_CCI_INIT关联:
case MSM_CCI_INIT:
rc = cam_cci_init(sd, cci_ctrl);
|- cam_soc_util_enable_platform_resource —— I2C上电
|-|-rc = pinctrl_select_state(soc_info->pinctrl_info.pinctrl, soc_info->pinctrl_info.gpio_state_active); —— 上电动作
台阶的影响:
由于I2C的信号传输是在I2C主动上电以后,所以台阶现象对信号传输无影响。