High CPU usage with Lenovo USB C charger

Hello everyone,

I am just joining the show, slowly migrating everything from my de-Googled Cosmo Communicator to the Librem 5.

I found out that sometimes my phone would get very hot when charging. Investigating the issue, I found out that the issue only happened with the Lenovo USB C charger that I have at home (model 01FR28 65W).

Digging a bit deeper, I found out that this charger gets the Librem 5 using 100% CPU, and this is why actually the phone gets hot. If I use my desktop USB C port or the provided charger, it’s all good.

The affected process is upowerd and it also causes a lot of activity on systemd-udevd. Has anyone faced this issue? Is this the same problem described here: Overheating the Librem 5 with USB-PD. Should I always use the charger in the box? ?

Thank you!


Your charger is giving the phone too much power it’s 65w…it’s a super fast charger. I don’t think the L5 battery I capable of that. If you continue. You will explode your battery or the phone

Why do I get high CPU usage in these processes using the Lenovo charger and not with the standard charger?

In any case, I’ve stopped using the charger… I was just trying to find out the root cause of the problem. The phone SEEMS to be charging at the correct speed - I will add a kill-a-watt to the wall at some point to confirm.

1 Like

Never mind. You can charge your phone with a 65w charge… what you described os interesting indeed :thinking:

All right, I did some investigation and I am tempted to blame the charger (as my Cosmo Communicator also gets way warmer charging with the Lenovo charger compared to the Purism charger).

Here is the loop that I found in the logs when I connect charger (journalctl):

  • bq25890-charger Upstream supply changed: 1, then disabling OTG_EN pin.
  • New usb device found, idvendor=1d6b, idproduct 002, etc
  • kernel: xhcd-hcd new USB bus registered
  • USB hub, one port detected
  • We don know the algorithms for LPM for this host
  • bq25890-charger: upstream supply changed, disabling OTG_EN pin.

Loop forever. I got hundreds of MB of logs in a few minutes. So this explains the CPU usage and the heat.


Is that normal for a charger?

Without knowing much of that: I guess yes because the phone and the charger could negotiate current and voltage via data line.

It’s not actually a new USB device, but rather the controller repeatedly switching between host and device mode for some reason. Perhaps the charger does not handle data role signalling correctly.

1 Like

Yup, no problem here.
I got access to an Apple USB-C charger from a MacBook Pro and my Librem 5 charged without issues, no crazy loop in upowerd.

Now the information is registered and if anyone else has this problem, the reference is here.

Thank you, everyone.

I confirm. The same problem happened for me with another Lenovo charger, model ADLX65YLC3D.
Feb 28 07:34:24 pureos kernel: bq25890-charger 3-006a: Upstream supply changed: 1.
Feb 28 07:34:24 pureos kernel: bq25890-charger 3-006a: Disabling OTG_EN pin

Operating systems are funny.
Here is some off-topic: Now I can’t find all the wifi AP’s with my Win10 laptop, after I cleaned it with Privatezilla. But Wifi works with both 2.4GHz and 5GHz AP’s. It is just some random AP’s (about 70% of them) that are not getting listed. I guess I need to install Debian for this laptop too.

1 Like

I tried another Lenovo charger recently and it also failed the same way.

1 Like