[V3 1/2] ASoC: max98390: Add reset gpio control

Sa, Nuno Nuno.Sa at analog.com
Mon Mar 28 09:42:42 CEST 2022


> From: Steve Lee <steve.lee.analog at gmail.com>
> Sent: Monday, March 28, 2022 4:12 AM
> To: lgirdwood at gmail.com; broonie at kernel.org; perex at perex.cz;
> tiwai at suse.com; ryans.lee at maximintegrated.com; linux-
> kernel at vger.kernel.org; alsa-devel at alsa-project.org
> Cc: krzk at kernel.org; Sa, Nuno <Nuno.Sa at analog.com>; Steve Lee
> <steve.lee.analog at 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 at 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á


More information about the Alsa-devel mailing list