mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 12:21:22 -05: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 commit7613bc0d11("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:1d7bcf1d50Fixes:555b5fcdb8("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:
committed by
Lee Jones
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[] = {
|
||||
|
||||
Reference in New Issue
Block a user