WIP FPC-III support
[linux/fpc-iii.git] / Documentation / devicetree / bindings / pinctrl / qcom,pmic-mpp.txt
blob448d36a85730f55316d9ff2b4951d627d21580a8
1 Qualcomm PMIC Multi-Purpose Pin (MPP) block
3 This binding describes the MPP block(s) found in the 8xxx series
4 of PMIC's from Qualcomm.
6 - compatible:
7         Usage: required
8         Value type: <string>
9         Definition: Should contain one of:
10                     "qcom,pm8018-mpp",
11                     "qcom,pm8038-mpp",
12                     "qcom,pm8058-mpp",
13                     "qcom,pm8821-mpp",
14                     "qcom,pm8841-mpp",
15                     "qcom,pm8916-mpp",
16                     "qcom,pm8917-mpp",
17                     "qcom,pm8921-mpp",
18                     "qcom,pm8941-mpp",
19                     "qcom,pm8950-mpp",
20                     "qcom,pmi8950-mpp",
21                     "qcom,pm8994-mpp",
22                     "qcom,pma8084-mpp",
24                     And must contain either "qcom,spmi-mpp" or "qcom,ssbi-mpp"
25                     if the device is on an spmi bus or an ssbi bus respectively.
27 - reg:
28         Usage: required
29         Value type: <prop-encoded-array>
30         Definition: Register base of the MPP block and length.
32 - interrupts:
33         Usage: required
34         Value type: <prop-encoded-array>
35         Definition: Must contain an array of encoded interrupt specifiers for
36                     each available MPP
38 - gpio-controller:
39         Usage: required
40         Value type: <none>
41         Definition: Mark the device node as a GPIO controller
43 - #gpio-cells:
44         Usage: required
45         Value type: <u32>
46         Definition: Must be 2;
47                     the first cell will be used to define MPP number and the
48                     second denotes the flags for this MPP
50 Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
51 a general description of GPIO and interrupt bindings.
53 Please refer to pinctrl-bindings.txt in this directory for details of the
54 common pinctrl bindings used by client devices, including the meaning of the
55 phrase "pin configuration node".
57 The pin configuration nodes act as a container for an arbitrary number of
58 subnodes. Each of these subnodes represents some desired configuration for a
59 pin or a list of pins. This configuration can include the
60 mux function to select on those pin(s), and various pin configuration
61 parameters, as listed below.
63 SUBNODES:
65 The name of each subnode is not important; all subnodes should be enumerated
66 and processed purely based on their content.
68 Each subnode only affects those parameters that are explicitly listed. In
69 other words, a subnode that lists a mux function but no pin configuration
70 parameters implies no information about any pin configuration parameters.
71 Similarly, a pin subnode that describes a pullup parameter implies no
72 information about e.g. the mux function.
74 The following generic properties as defined in pinctrl-bindings.txt are valid
75 to specify in a pin configuration subnode:
77 - pins:
78         Usage: required
79         Value type: <string-array>
80         Definition: List of MPP pins affected by the properties specified in
81                     this subnode.  Valid pins are:
82                     mpp1-mpp4 for pm8841
83                     mpp1-mpp4 for pm8916
84                     mpp1-mpp8 for pm8941
85                     mpp1-mpp4 for pm8950
86                     mpp1-mpp4 for pmi8950
87                     mpp1-mpp4 for pma8084
89 - function:
90         Usage: required
91         Value type: <string>
92         Definition: Specify the alternative function to be configured for the
93                     specified pins.  Valid values are:
94                     "digital",
95                     "analog",
96                     "sink"
98 - bias-disable:
99         Usage: optional
100         Value type: <none>
101         Definition: The specified pins should be configured as no pull.
103 - bias-pull-up:
104         Usage: optional
105         Value type: <u32>
106         Definition: The specified pins should be configured as pull up.
107                     Valid values are 600, 10000 and 30000 in bidirectional mode
108                     only, i.e. when operating in qcom,analog-mode and input and
109                     outputs are enabled. The hardware ignores the configuration
110                     when operating in other modes.
112 - bias-high-impedance:
113         Usage: optional
114         Value type: <none>
115         Definition: The specified pins will put in high-Z mode and disabled.
117 - input-enable:
118         Usage: optional
119         Value type: <none>
120         Definition: The specified pins are put in input mode, i.e. their input
121                     buffer is enabled
123 - output-high:
124         Usage: optional
125         Value type: <none>
126         Definition: The specified pins are configured in output mode, driven
127                     high.
129 - output-low:
130         Usage: optional
131         Value type: <none>
132         Definition: The specified pins are configured in output mode, driven
133                     low.
135 - power-source:
136         Usage: optional
137         Value type: <u32>
138         Definition: Selects the power source for the specified pins. Valid power
139                     sources are defined in <dt-bindings/pinctrl/qcom,pmic-mpp.h>
141 - qcom,analog-level:
142         Usage: optional
143         Value type: <u32>
144         Definition: Selects the source for analog output. Valued values are
145                     defined in <dt-binding/pinctrl/qcom,pmic-mpp.h>
146                     PMIC_MPP_AOUT_LVL_*
148 - qcom,dtest:
149         Usage: optional
150         Value type: <u32>
151         Definition: Selects which dtest rail to be routed in the various functions.
152                     Valid values are 1-4
154 - qcom,amux-route:
155         Usage: optional
156         Value type: <u32>
157         Definition: Selects the source for analog input. Valid values are
158                     defined in <dt-bindings/pinctrl/qcom,pmic-mpp.h>
159                     PMIC_MPP_AMUX_ROUTE_CH5, PMIC_MPP_AMUX_ROUTE_CH6...
160 - qcom,paired:
161         Usage: optional
162         Value type: <none>
163         Definition: Indicates that the pin should be operating in paired mode.
165 Example:
167         mpps@a000 {
168                 compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp";
169                 reg = <0xa000>;
170                 gpio-controller;
171                 #gpio-cells = <2>;
172                 interrupts = <4 0xa0 0 0>, <4 0xa1 0 0>, <4 0xa2 0 0>, <4 0xa3 0 0>;
174                 pinctrl-names = "default";
175                 pinctrl-0 = <&pm8841_default>;
177                 pm8841_default: default {
178                         gpio {
179                                 pins = "mpp1", "mpp2", "mpp3", "mpp4";
180                                 function = "digital";
181                                 input-enable;
182                                 power-source = <PM8841_MPP_S3>;
183                         };
184                 };
185         };