diff mbox

arm64: dts: rockchip: enable touchpad button for rk3399-gru-kevin

Message ID 20171009184028.11829-1-kernel@esmil.dk (mailing list archive)
State New, archived
Headers show

Commit Message

Emil Renner Berthing Oct. 9, 2017, 6:40 p.m. UTC
Adding the linux,gpio-keymap entry also has
the side-effect of making the driver register
the touchpad as a touchpad rather than another
touchscreen.

The index for BTN_LEFT was found by trial and error.

Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
---
 arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Heiko Stuebner Oct. 10, 2017, 9:33 a.m. UTC | #1
Hi Emil,

Am Montag, 9. Oktober 2017, 20:40:28 CEST schrieb Emil Renner Berthing:
> Adding the linux,gpio-keymap entry also has
> the side-effect of making the driver register
> the touchpad as a touchpad rather than another
> touchscreen.
> 
> The index for BTN_LEFT was found by trial and error.
> 
> Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>

looks good to me. I'll just give the ChromeOS people a chance to
respond before applying [maybe they can even tell what the other
keys are :-) ]


Heiko

> ---
>  arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts b/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
> index 5c8621766908..1c58d12551f5 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
> @@ -278,6 +278,10 @@ ap_i2c_dig: &i2c2 {
>  		pinctrl-0 = <&trackpad_int_l>;
>  		interrupt-parent = <&gpio1>;
>  		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
> +		linux,gpio-keymap = <KEY_RESERVED
> +				     KEY_RESERVED
> +				     KEY_RESERVED
> +				     BTN_LEFT>;
>  		wakeup-source;
>  	};
>  };
>
Emil Renner Berthing Oct. 10, 2017, 11:04 a.m. UTC | #2
On 10 October 2017 at 11:33, Heiko Stuebner <heiko@sntech.de> wrote:
> Am Montag, 9. Oktober 2017, 20:40:28 CEST schrieb Emil Renner Berthing:
>> Adding the linux,gpio-keymap entry also has
>> the side-effect of making the driver register
>> the touchpad as a touchpad rather than another
>> touchscreen.
>>
>> The index for BTN_LEFT was found by trial and error.
>>
>> Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
>
> looks good to me. I'll just give the ChromeOS people a chance to
> respond before applying [maybe they can even tell what the other
> keys are :-) ]

Good plan. As far as I can tell their kernel doesn't send anything but
BTN_LEFT either. It's just that the controller supports multiple
buttons, but not all are necessarily connected to any button.
Their version of the driver has logic to detect the proper keymap
whereas the mainline driver gets it from this devicetree entry.

/Emil
Brian Norris Oct. 10, 2017, 5:03 p.m. UTC | #3
+ Dmitry, who can probably answer better than I can

On Tue, Oct 10, 2017 at 01:04:20PM +0200, Emil Renner Berthing wrote:
> On 10 October 2017 at 11:33, Heiko Stuebner <heiko@sntech.de> wrote:
> > Am Montag, 9. Oktober 2017, 20:40:28 CEST schrieb Emil Renner Berthing:
> >> Adding the linux,gpio-keymap entry also has
> >> the side-effect of making the driver register
> >> the touchpad as a touchpad rather than another
> >> touchscreen.
> >>
> >> The index for BTN_LEFT was found by trial and error.
> >>
> >> Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
> >
> > looks good to me. I'll just give the ChromeOS people a chance to
> > respond before applying [maybe they can even tell what the other
> > keys are :-) ]
> 
> Good plan. As far as I can tell their kernel doesn't send anything but
> BTN_LEFT either. It's just that the controller supports multiple
> buttons, but not all are necessarily connected to any button.
> Their version of the driver has logic to detect the proper keymap
> whereas the mainline driver gets it from this devicetree entry.

I believe Emil is mostly correct. We only are using a BTN_LEFT in our
copy of the driver, and I'm not sure the others are connected to
anything. As Dmitry has explained to me (when I also wondered about
"detect[ing] the proper keymap"), we don't exactly "auto"discover
things; we just heuristically determine the configurations we know are
used on Chrome devices.

So from the sound of it, this keymap property is reasonable. I haven't
actually checked what our driver "auto" detects on gru-kevin, but if
this works then I'll bet it's correct :)

IOW, I don't know enough to ACK this patch, but I'm certainly not going
to NAK it.

Brian
Dmitry Torokhov Oct. 10, 2017, 5:25 p.m. UTC | #4
On Tue, Oct 10, 2017 at 10:03:57AM -0700, Brian Norris wrote:
> + Dmitry, who can probably answer better than I can
> 
> On Tue, Oct 10, 2017 at 01:04:20PM +0200, Emil Renner Berthing wrote:
> > On 10 October 2017 at 11:33, Heiko Stuebner <heiko@sntech.de> wrote:
> > > Am Montag, 9. Oktober 2017, 20:40:28 CEST schrieb Emil Renner Berthing:
> > >> Adding the linux,gpio-keymap entry also has
> > >> the side-effect of making the driver register
> > >> the touchpad as a touchpad rather than another
> > >> touchscreen.
> > >>
> > >> The index for BTN_LEFT was found by trial and error.
> > >>
> > >> Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
> > >
> > > looks good to me. I'll just give the ChromeOS people a chance to
> > > respond before applying [maybe they can even tell what the other
> > > keys are :-) ]

They are not connected.

> > 
> > Good plan. As far as I can tell their kernel doesn't send anything but
> > BTN_LEFT either. It's just that the controller supports multiple
> > buttons, but not all are necessarily connected to any button.
> > Their version of the driver has logic to detect the proper keymap
> > whereas the mainline driver gets it from this devicetree entry.
> 
> I believe Emil is mostly correct. We only are using a BTN_LEFT in our
> copy of the driver, and I'm not sure the others are connected to
> anything. As Dmitry has explained to me (when I also wondered about
> "detect[ing] the proper keymap"), we don't exactly "auto"discover
> things; we just heuristically determine the configurations we know are
> used on Chrome devices.

Right, we had a "legacy" GPIO/button mapping on original Pixels that
used T9 multitouch reports, then we switched to a bit different mapping
for newer devices that use T100 multitouch reports.

We should really have explicit map, like we have in upstream driver.

> 
> So from the sound of it, this keymap property is reasonable. I haven't
> actually checked what our driver "auto" detects on gru-kevin, but if
> this works then I'll bet it's correct :)
> 
> IOW, I don't know enough to ACK this patch, but I'm certainly not going
> to NAK it.

I think I can ACK it:

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Thanks.
Heiko Stuebner Oct. 14, 2017, 7:14 p.m. UTC | #5
Am Montag, 9. Oktober 2017, 20:40:28 CEST schrieb Emil Renner Berthing:
> Adding the linux,gpio-keymap entry also has
> the side-effect of making the driver register
> the touchpad as a touchpad rather than another
> touchscreen.
> 
> The index for BTN_LEFT was found by trial and error.
> 
> Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>

applied for 4.15 with Dmitry's Ack


Thanks
Heiko
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts b/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
index 5c8621766908..1c58d12551f5 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
@@ -278,6 +278,10 @@  ap_i2c_dig: &i2c2 {
 		pinctrl-0 = <&trackpad_int_l>;
 		interrupt-parent = <&gpio1>;
 		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+		linux,gpio-keymap = <KEY_RESERVED
+				     KEY_RESERVED
+				     KEY_RESERVED
+				     BTN_LEFT>;
 		wakeup-source;
 	};
 };