[PATCH] arm64: dts: rk3399-pinephone-pro: Add support for volume keys

Heiko Stübner heiko at sntech.de
Mon Apr 17 07:36:55 PDT 2023


Am Montag, 17. April 2023, 14:37:16 CEST schrieb Ondřej Jirman:
> Hello Heiko,
> 
> On Mon, Apr 17, 2023 at 10:34:20AM +0200, Heiko Stübner wrote:
> > Hi Peter, Ondrej,
> > 
> > Am Mittwoch, 5. April 2023, 15:53:39 CEST schrieb Ondřej Jirman:
> > > [...]
> > >
> > > (I have to press quite hard to get bellow 300 and to get reliable detection
> > > of volume down key press)
> > > 
> > > On development version of the phone, the value returned by sardac is less
> > > variable. Basically either 298.828125 or 300.5859375 but it's also on
> > > the edge.
> > > 
> > > I suggest raising the threshold to something like 600 and to do your own
> > > testing, to get more data points. Unpressed value is ~1791.2109375 on both
> > > phones, so 400 still gets a lot of headroom. And volume up is always < 15
> > > in my tests.
> > 
> > did this get more attention meanwhile?
> > 
> > I don't have a Pinephone Pro myself, so you'll need to decide between you
> > about the value and the concern Ondrej raised here for the value.
> 
> It's safe and needed to use a higher value.

so in a nutshell, if I change "Volume Down" to say 400000 instead of the
current 300000, the patch is good to go?

I.e. that was my main question :-), as you raised the objection to the value
in your initial reply

Thanks
Heiko



> SAR ADC input is pulled high to 1.8V unless some key is pressed, so unpressed
> value will always be around 1800 on all Pinephones, and pressed value will
> depend on contact quality and tolerances. For volume down, SAR ADC input is fed
> from a resistor divider of (10kOhm + 2kOhm) from 1.8V power rail. So that gives
> 2/12*1.8 = 0.3V. We can't have the press detection threshold right at this
> voltage, because:
> 
> 1) these resistors have tolerances that will randomly result in measured voltage
>    being above or below the 0.3V on real devices (-1% on 10k and +1% on 2k =
>    2*1.01/(10*0.99+2*1.01)*1.8 = 305 mV - already too high even without
>    considering switch contact quality), and
> 
> 2) those piddly membrane switches apparently have their own random resistance
>    that is added to the bottom leg of the resistor divider, and depends on
>    strenght of the press on some devices (and switches may develop higher
>    resistance with age/use).
> 
> Schematic: https://megous.com/dl/tmp/1125d9248a8213b3.png
> 
> kind regards,
> 	o.
> 
> > Thanks
> > Heiko
> 







More information about the Linux-rockchip mailing list