Request: Testing of Linux drivers on all laptop models

Hi,

I wrote and submitted a few Linux drivers for various features exposed by the Embedded Controller on Framework machines.
They are only tested on my Framework 13 AMD and it would be great to get some more test reports.

All patches should apply cleanly on top of current Linux mainline.
If you want to apply all patches at once there will be conflicts but these are trivial to resolve.

All of these patches need to be built as part of a kernel tree build,
they can not be used out-of-tree.

These drivers differ from the one of @dhowett in the following ways:

  • They are not Framework specific and should work on all machines with a
    ChromeOS embedded controller
  • One module per subsystem instead of one big module.
  • The keyboard backlight patch fully reuses an existing driver.
  • The LED driver allows to fully shut off the power LED and also to manage the
    battery LED, including color, automatic EC control can be enabled/disabled.
  • The battery control driver also supports charge behaviour (force discharge, inhibit charge)
  • The hwmon driver has a simpler implementation and also supports temperature readings.
    (It does not yet support fan control but that can be added later, the API provides the feature)

By splitting it up, I hope mainlining will be faster and easier.
Also I guess that the custom Framework APIs will go away at some point as the
upstream CrOS EC APIs provide the same or even more features out of the box.

11 Likes

Now that sounds quite useful for battery re-calibration.

It would be cool if you could limit charge current. IE: no matter what charging source you use, you would be slowly trickle charging.

But @Thomas_Weissschuh this all sounds fantastic! If I have some time, I’ll try them out on my 12th intel FW 13.

1 Like

That is indeed the intended usecase.

I think there are some ChromeOS EC commands that implement this.
But I have no clue if they even work on Framework.
And that would require a new Linux userspace API.

What is your usecase for this?

Thanks!

1 Like

Controlling heat while charging in embedded applications. (mainboard stacked on top of the battery with a small heatshield in between. Trying to keep temps under 55C for battery longevity, decrease the liklihood of swelling, etc.