drivers/usb/typec/mux/fsa4480.c | 5 +++++ 1 file changed, 5 insertions(+)
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>
---
drivers/usb/typec/mux/fsa4480.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/usb/typec/mux/fsa4480.c b/drivers/usb/typec/mux/fsa4480.c
index f71dba8bf07c9..c54e42c7e6a16 100644
--- a/drivers/usb/typec/mux/fsa4480.c
+++ b/drivers/usb/typec/mux/fsa4480.c
@@ -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");
---
base-commit: a1b5bd45d4ee58af4f56e49497b8c3db96d8f8a3
change-id: 20250404-ml-topic-typec-mux-fs4480-392407f94f84
Best regards,
--
Michael Grzeschik <m.grzeschik@pengutronix.de>
On Fri, Apr 04, 2025 at 01:02:20AM +0200, Michael Grzeschik wrote: > 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> > --- > drivers/usb/typec/mux/fsa4480.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/usb/typec/mux/fsa4480.c b/drivers/usb/typec/mux/fsa4480.c > index f71dba8bf07c9..c54e42c7e6a16 100644 > --- a/drivers/usb/typec/mux/fsa4480.c > +++ b/drivers/usb/typec/mux/fsa4480.c > @@ -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"); > > --- > base-commit: a1b5bd45d4ee58af4f56e49497b8c3db96d8f8a3 > change-id: 20250404-ml-topic-typec-mux-fs4480-392407f94f84 > > Best regards, > -- > Michael Grzeschik <m.grzeschik@pengutronix.de> > -- heikki
On Fri, Apr 04, 2025 at 01:02:20AM +0200, Michael Grzeschik wrote: > 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> > --- > drivers/usb/typec/mux/fsa4480.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/usb/typec/mux/fsa4480.c b/drivers/usb/typec/mux/fsa4480.c > index f71dba8bf07c9..c54e42c7e6a16 100644 > --- a/drivers/usb/typec/mux/fsa4480.c > +++ b/drivers/usb/typec/mux/fsa4480.c > @@ -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"); Missing DT bindings update that describes this supply. > + 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"); > > --- > base-commit: a1b5bd45d4ee58af4f56e49497b8c3db96d8f8a3 > change-id: 20250404-ml-topic-typec-mux-fs4480-392407f94f84 > > Best regards, > -- > Michael Grzeschik <m.grzeschik@pengutronix.de> > -- With best wishes Dmitry
On Tue, Apr 08, 2025 at 03:18:14PM +0300, Dmitry Baryshkov wrote: >On Fri, Apr 04, 2025 at 01:02:20AM +0200, Michael Grzeschik wrote: >> 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> >> --- >> drivers/usb/typec/mux/fsa4480.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/usb/typec/mux/fsa4480.c b/drivers/usb/typec/mux/fsa4480.c >> index f71dba8bf07c9..c54e42c7e6a16 100644 >> --- a/drivers/usb/typec/mux/fsa4480.c >> +++ b/drivers/usb/typec/mux/fsa4480.c >> @@ -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"); > >Missing DT bindings update that describes this supply. Looking into "Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml" it seems vcc-supply is alread documented. Is more needed? >> + 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"); >> >> --- >> base-commit: a1b5bd45d4ee58af4f56e49497b8c3db96d8f8a3 >> change-id: 20250404-ml-topic-typec-mux-fs4480-392407f94f84 >> >> Best regards, >> -- >> Michael Grzeschik <m.grzeschik@pengutronix.de> >> > >-- >With best wishes >Dmitry > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
On Thu, Apr 10, 2025 at 11:54:38PM +0200, Michael Grzeschik wrote: > On Tue, Apr 08, 2025 at 03:18:14PM +0300, Dmitry Baryshkov wrote: > > On Fri, Apr 04, 2025 at 01:02:20AM +0200, Michael Grzeschik wrote: > > > 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> > > > --- > > > drivers/usb/typec/mux/fsa4480.c | 5 +++++ > > > 1 file changed, 5 insertions(+) > > > > > > diff --git a/drivers/usb/typec/mux/fsa4480.c b/drivers/usb/typec/mux/fsa4480.c > > > index f71dba8bf07c9..c54e42c7e6a16 100644 > > > --- a/drivers/usb/typec/mux/fsa4480.c > > > +++ b/drivers/usb/typec/mux/fsa4480.c > > > @@ -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"); > > > > Missing DT bindings update that describes this supply. > > Looking into "Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml" it > seems vcc-supply is alread documented. Is more needed? > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -- With best wishes Dmitry
© 2016 - 2026 Red Hat, Inc.