1Qualcomm PMIC GPIO block 2 3This binding describes the GPIO block(s) found in the 8xxx series of 4PMIC's from Qualcomm. 5 6- compatible: 7 Usage: required 8 Value type: <string> 9 Definition: must be one of: 10 "qcom,pm8005-gpio" 11 "qcom,pm8018-gpio" 12 "qcom,pm8038-gpio" 13 "qcom,pm8058-gpio" 14 "qcom,pm8916-gpio" 15 "qcom,pm8917-gpio" 16 "qcom,pm8921-gpio" 17 "qcom,pm8941-gpio" 18 "qcom,pm8950-gpio" 19 "qcom,pm8994-gpio" 20 "qcom,pm8998-gpio" 21 "qcom,pma8084-gpio" 22 "qcom,pmi8950-gpio" 23 "qcom,pmi8994-gpio" 24 "qcom,pmi8998-gpio" 25 "qcom,pms405-gpio" 26 "qcom,pm660-gpio" 27 "qcom,pm660l-gpio" 28 "qcom,pm8150-gpio" 29 "qcom,pm8150b-gpio" 30 "qcom,pm6150-gpio" 31 "qcom,pm6150l-gpio" 32 33 And must contain either "qcom,spmi-gpio" or "qcom,ssbi-gpio" 34 if the device is on an spmi bus or an ssbi bus respectively 35 36- reg: 37 Usage: required 38 Value type: <prop-encoded-array> 39 Definition: Register base of the GPIO block and length. 40 41- interrupts: 42 Usage: required 43 Value type: <prop-encoded-array> 44 Definition: Must contain an array of encoded interrupt specifiers for 45 each available GPIO 46 47- gpio-controller: 48 Usage: required 49 Value type: <none> 50 Definition: Mark the device node as a GPIO controller 51 52- #gpio-cells: 53 Usage: required 54 Value type: <u32> 55 Definition: Must be 2; 56 the first cell will be used to define gpio number and the 57 second denotes the flags for this gpio 58 59Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 60a general description of GPIO and interrupt bindings. 61 62Please refer to pinctrl-bindings.txt in this directory for details of the 63common pinctrl bindings used by client devices, including the meaning of the 64phrase "pin configuration node". 65 66The pin configuration nodes act as a container for an arbitrary number of 67subnodes. Each of these subnodes represents some desired configuration for a 68pin or a list of pins. This configuration can include the 69mux function to select on those pin(s), and various pin configuration 70parameters, as listed below. 71 72 73SUBNODES: 74 75The name of each subnode is not important; all subnodes should be enumerated 76and processed purely based on their content. 77 78Each subnode only affects those parameters that are explicitly listed. In 79other words, a subnode that lists a mux function but no pin configuration 80parameters implies no information about any pin configuration parameters. 81Similarly, a pin subnode that describes a pullup parameter implies no 82information about e.g. the mux function. 83 84The following generic properties as defined in pinctrl-bindings.txt are valid 85to specify in a pin configuration subnode: 86 87- pins: 88 Usage: required 89 Value type: <string-array> 90 Definition: List of gpio pins affected by the properties specified in 91 this subnode. Valid pins are: 92 gpio1-gpio4 for pm8005 93 gpio1-gpio6 for pm8018 94 gpio1-gpio12 for pm8038 95 gpio1-gpio40 for pm8058 96 gpio1-gpio4 for pm8916 97 gpio1-gpio38 for pm8917 98 gpio1-gpio44 for pm8921 99 gpio1-gpio36 for pm8941 100 gpio1-gpio8 for pm8950 (hole on gpio3) 101 gpio1-gpio22 for pm8994 102 gpio1-gpio26 for pm8998 103 gpio1-gpio22 for pma8084 104 gpio1-gpio2 for pmi8950 105 gpio1-gpio10 for pmi8994 106 gpio1-gpio12 for pms405 (holes on gpio1, gpio9 and gpio10) 107 gpio1-gpio10 for pm8150 (holes on gpio2, gpio5, gpio7 108 and gpio8) 109 gpio1-gpio12 for pm8150b (holes on gpio3, gpio4, gpio7) 110 gpio1-gpio12 for pm8150l (hole on gpio7) 111 gpio1-gpio10 for pm6150 112 gpio1-gpio12 for pm6150l 113 114- function: 115 Usage: required 116 Value type: <string> 117 Definition: Specify the alternative function to be configured for the 118 specified pins. Valid values are: 119 "normal", 120 "paired", 121 "func1", 122 "func2", 123 "dtest1", 124 "dtest2", 125 "dtest3", 126 "dtest4", 127 And following values are supported by LV/MV GPIO subtypes: 128 "func3", 129 "func4" 130 131- bias-disable: 132 Usage: optional 133 Value type: <none> 134 Definition: The specified pins should be configured as no pull. 135 136- bias-pull-down: 137 Usage: optional 138 Value type: <none> 139 Definition: The specified pins should be configured as pull down. 140 141- bias-pull-up: 142 Usage: optional 143 Value type: <empty> 144 Definition: The specified pins should be configured as pull up. 145 146- qcom,pull-up-strength: 147 Usage: optional 148 Value type: <u32> 149 Definition: Specifies the strength to use for pull up, if selected. 150 Valid values are; as defined in 151 <dt-bindings/pinctrl/qcom,pmic-gpio.h>: 152 1: 30uA (PMIC_GPIO_PULL_UP_30) 153 2: 1.5uA (PMIC_GPIO_PULL_UP_1P5) 154 3: 31.5uA (PMIC_GPIO_PULL_UP_31P5) 155 4: 1.5uA + 30uA boost (PMIC_GPIO_PULL_UP_1P5_30) 156 If this property is omitted 30uA strength will be used if 157 pull up is selected 158 159- bias-high-impedance: 160 Usage: optional 161 Value type: <none> 162 Definition: The specified pins will put in high-Z mode and disabled. 163 164- input-enable: 165 Usage: optional 166 Value type: <none> 167 Definition: The specified pins are put in input mode. 168 169- output-high: 170 Usage: optional 171 Value type: <none> 172 Definition: The specified pins are configured in output mode, driven 173 high. 174 175- output-low: 176 Usage: optional 177 Value type: <none> 178 Definition: The specified pins are configured in output mode, driven 179 low. 180 181- power-source: 182 Usage: optional 183 Value type: <u32> 184 Definition: Selects the power source for the specified pins. Valid 185 power sources are defined per chip in 186 <dt-bindings/pinctrl/qcom,pmic-gpio.h> 187 188- qcom,drive-strength: 189 Usage: optional 190 Value type: <u32> 191 Definition: Selects the drive strength for the specified pins. Value 192 drive strengths are: 193 0: no (PMIC_GPIO_STRENGTH_NO) 194 1: high (PMIC_GPIO_STRENGTH_HIGH) 0.9mA @ 1.8V - 1.9mA @ 2.6V 195 2: medium (PMIC_GPIO_STRENGTH_MED) 0.6mA @ 1.8V - 1.25mA @ 2.6V 196 3: low (PMIC_GPIO_STRENGTH_LOW) 0.15mA @ 1.8V - 0.3mA @ 2.6V 197 as defined in <dt-bindings/pinctrl/qcom,pmic-gpio.h> 198 199- drive-push-pull: 200 Usage: optional 201 Value type: <none> 202 Definition: The specified pins are configured in push-pull mode. 203 204- drive-open-drain: 205 Usage: optional 206 Value type: <none> 207 Definition: The specified pins are configured in open-drain mode. 208 209- drive-open-source: 210 Usage: optional 211 Value type: <none> 212 Definition: The specified pins are configured in open-source mode. 213 214- qcom,analog-pass: 215 Usage: optional 216 Value type: <none> 217 Definition: The specified pins are configured in analog-pass-through mode. 218 219- qcom,atest: 220 Usage: optional 221 Value type: <u32> 222 Definition: Selects ATEST rail to route to GPIO when it's configured 223 in analog-pass-through mode. 224 Valid values are 1-4 corresponding to ATEST1 to ATEST4. 225 226- qcom,dtest-buffer: 227 Usage: optional 228 Value type: <u32> 229 Definition: Selects DTEST rail to route to GPIO when it's configured 230 as digital input. 231 Valid values are 1-4 corresponding to DTEST1 to DTEST4. 232 233Example: 234 235 pm8921_gpio: gpio@150 { 236 compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio"; 237 reg = <0x150 0x160>; 238 interrupts = <192 1>, <193 1>, <194 1>, 239 <195 1>, <196 1>, <197 1>, 240 <198 1>, <199 1>, <200 1>, 241 <201 1>, <202 1>, <203 1>, 242 <204 1>, <205 1>, <206 1>, 243 <207 1>, <208 1>, <209 1>, 244 <210 1>, <211 1>, <212 1>, 245 <213 1>, <214 1>, <215 1>, 246 <216 1>, <217 1>, <218 1>, 247 <219 1>, <220 1>, <221 1>, 248 <222 1>, <223 1>, <224 1>, 249 <225 1>, <226 1>, <227 1>, 250 <228 1>, <229 1>, <230 1>, 251 <231 1>, <232 1>, <233 1>, 252 <234 1>, <235 1>; 253 254 gpio-controller; 255 #gpio-cells = <2>; 256 257 pm8921_gpio_keys: gpio-keys { 258 volume-keys { 259 pins = "gpio20", "gpio21"; 260 function = "normal"; 261 262 input-enable; 263 bias-pull-up; 264 drive-push-pull; 265 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 266 power-source = <PM8921_GPIO_S4>; 267 }; 268 }; 269 }; 270