linux/Documentation/devicetree/bindings/input
Douglas Anderson 1d18c1f3b7 dt-bindings: HID: i2c-hid: goodix: Add mainboard-vddio-supply
The goodix i2c-hid bindings currently support two models of
touchscreen: GT7375P and GT7986U. The datasheets of both touchscreens
show the following things:
* The mainboard that the touchscreen is connected to is only expected
  to supply one voltage to the touchscreen: 3.3V.
* The touchscreen, depending on stuffing options, can accept IO to the
  touchscreen as either 3.3V or 1.8V. Presumably this means that the
  touchscreen has its own way internally to make or deal with 1.8V
  signals when it's configured for 1.8V IO.

NOTE: you've got to look very carefully at the datasheet for the
touchscreen to see that the above bullets are true. Specifically, the
datasheet shows a signal called VDDIO and one might think that this is
where a mainboard would provide VDDIO to the touchscreen. Upon closer
inspection, however, a footnote can be found that says "When VDDIO is
left floating, the logic level is 1.8V [...]; when VDDIO is connected
to AVDD, the logic level is AVDD.". Thus the VDDIO pin on the
touchscreen IC is actually a selector and not a pin whre the mainboard
would pass a reference voltage.

The fact that the touchscreen isn't supplied 1.8V by the mainboard
means that when I originally submitted bindings for these touchscreens
I only listed the 3.3V rail in the bindings. It can be noted that the
original bindings and driver were added for sc7180-trogdor boards and
these boards all use 3.3V IO via a level shifter on the mainboard.

