]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
usb: typec: mux: fsa4480: add regulator support
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Thu, 3 Apr 2025 23:02:20 +0000 (01:02 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Apr 2025 11:20:09 +0000 (13:20 +0200)
The fsa4480 vcc lane could be driven by some external regulator.
This patch is adding support to enable the regulator before probing.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250404-ml-topic-typec-mux-fs4480-v1-1-475377ef22a3@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/mux/fsa4480.c

index f71dba8bf07c981a97c71f04bb00aca3b3738dd5..c54e42c7e6a16e1c0c820fd2943abf8749cfdb2b 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/regmap.h>
 #include <linux/usb/typec_dp.h>
 #include <linux/usb/typec_mux.h>
+#include <linux/regulator/consumer.h>
 
 #define FSA4480_DEVICE_ID      0x00
  #define FSA4480_DEVICE_ID_VENDOR_ID   GENMASK(7, 6)
@@ -273,6 +274,10 @@ static int fsa4480_probe(struct i2c_client *client)
        if (IS_ERR(fsa->regmap))
                return dev_err_probe(dev, PTR_ERR(fsa->regmap), "failed to initialize regmap\n");
 
+       ret = devm_regulator_get_enable_optional(dev, "vcc");
+       if (ret && ret != -ENODEV)
+               return dev_err_probe(dev, ret, "Failed to get regulator\n");
+
        ret = regmap_read(fsa->regmap, FSA4480_DEVICE_ID, &val);
        if (ret)
                return dev_err_probe(dev, -ENODEV, "FSA4480 not found\n");