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