• Douglas Anderson's avatar
    dt-bindings: pinctrl: qcom: Add output-enable · 988a9eab
    Douglas Anderson authored
    In the patch ("dt-bindings: pinctrl: qcom: tlmm should use
    output-disable, not input-enable") we allowed setting "output-disable"
    for TLMM pinctrl states. Let's also add "output-enable".
    
    At first blush this seems a needless thing to do. Specifically:
    - In Linux (and presumably any other OSes using the same device trees)
      the GPIO/pinctrl driver knows to automatically enable the output
      when a GPIO is changed to an output. Thus in most cases specifying
      "output-enable" is superfluous and should be avoided.
    - If we need to set a pin's default state we already have
      "output-high" and "output-low" and these properties already imply
      "output-enabled" (at least on the Linux Qualcomm TLMM driver).
    
    However, there is one instance where "output-enable" seems like it
    could be useful: sleep states. It's not uncommon to want to configure
    pins as inputs (with appropriate pulls) when the driver controlling
    them is in a low power state. Then we want the pins back to outputs
    when the driver wants things running normally. To accomplish this we'd
    want to be able to use "output-enable". Then the "default" state could
    have "output-enable" and the "sleep" state could have
    "output-disable".
    
    NOTE: in all instances I'm aware of, we'd only want to use
    "output-enable" on pins that are configured as "gpio". The Qualcomm
    documentation that I have access to says that "output-enable" only
    does something useful when in GPIO mode.
    Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
    Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20230323102605.7.I7874c00092115c45377c2a06f7f133356956686e@changeidSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    988a9eab
qcom,tlmm-common.yaml 2.35 KB