linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [V3 1/2] ASoC: max98390: Add reset gpio control
@ 2022-03-28  2:11 Steve Lee
  2022-03-28  2:11 ` [V3 2/2] ASoC: dt-bindings: max98390: add reset gpio bindings Steve Lee
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Steve Lee @ 2022-03-28  2:11 UTC (permalink / raw)
  To: lgirdwood, broonie, perex, tiwai, ryans.lee, linux-kernel, alsa-devel
  Cc: krzk, nuno.sa, Steve Lee

 Add reset gpio control to support RESET PIN connected to gpio.

Signed-off-by: Steve Lee <steve.lee.analog@gmail.com>
---
 sound/soc/codecs/max98390.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/sound/soc/codecs/max98390.c b/sound/soc/codecs/max98390.c
index 40fd6f363f35..05df9b85d9b0 100644
--- a/sound/soc/codecs/max98390.c
+++ b/sound/soc/codecs/max98390.c
@@ -1022,6 +1022,7 @@ static int max98390_i2c_probe(struct i2c_client *i2c,
 
 	struct max98390_priv *max98390 = NULL;
 	struct i2c_adapter *adapter = i2c->adapter;
+	struct gpio_desc *reset_gpio;
 
 	ret = i2c_check_functionality(adapter,
 		I2C_FUNC_SMBUS_BYTE
@@ -1073,6 +1074,17 @@ static int max98390_i2c_probe(struct i2c_client *i2c,
 		return ret;
 	}
 
+	reset_gpio = devm_gpiod_get_optional(&i2c->dev,
+					     "reset", GPIOD_OUT_LOW);
+
+	/* Power on device */
+	if (reset_gpio) {
+		usleep_range(1000, 2000);
+		/* bring out of reset */
+		gpiod_set_value_cansleep(reset_gpio, 1);
+		usleep_range(1000, 2000);
+	}
+
 	/* Check Revision ID */
 	ret = regmap_read(max98390->regmap,
 		MAX98390_R24FF_REV_ID, &reg);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [V3 2/2] ASoC: dt-bindings: max98390: add reset gpio bindings
  2022-03-28  2:11 [V3 1/2] ASoC: max98390: Add reset gpio control Steve Lee
@ 2022-03-28  2:11 ` Steve Lee
  2022-03-28  7:42 ` [V3 1/2] ASoC: max98390: Add reset gpio control Sa, Nuno
  2022-03-28  8:46 ` Sa, Nuno
  2 siblings, 0 replies; 6+ messages in thread
From: Steve Lee @ 2022-03-28  2:11 UTC (permalink / raw)
  To: lgirdwood, broonie, perex, tiwai, ryans.lee, linux-kernel, alsa-devel
  Cc: krzk, nuno.sa, Steve Lee

This adds support for the reset gpio binding.

Signed-off-by: Steve Lee <steve.lee.analog@gmail.com>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/sound/maxim,max98390.yaml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/maxim,max98390.yaml b/Documentation/devicetree/bindings/sound/maxim,max98390.yaml
index fea9a1b6619a..deaa6886c42f 100644
--- a/Documentation/devicetree/bindings/sound/maxim,max98390.yaml
+++ b/Documentation/devicetree/bindings/sound/maxim,max98390.yaml
@@ -29,6 +29,9 @@ properties:
     minimum: 1
     maximum: 8388607
 
+  reset-gpios:
+    maxItems: 1
+
 required:
   - compatible
   - reg
@@ -37,6 +40,7 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
     i2c {
       #address-cells = <1>;
       #size-cells = <0>;
@@ -45,5 +49,6 @@ examples:
         reg = <0x38>;
         maxim,temperature_calib = <1024>;
         maxim,r0_calib = <100232>;
+        reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
       };
     };
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* RE: [V3 1/2] ASoC: max98390: Add reset gpio control
  2022-03-28  2:11 [V3 1/2] ASoC: max98390: Add reset gpio control Steve Lee
  2022-03-28  2:11 ` [V3 2/2] ASoC: dt-bindings: max98390: add reset gpio bindings Steve Lee
@ 2022-03-28  7:42 ` Sa, Nuno
  2022-03-28 12:50   ` Lee Steve
  2022-03-28  8:46 ` Sa, Nuno
  2 siblings, 1 reply; 6+ messages in thread
