2022-03-28 22:34:51

by Nuno Sa

[permalink] [raw]
Subject: RE: [V3 1/2] ASoC: max98390: Add reset gpio control

> From: Steve Lee <[email protected]>
> Sent: Monday, March 28, 2022 4:12 AM
> To: [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; linux-
> [email protected]; [email protected]
> Cc: [email protected]; Sa, Nuno <[email protected]>; Steve Lee
> <[email protected]>
> 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 <[email protected]>
> ---
> 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?