On Thu 14 Apr 14:07 PDT 2016, John Stultz wrote:

> Since the pmic8xxx-pwrkey driver is already supported in the
> qcom-apq8064.dtsi, and the pmic8xxx-pwrkey supports logic to
> configure proper device shutdown when ps_hold goes low, it is
> better to use that driver then a generic gpio button.
> 
> Thus this patch remove the gpio power key entry here, so we
> don't get double input events from having two drivers enabled.
> 

This part has my ack.

> The one gotcha with the pmic8xxx-pwrkey is it has a fairly
> long debounce delay, which we shorten here to make the button
> behave as expected.
> 

It's set to 15ms, so this sounds like a bug.

> Cc: Rob Herring <[email protected]>
> Cc: Arnd Bergmann <[email protected]>
> Cc: Pawel Moll <[email protected]>
> Cc: Mark Rutland <[email protected]>
> Cc: Ian Campbell <[email protected]>
> Cc: Kumar Gala <[email protected]>
> Cc: Andy Gross <[email protected]>
> Cc: Vinay Simha BN <[email protected]>
> Cc: Bjorn Andersson <[email protected]>
> Cc: Stephen Boyd <[email protected]>
> Cc: [email protected]
> Cc: [email protected]

You don't have to mention everyone here...

> Signed-off-by: John Stultz <[email protected]>
> ---
> v2:
>  - Add wakeup-source entry as suggested by
>    Sudeep Holla <[email protected]>
> 
>  arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts 
> b/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
[..]
> @@ -190,6 +184,16 @@
>                       };
>               };
>  
> +             /* override default debounce for power-key */
> +             qcom,ssbi@500000 {
> +                     pmic@0 {
> +                             pwrkey@1c {
> +                                     debounce = <1>;

The debounce is specified in microseconds, so if the 15625us that's
specified in the dtsi is too much for you we have a bug in the driver.

Further, comparing the math with downstream indicates that we're quite
off.

Could you please try the downstream calculation of "delay", by changing
pmic8xxx_pwrkey_probe() to include:

        delay = (kpb_delay << 6) / USEC_PER_SEC;
        delay = ilog2(delay);

Unfortunately I don't have the register documentation for this pmic.

Stephen, can you shed some light on the trig-delay (what I presume is
the bark timer in later versions) bits in PON_CNTRL_1 (0x1c) on PM8921.

> +                                     wakeup-source;

The driver already enables wakeup on itself, so I don't think this
should be necessary (i.e. you should be able to drop this entire node
from the dts).

> +                             };
> +                     };
> +             };
> +

Regards,
Bjorn

Reply via email to