Switching RTC to non-rechargeable battery

To keep it short i found out that the spmic/backup_battery: status, is disabled. However when i measure the pins for there is a constant 3V potential. In my eyes that does not make sense. I’m therefore asking how can i make the jetson AGX Xavier use a non-rechargeable battery for RTC power? I would love to have a solution where i don’t have to recompile the whole kernel.

hello fb17 ,

according to Jetson Xavier NX Product Design Guide.
please confirm you’ve measure this, pin-235, PMIC_BBAT

Hi JerryChang.
Not completely sure where PMIC_BBAT is on the connector, i assume it’s not the same naming on the AGX Xavier. But i’m meassuring between VCC_RTC (L53) and PRSNT0 (A3), which according to https://developer.nvidia.com/embedded/dlc/jetson-agx-xavier-series-pin-and-function-names-guide-application-note should be the charging pin?

Edit 1: Typo fix

hello fb17 ,

you’re actually working with Jetson AGX Xavier, right?
I can moving this topic to appropriate category after your confirmation.

Ups sorry, that’s a mistake from my side, please do. Thanks!

moving to Jetson AGX Xavier.

hello fb17 ,

could you please disassembler the dtb file into text file, please check whether you had backup-battery defined.
for example, $ dtc -I dtb -O dts -o output.txt tegra194.dtb

it’s the pin L53 (VCC_RTC) if you would like to using a battery,
here’s Application Note for Jetson AGX Xavier Series Battery and Charger Design Guidelines you may take a look.

Here’s the output file. But it seems everything is in hex using that command.
output.txt (357.5 KB)

So i’m meassuring the correct pin, or am i misunderstading something?
Also isn’t that guide for powering the whole jetson with a battery pack and not for RTC?

hello fb17,

you’re measuring the correct pin,
I’ve seen there’s backup-battery defined.
for example,

			backup-battery {
				backup-battery-charging-current = <0x64>;
				backup-battery-charging-voltage = <0x2625a0>;
				backup-battery-output-resister = <0x64>;
				status = <0x7f>;

could you please remove them and using the modify device tree blob for confirmation.
for example, rename the file as *.dts, and convert the DTS into a new DTB binary.
$ dtc -I dts -O dtb -o output.dtb temp.dts

please push the binary to your target, modify /boot/extlinux/extlinux.conf to add FDT entry, and assign the path of your new DTB binary. perform warm-reboot $ sudo reboot to let the change applied.

1 Like

While looking a bit around i found out that /sys/firmware/devicetree/base has a different backup-battery structure than the dtb’s i’ve worked with (Only true if FDT is not added).
I got this file fs.txt (360.8 KB) from running dtc -I fs -O dts -o ~/fs.txt /sys/firmware/devicetree/base, where the battery status is the second entry. However when running sudo find / -name "*dtb" -type f -exec bash -c 'echo ; echo {}; dtc -I dtb {} | grep -A2 "battery"' \; > ~/test2.txt, there exists no .dtb file with that structure. Here is the output of the command test2.txt (6.2 KB). Does this mean it is overwritten by something else?

Edit 1: Your solution worked, i just had a typo. However my above question is still valid.
Edit 2: Other parts “break” with that solution, it is most likely due to mismatch in the .dtb i use in extlinux and the one in /proc/device-tree.

hello fb17,

please refer to Xavier Series Boot Flow, it’s CBoot functionality to look for an extlinux.conf configuration file for loading binary file, for example, if you assigned FDT entry there, it’ll have higher priority than loading via kernel-dtb partition.

could you please confirm you’re including correct device tree blob for testing.

1 Like

You were right, it was a old dtb i found. With the correct one it works.

Thanks for the help!

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