linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: "Vaittinen, Matti" <Matti.Vaittinen@fi.rohmeurope.com>
To: "leonard.crestez@nxp.com" <leonard.crestez@nxp.com>,
	"broonie@kernel.org" <broonie@kernel.org>,
	"lee.jones@linaro.org" <lee.jones@linaro.org>
Cc: "aisheng.dong@nxp.com" <aisheng.dong@nxp.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"angus@akkea.ca" <angus@akkea.ca>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"linux-imx@nxp.com" <linux-imx@nxp.com>,
	"kernel@pengutronix.de" <kernel@pengutronix.de>,
	"fabio.estevam@nxp.com" <fabio.estevam@nxp.com>,
	"mark.rutland@arm.com" <mark.rutland@arm.com>,
	"yibin.gong@nxp.com" <yibin.gong@nxp.com>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 3/3] mfd: bd718x7: Make power button press duration configurable
Date: Mon, 20 May 2019 09:23:17 +0000	[thread overview]
Message-ID: <0c254b96e72605deee4d19bcab96e160187ebb4a.camel@fi.rohmeurope.com> (raw)
In-Reply-To: <3ffd7b9d0b9cc45ac0fd671a701f857be4cfde46.1558341613.git.leonard.crestez@nxp.com>

Thanks for implementing this Leonard. This is how it should have been
done right away. Just one little thing.

On Mon, 2019-05-20 at 08:55 +0000, Leonard Crestez wrote:
> Allow overwriting the values in BD718XX_REG_PWRONCONFIG0 and
> BD718XX_REG_PWRONCONFIG1 via devicetree.
> 
> Keep existing values (from bootloader or OTP) if property is not
> present.
> 
> Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
> ---
>  drivers/mfd/rohm-bd718x7.c | 42
> ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
> 
> diff --git a/drivers/mfd/rohm-bd718x7.c b/drivers/mfd/rohm-bd718x7.c
> index cdbef83884f0..dffa3f4bffad 100644
> --- a/drivers/mfd/rohm-bd718x7.c
> +++ b/drivers/mfd/rohm-bd718x7.c
> @@ -79,10 +79,48 @@ static const struct regmap_config
> bd718xx_regmap_config = {
>  	.volatile_table = &volatile_regs,
>  	.max_register = BD718XX_MAX_REGISTER - 1,
>  	.cache_type = REGCACHE_RBTREE,
>  };
>  
> +static int bd718xx_init_press_duration(struct bd718xx *bd718xx)
> +{
> +	struct device* dev = bd718xx->dev;
> +	u32 short_press_ms, long_press_ms;
> +	u32 short_press_value, long_press_value;
> +	int ret;
> +
> +	ret = of_property_read_u32(dev->of_node, "rohm,short-press-ms",
> +				   &short_press_ms);
> +	if (!ret) {
> +		short_press_value = min(15u, short_press_ms / 500);

This should rather be implemented as rounding not flooring. Giving for
example 1400ms from DT should rather yield timeout 1500ms than 1000ms.
I'd say it makes the difference at least for long press tmo.

> +		ret = regmap_update_bits(bd718xx->regmap,
> +					 BD718XX_REG_PWRONCONFIG0,
> +					 BD718XX_PWRBTN_PRESS_DURATION_
> MASK,
> +					 short_press_value);
> +		if (ret) {
> +			dev_err(dev, "Failed to init pwron short
> press\n");
> +			return ret;
> +		}
> +	}
> +
> +	ret = of_property_read_u32(dev->of_node, "rohm,long-press-ms",
> +				   &long_press_ms);
> +	if (!ret) {
> +		long_press_value = min(15u, long_press_ms / 1000);

Also here we should do rounding. 900ms from DT should rather be 1s than
10ms. Especially when the long press causes forced power down and short
press may be 10 ms...

> +		ret = regmap_update_bits(bd718xx->regmap,
> +					 BD718XX_REG_PWRONCONFIG1,
> +					 BD718XX_PWRBTN_PRESS_DURATION_
> MASK,
> +					 long_press_value);
> +		if (ret) {
> +			dev_err(dev, "Failed to init pwron long
> press\n");
> +			return ret;
> +		}
> +	}
> +
> +	return 0;
> +}
> +
>  static int bd718xx_i2c_probe(struct i2c_client *i2c,
>  			    const struct i2c_device_id *id)
>  {
>  	struct bd718xx *bd718xx;
>  	int ret;
> @@ -115,10 +153,14 @@ static int bd718xx_i2c_probe(struct i2c_client
> *i2c,
>  	if (ret) {
>  		dev_err(&i2c->dev, "Failed to add irq_chip\n");
>  		return ret;
>  	}
>  
> +	ret = bd718xx_init_press_duration(bd718xx);
> +	if (ret)
> +		return ret;
> +
>  	ret = regmap_irq_get_virq(bd718xx->irq_data,
> BD718XX_INT_PWRBTN_S);
>  
>  	if (ret < 0) {
>  		dev_err(&i2c->dev, "Failed to get the IRQ\n");
>  		return ret;

Other than that:
Reviewed-By: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>


Best Regards
	Matti Vaittinen

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

      reply	other threads:[~2019-05-20  9:23 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-20  8:55 [PATCH 0/3] mfd: bd718x7: Set button press duration via dt only Leonard Crestez
2019-05-20  8:55 ` [PATCH 1/3] mfd: bd718x7: Remove hardcoded config for button press duration Leonard Crestez
2019-05-20  9:11   ` Vaittinen, Matti
2019-05-20  8:55 ` [PATCH 2/3] dt-bindings: mfd: Document short/long press duration for bd718x7 Leonard Crestez
2019-05-20  9:15   ` Vaittinen, Matti
2019-05-20  8:55 ` [PATCH 3/3] mfd: bd718x7: Make power button press duration configurable Leonard Crestez
2019-05-20  9:23   ` Vaittinen, Matti [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0c254b96e72605deee4d19bcab96e160187ebb4a.camel@fi.rohmeurope.com \
    --to=matti.vaittinen@fi.rohmeurope.com \
    --cc=aisheng.dong@nxp.com \
    --cc=angus@akkea.ca \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=fabio.estevam@nxp.com \
    --cc=kernel@pengutronix.de \
    --cc=lee.jones@linaro.org \
    --cc=leonard.crestez@nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=yibin.gong@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).