It turns out that with sc7280-herobrine-evoker, we've got a bit of a
strange monkey on our hands. Due to some very interesting but
(unfortunately) set-in-stone hardware design, we are doing 1.8V IO to
the touchscreen but we _also_ have some extra buffers on the mainboard
that need to be powered up to make the IO lines work. After much
pondering about this, it seems like the best way to handle this is to
add an optional "mainboard-vddio" rail to the bindings that is used to
power up the buffers. Specifically, the fact that the touchscreen
datasheet documents that its IOs can be at a different voltage level
than its main power rail means that there truly are two voltage rails
associated with the touchscreen, even if we don't actually provide the
IO rail to it. Thus it doesn't feel absurd for the DT node on the host
to have a 1.8V rail to power up anything related to its 1.8V logic.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230206184744.5.Ia77a96c6c5564f9cc25e6220b5a9171d5c2639e8@changeid
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
2023-02-09 14:44:14 +01:00
..
rmi4 dt-bindings: remove 'interrupt-parent' from bindings 2018-07-25 14:09:39 -06:00
touchscreen dt-bindings: drop redundant part of title (end, part three) 2022-12-16 11:41:49 -06:00
adc-joystick.yaml dt-bindings: adc-joystick: add poll-interval 2022-08-17 12:32:51 -07:00
adc-keys.yaml dt-bindings: input: Convert adc-keys to DT schema 2022-07-08 15:17:55 -07:00
adi,adp5588.yaml dt-bindings: input: adp5588: add bindings 2022-08-30 21:16:08 -07:00
allwinner,sun4i-a10-lradc-keys.yaml dt-bindings: input: sun4i-lradc-keys: Add F1C100s compatible 2022-11-03 13:44:04 -07:00
ariel-pwrbutton.yaml dt-bindings: input: ariel-pwrbutton: use spi-peripheral-props.yaml 2022-07-28 13:24:25 -07:00
atmel,captouch.txt
atmel,maxtouch.yaml dt-bindings: input: atmel,maxtouch: add wakeup-source 2021-03-25 11:14:08 -07:00
azoteq,iqs7222.yaml dt-bindings: input: iqs7222: Add support for IQS7222A v1.13+ 2022-10-24 05:10:05 -07:00
brcm,bcm-keypad.txt
clps711x-keypad.txt
cpcap-pwrbutton.txt
cypress-sf.yaml dt-bindings: input: Add binding for cypress-sf 2021-09-09 22:26:33 -07:00
cypress,cyapa.txt dt-bindings: remove 'interrupt-parent' from bindings 2018-07-25 14:09:39 -06:00
cypress,tm2-touchkey.yaml dt-bindings: input: tm2-touchkey: document vddio-supply 2020-12-09 19:47:10 -08:00
da9062-onkey.txt dt-bindings: mfd: update dlg,da9063.yaml reference 2022-07-07 13:10:00 -06:00
dlg,da7280.txt dt-bindings: input: Add document bindings for DA7280 2020-12-11 00:21:25 -08:00
dlink,dir685-touchkeys.txt
e3x0-button.txt dt-bindings: remove 'interrupt-parent' from bindings 2018-07-25 14:09:39 -06:00
elan,ekth3000.yaml dt-bindings: input: elan,ekth3000: Convert txt bindings to yaml 2021-10-18 15:09:54 -05:00
elan,ekth6915.yaml dt-bindings: HID: i2c-hid: elan: Introduce bindings for Elan eKTH6915 2022-06-08 11:46:23 +02:00
fsl,mpr121-touchkey.yaml dt-bindings: input: use generic node names 2022-05-27 21:49:32 -07:00
fsl,scu-key.yaml dt-bindings: drop redundant part of title (manual) 2022-12-16 12:51:43 -06:00
goodix,gt7375p.yaml dt-bindings: HID: i2c-hid: goodix: Add mainboard-vddio-supply 2023-02-09 14:44:14 +01:00
google,cros-ec-keyb.yaml Input updates for 5.19 merge window: 2022-05-28 14:05:54 -07:00
gpio-beeper.yaml dt-bindings: input: gpio-beeper: Convert to yaml schema 2022-12-08 17:48:58 -08:00
gpio-decoder.txt
gpio-keys.yaml dt-bindings: drop redundant part of title (beginning) 2022-12-16 11:41:49 -06:00
gpio-matrix-keypad.txt
gpio-mouse.txt
gpio-vibrator.yaml dt-bindings: Add missing 'additionalProperties: false' 2020-03-31 09:03:17 -06:00
hid-over-i2c.yaml dt-bindings: input: Convert hid-over-i2c to DT schema 2022-09-30 21:00:55 -07:00
ibm,op-panel.yaml dt-bindings: input: Add documentation for IBM Operation Panel 2022-08-17 12:32:02 -07:00
imx-keypad.yaml dt-bindings: Remove 'Device Tree Bindings' from end of title: 2022-08-25 14:06:57 -05:00
input-reset.txt Input: dt-bindings - fix a typo in file input-reset.txt 2018-11-12 11:52:05 -08:00
input.yaml dt-bindings: drop redundant part of title of shared bindings 2022-12-16 11:41:49 -06:00
iqs62x-keys.yaml dt-bindings: input: Use common 'linux,keycodes' definition 2022-07-08 15:17:55 -07:00
iqs269a.yaml dt-bindings: input: Centralize 'linux,code' definition 2022-07-08 15:17:55 -07:00
iqs626a.yaml dt-bindings: input: Centralize 'linux,input-type' definition 2022-07-08 15:17:55 -07:00
lpc32xx-key.txt Input: lpc32xx-key - add clocks property and fix DT binding example 2019-04-04 11:51:26 -07:00
matrix-keymap.txt dt-bindings: input: Convert matrix-keymap to json-schema 2020-07-09 17:28:16 -06:00
matrix-keymap.yaml dt-bindings: drop redundant part of title (manual) 2022-12-16 12:51:43 -06:00
max77650-onkey.yaml dt-bindings: input: Centralize 'linux,code' definition 2022-07-08 15:17:55 -07:00
mediatek,mt6779-keypad.yaml Input updates for 6.1 merge window: 2022-10-11 10:53:25 -07:00
mediatek,pmic-keys.yaml dt-bindings: input: mediatek,pmic-keys: Add compatible for MT6331 keys 2022-09-14 11:12:29 -07:00
microchip,cap11xx.yaml dt-bindings: drop redundant part of title (beginning) 2022-12-16 11:41:49 -06:00
microchip,qt1050.txt Input: qt1050 - add Microchip AT42QT1050 support 2019-05-07 14:12:43 -07:00
nvidia,tegra20-kbc.txt
omap-keypad.txt
pine64,pinephone-keyboard.yaml dt-bindings: drop redundant part of title (end) 2022-12-16 11:41:49 -06:00
ps2keyb-mouse-apbps2.txt
pwm-beeper.txt
pwm-vibrator.yaml dt-bindings: input: pwm-vibrator: Convert txt bindings to yaml 2021-12-15 16:37:02 -06:00
pxa27x-keypad.txt
qcom,pm8xxx-keypad.txt
qcom,pm8xxx-vib.yaml dt-bindings: input: qcom,pm8xxx-vib: convert to yaml 2022-09-24 23:25:47 -07:00
qcom,pm8921-pwrkey.yaml dt-bindings: input: qcom,pm8921-pwrkey: convert to dt-schema 2022-10-29 21:34:16 -07:00
qcom,pm8941-pwrkey.yaml dt-bindings: input: pm8941-pwrkey: Convert pm8941 power key binding to yaml 2021-07-23 12:36:52 -07:00
raydium_i2c_ts.txt dt-bindings: remove 'interrupt-parent' from bindings 2018-07-25 14:09:39 -06:00
regulator-haptic.yaml dt-bindings: Remove 'Device Tree Bindings' from end of title: 2022-08-25 14:06:57 -05:00
rotary-encoder.txt
samsung-keypad.txt
snvs-pwrkey.txt
spear-keyboard.txt
sprd,sc27xx-vibrator.yaml dt-bindings: Remove 'Device Tree Bindings' from end of title: 2022-08-25 14:06:57 -05:00
st-keyscan.txt
stmpe-keypad.txt
tca8418_keypad.txt
ti,drv260x.yaml dt-bindings: input: Convert ti,drv260x to DT schema 2022-12-08 17:48:58 -08:00
ti,drv2665.txt
ti,drv2667.txt
ti,nspire-keypad.txt
ti,palmas-pwrbutton.txt dt-bindings: remove 'interrupt-parent' from bindings 2018-07-25 14:09:39 -06:00
tps65218-pwrbutton.txt
twl4030-keypad.txt
twl4030-pwrbutton.txt dt-bindings: mfd: Fix typo in file name of twl-familly.txt 2020-03-03 16:39:05 -06:00
zii,rave-sp-pwrbutton.txt