Message ID | 20230323102605.7.I7874c00092115c45377c2a06f7f133356956686e@changeid |
---|---|
State | Accepted |
Commit | 988a9eab4d9a0eb07339b9d3f2bc9bee66af47b1 |
Headers | show |
Series | Control Quad SPI pinctrl better on Qualcomm Chromebooks | expand |
On 23/03/2023 18:30, Douglas Anderson wrote: > 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: Douglas Anderson <dianders@chromium.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml index 5a815c199642..90b7d75840c1 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml +++ b/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml @@ -77,6 +77,7 @@ $defs: bias-disable: true input-enable: false output-disable: true + output-enable: true output-high: true output-low: true
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: Douglas Anderson <dianders@chromium.org> --- Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml | 1 + 1 file changed, 1 insertion(+)