On Mon, Feb 06, 2023 at 06:48:14PM -0800, Douglas Anderson wrote: > 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@xxxxxxxxxxxx> We went over this with Doug offline, and after re-reading the spec sheet this does make sense to me. Reviewed-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > --- > > .../devicetree/bindings/input/goodix,gt7375p.yaml | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml b/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml > index 1c191bc5a178..ce18d7dadae2 100644 > --- a/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml > +++ b/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml > @@ -36,6 +36,13 @@ properties: > vdd-supply: > description: The 3.3V supply to the touchscreen. > > + mainboard-vddio-supply: > + description: > + The supply on the main board needed to power up IO signals going > + to the touchscreen. This supply need not go to the touchscreen > + itself as long as it allows the main board to make signals compatible > + with what the touchscreen is expecting for its IO rails. > + > required: > - compatible > - reg > -- > 2.39.1.519.gcb327c4b5f-goog > -- Dmitry