• Douglas Anderson's avatar
    dt-bindings: HID: i2c-hid: goodix: Add mainboard-vddio-supply · 1d18c1f3
    Douglas Anderson authored
    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: default avatarDouglas Anderson <dianders@chromium.org>
    Reviewed-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    Acked-by: default avatarRob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20230206184744.5.Ia77a96c6c5564f9cc25e6220b5a9171d5c2639e8@changeidSigned-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    1d18c1f3
goodix,gt7375p.yaml 1.65 KB