diff mbox series

usb: typec: mux: fsa4480: add regulator support

Message ID 20250404-ml-topic-typec-mux-fs4480-v1-1-475377ef22a3@pengutronix.de
State New
Headers show
Series usb: typec: mux: fsa4480: add regulator support | expand

Commit Message

Michael Grzeschik April 3, 2025, 11:02 p.m. UTC
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(+)


---
base-commit: a1b5bd45d4ee58af4f56e49497b8c3db96d8f8a3
change-id: 20250404-ml-topic-typec-mux-fs4480-392407f94f84

Best regards,

Comments

Dmitry Baryshkov April 8, 2025, 12:18 p.m. UTC | #1
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>
>
Michael Grzeschik April 10, 2025, 9:54 p.m. UTC | #2
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
>
Dmitry Baryshkov April 15, 2025, 1:32 p.m. UTC | #3
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>
diff mbox series

Patch

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");