mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
mfd: cros_ec: Separate charge-control probing from USB-PD
The charge-control subsystem in the ChromeOS EC is not strictly tied to
its USB-PD subsystem.
Since commit 7613bc0d116a ("mfd: cros_ec: Don't load charger with UCSI")
the presence of EC_FEATURE_UCSI_PPM would inhibit the probing of the
charge-control driver.
Furthermore recent versions of the EC firmware in Framework laptops
hard-disable EC_FEATURE_USB_PD to avoid probing cros-usbpd-charger,
which then also breaks cros-charge-control.
Instead use the dedicated EC_FEATURE_CHARGER.
Cc: stable@vger.kernel.org
Link: 1d7bcf1d50
Fixes: 555b5fcdb844 ("mfd: cros_ec: Register charge control subdevice")
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
Tested-by: Tom Vincent <linux@tlvince.com>
Link: https://lore.kernel.org/r/20250521-cros-ec-mfd-chctl-probe-v1-1-6ebfe3a6efa7@weissschuh.net
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
6f27d26e36
commit
e40fc1160d
@ -87,7 +87,6 @@ static const struct mfd_cell cros_ec_sensorhub_cells[] = {
|
||||
};
|
||||
|
||||
static const struct mfd_cell cros_usbpd_charger_cells[] = {
|
||||
{ .name = "cros-charge-control", },
|
||||
{ .name = "cros-usbpd-charger", },
|
||||
{ .name = "cros-usbpd-logger", },
|
||||
};
|
||||
@ -112,6 +111,10 @@ static const struct mfd_cell cros_ec_ucsi_cells[] = {
|
||||
{ .name = "cros_ec_ucsi", },
|
||||
};
|
||||
|
||||
static const struct mfd_cell cros_ec_charge_control_cells[] = {
|
||||
{ .name = "cros-charge-control", },
|
||||
};
|
||||
|
||||
static const struct cros_feature_to_cells cros_subdevices[] = {
|
||||
{
|
||||
.id = EC_FEATURE_CEC,
|
||||
@ -148,6 +151,11 @@ static const struct cros_feature_to_cells cros_subdevices[] = {
|
||||
.mfd_cells = cros_ec_keyboard_leds_cells,
|
||||
.num_cells = ARRAY_SIZE(cros_ec_keyboard_leds_cells),
|
||||
},
|
||||
{
|
||||
.id = EC_FEATURE_CHARGER,
|
||||
.mfd_cells = cros_ec_charge_control_cells,
|
||||
.num_cells = ARRAY_SIZE(cros_ec_charge_control_cells),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct mfd_cell cros_ec_platform_cells[] = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user