From: Sa, Nuno @ 2022-03-28  7:42 UTC (permalink / raw)
  To: Steve Lee, lgirdwood, broonie, perex, tiwai, ryans.lee,
	linux-kernel, alsa-devel
  Cc: krzk

> From: Steve Lee <steve.lee.analog@gmail.com>
> Sent: Monday, March 28, 2022 4:12 AM
> To: lgirdwood@gmail.com; broonie@kernel.org; perex@perex.cz;
> tiwai@suse.com; ryans.lee@maximintegrated.com; linux-
> kernel@vger.kernel.org; alsa-devel@alsa-project.org
> Cc: krzk@kernel.org; Sa, Nuno <Nuno.Sa@analog.com>; Steve Lee
> <steve.lee.analog@gmail.com>
> Subject: [V3 1/2] ASoC: max98390: Add reset gpio control
> 
> [External]
> 
>  Add reset gpio control to support RESET PIN connected to gpio.
> 
> Signed-off-by: Steve Lee <steve.lee.analog@gmail.com>
> ---
>  sound/soc/codecs/max98390.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/sound/soc/codecs/max98390.c
> b/sound/soc/codecs/max98390.c
> index 40fd6f363f35..05df9b85d9b0 100644
> --- a/sound/soc/codecs/max98390.c
> +++ b/sound/soc/codecs/max98390.c
> @@ -1022,6 +1022,7 @@ static int max98390_i2c_probe(struct
> i2c_client *i2c,
> 
>  	struct max98390_priv *max98390 = NULL;
>  	struct i2c_adapter *adapter = i2c->adapter;
> +	struct gpio_desc *reset_gpio;
> 
>  	ret = i2c_check_functionality(adapter,
>  		I2C_FUNC_SMBUS_BYTE
> @@ -1073,6 +1074,17 @@ static int max98390_i2c_probe(struct
> i2c_client *i2c,
>  		return ret;
>  	}
> 
> +	reset_gpio = devm_gpiod_get_optional(&i2c->dev,
> +					     "reset", GPIOD_OUT_LOW);
> +
> +	/* Power on device */
> +	if (reset_gpio) {
> +		usleep_range(1000, 2000);
> +		/* bring out of reset */
> +		gpiod_set_value_cansleep(reset_gpio, 1);

Note this will set the gpio in the asserted state. Being it active low, this will
do the opposite thing that you are trying to accomplish...

- Nuno Sá

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [V3 1/2] ASoC: max98390: Add reset gpio control
  2022-03-28  2:11 [V3 1/2] ASoC: max98390: Add reset gpio control Steve Lee
  2022-03-28  2:11 ` [V3 2/2] ASoC: dt-bindings: max98390: add reset gpio bindings Steve Lee
  2022-03-28  7:42 ` [V3 1/2] ASoC: max98390: Add reset gpio control Sa, Nuno
@ 2022-03-28  8:46 ` Sa, Nuno
  2022-03-28 12:51   ` Lee Steve
  2 siblings, 1 reply; 6+ messages in thread
From: Sa, Nuno @ 2022-03-28  8:46 UTC (permalink / raw)
  To: Steve Lee, lgirdwood, broonie, perex, tiwai, ryans.lee,
	linux-kernel, alsa-devel
  Cc: krzk



> -----Original Message-----
> From: Steve Lee <steve.lee.analog@gmail.com>
> Sent: Monday, March 28, 2022 4:12 AM
> To: lgirdwood@gmail.com; broonie@kernel.org; perex@perex.cz;
> tiwai@suse.com; ryans.lee@maximintegrated.com; linux-
> kernel@vger.kernel.org; alsa-devel@alsa-project.org
> Cc: krzk@kernel.org; Sa, Nuno <Nuno.Sa@analog.com>; Steve Lee
> <steve.lee.analog@gmail.com>
> Subject: [V3 1/2] ASoC: max98390: Add reset gpio control
> 
> [External]
> 
>  Add reset gpio control to support RESET PIN connected to gpio.
> 
> Signed-off-by: Steve Lee <steve.lee.analog@gmail.com>
> ---
>  sound/soc/codecs/max98390.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/sound/soc/codecs/max98390.c
> b/sound/soc/codecs/max98390.c
> index 40fd6f363f35..05df9b85d9b0 100644
> --- a/sound/soc/codecs/max98390.c
> +++ b/sound/soc/codecs/max98390.c
> @@ -1022,6 +1022,7 @@ static int max98390_i2c_probe(struct
> i2c_client *i2c,
> 
>  	struct max98390_priv *max98390 = NULL;
>  	struct i2c_adapter *adapter = i2c->adapter;
> +	struct gpio_desc *reset_gpio;
> 
>  	ret = i2c_check_functionality(adapter,
>  		I2C_FUNC_SMBUS_BYTE
> @@ -1073,6 +1074,17 @@ static int max98390_i2c_probe(struct
> i2c_client *i2c,
>  		return ret;
>  	}
> 
> +	reset_gpio = devm_gpiod_get_optional(&i2c->dev,
> +					     "reset", GPIOD_OUT_LOW);

Forgot to mention,

As you stated in the bindings the gpio is active low, this should also be
GPIOD_OUT_HIGH, if we want to have the device in reset after this call.

- Nuno Sá


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [V3 1/2] ASoC: max98390: Add reset gpio control
  2022-03-28  7:42 ` [V3 1/2] ASoC: max98390: Add reset gpio control Sa, Nuno
@ 2022-03-28 12:50   ` Lee Steve
  0 siblings, 0 replies; 6+ messages in thread
From: Lee Steve @ 2022-03-28 12:50 UTC (permalink / raw)
  To: Sa, Nuno
  Cc: lgirdwood, broonie, perex, tiwai, ryans.lee, linux-kernel,
	alsa-devel, krzk

On Mon, Mar 28, 2022 at 4:42 PM Sa, Nuno <Nuno.Sa@analog.com> wrote:
>
> > From: Steve Lee <steve.lee.analog@gmail.com>
> > Sent: Monday, March 28, 2022 4:12 AM
> > To: lgirdwood@gmail.com; broonie@kernel.org; perex@perex.cz;
> > tiwai@suse.com; ryans.lee@maximintegrated.com; linux-
> > kernel@vger.kernel.org; alsa-devel@alsa-project.org
> > Cc: krzk@kernel.org; Sa, Nuno <Nuno.Sa@analog.com>; Steve Lee
> > <steve.lee.analog@gmail.com>
> > Subject: [V3 1/2] ASoC: max98390: Add reset gpio control
> >
> > [External]
> >
> >  Add reset gpio control to support RESET PIN connected to gpio.
> >
> > Signed-off-by: Steve Lee <steve.lee.analog@gmail.com>
> > ---
> >  sound/soc/codecs/max98390.c | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> >
> > diff --git a/sound/soc/codecs/max98390.c
> > b/sound/soc/codecs/max98390.c
> > index 40fd6f363f35..05df9b85d9b0 100644
> > --- a/sound/soc/codecs/max98390.c
> > +++ b/sound/soc/codecs/max98390.c
> > @@ -1022,6 +1022,7 @@ static int max98390_i2c_probe(struct
> > i2c_client *i2c,
> >
> >       struct max98390_priv *max98390 = NULL;
> >       struct i2c_adapter *adapter = i2c->adapter;
> > +     struct gpio_desc *reset_gpio;
> >
> >       ret = i2c_check_functionality(adapter,
> >               I2C_FUNC_SMBUS_BYTE
> > @@ -1073,6 +1074,17 @@ static int max98390_i2c_probe(struct
> > i2c_client *i2c,
> >               return ret;
> >       }
> >
> > +     reset_gpio = devm_gpiod_get_optional(&i2c->dev,
> > +                                          "reset", GPIOD_OUT_LOW);
> > +
> > +     /* Power on device */
> > +     if (reset_gpio) {
> > +             usleep_range(1000, 2000);
> > +             /* bring out of reset */
> > +             gpiod_set_value_cansleep(reset_gpio, 1);
>
> Note this will set the gpio in the asserted state. Being it active low, this will
> do the opposite thing that you are trying to accomplish...
>
> - Nuno Sá

I agree with your comment. I will update next version patch if there
is other concern.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [V3 1/2] ASoC: max98390: Add reset gpio control
  2022-03-28  8:46 ` Sa, Nuno
@ 2022-03-28 12:51   ` Lee Steve
  0 siblings, 0 replies; 6+ messages in thread
From: Lee Steve @ 2022-03-28 12:51 UTC (permalink / raw)
  To: Sa, Nuno
  Cc: lgirdwood, broonie, perex, tiwai, ryans.lee, linux-kernel,
	alsa-devel, krzk

On Mon, Mar 28, 2022 at 5:46 PM Sa, Nuno <Nuno.Sa@analog.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Steve Lee <steve.lee.analog@gmail.com>
> > Sent: Monday, March 28, 2022 4:12 AM
> > To: lgirdwood@gmail.com; broonie@kernel.org; perex@perex.cz;
> > tiwai@suse.com; ryans.lee@maximintegrated.com; linux-
> > kernel@vger.kernel.org; alsa-devel@alsa-project.org
> > Cc: krzk@kernel.org; Sa, Nuno <Nuno.Sa@analog.com>; Steve Lee
> > <steve.lee.analog@gmail.com>
> > Subject: [V3 1/2] ASoC: max98390: Add reset gpio control
> >
> > [External]
> >
> >  Add reset gpio control to support RESET PIN connected to gpio.
> >
> > Signed-off-by: Steve Lee <steve.lee.analog@gmail.com>
> > ---
> >  sound/soc/codecs/max98390.c | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> >
> > diff --git a/sound/soc/codecs/max98390.c
> > b/sound/soc/codecs/max98390.c
> > index 40fd6f363f35..05df9b85d9b0 100644
> > --- a/sound/soc/codecs/max98390.c
> > +++ b/sound/soc/codecs/max98390.c
> > @@ -1022,6 +1022,7 @@ static int max98390_i2c_probe(struct
> > i2c_client *i2c,
> >
> >       struct max98390_priv *max98390 = NULL;
> >       struct i2c_adapter *adapter = i2c->adapter;
> > +     struct gpio_desc *reset_gpio;
> >
> >       ret = i2c_check_functionality(adapter,
> >               I2C_FUNC_SMBUS_BYTE
> > @@ -1073,6 +1074,17 @@ static int max98390_i2c_probe(struct
> > i2c_client *i2c,
> >               return ret;
> >       }
> >
> > +     reset_gpio = devm_gpiod_get_optional(&i2c->dev,
> > +                                          "reset", GPIOD_OUT_LOW);
>
> Forgot to mention,
>
> As you stated in the bindings the gpio is active low, this should also be
> GPIOD_OUT_HIGH, if we want to have the device in reset after this call.
>
> - Nuno Sá
>

This also agree with your comment. I will update next version patch if
there is other concern.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-03-28 12:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-28  2:11 [V3 1/2] ASoC: max98390: Add reset gpio control Steve Lee
2022-03-28  2:11 ` [V3 2/2] ASoC: dt-bindings: max98390: add reset gpio bindings Steve Lee
2022-03-28  7:42 ` [V3 1/2] ASoC: max98390: Add reset gpio control Sa, Nuno
2022-03-28 12:50   ` Lee Steve
2022-03-28  8:46 ` Sa, Nuno
2022-03-28 12:51   ` Lee Steve

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).