Message ID | 20241004130849.2944-1-srinivas.kandagatla@linaro.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 8847c970ea06b4ab6f5d713a4adfe01982e4fa20 |
Headers | show |
Series | [v3] arm64: dts: qcom: x1e80100-t14s: add another trackpad support | expand |
On Fri, Oct 04, 2024 at 02:08:49PM GMT, srinivas.kandagatla@linaro.org wrote: > From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > Trackpad HID device on T14s could be found on two possible slave addresses > (hid@15 and hid@2c) on i2c0 instance. > With the current state of DT boot, there is no way to patch the device > tree at runtime during boot. This, however results in non-functional > trackpad on Product Models 21N2ZC5PUS which have trackpad on hid@2c > slave address. > > This patch adds hid@2c device along with hid@15 to get it working on > both the variants. This should work as i2c-hid driver will stop > probing the device if there is nothing on the slave address, we can > actually keep both devices enabled in DT, and i2c-hid driver will > only probe the existing one. > > The only problem is that we cannot setup pinctrl in both device nodes, > as two devices with the same pinctrl will cause pin conflict that makes > the second device fail to probe. Let's move the pinctrl state up to > parent node along with the parent pinctrl to solve this problem. > > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > --- > > Changes since v2: > - updated commit log > - added missing parent pinctrl > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
On Fri, Oct 04, 2024 at 02:08:49PM +0100, Srinivas Kandagatla wrote: > From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > Trackpad HID device on T14s could be found on two possible slave addresses > (hid@15 and hid@2c) on i2c0 instance. > With the current state of DT boot, there is no way to patch the device > tree at runtime during boot. This, however results in non-functional > trackpad on Product Models 21N2ZC5PUS which have trackpad on hid@2c > slave address. > > This patch adds hid@2c device along with hid@15 to get it working on > both the variants. This should work as i2c-hid driver will stop > probing the device if there is nothing on the slave address, we can > actually keep both devices enabled in DT, and i2c-hid driver will > only probe the existing one. > > The only problem is that we cannot setup pinctrl in both device nodes, > as two devices with the same pinctrl will cause pin conflict that makes > the second device fail to probe. Let's move the pinctrl state up to > parent node along with the parent pinctrl to solve this problem. > > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > --- > > Changes since v2: > - updated commit log > - added missing parent pinctrl Thanks for the update. Looks good to me now: Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
On Fri, 04 Oct 2024 14:08:49 +0100, srinivas.kandagatla@linaro.org wrote: > Trackpad HID device on T14s could be found on two possible slave addresses > (hid@15 and hid@2c) on i2c0 instance. > With the current state of DT boot, there is no way to patch the device > tree at runtime during boot. This, however results in non-functional > trackpad on Product Models 21N2ZC5PUS which have trackpad on hid@2c > slave address. > > [...] Applied, thanks! [1/1] arm64: dts: qcom: x1e80100-t14s: add another trackpad support commit: 8847c970ea06b4ab6f5d713a4adfe01982e4fa20 Best regards,
diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts index 08ec2419f95f..5aa295404800 100644 --- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts +++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts @@ -551,6 +551,9 @@ zap-shader { &i2c0 { clock-frequency = <400000>; + pinctrl-0 = <&qup_i2c0_data_clk>, <&tpad_default>; + pinctrl-names = "default"; + status = "okay"; /* ELAN06E2 or ELAN06E3 */ @@ -561,13 +564,19 @@ touchpad@15 { hid-descr-addr = <0x1>; interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; - pinctrl-0 = <&tpad_default>; - pinctrl-names = "default"; - wakeup-source; }; - /* TODO: second-sourced SYNA8022 or SYNA8024 touchpad @ 0x2c */ + /* SYNA8022 or SYNA8024 */ + touchpad@2c { + compatible = "hid-over-i2c"; + reg = <0x2c>; + + hid-descr-addr = <0x20>; + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; + + wakeup-source; + }; /* ELAN06F1 or SYNA06F2 */ keyboard@3a {