Coin Cell Battery charging disable

Hi,

Ho can I disable coin cell battery charger.
From reviewing at previous posts :

Coin Cell Battery charging disable

Disable Charging for RTC backup Coin-cell

From review those posts confused what should I do at device tree and in MB1 in order to disable battery charging?

Can you please clarify the correct procedure in order to disable the battery charging?

Just like you , even I was confused on the entire process of disabling the battery charging process, hence I took a better approach of purchasing a rechargeable battery altogether. Check out the battery model BR1225. it is similar to CR1225 that is recommended in the manual. It should work fine.

Configuring PMIC backup battery charging circuit in mb1 BCT.

The PMIC’s builtin backup battery charging circuit can be configured using the CNFGBBC register of the PMIC.
The register exists at offset 4 for MAX77620 and MAX20024 parts.
Following configurations can be made:

       Bit[0]:   Enable backup battery charger
        Bit[1:2]: Charging current setting
        Bit[3:4]: Charging voltage limit setting
        Bit[5]:   Lower charging current enable
        Bit[6:7]: Ouput resistor selection

Software configuration can be done using the MB1 PMIC cfg file. The file has sections for configuring PMIC registers.
Such sections have type=1 to indicate I2C transaction, i2c-controller-id=<> for instance of I2C controller and slave-add=0x78 for identifying PMIC.
e.g,
T186:

pmic.generic.1.block[ ].type = 1; # I2C Type
  pmic.generic.1.block[ ].i2c-controller-id = 4;
  pmic.generic.1.block[ ].slave-add = 0x78; # 7BIt:0x3c

T194:

  pmic.system.block[ ].type = 1; #I2C
  pmic.system.block[ ].controller-id = 4;
  pmic.system.block[ ].slave-add = 0x78; # 7BIt:0x3c

T186 platforms:
Software configuration can be done by adding instruction to set the respective bit fields of register 4.
To disable backup battery charger:

 1. Update the number of commands
     pmic.generic.1.block[0].count = 2;
  2. Add instruction to set the value of bit0 to 0 in register 4(CNFGBBC).
     pmic.generic.1.block[0].commands[1].0x04.0x01 = 0x0;

Note: The command structure has register_address.bitmask = value; fields

T194 platforms:
Modify MB1 PMIC cfg file tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg.
To disable backup battery charger:
Add following command under pmic.system.block[2] in the MB1 PMIC cfg file
pmic.system.block[2].commands[1].0x04.0x01 = 0x0;

Hi

At bootloader/t186ref/BCT I changed tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg according to yours instruction but the board still provides 3V to the rtc battery

# CFG Version 1.0
# This is the empty CFG files for PMIC rail configuration
# This contains the PMIC commands in MB1.
pmic.major = 1;
pmic.minor = 0;

######################## System Configurations ####
# PMIC FPS to turn SD4 (VDD_DDR_1V1) on in time slot 0
# PMIC FPS to set GPIO2 (EN_DDR_VDDQ)  high in time slot 1
# Set SLPEN = 1 and CLRSE on POR reset
pmic.system.block[0].type = 1; #I2C
pmic.system.block[0].controller-id = 4;
pmic.system.block[0].slave-add = 0x78; # 7BIt:0x3c
pmic.system.block[0].reg-data-size = 8;
pmic.system.block[0].reg-add-size = 8;
pmic.system.block[0].block-delay = 10;
pmic.system.block[0].commands[0].0x53.0x38 = 0x00; # SD4 FPS UP slot 0
pmic.system.block[0].commands[1].0x55.0x38 = 0x10; # GPIO2 FPS UP slot 2
pmic.system.block[0].commands[2].0x41.0x1C = 0x1C; # SLPEN=1, CLRSE = 11

# PMIC FPS programming to reassign SD1, SD2, LDO4 and LDO5 to
# FPS0 to leave those rails on in SC7
pmic.system.block[1].type = 1; #I2C
pmic.system.block[1].controller-id = 4;
pmic.system.block[1].slave-add = 0x78; # 7BIt:0x3c
pmic.system.block[1].reg-data-size = 8;
pmic.system.block[1].reg-add-size = 8;
pmic.system.block[1].block-delay = 10;
pmic.system.block[1].commands[0].0x50.0xC0 = 0x00; # SD1 FPS to FPS0
pmic.system.block[1].commands[1].0x51.0xC0 = 0x00; # SD2 FPS to FPS0
pmic.system.block[1].commands[2].0x4A.0xC0 = 0x00; # LDO4 FPS to FPS0
pmic.system.block[1].commands[3].0x4B.0xC0 = 0x00; # LDO5 FPS to FPS0
pmic.system.block[1].commands[4].0x4C.0xC0 = 0x00; # LDO6 FPS to FPS0

# VDDIO_DDR to 1.1V, SD4 to 1.1V
pmic.system.block[2].type = 1; #I2C
pmic.system.block[2].controller-id = 4;
pmic.system.block[2].slave-add = 0x78; # 7BIt:0x3c
pmic.system.block[2].reg-data-size = 8;
pmic.system.block[2].reg-add-size = 8;
pmic.system.block[2].block-delay = 10;
pmic.system.block[2].commands[0].0x1A.0xFF =  0x28; # SD4 to 1.1V
pmic.system.block[2].commands[1].0x04.0x01 = 0x0;

######################## #CPU0 RAIL configurations  ###############
# 1. Set 800mV voltage.
pmic.cpu0.block[0].type = 2; # PWM Type
pmic.cpu0.block[0].controller-id = 5; #soc_gpio13; PWM6
pmic.cpu0.block[0].source-frq-hz = 204000000; #204MHz
pmic.cpu0.block[0].period-ns = 1255; # 800KHz.
pmic.cpu0.block[0].min-microvolts = 500000;
pmic.cpu0.block[0].max-microvolts = 1120000;
pmic.cpu0.block[0].init-microvolts = 800000;
pmic.cpu0.block[0].enable = 1;

# 2. CPU PWR_REQ cpu_pwr_req_0_pb0 to be 1
pmic.cpu0.block[1].type = 0; # MMIO TYPE
pmic.cpu0.block[1].block-delay = 3;
pmic.cpu0.block[1].commands[0].0x02214e00.0x3 = 0x00000003; # CONFIG B0
pmic.cpu0.block[1].commands[1].0x02214e0c.0x1 = 0x00000000; # CONTROL B0
pmic.cpu0.block[1].commands[2].0x02214e10.0x1 = 0x00000001; # OUTPUT B0
pmic.cpu0.block[1].commands[3].0x02446008.0x400 = 0x00000000; # cpu_pwr_req_0_pb0 to GPIO mode
pmic.cpu0.block[1].commands[4].0x02446008.0x10 = 0x00000000; #  cpu_pwr_req_0_pb0 tristate(b4)=0

# 3. Set soc_gpio13 to untristate
pmic.cpu0.block[2].type = 0; # MMIO Type
pmic.cpu0.block[2].commands[4].0x02434098.0x10 = 0x00; # soc_gpio13 to be untristate


Thank’s finally it’s worked
.
In addition to sw issue we had an HW issue

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.