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