1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-C 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/pinctrl/qco 4 $id: http://devicetree.org/schemas/pinctrl/qcom,pmic-mpp.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Qualcomm PMIC Multi-Purpose Pin (MPP) b 7 title: Qualcomm PMIC Multi-Purpose Pin (MPP) block 8 8 9 maintainers: 9 maintainers: 10 - Bjorn Andersson <bjorn.andersson@linaro.org 10 - Bjorn Andersson <bjorn.andersson@linaro.org> 11 11 12 description: 12 description: 13 This binding describes the MPP block(s) foun 13 This binding describes the MPP block(s) found in the 8xxx series of 14 PMIC's from Qualcomm. 14 PMIC's from Qualcomm. 15 15 16 properties: 16 properties: 17 compatible: 17 compatible: 18 oneOf: !! 18 items: 19 - items: !! 19 - enum: 20 - enum: !! 20 - qcom,pm8018-mpp 21 - qcom,pm8019-mpp !! 21 - qcom,pm8019-mpp 22 - qcom,pm8226-mpp !! 22 - qcom,pm8038-mpp 23 - qcom,pm8841-mpp !! 23 - qcom,pm8058-mpp 24 - qcom,pm8916-mpp !! 24 - qcom,pm8226-mpp 25 - qcom,pm8941-mpp !! 25 - qcom,pm8821-mpp 26 - qcom,pm8950-mpp !! 26 - qcom,pm8841-mpp 27 - qcom,pmi8950-mpp !! 27 - qcom,pm8916-mpp 28 - qcom,pm8994-mpp !! 28 - qcom,pm8917-mpp 29 - qcom,pma8084-mpp !! 29 - qcom,pm8921-mpp 30 - qcom,pmi8994-mpp !! 30 - qcom,pm8941-mpp 31 - const: qcom,spmi-mpp !! 31 - qcom,pm8950-mpp 32 - items: !! 32 - qcom,pmi8950-mpp 33 - enum: !! 33 - qcom,pm8994-mpp 34 - qcom,pm8018-mpp !! 34 - qcom,pma8084-mpp 35 - qcom,pm8038-mpp !! 35 - qcom,pmi8994-mpp 36 - qcom,pm8058-mpp !! 36 37 - qcom,pm8821-mpp !! 37 - enum: 38 - qcom,pm8901-mpp !! 38 - qcom,spmi-mpp 39 - qcom,pm8917-mpp !! 39 - qcom,ssbi-mpp 40 - qcom,pm8921-mpp << 41 - const: qcom,ssbi-mpp << 42 40 43 reg: 41 reg: 44 maxItems: 1 42 maxItems: 1 45 43 46 interrupt-controller: true 44 interrupt-controller: true 47 45 48 '#interrupt-cells': 46 '#interrupt-cells': 49 const: 2 47 const: 2 50 48 51 gpio-controller: true 49 gpio-controller: true 52 gpio-line-names: true 50 gpio-line-names: true 53 51 54 gpio-ranges: 52 gpio-ranges: 55 maxItems: 1 53 maxItems: 1 56 54 57 '#gpio-cells': 55 '#gpio-cells': 58 const: 2 56 const: 2 59 description: 57 description: 60 The first cell will be used to define gp 58 The first cell will be used to define gpio number and the 61 second denotes the flags for this gpio 59 second denotes the flags for this gpio 62 60 63 additionalProperties: false 61 additionalProperties: false 64 62 65 required: 63 required: 66 - compatible 64 - compatible 67 - reg 65 - reg 68 - gpio-controller 66 - gpio-controller 69 - '#gpio-cells' 67 - '#gpio-cells' 70 - gpio-ranges 68 - gpio-ranges 71 - interrupt-controller 69 - interrupt-controller 72 70 73 patternProperties: 71 patternProperties: 74 '-state$': 72 '-state$': 75 oneOf: 73 oneOf: 76 - $ref: "#/$defs/qcom-pmic-mpp-state" 74 - $ref: "#/$defs/qcom-pmic-mpp-state" 77 - patternProperties: 75 - patternProperties: 78 '-pins$': !! 76 "mpp": 79 $ref: "#/$defs/qcom-pmic-mpp-state 77 $ref: "#/$defs/qcom-pmic-mpp-state" 80 additionalProperties: false 78 additionalProperties: false 81 79 82 $defs: 80 $defs: 83 qcom-pmic-mpp-state: 81 qcom-pmic-mpp-state: 84 type: object 82 type: object 85 allOf: 83 allOf: 86 - $ref: pinmux-node.yaml !! 84 - $ref: "pinmux-node.yaml" 87 - $ref: pincfg-node.yaml !! 85 - $ref: "pincfg-node.yaml" 88 properties: 86 properties: 89 pins: 87 pins: 90 description: 88 description: 91 List of gpio pins affected by the pr 89 List of gpio pins affected by the properties specified in 92 this subnode. Valid pins are 90 this subnode. Valid pins are 93 - mpp1-mpp4 for pm8841 91 - mpp1-mpp4 for pm8841 94 - mpp1-mpp4 for pm8916 92 - mpp1-mpp4 for pm8916 95 - mpp1-mpp8 for pm8941 93 - mpp1-mpp8 for pm8941 96 - mpp1-mpp4 for pm8950 94 - mpp1-mpp4 for pm8950 97 - mpp1-mpp4 for pmi8950 95 - mpp1-mpp4 for pmi8950 98 - mpp1-mpp4 for pma8084 96 - mpp1-mpp4 for pma8084 99 97 100 items: 98 items: 101 pattern: "^mpp([0-9]+)$" 99 pattern: "^mpp([0-9]+)$" 102 100 103 function: 101 function: 104 items: 102 items: 105 - enum: 103 - enum: 106 - digital 104 - digital 107 - analog 105 - analog 108 - sink 106 - sink 109 107 110 bias-disable: true 108 bias-disable: true 111 bias-pull-up: true 109 bias-pull-up: true 112 bias-high-impedance: true 110 bias-high-impedance: true 113 input-enable: true 111 input-enable: true 114 output-high: true 112 output-high: true 115 output-low: true 113 output-low: true 116 power-source: true 114 power-source: true 117 115 118 qcom,analog-level: 116 qcom,analog-level: 119 $ref: /schemas/types.yaml#/definitions 117 $ref: /schemas/types.yaml#/definitions/uint32 120 description: 118 description: 121 Selects the source for analog output 119 Selects the source for analog output. Valued values are defined in 122 <dt-binding/pinctrl/qcom,pmic-mpp.h> 120 <dt-binding/pinctrl/qcom,pmic-mpp.h> PMIC_MPP_AOUT_LVL_* 123 enum: [0, 1, 2, 3, 4, 5, 6, 7] 121 enum: [0, 1, 2, 3, 4, 5, 6, 7] 124 122 125 qcom,atest: 123 qcom,atest: 126 $ref: /schemas/types.yaml#/definitions 124 $ref: /schemas/types.yaml#/definitions/uint32 127 description: 125 description: 128 Selects ATEST rail to route to GPIO 126 Selects ATEST rail to route to GPIO when it's 129 configured in analog-pass-through mo 127 configured in analog-pass-through mode. 130 enum: [1, 2, 3, 4] 128 enum: [1, 2, 3, 4] 131 129 132 qcom,dtest: 130 qcom,dtest: 133 $ref: /schemas/types.yaml#/definitions 131 $ref: /schemas/types.yaml#/definitions/uint32 134 description: 132 description: 135 Selects DTEST rail to route to GPIO 133 Selects DTEST rail to route to GPIO when it's 136 configured as digital input. 134 configured as digital input. 137 enum: [1, 2, 3, 4] 135 enum: [1, 2, 3, 4] 138 136 139 qcom,amux-route: 137 qcom,amux-route: 140 $ref: /schemas/types.yaml#/definitions 138 $ref: /schemas/types.yaml#/definitions/uint32 141 description: 139 description: 142 Selects the source for analog input. 140 Selects the source for analog input. Valid values are defined in 143 <dt-bindings/pinctrl/qcom,pmic-mpp.h 141 <dt-bindings/pinctrl/qcom,pmic-mpp.h> PMIC_MPP_AMUX_ROUTE_CH5, 144 PMIC_MPP_AMUX_ROUTE_CH6... 142 PMIC_MPP_AMUX_ROUTE_CH6... 145 enum: [0, 1, 2, 3, 4, 5, 6, 7] 143 enum: [0, 1, 2, 3, 4, 5, 6, 7] 146 144 147 qcom,paired: 145 qcom,paired: 148 type: boolean !! 146 - description: 149 description: !! 147 Indicates that the pin should be operating in paired mode. 150 Indicates that the pin should be ope << 151 148 152 required: 149 required: 153 - pins 150 - pins 154 - function 151 - function 155 152 156 additionalProperties: false 153 additionalProperties: false 157 154 158 examples: 155 examples: 159 - | 156 - | 160 #include <dt-bindings/pinctrl/qcom,pmic-mp 157 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 161 158 162 pmic { !! 159 pm8841_mpp: mpps@a000 { 163 #address-cells = <1>; !! 160 compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp"; 164 #size-cells = <0>; !! 161 reg = <0xa000 0>; 165 !! 162 gpio-controller; 166 pm8841_mpp: mpps@a000 { !! 163 #gpio-cells = <2>; 167 compatible = "qcom,pm8841-mpp", "q !! 164 gpio-ranges = <&pm8841_mpp 0 0 4>; 168 reg = <0xa000>; !! 165 gpio-line-names = "VDD_PX_BIAS", "WLAN_LED_CTRL", 169 !! 166 "BT_LED_CTRL", "GPIO-F"; 170 gpio-controller; !! 167 interrupt-controller; 171 #gpio-cells = <2>; !! 168 #interrupt-cells = <2>; 172 gpio-ranges = <&pm8841_mpp 0 0 4>; !! 169 173 gpio-line-names = "VDD_PX_BIAS", " !! 170 pinctrl-names = "default"; 174 "BT_LED_CTRL", " !! 171 pinctrl-0 = <&pm8841_default>; 175 interrupt-controller; !! 172 176 #interrupt-cells = <2>; !! 173 mpp1-state { 177 !! 174 pins = "mpp1"; 178 pinctrl-names = "default"; !! 175 function = "digital"; 179 pinctrl-0 = <&pm8841_default>; !! 176 input-enable; 180 !! 177 power-source = <PM8841_MPP_S3>; 181 mpp1-state { !! 178 }; 182 pins = "mpp1"; !! 179 183 function = "digital"; !! 180 default-state { 184 input-enable; !! 181 gpio-mpp { 185 power-source = <PM8841_MPP_S3> !! 182 pins = "mpp1", "mpp2", "mpp3", "mpp4"; 186 }; !! 183 function = "digital"; 187 !! 184 input-enable; 188 default-state { !! 185 power-source = <PM8841_MPP_S3>; 189 gpio-pins { << 190 pins = "mpp1", "mpp2", "mp << 191 function = "digital"; << 192 input-enable; << 193 power-source = <PM8841_MPP << 194 }; << 195 }; << 196 }; 186 }; >> 187 }; 197 }; 188 }; 198 ... 189 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.