]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mfd: cros_ec: Don't load charger with UCSI
authorAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
Tue, 10 Sep 2024 10:15:27 +0000 (10:15 +0000)
committerLee Jones <lee@kernel.org>
Wed, 16 Oct 2024 08:04:09 +0000 (09:04 +0100)
When UCSI is enabled, don't load cros_usbpd_charger and cros_usbpd_logger
drivers. Charger functionality is provided by the UCSI driver already and
logging will need to be added.

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Ɓukasz Bartosik <ukaszb@chromium.org>
Link: https://lore.kernel.org/r/20240910101527.603452-9-ukaszb@chromium.org
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/mfd/cros_ec_dev.c

index 44300352ff6917f71fff71c42173e0c643d1b884..2cbd07359954e8683c051d51e165f89e098e4a54 100644 (file)
@@ -133,11 +133,6 @@ static const struct cros_feature_to_cells cros_subdevices[] = {
                .mfd_cells      = cros_ec_ucsi_cells,
                .num_cells      = ARRAY_SIZE(cros_ec_ucsi_cells),
        },
-       {
-               .id             = EC_FEATURE_USB_PD,
-               .mfd_cells      = cros_usbpd_charger_cells,
-               .num_cells      = ARRAY_SIZE(cros_usbpd_charger_cells),
-       },
        {
                .id             = EC_FEATURE_HANG_DETECT,
                .mfd_cells      = cros_ec_wdt_cells,
@@ -261,6 +256,21 @@ static int ec_device_probe(struct platform_device *pdev)
                }
        }
 
+       /*
+        * UCSI provides power supply information so we don't need to separately
+        * load the cros_usbpd_charger driver.
+        */
+       if (cros_ec_check_features(ec, EC_FEATURE_USB_PD) &&
+           !cros_ec_check_features(ec, EC_FEATURE_UCSI_PPM)) {
+               retval = mfd_add_hotplug_devices(ec->dev,
+                                                cros_usbpd_charger_cells,
+                                                ARRAY_SIZE(cros_usbpd_charger_cells));
+
+               if (retval)
+                       dev_warn(ec->dev, "failed to add usbpd-charger: %d\n",
+                                retval);
+       }
+
        /*
         * Lightbar is a special case. Newer devices support autodetection,
         * but older ones do not.