Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: pinctrl: qcom: create common LPASS LPI schema

Just like regular TLMM pin controllers in Qualcomm SoCs, the Low Power
Audio SubSystem (LPASS) Low Power Island (LPI) TLMM blocks share a lot
of properties, so common part can be moved to separate schema to reduce
code duplication and make reviewing easier.

Except the move of common part, this introduces effective changes:
1. To all LPASS LPI bindings: Reference pinmux-node.yaml in each pin
muxing and configuration node, to bring definition of "function" and
"pins" properties.

2. qcom,sc7280-lpass-lpi-pinctrl: Reference pinctrl.yaml in top leve.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20231208215534.195854-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Krzysztof Kozlowski and committed by
Linus Walleij
5a5ecedc fa7b1fe2

+109 -357
+75
Documentation/devicetree/bindings/pinctrl/qcom,lpass-lpi-common.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/qcom,lpass-lpi-common.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm SoC LPASS LPI TLMM Common Properties 8 + 9 + maintainers: 10 + - Bjorn Andersson <andersson@kernel.org> 11 + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 12 + - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 13 + 14 + description: 15 + Common properties for the Top Level Mode Multiplexer pin controllers in the 16 + Low Power Audio SubSystem (LPASS) Low Power Island (LPI) of Qualcomm SoCs. 17 + 18 + properties: 19 + gpio-controller: true 20 + 21 + "#gpio-cells": 22 + description: 23 + Specifying the pin number and flags, as defined in 24 + include/dt-bindings/gpio/gpio.h 25 + const: 2 26 + 27 + gpio-ranges: 28 + maxItems: 1 29 + 30 + required: 31 + - gpio-controller 32 + - "#gpio-cells" 33 + - gpio-ranges 34 + 35 + allOf: 36 + - $ref: pinctrl.yaml# 37 + 38 + additionalProperties: true 39 + 40 + $defs: 41 + qcom-tlmm-state: 42 + properties: 43 + drive-strength: 44 + enum: [2, 4, 6, 8, 10, 12, 14, 16] 45 + default: 2 46 + description: 47 + Selects the drive strength for the specified pins, in mA. 48 + 49 + slew-rate: 50 + enum: [0, 1, 2, 3] 51 + default: 0 52 + description: | 53 + 0: No adjustments 54 + 1: Higher Slew rate (faster edges) 55 + 2: Lower Slew rate (slower edges) 56 + 3: Reserved (No adjustments) 57 + 58 + bias-bus-hold: true 59 + bias-pull-down: true 60 + bias-pull-up: true 61 + bias-disable: true 62 + input-enable: true 63 + output-high: true 64 + output-low: true 65 + 66 + required: 67 + - pins 68 + - function 69 + 70 + allOf: 71 + - $ref: pincfg-node.yaml# 72 + - $ref: pinmux-node.yaml# 73 + 74 + additionalProperties: true 75 +
+6 -43
Documentation/devicetree/bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml
··· 20 20 reg: 21 21 maxItems: 2 22 22 23 - gpio-controller: true 24 - 25 - "#gpio-cells": 26 - description: Specifying the pin number and flags, as defined in 27 - include/dt-bindings/gpio/gpio.h 28 - const: 2 29 - 30 - gpio-ranges: 31 - maxItems: 1 32 - 33 23 patternProperties: 34 24 "-state$": 35 25 oneOf: ··· 35 45 description: 36 46 Pinctrl node's client devices use subnodes for desired pin configuration. 37 47 Client device subnodes use below standard properties. 38 - $ref: /schemas/pinctrl/pincfg-node.yaml 48 + $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 49 + unevaluatedProperties: false 39 50 40 51 properties: 41 52 pins: ··· 59 68 Specify the alternative function to be configured for the specified 60 69 pins. 61 70 62 - drive-strength: 63 - enum: [2, 4, 6, 8, 10, 12, 14, 16] 64 - default: 2 65 - description: 66 - Selects the drive strength for the specified pins, in mA. 67 - 68 - slew-rate: 69 - enum: [0, 1, 2, 3] 70 - default: 0 71 - description: | 72 - 0: No adjustments 73 - 1: Higher Slew rate (faster edges) 74 - 2: Lower Slew rate (slower edges) 75 - 3: Reserved (No adjustments) 76 - 77 - bias-pull-down: true 78 - bias-pull-up: true 79 - bias-bus-hold: true 80 - bias-disable: true 81 - output-high: true 82 - output-low: true 83 - 84 - required: 85 - - pins 86 - - function 87 - 88 - additionalProperties: false 89 - 90 71 required: 91 72 - compatible 92 73 - reg 93 - - gpio-controller 94 - - "#gpio-cells" 95 - - gpio-ranges 96 74 97 - additionalProperties: false 75 + allOf: 76 + - $ref: qcom,lpass-lpi-common.yaml# 77 + 78 + unevaluatedProperties: false 98 79 99 80 examples: 100 81 - |
+4 -45
Documentation/devicetree/bindings/pinctrl/qcom,sc8280xp-lpass-lpi-pinctrl.yaml
··· 32 32 - const: core 33 33 - const: audio 34 34 35 - gpio-controller: true 36 - 37 - "#gpio-cells": 38 - description: Specifying the pin number and flags, as defined in 39 - include/dt-bindings/gpio/gpio.h 40 - const: 2 41 - 42 - gpio-ranges: 43 - maxItems: 1 44 - 45 35 patternProperties: 46 36 "-state$": 47 37 oneOf: ··· 47 57 description: 48 58 Pinctrl node's client devices use subnodes for desired pin configuration. 49 59 Client device subnodes use below standard properties. 50 - $ref: /schemas/pinctrl/pincfg-node.yaml 60 + $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 61 + unevaluatedProperties: false 51 62 52 63 properties: 53 64 pins: ··· 70 79 Specify the alternative function to be configured for the specified 71 80 pins. 72 81 73 - drive-strength: 74 - enum: [2, 4, 6, 8, 10, 12, 14, 16] 75 - default: 2 76 - description: 77 - Selects the drive strength for the specified pins, in mA. 78 - 79 - slew-rate: 80 - enum: [0, 1, 2, 3] 81 - default: 0 82 - description: | 83 - 0: No adjustments 84 - 1: Higher Slew rate (faster edges) 85 - 2: Lower Slew rate (slower edges) 86 - 3: Reserved (No adjustments) 87 - 88 - bias-bus-hold: true 89 - bias-pull-down: true 90 - bias-pull-up: true 91 - bias-disable: true 92 - input-enable: true 93 - output-high: true 94 - output-low: true 95 - 96 - required: 97 - - pins 98 - - function 99 - 100 - additionalProperties: false 101 - 102 82 allOf: 103 - - $ref: pinctrl.yaml# 83 + - $ref: qcom,lpass-lpi-common.yaml# 104 84 105 85 required: 106 86 - compatible 107 87 - reg 108 88 - clocks 109 89 - clock-names 110 - - gpio-controller 111 - - "#gpio-cells" 112 - - gpio-ranges 113 90 114 - additionalProperties: false 91 + unevaluatedProperties: false 115 92 116 93 examples: 117 94 - |
+4 -44
Documentation/devicetree/bindings/pinctrl/qcom,sm6115-lpass-lpi-pinctrl.yaml
··· 31 31 items: 32 32 - const: audio 33 33 34 - gpio-controller: true 35 - 36 - "#gpio-cells": 37 - description: Specifying the pin number and flags, as defined in 38 - include/dt-bindings/gpio/gpio.h 39 - const: 2 40 - 41 - gpio-ranges: 42 - maxItems: 1 43 - 44 34 patternProperties: 45 35 "-state$": 46 36 oneOf: ··· 46 56 description: 47 57 Pinctrl node's client devices use subnodes for desired pin configuration. 48 58 Client device subnodes use below standard properties. 49 - $ref: /schemas/pinctrl/pincfg-node.yaml 59 + $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 60 + unevaluatedProperties: false 50 61 51 62 properties: 52 63 pins: ··· 66 75 Specify the alternative function to be configured for the specified 67 76 pins. 68 77 69 - drive-strength: 70 - enum: [2, 4, 6, 8, 10, 12, 14, 16] 71 - default: 2 72 - description: 73 - Selects the drive strength for the specified pins, in mA. 74 - 75 - slew-rate: 76 - enum: [0, 1, 2, 3] 77 - default: 0 78 - description: | 79 - 0: No adjustments 80 - 1: Higher Slew rate (faster edges) 81 - 2: Lower Slew rate (slower edges) 82 - 3: Reserved (No adjustments) 83 - 84 - bias-bus-hold: true 85 - bias-pull-down: true 86 - bias-pull-up: true 87 - bias-disable: true 88 - input-enable: true 89 - output-high: true 90 - output-low: true 91 - 92 - required: 93 - - pins 94 - - function 95 - 96 - additionalProperties: false 97 78 98 79 allOf: 99 - - $ref: pinctrl.yaml# 80 + - $ref: qcom,lpass-lpi-common.yaml# 100 81 101 82 required: 102 83 - compatible 103 84 - reg 104 85 - clocks 105 86 - clock-names 106 - - gpio-controller 107 - - "#gpio-cells" 108 - - gpio-ranges 109 87 110 - additionalProperties: false 88 + unevaluatedProperties: false 111 89 112 90 examples: 113 91 - |
+4 -45
Documentation/devicetree/bindings/pinctrl/qcom,sm8250-lpass-lpi-pinctrl.yaml
··· 30 30 - const: core 31 31 - const: audio 32 32 33 - gpio-controller: true 34 - 35 - "#gpio-cells": 36 - description: Specifying the pin number and flags, as defined in 37 - include/dt-bindings/gpio/gpio.h 38 - const: 2 39 - 40 - gpio-ranges: 41 - maxItems: 1 42 - 43 33 patternProperties: 44 34 "-state$": 45 35 oneOf: ··· 45 55 description: 46 56 Pinctrl node's client devices use subnodes for desired pin configuration. 47 57 Client device subnodes use below standard properties. 48 - $ref: /schemas/pinctrl/pincfg-node.yaml 58 + $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 59 + unevaluatedProperties: false 49 60 50 61 properties: 51 62 pins: ··· 69 78 Specify the alternative function to be configured for the specified 70 79 pins. 71 80 72 - drive-strength: 73 - enum: [2, 4, 6, 8, 10, 12, 14, 16] 74 - default: 2 75 - description: 76 - Selects the drive strength for the specified pins, in mA. 77 - 78 - slew-rate: 79 - enum: [0, 1, 2, 3] 80 - default: 0 81 - description: | 82 - 0: No adjustments 83 - 1: Higher Slew rate (faster edges) 84 - 2: Lower Slew rate (slower edges) 85 - 3: Reserved (No adjustments) 86 - 87 - bias-pull-down: true 88 - bias-pull-up: true 89 - bias-bus-hold: true 90 - bias-disable: true 91 - input-enable: true 92 - output-high: true 93 - output-low: true 94 - 95 - required: 96 - - pins 97 - - function 98 - 99 - additionalProperties: false 100 - 101 81 allOf: 102 - - $ref: pinctrl.yaml# 82 + - $ref: qcom,lpass-lpi-common.yaml# 103 83 104 84 required: 105 85 - compatible 106 86 - reg 107 87 - clocks 108 88 - clock-names 109 - - gpio-controller 110 - - "#gpio-cells" 111 - - gpio-ranges 112 89 113 - additionalProperties: false 90 + unevaluatedProperties: false 114 91 115 92 examples: 116 93 - |
+4 -45
Documentation/devicetree/bindings/pinctrl/qcom,sm8350-lpass-lpi-pinctrl.yaml
··· 33 33 - const: core 34 34 - const: audio 35 35 36 - gpio-controller: true 37 - 38 - "#gpio-cells": 39 - description: Specifying the pin number and flags, as defined in 40 - include/dt-bindings/gpio/gpio.h 41 - const: 2 42 - 43 - gpio-ranges: 44 - maxItems: 1 45 - 46 36 patternProperties: 47 37 "-state$": 48 38 oneOf: ··· 48 58 description: 49 59 Pinctrl node's client devices use subnodes for desired pin configuration. 50 60 Client device subnodes use below standard properties. 51 - $ref: /schemas/pinctrl/pincfg-node.yaml 61 + $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 62 + unevaluatedProperties: false 52 63 53 64 properties: 54 65 pins: ··· 72 81 Specify the alternative function to be configured for the specified 73 82 pins. 74 83 75 - drive-strength: 76 - enum: [2, 4, 6, 8, 10, 12, 14, 16] 77 - default: 2 78 - description: 79 - Selects the drive strength for the specified pins, in mA. 80 - 81 - slew-rate: 82 - enum: [0, 1, 2, 3] 83 - default: 0 84 - description: | 85 - 0: No adjustments 86 - 1: Higher Slew rate (faster edges) 87 - 2: Lower Slew rate (slower edges) 88 - 3: Reserved (No adjustments) 89 - 90 - bias-bus-hold: true 91 - bias-pull-down: true 92 - bias-pull-up: true 93 - bias-disable: true 94 - input-enable: true 95 - output-high: true 96 - output-low: true 97 - 98 - required: 99 - - pins 100 - - function 101 - 102 - additionalProperties: false 103 - 104 84 allOf: 105 - - $ref: pinctrl.yaml# 85 + - $ref: qcom,lpass-lpi-common.yaml# 106 86 107 87 required: 108 88 - compatible 109 89 - reg 110 90 - clocks 111 91 - clock-names 112 - - gpio-controller 113 - - "#gpio-cells" 114 - - gpio-ranges 115 92 116 - additionalProperties: false 93 + unevaluatedProperties: false 117 94 118 95 examples: 119 96 - |
+4 -45
Documentation/devicetree/bindings/pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml
··· 32 32 - const: core 33 33 - const: audio 34 34 35 - gpio-controller: true 36 - 37 - "#gpio-cells": 38 - description: Specifying the pin number and flags, as defined in 39 - include/dt-bindings/gpio/gpio.h 40 - const: 2 41 - 42 - gpio-ranges: 43 - maxItems: 1 44 - 45 35 patternProperties: 46 36 "-state$": 47 37 oneOf: ··· 47 57 description: 48 58 Pinctrl node's client devices use subnodes for desired pin configuration. 49 59 Client device subnodes use below standard properties. 50 - $ref: /schemas/pinctrl/pincfg-node.yaml 60 + $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 61 + unevaluatedProperties: false 51 62 52 63 properties: 53 64 pins: ··· 72 81 Specify the alternative function to be configured for the specified 73 82 pins. 74 83 75 - drive-strength: 76 - enum: [2, 4, 6, 8, 10, 12, 14, 16] 77 - default: 2 78 - description: 79 - Selects the drive strength for the specified pins, in mA. 80 - 81 - slew-rate: 82 - enum: [0, 1, 2, 3] 83 - default: 0 84 - description: | 85 - 0: No adjustments 86 - 1: Higher Slew rate (faster edges) 87 - 2: Lower Slew rate (slower edges) 88 - 3: Reserved (No adjustments) 89 - 90 - bias-bus-hold: true 91 - bias-pull-down: true 92 - bias-pull-up: true 93 - bias-disable: true 94 - input-enable: true 95 - output-high: true 96 - output-low: true 97 - 98 - required: 99 - - pins 100 - - function 101 - 102 - additionalProperties: false 103 - 104 84 allOf: 105 - - $ref: pinctrl.yaml# 85 + - $ref: qcom,lpass-lpi-common.yaml# 106 86 107 87 required: 108 88 - compatible 109 89 - reg 110 90 - clocks 111 91 - clock-names 112 - - gpio-controller 113 - - "#gpio-cells" 114 - - gpio-ranges 115 92 116 - additionalProperties: false 93 + unevaluatedProperties: false 117 94 118 95 examples: 119 96 - |
+4 -45
Documentation/devicetree/bindings/pinctrl/qcom,sm8550-lpass-lpi-pinctrl.yaml
··· 37 37 - const: core 38 38 - const: audio 39 39 40 - gpio-controller: true 41 - 42 - "#gpio-cells": 43 - description: Specifying the pin number and flags, as defined in 44 - include/dt-bindings/gpio/gpio.h 45 - const: 2 46 - 47 - gpio-ranges: 48 - maxItems: 1 49 - 50 40 patternProperties: 51 41 "-state$": 52 42 oneOf: ··· 52 62 description: 53 63 Pinctrl node's client devices use subnodes for desired pin configuration. 54 64 Client device subnodes use below standard properties. 55 - $ref: /schemas/pinctrl/pincfg-node.yaml 65 + $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 66 + unevaluatedProperties: false 56 67 57 68 properties: 58 69 pins: ··· 76 85 Specify the alternative function to be configured for the specified 77 86 pins. 78 87 79 - drive-strength: 80 - enum: [2, 4, 6, 8, 10, 12, 14, 16] 81 - default: 2 82 - description: 83 - Selects the drive strength for the specified pins, in mA. 84 - 85 - slew-rate: 86 - enum: [0, 1, 2, 3] 87 - default: 0 88 - description: | 89 - 0: No adjustments 90 - 1: Higher Slew rate (faster edges) 91 - 2: Lower Slew rate (slower edges) 92 - 3: Reserved (No adjustments) 93 - 94 - bias-bus-hold: true 95 - bias-pull-down: true 96 - bias-pull-up: true 97 - bias-disable: true 98 - input-enable: true 99 - output-high: true 100 - output-low: true 101 - 102 - required: 103 - - pins 104 - - function 105 - 106 - additionalProperties: false 107 - 108 88 allOf: 109 - - $ref: pinctrl.yaml# 89 + - $ref: qcom,lpass-lpi-common.yaml# 110 90 111 91 required: 112 92 - compatible 113 93 - reg 114 94 - clocks 115 95 - clock-names 116 - - gpio-controller 117 - - "#gpio-cells" 118 - - gpio-ranges 119 96 120 - additionalProperties: false 97 + unevaluatedProperties: false 121 98 122 99 examples: 123 100 - |
+4 -45
Documentation/devicetree/bindings/pinctrl/qcom,sm8650-lpass-lpi-pinctrl.yaml
··· 32 32 - const: core 33 33 - const: audio 34 34 35 - gpio-controller: true 36 - 37 - "#gpio-cells": 38 - description: Specifying the pin number and flags, as defined in 39 - include/dt-bindings/gpio/gpio.h 40 - const: 2 41 - 42 - gpio-ranges: 43 - maxItems: 1 44 - 45 35 patternProperties: 46 36 "-state$": 47 37 oneOf: ··· 47 57 description: 48 58 Pinctrl node's client devices use subnodes for desired pin configuration. 49 59 Client device subnodes use below standard properties. 50 - $ref: /schemas/pinctrl/pincfg-node.yaml 60 + $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 61 + unevaluatedProperties: false 51 62 52 63 properties: 53 64 pins: ··· 71 80 Specify the alternative function to be configured for the specified 72 81 pins. 73 82 74 - drive-strength: 75 - enum: [2, 4, 6, 8, 10, 12, 14, 16] 76 - default: 2 77 - description: 78 - Selects the drive strength for the specified pins, in mA. 79 - 80 - slew-rate: 81 - enum: [0, 1, 2, 3] 82 - default: 0 83 - description: | 84 - 0: No adjustments 85 - 1: Higher Slew rate (faster edges) 86 - 2: Lower Slew rate (slower edges) 87 - 3: Reserved (No adjustments) 88 - 89 - bias-bus-hold: true 90 - bias-pull-down: true 91 - bias-pull-up: true 92 - bias-disable: true 93 - input-enable: true 94 - output-high: true 95 - output-low: true 96 - 97 - required: 98 - - pins 99 - - function 100 - 101 - additionalProperties: false 102 - 103 83 allOf: 104 - - $ref: pinctrl.yaml# 84 + - $ref: qcom,lpass-lpi-common.yaml# 105 85 106 86 required: 107 87 - compatible 108 88 - reg 109 89 - clocks 110 90 - clock-names 111 - - gpio-controller 112 - - "#gpio-cells" 113 - - gpio-ranges 114 91 115 - additionalProperties: false 92 + unevaluatedProperties: false 116 93 117 94 examples: 118 95 - |