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