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