Skip to content
  • Shawn Guo's avatar
    arm64: dts: qcom: c630: keep both touchpad devices enabled · bd508a50
    Shawn Guo authored
    [ Upstream commit a9164910 ]
    
    Indicated by AML code in ACPI table, the touchpad in-use could be found
    on two possible slave addresses on &i2c3, i.e. hid@15 and hid@2c.  And
    which one is in-use can be determined by reading another address on the
    I2C bus.  Unfortunately, for DT boot, there is currently no support in
    firmware to make this check and patch DT accordingly.  This results in
    a non-functional touchpad on those C630 devices with hid@2c.
    
    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 set up 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 to solve
    this problem.  As the pinctrl state of parent node is already defined in
    sdm845.dtsi, it ends up with overwriting pinctrl-0 with i2c3_hid_active
    state added in there.
    
    Fixes: 11d0e4f2
    
     ("arm64: dts: qcom: c630: Polish i2c-hid devices")
    Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
    Link: https://lore.kernel.org/r/20210102045940.26874-1-shawn.guo@linaro.org
    
    
    Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    bd508a50