There is a battery charger IC connect to the ChromeOS Embedded Controller (EC) if that device is configured to work with batteries, and EC exposed the application processor with a set of control to limit the overall current used for charging and current flow into the system. We have seen that the battery charger is one of major thermal budget consumer on the device. As such, it would be great that we can limit the current running through the battery charger IC, and reserve thermal budget for application processor to have more room running in higher frequencies. There are some existing drivers that can limit the current flow into the system, but they either require certain features (e.g., needing ACPI supports for cros_charge-control.c, which is only available on x86 system), and these current limiting mechanisms are achieved via indirect configurations (e.g., cros_usbpd-charger.c via setting certain USB PD charging profiles). As such, I introduced a new driver that can directly manipulate the battery charging current and the system input current. Signed-off-by: Sung-Chi, Li --- Sung-Chi, Li (3): platform/chrome: cros_ec_charge_state: add new driver to control charge dt-bindings: chrome: add new binding google,cros-ec-chrage-state mfd: cros_ec: Add charge state control cell .../bindings/chrome/google,cros-charge-state.yaml | 62 ++++++ .../devicetree/bindings/mfd/google,cros-ec.yaml | 4 + drivers/mfd/cros_ec_dev.c | 9 + drivers/platform/chrome/Kconfig | 11 ++ drivers/platform/chrome/Makefile | 1 + drivers/platform/chrome/cros_ec_charge_state.c | 215 +++++++++++++++++++++ 6 files changed, 302 insertions(+) --- base-commit: 744cf71b8bdfcdd77aaf58395e068b7457634b2c change-id: 20241118-add_charger_state-8c0d6e9a5e45 Best regards, -- Sung-Chi, Li <lschyi@xxxxxxxxxxxx>