PMIC temperature in tegrastats output

There is no mention of PMIC in tegrastats documentation

Example of my output:

RAM 1283/3957MB (lfb 38x4MB) CPU [14%@102,2%@102,off,off] EMC_FREQ 0% GR3D_FREQ 0% PLL@36C CPU@37.5C PMIC@100C GPU@39.5C AO@45.5C thermal@38.5C POM_5V_IN 1228/1248 POM_5V_GPU 0/0 POM_5V_CPU 163/138

I am concerned about PMIC@100Cpart.

What does it mean, is part of my board 100C hot? Is it some threshold?

The PMIC doesn’t allow software to read an actual temperature. Software can only read whether various thermal thresholds have been crossed. The first threshold is higher than 100C. So, the PMIC driver assumes temperature is 100C.

1 Like

Hi, I’m sorry for resuming this old topic, but I think that the answer should have been more clear.
The reason is that I’m using LXDE sensor plugin on J. Nano , which report the highest reading from temperature sensors (100° from thermal zone4 , i.e. PMIC), masking this way lower temperatures which could be critical for GPU or CPU

So my questions:
a) Is output from thermal_zone4 meaningful somehow or it has to be ignored at all?
b) In first case, does the information of “100°” mean that the (first?) threshold has been crossed (as my understanding from this part of sentence “Software can only read whether various thermal thresholds have been crossed”) or that it is all OK because no thresholds has been crossed (as someone could deduce focusing on this part of your answer: “So, the PMIC driver assumes temperature is 100°C”)? But if is this the case, other questions arise: which are the other thresholds ?
If the message to give is “it is all ok from PMIC”, don’t you think that it would be more correct to report “0°C” (or -1), instead of 100°, which is not a “reassuring” value ,and in order to not mask the other temperatures?

c) In latter case (if we can ignore thermal zone 4) , why reporting a meaningless information?

Thank you

You may find some information from sysfs.
For example, you can read sensors with:

for tz in `ls -d /sys/class/thermal/thermal_zone*`; do temp=`cat $tz/temp`; echo `cat $tz/type` ':' `expr $temp / 1000`; done

You’ll find that there are for each thermal zone some trip points:

for tz in `ls -d /sys/class/thermal/thermal_zone*`; do echo; cat $tz/type; for tp in `ls $tz/trip_point_*_temp`; do temp=`cat $tp`; echo $tp ' : ' `expr $temp / 1000`; done; done

anf for PMIC-Die, the trip point is at 120°C. So as long as it shows 100°C, you know it is below 120°C.