* [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, ®);
--
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).