SC20 I2C lines state during power off

Hi,
We are using the SC20 module in a custom PCB. We are observing that when the module is powered down, the SC20 puts the I2C lines to output + low state which drains current in the pull up resistors. We use an I2C level translator to external 3.3V voltage which causes high current drain through pull up resistors during battery operation.

So how can we change this behavior such that when the module goes to power off, the I2C lines are either made as inputs or they are made output + high?

Hi naveen1,
Why do you want to implement such as this pattern, Can you describe your specific demand?

As mentioned in the original post, our custom hardware uses 3.3V I2C peripherals which cannot be powered off by cutting off 3.3V supply. But we can only use the software based power down modes in the peripherals. We use a I2C level converter (PCA9306) to convert the SC20’s SENSOR_I2C_SDA and SENSOR_I2C_SCL to 3.3V level and then control the 3.3V peripherals. This is all not a problem.

But when we power down the SC20 using POWER_KEY signal, unfortunately SC20 is pulling the I2C lines LOW (it is making SDA/SCL output transistors ON) which is draining current in the pull up resistors. This is also not a proper expected behavior of an I2C master that implements low power modes. So we need the SC20 to make the SDA/SCL line transistors to remain in OFF state during power down mode to save power.

Any hints or guidelines as to which files we need to look into and modify this behavior would be appreciated.

Hi naveen1,
Can you tell us whether the peripheral leakage current or the module leakage current?
Does your power supply use ldo5 or ldo6? And to protect your design privacy, can you send your design schematic to our support email “support@quectel.com”.

Thank you

Hi @Abby.Wu-Q,
Actually, there is no need for any schematic. Only thing we need to know is, which source file or driver file we need to modify in the Android SDK code to achieve this:

When the SC20 is put to power down (through POWERKEY) we need both the SENSOR_I2C_SDA & SENSOR_I2C_SCL pins (pin #91 & 92) to be either OUTPUT+HIGH OR INPUT state.

If you can tell us how to do that, it will solve our issue.

Hi naveen1,
you can find these file to read:
kernel/arch/arm/boot/dts/qcom/msm8909.dtsi
kernel/arch/arm/boot/dts/qcom/msm8909-pinctrl.dtsi

Thank you!