[alsa-devel] [PATCH 1/3] ASoC: rt5682: improve the sensitivity of push button

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Wed Oct 30 14:59:18 CET 2019



On 10/30/19 3:55 AM, shumingf at realtek.com wrote:
> From: Shuming Fan <shumingf at realtek.com>
> 
> The sensitivity could improve by decreasing the HW debounce time

could be improved

> and reduce the delay time of workequeue.

typo: work queue.

> This patch added a device property for HW debounce time control.
> We could change this value to tune the sensitivity of push button.

so for an Intel platform without DT, could we set this property in the 
machine driver as done for bytcr_rt5640/51?

> 
> Signed-off-by: Shuming Fan <shumingf at realtek.com>
> ---
>   include/sound/rt5682.h    |  1 +
>   sound/soc/codecs/rt5682.c | 15 +++++++++++++++
>   2 files changed, 16 insertions(+)
> 
> diff --git a/include/sound/rt5682.h b/include/sound/rt5682.h
> index bf2ee75aabb1..bc2c31734df1 100644
> --- a/include/sound/rt5682.h
> +++ b/include/sound/rt5682.h
> @@ -31,6 +31,7 @@ struct rt5682_platform_data {
>   	enum rt5682_dmic1_data_pin dmic1_data_pin;
>   	enum rt5682_dmic1_clk_pin dmic1_clk_pin;
>   	enum rt5682_jd_src jd_src;
> +	unsigned int btndet_delay;
>   };
>   
>   #endif
> diff --git a/sound/soc/codecs/rt5682.c b/sound/soc/codecs/rt5682.c
> index c50b75ce82e0..35dcec135c8a 100644
> --- a/sound/soc/codecs/rt5682.c
> +++ b/sound/soc/codecs/rt5682.c
> @@ -44,6 +44,7 @@ static const struct rt5682_platform_data i2s_default_platform_data = {
>   	.dmic1_data_pin = RT5682_DMIC1_DATA_GPIO2,
>   	.dmic1_clk_pin = RT5682_DMIC1_CLK_GPIO3,
>   	.jd_src = RT5682_JD1,
> +	.btndet_delay = 16,
>   };
>   
>   struct rt5682_priv {
> @@ -1026,6 +1027,18 @@ static int rt5682_set_jack_detect(struct snd_soc_component *component,
>   		regmap_update_bits(rt5682->regmap, RT5682_IRQ_CTRL_2,
>   			RT5682_JD1_EN_MASK | RT5682_JD1_POL_MASK,
>   			RT5682_JD1_EN | RT5682_JD1_POL_NOR);
> +		regmap_update_bits(rt5682->regmap, RT5682_4BTN_IL_CMD_4,
> +			0x7f7f, (rt5682->pdata.btndet_delay << 8 |
> +			rt5682->pdata.btndet_delay));
> +		regmap_update_bits(rt5682->regmap, RT5682_4BTN_IL_CMD_5,
> +			0x7f7f, (rt5682->pdata.btndet_delay << 8 |
> +			rt5682->pdata.btndet_delay));
> +		regmap_update_bits(rt5682->regmap, RT5682_4BTN_IL_CMD_6,
> +			0x7f7f, (rt5682->pdata.btndet_delay << 8 |
> +			rt5682->pdata.btndet_delay));
> +		regmap_update_bits(rt5682->regmap, RT5682_4BTN_IL_CMD_7,
> +			0x7f7f, (rt5682->pdata.btndet_delay << 8 |
> +			rt5682->pdata.btndet_delay));
>   		mod_delayed_work(system_power_efficient_wq,
>   			   &rt5682->jack_detect_work, msecs_to_jiffies(250));
>   		break;
> @@ -2467,6 +2480,8 @@ static int rt5682_parse_dt(struct rt5682_priv *rt5682, struct device *dev)
>   		&rt5682->pdata.dmic1_clk_pin);
>   	device_property_read_u32(dev, "realtek,jd-src",
>   		&rt5682->pdata.jd_src);
> +	device_property_read_u32(dev, "realtek,btndet-delay",
> +		&rt5682->pdata.btndet_delay);
>   
>   	rt5682->pdata.ldo1_en = of_get_named_gpio(dev->of_node,
>   		"realtek,ldo1-en-gpios", 0);
> 


More information about the Alsa-devel mailing list