1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Common CPCAP configuration used on Motorola phones
4 */
5
6&mcspi1 {
7	cpcap: pmic@0 {
8		compatible = "motorola,cpcap", "st,6556002";
9		reg = <0>;	/* cs0 */
10		interrupt-parent = <&gpio1>;
11		interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
12		interrupt-controller;
13		#interrupt-cells = <2>;
14		#address-cells = <1>;
15		#size-cells = <0>;
16		spi-max-frequency = <9600000>;
17		spi-cs-high;
18		spi-cpol;
19		spi-cpha;
20
21		cpcap_adc: adc {
22			compatible = "motorola,mapphone-cpcap-adc";
23			interrupts-extended = <&cpcap 8 0>;
24			interrupt-names = "adcdone";
25			#io-channel-cells = <1>;
26		};
27
28		cpcap_battery: battery {
29			compatible = "motorola,cpcap-battery";
30			interrupts-extended =
31				<&cpcap 6 0>, <&cpcap 5 0>, <&cpcap 3 0>,
32				<&cpcap 20 0>, <&cpcap 54 0>, <&cpcap 57 0>;
33			interrupt-names =
34				"eol", "lowbph", "lowbpl",
35				"chrgcurr1", "battdetb", "cccal";
36			io-channels = <&cpcap_adc 0>, <&cpcap_adc 1>,
37				      <&cpcap_adc 5>, <&cpcap_adc 6>;
38			io-channel-names = "battdetb", "battp",
39					   "chg_isense", "batti";
40			power-supplies = <&cpcap_charger>;
41		};
42
43		cpcap_charger: charger {
44			compatible = "motorola,mapphone-cpcap-charger";
45			interrupts-extended =
46				<&cpcap 13 0>, <&cpcap 12 0>, <&cpcap 29 0>,
47				<&cpcap 28 0>, <&cpcap 22 0>, <&cpcap 21 0>,
48				<&cpcap 20 0>, <&cpcap 19 0>, <&cpcap 54 0>;
49			interrupt-names =
50				"chrg_det", "rvrs_chrg", "chrg_se1b",
51				"se0conn", "rvrs_mode", "chrgcurr2",
52				"chrgcurr1", "vbusvld", "battdetb";
53			mode-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>,
54				     <&gpio3 23 GPIO_ACTIVE_LOW>;
55			io-channels = <&cpcap_adc 0>, <&cpcap_adc 1>,
56				      <&cpcap_adc 2>, <&cpcap_adc 5>,
57				      <&cpcap_adc 6>;
58			io-channel-names = "battdetb", "battp",
59					   "vbus", "chg_isense",
60					   "batti";
61		};
62
63		cpcap_regulator: regulator {
64			compatible = "motorola,mapphone-cpcap-regulator";
65
66			cpcap_regulators: regulators {
67			};
68		};
69
70		cpcap_audio: audio-codec {
71			#sound-dai-cells = <1>;
72
73			port@0 {
74				cpcap_audio_codec0: endpoint {
75				};
76			};
77			port@1 {
78				cpcap_audio_codec1: endpoint {
79				};
80			};
81		};
82
83		cpcap_rtc: rtc {
84			compatible = "motorola,cpcap-rtc";
85
86			interrupt-parent = <&cpcap>;
87			interrupts = <39 IRQ_TYPE_NONE>, <26 IRQ_TYPE_NONE>;
88		};
89
90		power_button: button {
91			compatible = "motorola,cpcap-pwrbutton";
92
93			interrupts = <23 IRQ_TYPE_NONE>;
94		};
95
96		cpcap_usb2_phy: phy {
97			compatible = "motorola,mapphone-cpcap-usb-phy";
98			pinctrl-0 = <&usb_gpio_mux_sel1>, <&usb_gpio_mux_sel2>;
99			pinctrl-1 = <&usb_ulpi_pins>;
100			pinctrl-2 = <&usb_utmi_pins>;
101			pinctrl-3 = <&uart3_pins>;
102			pinctrl-names = "default", "ulpi", "utmi", "uart";
103			#phy-cells = <0>;
104			interrupts-extended =
105				<&cpcap 15 0>, <&cpcap 14 0>, <&cpcap 28 0>,
106				<&cpcap 19 0>, <&cpcap 18 0>, <&cpcap 17 0>,
107				<&cpcap 16 0>, <&cpcap 49 0>, <&cpcap 48 0>;
108			interrupt-names =
109				"id_ground", "id_float", "se0conn",
110				"vbusvld", "sessvld", "sessend",
111				"se1", "dm", "dp";
112			mode-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>,
113				     <&gpio1 0 GPIO_ACTIVE_HIGH>;
114			io-channels = <&cpcap_adc 2>, <&cpcap_adc 7>;
115			io-channel-names = "vbus", "id";
116			vusb-supply = <&vusb>;
117		};
118
119		led_red: led-red {
120			compatible = "motorola,cpcap-led-red";
121			vdd-supply = <&sw5>;
122			label = "status-led:red";
123		};
124
125		led_green: led-green {
126			compatible = "motorola,cpcap-led-green";
127			vdd-supply = <&sw5>;
128			label = "status-led:green";
129		};
130
131		led_blue: led-blue {
132			compatible = "motorola,cpcap-led-blue";
133			vdd-supply = <&sw5>;
134			label = "status-led:blue";
135		};
136
137		led_adl: led-adl {
138			compatible = "motorola,cpcap-led-adl";
139			vdd-supply = <&sw5>;
140			label = "button-backlight";
141		};
142
143		led_cp: led-cp {
144			compatible = "motorola,cpcap-led-cp";
145			vdd-supply = <&sw5>;
146			label = "shift-key-light";
147		};
148	};
149};
150
151&cpcap_regulators {
152	sw5: SW5 {
153		regulator-min-microvolt = <5050000>;
154		regulator-max-microvolt = <5050000>;
155		regulator-enable-ramp-delay = <50000>;
156		regulator-boot-on;
157	};
158
159	vcam: VCAM {
160		regulator-min-microvolt = <2900000>;
161		regulator-max-microvolt = <2900000>;
162		regulator-enable-ramp-delay = <1000>;
163	};
164
165	/* Used by DSS and is the "zerov_regulator" trigger for SoC off mode */
166	vcsi: VCSI {
167		regulator-min-microvolt = <1800000>;
168		regulator-max-microvolt = <1800000>;
169		regulator-enable-ramp-delay = <1000>;
170		regulator-always-on;
171	};
172
173	vdac: VDAC {
174		regulator-min-microvolt = <1800000>;
175		regulator-max-microvolt = <1800000>;
176		regulator-enable-ramp-delay = <1000>;
177	};
178
179	vdig: VDIG {
180		regulator-min-microvolt = <1875000>;
181		regulator-max-microvolt = <1875000>;
182		regulator-enable-ramp-delay = <1000>;
183	};
184
185	vfuse: VFUSE {
186		regulator-min-microvolt = <1500000>;
187		regulator-max-microvolt = <3150000>;
188		regulator-enable-ramp-delay = <1000>;
189	};
190
191	vhvio: VHVIO {
192		regulator-min-microvolt = <2775000>;
193		regulator-max-microvolt = <2775000>;
194		regulator-enable-ramp-delay = <1000>;
195		regulator-always-on;
196	};
197
198	/* Used by eMMC at mmc2 */
199	vsdio: VSDIO {
200		regulator-min-microvolt = <2900000>;
201		regulator-max-microvolt = <2900000>;
202		regulator-enable-ramp-delay = <1000>;
203	};
204
205	vpll: VPLL {
206		regulator-min-microvolt = <1200000>;
207		regulator-max-microvolt = <1800000>;
208		regulator-enable-ramp-delay = <100>;
209	};
210
211	vrf1: VRF1 {
212		regulator-min-microvolt = <2775000>;
213		regulator-max-microvolt = <2775000>;
214		regulator-enable-ramp-delay = <1000>;
215	};
216
217	vrf2: VRF2 {
218		regulator-min-microvolt = <2775000>;
219		regulator-max-microvolt = <2775000>;
220		regulator-enable-ramp-delay = <1000>;
221	};
222
223	vrfref: VRFREF {
224		regulator-min-microvolt = <2500000>;
225		regulator-max-microvolt = <2775000>;
226		regulator-enable-ramp-delay = <100>;
227	};
228
229	vwlan1: VWLAN1 {
230		regulator-min-microvolt = <1800000>;
231		regulator-max-microvolt = <1900000>;
232		regulator-enable-ramp-delay = <1000>;
233	};
234
235	/* Used by micro-SDIO at mmc1 */
236	vwlan2: VWLAN2 {
237		regulator-min-microvolt = <3000000>;
238		regulator-max-microvolt = <3000000>;
239		regulator-enable-ramp-delay = <1000>;
240	};
241
242	vsim: VSIM {
243		regulator-min-microvolt = <1800000>;
244		regulator-max-microvolt = <2900000>;
245		regulator-enable-ramp-delay = <1000>;
246	};
247
248	vsimcard: VSIMCARD {
249		regulator-min-microvolt = <1800000>;
250		regulator-max-microvolt = <2900000>;
251		regulator-enable-ramp-delay = <1000>;
252	};
253
254	vvib: VVIB {
255		regulator-min-microvolt = <1300000>;
256		regulator-max-microvolt = <3000000>;
257		regulator-enable-ramp-delay = <500>;
258	};
259
260	vusb: VUSB {
261		regulator-min-microvolt = <3300000>;
262		regulator-max-microvolt = <3300000>;
263		regulator-enable-ramp-delay = <1000>;
264	};
265
266	vaudio: VAUDIO {
267		regulator-min-microvolt = <2775000>;
268		regulator-max-microvolt = <2775000>;
269		regulator-enable-ramp-delay = <1000>;
270		regulator-initial-mode = <0x00>; /* NORMAL */
271	};
272};
273