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:
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;
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