xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/sm7225-fairphone-fp4.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
18cc087a1SEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause
28cc087a1SEmmanuel Vadot/*
38cc087a1SEmmanuel Vadot * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
48cc087a1SEmmanuel Vadot */
58cc087a1SEmmanuel Vadot
68cc087a1SEmmanuel Vadot/dts-v1/;
78cc087a1SEmmanuel Vadot
884943d6fSEmmanuel Vadot/* PM7250B is configured to use SID2/3 */
984943d6fSEmmanuel Vadot#define PM7250B_SID 2
1084943d6fSEmmanuel Vadot#define PM7250B_SID1 3
1184943d6fSEmmanuel Vadot
12cb7aa33aSEmmanuel Vadot/* PMK8350 (in reality a PMK8003) is configured to use SID6 instead of 0 */
13cb7aa33aSEmmanuel Vadot#define PMK8350_SID 6
14cb7aa33aSEmmanuel Vadot
1584943d6fSEmmanuel Vadot#include <dt-bindings/firmware/qcom,scm.h>
168cc087a1SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
17cb7aa33aSEmmanuel Vadot#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
188cc087a1SEmmanuel Vadot#include <dt-bindings/input/input.h>
19cb7aa33aSEmmanuel Vadot#include <dt-bindings/leds/common.h>
208cc087a1SEmmanuel Vadot#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
218cc087a1SEmmanuel Vadot#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
22*0e8011faSEmmanuel Vadot#include <dt-bindings/usb/pd.h>
238cc087a1SEmmanuel Vadot#include "sm7225.dtsi"
24c9ccf3a3SEmmanuel Vadot#include "pm6150l.dtsi"
258cc087a1SEmmanuel Vadot#include "pm6350.dtsi"
267ef62cebSEmmanuel Vadot#include "pm7250b.dtsi"
27cb7aa33aSEmmanuel Vadot#include "pmk8350.dtsi"
288cc087a1SEmmanuel Vadot
298cc087a1SEmmanuel Vadot/ {
308cc087a1SEmmanuel Vadot	model = "Fairphone 4";
318cc087a1SEmmanuel Vadot	compatible = "fairphone,fp4", "qcom,sm7225";
32e67e8565SEmmanuel Vadot	chassis-type = "handset";
338cc087a1SEmmanuel Vadot
348cc087a1SEmmanuel Vadot	/* required for bootloader to select correct board */
358cc087a1SEmmanuel Vadot	qcom,msm-id = <434 0x10000>, <459 0x10000>;
368cc087a1SEmmanuel Vadot	qcom,board-id = <8 32>;
378cc087a1SEmmanuel Vadot
388cc087a1SEmmanuel Vadot	aliases {
39d5b0e70fSEmmanuel Vadot		serial0 = &uart9;
40f126890aSEmmanuel Vadot		serial1 = &uart1;
418cc087a1SEmmanuel Vadot	};
428cc087a1SEmmanuel Vadot
438cc087a1SEmmanuel Vadot	chosen {
448cc087a1SEmmanuel Vadot		#address-cells = <2>;
458cc087a1SEmmanuel Vadot		#size-cells = <2>;
468cc087a1SEmmanuel Vadot		ranges;
478cc087a1SEmmanuel Vadot
488cc087a1SEmmanuel Vadot		stdout-path = "serial0:115200n8";
498cc087a1SEmmanuel Vadot
508cc087a1SEmmanuel Vadot		framebuffer0: framebuffer@a000000 {
518cc087a1SEmmanuel Vadot			compatible = "simple-framebuffer";
528cc087a1SEmmanuel Vadot			reg = <0 0xa0000000 0 (2340 * 1080 * 4)>;
538cc087a1SEmmanuel Vadot			width = <1080>;
548cc087a1SEmmanuel Vadot			height = <2340>;
558cc087a1SEmmanuel Vadot			stride = <(1080 * 4)>;
568cc087a1SEmmanuel Vadot			format = "a8r8g8b8";
578cc087a1SEmmanuel Vadot		};
588cc087a1SEmmanuel Vadot	};
598cc087a1SEmmanuel Vadot
608cc087a1SEmmanuel Vadot	gpio-keys {
618cc087a1SEmmanuel Vadot		compatible = "gpio-keys";
628cc087a1SEmmanuel Vadot		pinctrl-names = "default";
638cc087a1SEmmanuel Vadot		pinctrl-0 = <&gpio_keys_pin>;
648cc087a1SEmmanuel Vadot
65b97ee269SEmmanuel Vadot		key-volume-up {
668cc087a1SEmmanuel Vadot			label = "volume_up";
678cc087a1SEmmanuel Vadot			linux,code = <KEY_VOLUMEUP>;
688cc087a1SEmmanuel Vadot			gpios = <&pm6350_gpios 2 GPIO_ACTIVE_LOW>;
698cc087a1SEmmanuel Vadot		};
708cc087a1SEmmanuel Vadot	};
71e67e8565SEmmanuel Vadot
7201950c46SEmmanuel Vadot	/* Dummy regulator until PM6150L has LCDB VSP/VSN support */
7301950c46SEmmanuel Vadot	lcdb_dummy: regulator-lcdb-dummy {
7401950c46SEmmanuel Vadot		compatible = "regulator-fixed";
7501950c46SEmmanuel Vadot		regulator-name = "lcdb_dummy";
7601950c46SEmmanuel Vadot		regulator-min-microvolt = <5500000>;
7701950c46SEmmanuel Vadot		regulator-max-microvolt = <5500000>;
7801950c46SEmmanuel Vadot	};
7901950c46SEmmanuel Vadot
80e67e8565SEmmanuel Vadot	reserved-memory {
81e67e8565SEmmanuel Vadot		/*
82e67e8565SEmmanuel Vadot		 * The rmtfs memory region in downstream is 'dynamically allocated'
83e67e8565SEmmanuel Vadot		 * but given the same address every time. Hard code it as this address is
84e67e8565SEmmanuel Vadot		 * where the modem firmware expects it to be.
85e67e8565SEmmanuel Vadot		 */
86e67e8565SEmmanuel Vadot		memory@efe01000 {
87e67e8565SEmmanuel Vadot			compatible = "qcom,rmtfs-mem";
88e67e8565SEmmanuel Vadot			reg = <0 0xefe01000 0 0x600000>;
89e67e8565SEmmanuel Vadot			no-map;
90e67e8565SEmmanuel Vadot
91e67e8565SEmmanuel Vadot			qcom,client-id = <1>;
9284943d6fSEmmanuel Vadot			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
93e67e8565SEmmanuel Vadot		};
94e67e8565SEmmanuel Vadot	};
957ef62cebSEmmanuel Vadot
96*0e8011faSEmmanuel Vadot	msm_therm_sensor: thermal-sensor-msm {
97*0e8011faSEmmanuel Vadot		compatible = "generic-adc-thermal";
98*0e8011faSEmmanuel Vadot		#thermal-sensor-cells = <0>;
99*0e8011faSEmmanuel Vadot		io-channels = <&pm6150l_adc ADC5_AMUX_THM2_100K_PU>;
100*0e8011faSEmmanuel Vadot		io-channel-names = "sensor-channel";
101*0e8011faSEmmanuel Vadot	};
102*0e8011faSEmmanuel Vadot
103*0e8011faSEmmanuel Vadot	rear_cam_sensor: thermal-sensor-rear-cam {
104*0e8011faSEmmanuel Vadot		compatible = "generic-adc-thermal";
105*0e8011faSEmmanuel Vadot		#thermal-sensor-cells = <0>;
106*0e8011faSEmmanuel Vadot		io-channels = <&pm6150l_adc ADC5_GPIO2_100K_PU>;
107*0e8011faSEmmanuel Vadot		io-channel-names = "sensor-channel";
108*0e8011faSEmmanuel Vadot	};
109*0e8011faSEmmanuel Vadot
1107ef62cebSEmmanuel Vadot	thermal-zones {
1117ef62cebSEmmanuel Vadot		chg-skin-thermal {
1127ef62cebSEmmanuel Vadot			thermal-sensors = <&pm7250b_adc_tm 0>;
1137ef62cebSEmmanuel Vadot
1147ef62cebSEmmanuel Vadot			trips {
1157ef62cebSEmmanuel Vadot				active-config0 {
1167ef62cebSEmmanuel Vadot					temperature = <125000>;
1177ef62cebSEmmanuel Vadot					hysteresis = <1000>;
1187ef62cebSEmmanuel Vadot					type = "passive";
1197ef62cebSEmmanuel Vadot				};
1207ef62cebSEmmanuel Vadot			};
1217ef62cebSEmmanuel Vadot		};
1227ef62cebSEmmanuel Vadot
1237ef62cebSEmmanuel Vadot		conn-thermal {
1247ef62cebSEmmanuel Vadot			thermal-sensors = <&pm7250b_adc_tm 1>;
1257ef62cebSEmmanuel Vadot
1267ef62cebSEmmanuel Vadot			trips {
1277ef62cebSEmmanuel Vadot				active-config0 {
1287ef62cebSEmmanuel Vadot					temperature = <125000>;
1297ef62cebSEmmanuel Vadot					hysteresis = <1000>;
1307ef62cebSEmmanuel Vadot					type = "passive";
1317ef62cebSEmmanuel Vadot				};
1327ef62cebSEmmanuel Vadot			};
1337ef62cebSEmmanuel Vadot		};
134*0e8011faSEmmanuel Vadot
135*0e8011faSEmmanuel Vadot		pa0-thermal {
136*0e8011faSEmmanuel Vadot			thermal-sensors = <&pm6150l_adc_tm 1>;
137*0e8011faSEmmanuel Vadot
138*0e8011faSEmmanuel Vadot			trips {
139*0e8011faSEmmanuel Vadot				active-config0 {
140*0e8011faSEmmanuel Vadot					temperature = <125000>;
141*0e8011faSEmmanuel Vadot					hysteresis = <1000>;
142*0e8011faSEmmanuel Vadot					type = "passive";
143*0e8011faSEmmanuel Vadot				};
144*0e8011faSEmmanuel Vadot			};
145*0e8011faSEmmanuel Vadot		};
146*0e8011faSEmmanuel Vadot
147*0e8011faSEmmanuel Vadot		pa1-thermal {
148*0e8011faSEmmanuel Vadot			thermal-sensors = <&pm6150l_adc_tm 0>;
149*0e8011faSEmmanuel Vadot
150*0e8011faSEmmanuel Vadot			trips {
151*0e8011faSEmmanuel Vadot				active-config0 {
152*0e8011faSEmmanuel Vadot					temperature = <125000>;
153*0e8011faSEmmanuel Vadot					hysteresis = <1000>;
154*0e8011faSEmmanuel Vadot					type = "passive";
155*0e8011faSEmmanuel Vadot				};
156*0e8011faSEmmanuel Vadot			};
157*0e8011faSEmmanuel Vadot		};
158*0e8011faSEmmanuel Vadot
159*0e8011faSEmmanuel Vadot		pm8008-thermal {
160*0e8011faSEmmanuel Vadot			polling-delay-passive = <100>;
161*0e8011faSEmmanuel Vadot			thermal-sensors = <&pm8008>;
162*0e8011faSEmmanuel Vadot
163*0e8011faSEmmanuel Vadot			trips {
164*0e8011faSEmmanuel Vadot				trip0 {
165*0e8011faSEmmanuel Vadot					temperature = <95000>;
166*0e8011faSEmmanuel Vadot					hysteresis = <0>;
167*0e8011faSEmmanuel Vadot					type = "passive";
168*0e8011faSEmmanuel Vadot				};
169*0e8011faSEmmanuel Vadot
170*0e8011faSEmmanuel Vadot				trip1 {
171*0e8011faSEmmanuel Vadot					temperature = <115000>;
172*0e8011faSEmmanuel Vadot					hysteresis = <0>;
173*0e8011faSEmmanuel Vadot					type = "critical";
174*0e8011faSEmmanuel Vadot				};
175*0e8011faSEmmanuel Vadot			};
176*0e8011faSEmmanuel Vadot		};
177*0e8011faSEmmanuel Vadot
178*0e8011faSEmmanuel Vadot		quiet-thermal {
179*0e8011faSEmmanuel Vadot			thermal-sensors = <&pm6150l_adc_tm 3>;
180*0e8011faSEmmanuel Vadot
181*0e8011faSEmmanuel Vadot			trips {
182*0e8011faSEmmanuel Vadot				active-config0 {
183*0e8011faSEmmanuel Vadot					temperature = <125000>;
184*0e8011faSEmmanuel Vadot					hysteresis = <1000>;
185*0e8011faSEmmanuel Vadot					type = "passive";
186*0e8011faSEmmanuel Vadot				};
187*0e8011faSEmmanuel Vadot			};
188*0e8011faSEmmanuel Vadot		};
189*0e8011faSEmmanuel Vadot
190*0e8011faSEmmanuel Vadot		rear-cam-thermal {
191*0e8011faSEmmanuel Vadot			polling-delay-passive = <1000>;
192*0e8011faSEmmanuel Vadot			polling-delay = <5000>;
193*0e8011faSEmmanuel Vadot			thermal-sensors = <&rear_cam_sensor>;
194*0e8011faSEmmanuel Vadot
195*0e8011faSEmmanuel Vadot			trips {
196*0e8011faSEmmanuel Vadot				active-config0 {
197*0e8011faSEmmanuel Vadot					temperature = <125000>;
198*0e8011faSEmmanuel Vadot					hysteresis = <1000>;
199*0e8011faSEmmanuel Vadot					type = "passive";
200*0e8011faSEmmanuel Vadot				};
201*0e8011faSEmmanuel Vadot			};
202*0e8011faSEmmanuel Vadot		};
203*0e8011faSEmmanuel Vadot
204*0e8011faSEmmanuel Vadot		rfc-flash-thermal {
205*0e8011faSEmmanuel Vadot			thermal-sensors = <&pm6150l_adc_tm 2>;
206*0e8011faSEmmanuel Vadot
207*0e8011faSEmmanuel Vadot			trips {
208*0e8011faSEmmanuel Vadot				active-config0 {
209*0e8011faSEmmanuel Vadot					temperature = <125000>;
210*0e8011faSEmmanuel Vadot					hysteresis = <1000>;
211*0e8011faSEmmanuel Vadot					type = "passive";
212*0e8011faSEmmanuel Vadot				};
213*0e8011faSEmmanuel Vadot			};
214*0e8011faSEmmanuel Vadot		};
215*0e8011faSEmmanuel Vadot
216*0e8011faSEmmanuel Vadot		sdm-skin-thermal {
217*0e8011faSEmmanuel Vadot			polling-delay-passive = <1000>;
218*0e8011faSEmmanuel Vadot			polling-delay = <5000>;
219*0e8011faSEmmanuel Vadot			thermal-sensors = <&msm_therm_sensor>;
220*0e8011faSEmmanuel Vadot
221*0e8011faSEmmanuel Vadot			trips {
222*0e8011faSEmmanuel Vadot				trip0 {
223*0e8011faSEmmanuel Vadot					temperature = <45000>;
224*0e8011faSEmmanuel Vadot					hysteresis = <0>;
225*0e8011faSEmmanuel Vadot					type = "passive";
226*0e8011faSEmmanuel Vadot				};
227*0e8011faSEmmanuel Vadot
228*0e8011faSEmmanuel Vadot				trip1 {
229*0e8011faSEmmanuel Vadot					temperature = <55000>;
230*0e8011faSEmmanuel Vadot					hysteresis = <0>;
231*0e8011faSEmmanuel Vadot					type = "critical";
232*0e8011faSEmmanuel Vadot				};
233*0e8011faSEmmanuel Vadot			};
234*0e8011faSEmmanuel Vadot		};
235*0e8011faSEmmanuel Vadot
236*0e8011faSEmmanuel Vadot		xo-thermal {
237*0e8011faSEmmanuel Vadot			thermal-sensors = <&pmk8350_adc_tm 0>;
238*0e8011faSEmmanuel Vadot
239*0e8011faSEmmanuel Vadot			trips {
240*0e8011faSEmmanuel Vadot				active-config0 {
241*0e8011faSEmmanuel Vadot					temperature = <125000>;
242*0e8011faSEmmanuel Vadot					hysteresis = <1000>;
243*0e8011faSEmmanuel Vadot					type = "passive";
244*0e8011faSEmmanuel Vadot				};
245*0e8011faSEmmanuel Vadot			};
246*0e8011faSEmmanuel Vadot		};
2477ef62cebSEmmanuel Vadot	};
248e67e8565SEmmanuel Vadot};
249e67e8565SEmmanuel Vadot
250e67e8565SEmmanuel Vadot&adsp {
25101950c46SEmmanuel Vadot	firmware-name = "qcom/sm7225/fairphone4/adsp.mbn";
252cb7aa33aSEmmanuel Vadot	status = "okay";
2538cc087a1SEmmanuel Vadot};
2548cc087a1SEmmanuel Vadot
2558cc087a1SEmmanuel Vadot&apps_rsc {
256cb7aa33aSEmmanuel Vadot	regulators-0 {
2578cc087a1SEmmanuel Vadot		compatible = "qcom,pm6350-rpmh-regulators";
2588cc087a1SEmmanuel Vadot		qcom,pmic-id = "a";
2598cc087a1SEmmanuel Vadot
2608cc087a1SEmmanuel Vadot		vreg_s1a: smps1 {
261*0e8011faSEmmanuel Vadot			regulator-name = "vreg_s1a";
2628cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1000000>;
2638cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
2648cc087a1SEmmanuel Vadot		};
2658cc087a1SEmmanuel Vadot
2668cc087a1SEmmanuel Vadot		vreg_s2a: smps2 {
267*0e8011faSEmmanuel Vadot			regulator-name = "vreg_s2a";
2688cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1503000>;
2698cc087a1SEmmanuel Vadot			regulator-max-microvolt = <2048000>;
2708cc087a1SEmmanuel Vadot		};
2718cc087a1SEmmanuel Vadot
2728cc087a1SEmmanuel Vadot		vreg_l2a: ldo2 {
273*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l2a";
2748cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1503000>;
2758cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1980000>;
2768cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
2778cc087a1SEmmanuel Vadot		};
2788cc087a1SEmmanuel Vadot
2798cc087a1SEmmanuel Vadot		vreg_l3a: ldo3 {
280*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l3a";
2818cc087a1SEmmanuel Vadot			regulator-min-microvolt = <2700000>;
2828cc087a1SEmmanuel Vadot			regulator-max-microvolt = <3300000>;
2838cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
2848cc087a1SEmmanuel Vadot		};
2858cc087a1SEmmanuel Vadot
2868cc087a1SEmmanuel Vadot		vreg_l4a: ldo4 {
287*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l4a";
2888cc087a1SEmmanuel Vadot			regulator-min-microvolt = <352000>;
2898cc087a1SEmmanuel Vadot			regulator-max-microvolt = <801000>;
2908cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
2918cc087a1SEmmanuel Vadot		};
2928cc087a1SEmmanuel Vadot
2938cc087a1SEmmanuel Vadot		vreg_l5a: ldo5 {
294*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l5a";
2958cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1503000>;
2968cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1980000>;
2978cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
2988cc087a1SEmmanuel Vadot		};
2998cc087a1SEmmanuel Vadot
3008cc087a1SEmmanuel Vadot		vreg_l6a: ldo6 {
301*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l6a";
3028cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1710000>;
3038cc087a1SEmmanuel Vadot			regulator-max-microvolt = <3544000>;
3048cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3058cc087a1SEmmanuel Vadot		};
3068cc087a1SEmmanuel Vadot
3078cc087a1SEmmanuel Vadot		vreg_l7a: ldo7 {
308*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l7a";
3098cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1620000>;
3108cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1980000>;
3118cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3128cc087a1SEmmanuel Vadot		};
3138cc087a1SEmmanuel Vadot
3148cc087a1SEmmanuel Vadot		vreg_l8a: ldo8 {
315*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l8a";
3168cc087a1SEmmanuel Vadot			regulator-min-microvolt = <2800000>;
3178cc087a1SEmmanuel Vadot			regulator-max-microvolt = <2800000>;
3188cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3198cc087a1SEmmanuel Vadot		};
3208cc087a1SEmmanuel Vadot
3218cc087a1SEmmanuel Vadot		vreg_l9a: ldo9 {
322*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l9a";
3238cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1650000>;
3248cc087a1SEmmanuel Vadot			regulator-max-microvolt = <3401000>;
3258cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3268cc087a1SEmmanuel Vadot		};
3278cc087a1SEmmanuel Vadot
3288cc087a1SEmmanuel Vadot		vreg_l11a: ldo11 {
329*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l11a";
3308cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
3318cc087a1SEmmanuel Vadot			regulator-max-microvolt = <2000000>;
3328cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3338cc087a1SEmmanuel Vadot		};
3348cc087a1SEmmanuel Vadot
3358cc087a1SEmmanuel Vadot		vreg_l12a: ldo12 {
336*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l12a";
3378cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1620000>;
3388cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1980000>;
3398cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3408cc087a1SEmmanuel Vadot		};
3418cc087a1SEmmanuel Vadot
3428cc087a1SEmmanuel Vadot		vreg_l13a: ldo13 {
343*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l13a";
3448cc087a1SEmmanuel Vadot			regulator-min-microvolt = <570000>;
3458cc087a1SEmmanuel Vadot			regulator-max-microvolt = <650000>;
3468cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3478cc087a1SEmmanuel Vadot		};
3488cc087a1SEmmanuel Vadot
3498cc087a1SEmmanuel Vadot		vreg_l14a: ldo14 {
350*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l14a";
3518cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1700000>;
3528cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1900000>;
3538cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3548cc087a1SEmmanuel Vadot		};
3558cc087a1SEmmanuel Vadot
3568cc087a1SEmmanuel Vadot		vreg_l15a: ldo15 {
357*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l15a";
3588cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1100000>;
3598cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1305000>;
3608cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3618cc087a1SEmmanuel Vadot		};
3628cc087a1SEmmanuel Vadot
3638cc087a1SEmmanuel Vadot		vreg_l16a: ldo16 {
364*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l16a";
3658cc087a1SEmmanuel Vadot			regulator-min-microvolt = <830000>;
3668cc087a1SEmmanuel Vadot			regulator-max-microvolt = <921000>;
3678cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3688cc087a1SEmmanuel Vadot		};
3698cc087a1SEmmanuel Vadot
3708cc087a1SEmmanuel Vadot		vreg_l18a: ldo18 {
371*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l18a";
3728cc087a1SEmmanuel Vadot			regulator-min-microvolt = <788000>;
3738cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1049000>;
3748cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3758cc087a1SEmmanuel Vadot		};
3768cc087a1SEmmanuel Vadot
3778cc087a1SEmmanuel Vadot		vreg_l19a: ldo19 {
378*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l19a";
3798cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1080000>;
3808cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1305000>;
3818cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3828cc087a1SEmmanuel Vadot		};
3838cc087a1SEmmanuel Vadot
3848cc087a1SEmmanuel Vadot		vreg_l20a: ldo20 {
385*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l20a";
3868cc087a1SEmmanuel Vadot			regulator-min-microvolt = <530000>;
3878cc087a1SEmmanuel Vadot			regulator-max-microvolt = <801000>;
3888cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3898cc087a1SEmmanuel Vadot		};
3908cc087a1SEmmanuel Vadot
3918cc087a1SEmmanuel Vadot		vreg_l21a: ldo21 {
392*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l21a";
3938cc087a1SEmmanuel Vadot			regulator-min-microvolt = <751000>;
3948cc087a1SEmmanuel Vadot			regulator-max-microvolt = <825000>;
3958cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
3968cc087a1SEmmanuel Vadot		};
3978cc087a1SEmmanuel Vadot
3988cc087a1SEmmanuel Vadot		vreg_l22a: ldo22 {
399*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l22a";
4008cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1080000>;
4018cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1305000>;
4028cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4038cc087a1SEmmanuel Vadot		};
4048cc087a1SEmmanuel Vadot	};
4058cc087a1SEmmanuel Vadot
406cb7aa33aSEmmanuel Vadot	regulators-1 {
4078cc087a1SEmmanuel Vadot		compatible = "qcom,pm6150l-rpmh-regulators";
4088cc087a1SEmmanuel Vadot		qcom,pmic-id = "e";
4098cc087a1SEmmanuel Vadot
4108cc087a1SEmmanuel Vadot		vreg_s8e: smps8 {
411*0e8011faSEmmanuel Vadot			regulator-name = "vreg_s8e";
4128cc087a1SEmmanuel Vadot			regulator-min-microvolt = <313000>;
4138cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1395000>;
4148cc087a1SEmmanuel Vadot		};
4158cc087a1SEmmanuel Vadot
4168cc087a1SEmmanuel Vadot		vreg_l1e: ldo1 {
417*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l1e";
4188cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1620000>;
4198cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1980000>;
4208cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4218cc087a1SEmmanuel Vadot		};
4228cc087a1SEmmanuel Vadot
4238cc087a1SEmmanuel Vadot		vreg_l2e: ldo2 {
424*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l2e";
4258cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1170000>;
4268cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1305000>;
4278cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4288cc087a1SEmmanuel Vadot		};
4298cc087a1SEmmanuel Vadot
4308cc087a1SEmmanuel Vadot		vreg_l3e: ldo3 {
431*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l3e";
4328cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1100000>;
4338cc087a1SEmmanuel Vadot			regulator-max-microvolt = <1299000>;
4348cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4358cc087a1SEmmanuel Vadot		};
4368cc087a1SEmmanuel Vadot
4378cc087a1SEmmanuel Vadot		vreg_l4e: ldo4 {
438*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l4e";
4398cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1620000>;
4408cc087a1SEmmanuel Vadot			regulator-max-microvolt = <3300000>;
4418cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4428cc087a1SEmmanuel Vadot		};
4438cc087a1SEmmanuel Vadot
4448cc087a1SEmmanuel Vadot		vreg_l5e: ldo5 {
445*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l5e";
4468cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1620000>;
4478cc087a1SEmmanuel Vadot			regulator-max-microvolt = <3300000>;
4488cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4498cc087a1SEmmanuel Vadot		};
4508cc087a1SEmmanuel Vadot
4518cc087a1SEmmanuel Vadot		vreg_l6e: ldo6 {
452*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l6e";
4538cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1700000>;
4548bab661aSEmmanuel Vadot			regulator-max-microvolt = <2950000>;
4558cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4568bab661aSEmmanuel Vadot			regulator-allow-set-load;
4578bab661aSEmmanuel Vadot			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
4588bab661aSEmmanuel Vadot						   RPMH_REGULATOR_MODE_HPM>;
4598cc087a1SEmmanuel Vadot		};
4608cc087a1SEmmanuel Vadot
4618cc087a1SEmmanuel Vadot		vreg_l7e: ldo7 {
462*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l7e";
4638cc087a1SEmmanuel Vadot			regulator-min-microvolt = <2700000>;
4648cc087a1SEmmanuel Vadot			regulator-max-microvolt = <3544000>;
4658cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4668cc087a1SEmmanuel Vadot		};
4678cc087a1SEmmanuel Vadot
4688cc087a1SEmmanuel Vadot		vreg_l8e: ldo8 {
469*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l8e";
4708cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1620000>;
4718cc087a1SEmmanuel Vadot			regulator-max-microvolt = <2000000>;
4728cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4738cc087a1SEmmanuel Vadot		};
4748cc087a1SEmmanuel Vadot
4758cc087a1SEmmanuel Vadot		vreg_l9e: ldo9 {
476*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l9e";
4778cc087a1SEmmanuel Vadot			regulator-min-microvolt = <2700000>;
4788bab661aSEmmanuel Vadot			regulator-max-microvolt = <2960000>;
4798cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4808bab661aSEmmanuel Vadot			regulator-allow-set-load;
4818bab661aSEmmanuel Vadot			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
4828bab661aSEmmanuel Vadot						   RPMH_REGULATOR_MODE_HPM>;
4838cc087a1SEmmanuel Vadot		};
4848cc087a1SEmmanuel Vadot
4858cc087a1SEmmanuel Vadot		vreg_l10e: ldo10 {
486*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l10e";
4878cc087a1SEmmanuel Vadot			regulator-min-microvolt = <3000000>;
4888cc087a1SEmmanuel Vadot			regulator-max-microvolt = <3401000>;
4898cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4908cc087a1SEmmanuel Vadot		};
4918cc087a1SEmmanuel Vadot
4928cc087a1SEmmanuel Vadot		vreg_l11e: ldo11 {
493*0e8011faSEmmanuel Vadot			regulator-name = "vreg_l11e";
4948cc087a1SEmmanuel Vadot			regulator-min-microvolt = <3000000>;
4958cc087a1SEmmanuel Vadot			regulator-max-microvolt = <3401000>;
4968cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4978cc087a1SEmmanuel Vadot		};
4988cc087a1SEmmanuel Vadot
4998cc087a1SEmmanuel Vadot		vreg_bob: bob {
500*0e8011faSEmmanuel Vadot			regulator-name = "vreg_bob";
5018cc087a1SEmmanuel Vadot			regulator-min-microvolt = <1620000>;
5028cc087a1SEmmanuel Vadot			regulator-max-microvolt = <5492000>;
5038cc087a1SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
5048cc087a1SEmmanuel Vadot			regulator-allow-bypass;
5058cc087a1SEmmanuel Vadot		};
5068cc087a1SEmmanuel Vadot	};
5078cc087a1SEmmanuel Vadot};
5088cc087a1SEmmanuel Vadot
509cb7aa33aSEmmanuel Vadot&cci0 {
510e67e8565SEmmanuel Vadot	status = "okay";
511cb7aa33aSEmmanuel Vadot};
512cb7aa33aSEmmanuel Vadot
513cb7aa33aSEmmanuel Vadot&cci0_i2c0 {
514cb7aa33aSEmmanuel Vadot	/* IMX582 @ 0x1a */
515cb7aa33aSEmmanuel Vadot};
516cb7aa33aSEmmanuel Vadot
517cb7aa33aSEmmanuel Vadot&cci0_i2c1 {
518cb7aa33aSEmmanuel Vadot	/* IMX582 @ 0x1a */
519cb7aa33aSEmmanuel Vadot};
520cb7aa33aSEmmanuel Vadot
521cb7aa33aSEmmanuel Vadot&cci1 {
522cb7aa33aSEmmanuel Vadot	status = "okay";
523cb7aa33aSEmmanuel Vadot};
524cb7aa33aSEmmanuel Vadot
525cb7aa33aSEmmanuel Vadot&cci1_i2c0 {
526cb7aa33aSEmmanuel Vadot	/* IMX576 @ 0x10 */
527cb7aa33aSEmmanuel Vadot};
528cb7aa33aSEmmanuel Vadot
529cb7aa33aSEmmanuel Vadot&cdsp {
53001950c46SEmmanuel Vadot	firmware-name = "qcom/sm7225/fairphone4/cdsp.mbn";
531cb7aa33aSEmmanuel Vadot	status = "okay";
532cb7aa33aSEmmanuel Vadot};
533cb7aa33aSEmmanuel Vadot
534cb7aa33aSEmmanuel Vadot&gpi_dma0 {
535cb7aa33aSEmmanuel Vadot	status = "okay";
536cb7aa33aSEmmanuel Vadot};
537cb7aa33aSEmmanuel Vadot
538cb7aa33aSEmmanuel Vadot&gpi_dma1 {
539cb7aa33aSEmmanuel Vadot	status = "okay";
540cb7aa33aSEmmanuel Vadot};
541cb7aa33aSEmmanuel Vadot
54201950c46SEmmanuel Vadot&gpu {
54301950c46SEmmanuel Vadot	status = "okay";
54401950c46SEmmanuel Vadot};
54501950c46SEmmanuel Vadot
54601950c46SEmmanuel Vadot&gpu_zap_shader {
54701950c46SEmmanuel Vadot	firmware-name = "qcom/sm7225/fairphone4/a615_zap.mbn";
54801950c46SEmmanuel Vadot};
54901950c46SEmmanuel Vadot
550cb7aa33aSEmmanuel Vadot&i2c0 {
551cb7aa33aSEmmanuel Vadot	clock-frequency = <400000>;
552cb7aa33aSEmmanuel Vadot	status = "okay";
553cb7aa33aSEmmanuel Vadot
554cb7aa33aSEmmanuel Vadot	/* ST21NFCD NFC @ 8 */
555cb7aa33aSEmmanuel Vadot	/* VL53L3 ToF @ 29 */
556cb7aa33aSEmmanuel Vadot	/* AW88264A amplifier @ 34 */
557cb7aa33aSEmmanuel Vadot	/* AW88264A amplifier @ 35 */
558cb7aa33aSEmmanuel Vadot};
559cb7aa33aSEmmanuel Vadot
560cb7aa33aSEmmanuel Vadot&i2c8 {
561cb7aa33aSEmmanuel Vadot	clock-frequency = <400000>;
562cb7aa33aSEmmanuel Vadot	status = "okay";
563cb7aa33aSEmmanuel Vadot
564cb7aa33aSEmmanuel Vadot	/* HX83112A touchscreen @ 48 */
565e67e8565SEmmanuel Vadot};
566e67e8565SEmmanuel Vadot
567d5b0e70fSEmmanuel Vadot&i2c10 {
568*0e8011faSEmmanuel Vadot	clock-frequency = <400000>;
569*0e8011faSEmmanuel Vadot	status = "okay";
570*0e8011faSEmmanuel Vadot
571*0e8011faSEmmanuel Vadot	pm8008: pmic@8 {
572*0e8011faSEmmanuel Vadot		compatible = "qcom,pm8008";
573*0e8011faSEmmanuel Vadot		reg = <0x8>;
574*0e8011faSEmmanuel Vadot
575*0e8011faSEmmanuel Vadot		interrupts-extended = <&tlmm 59 IRQ_TYPE_EDGE_RISING>;
576*0e8011faSEmmanuel Vadot		reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
577*0e8011faSEmmanuel Vadot
578*0e8011faSEmmanuel Vadot		vdd-l1-l2-supply = <&vreg_s8e>;
579*0e8011faSEmmanuel Vadot		vdd-l3-l4-supply = <&vreg_bob>;
580*0e8011faSEmmanuel Vadot		vdd-l5-supply = <&vreg_bob>;
581*0e8011faSEmmanuel Vadot		vdd-l6-supply = <&vreg_s2a>;
582*0e8011faSEmmanuel Vadot		vdd-l7-supply = <&vreg_bob>;
583*0e8011faSEmmanuel Vadot
584*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
585*0e8011faSEmmanuel Vadot		pinctrl-0 = <&pm8008_default>;
586*0e8011faSEmmanuel Vadot
587*0e8011faSEmmanuel Vadot		gpio-controller;
588*0e8011faSEmmanuel Vadot		#gpio-cells = <2>;
589*0e8011faSEmmanuel Vadot		gpio-ranges = <&pm8008 0 0 2>;
590*0e8011faSEmmanuel Vadot
591*0e8011faSEmmanuel Vadot		interrupt-controller;
592*0e8011faSEmmanuel Vadot		#interrupt-cells = <2>;
593*0e8011faSEmmanuel Vadot
594*0e8011faSEmmanuel Vadot		#thermal-sensor-cells = <0>;
595*0e8011faSEmmanuel Vadot
596*0e8011faSEmmanuel Vadot		regulators {
597*0e8011faSEmmanuel Vadot			vreg_l1p: ldo1 {
598*0e8011faSEmmanuel Vadot				regulator-name = "vreg_l1p";
599*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <528000>;
600*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1200000>;
601*0e8011faSEmmanuel Vadot			};
602*0e8011faSEmmanuel Vadot
603*0e8011faSEmmanuel Vadot			vreg_l2p: ldo2 {
604*0e8011faSEmmanuel Vadot				regulator-name = "vreg_l2p";
605*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <528000>;
606*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1200000>;
607*0e8011faSEmmanuel Vadot			};
608*0e8011faSEmmanuel Vadot
609*0e8011faSEmmanuel Vadot			vreg_l3p: ldo3 {
610*0e8011faSEmmanuel Vadot				regulator-name = "vreg_l3p";
611*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
612*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <2800000>;
613*0e8011faSEmmanuel Vadot			};
614*0e8011faSEmmanuel Vadot
615*0e8011faSEmmanuel Vadot			vreg_l4p: ldo4 {
616*0e8011faSEmmanuel Vadot				regulator-name = "vreg_l4p";
617*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
618*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <2904000>;
619*0e8011faSEmmanuel Vadot			};
620*0e8011faSEmmanuel Vadot
621*0e8011faSEmmanuel Vadot			vreg_l5p: ldo5 {
622*0e8011faSEmmanuel Vadot				regulator-name = "vreg_l5p";
623*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
624*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <2900000>;
625*0e8011faSEmmanuel Vadot			};
626*0e8011faSEmmanuel Vadot
627*0e8011faSEmmanuel Vadot			vreg_l6p: ldo6 {
628*0e8011faSEmmanuel Vadot				regulator-name = "vreg_l6p";
629*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
630*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
631*0e8011faSEmmanuel Vadot			};
632*0e8011faSEmmanuel Vadot
633*0e8011faSEmmanuel Vadot			vreg_l7p: ldo7 {
634*0e8011faSEmmanuel Vadot				regulator-name = "vreg_l7p";
635*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
636*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <3140000>;
637*0e8011faSEmmanuel Vadot			};
638*0e8011faSEmmanuel Vadot		};
639*0e8011faSEmmanuel Vadot	};
640*0e8011faSEmmanuel Vadot
641cb7aa33aSEmmanuel Vadot	/* PX8618 @ 26 */
642cb7aa33aSEmmanuel Vadot	/* SMB1395 PMIC @ 34 */
64384943d6fSEmmanuel Vadot	/* awinic,aw8695 @ 5a */
644d5b0e70fSEmmanuel Vadot};
645d5b0e70fSEmmanuel Vadot
646cb7aa33aSEmmanuel Vadot&ipa {
647cb7aa33aSEmmanuel Vadot	qcom,gsi-loader = "self";
648cb7aa33aSEmmanuel Vadot	memory-region = <&pil_ipa_fw_mem>;
64901950c46SEmmanuel Vadot	firmware-name = "qcom/sm7225/fairphone4/ipa_fws.mbn";
65001950c46SEmmanuel Vadot	status = "okay";
65101950c46SEmmanuel Vadot};
65201950c46SEmmanuel Vadot
65301950c46SEmmanuel Vadot&mdss {
65401950c46SEmmanuel Vadot	status = "okay";
65501950c46SEmmanuel Vadot};
65601950c46SEmmanuel Vadot
65701950c46SEmmanuel Vadot&mdss_dsi0 {
65801950c46SEmmanuel Vadot	vdda-supply = <&vreg_l22a>;
65901950c46SEmmanuel Vadot	status = "okay";
66001950c46SEmmanuel Vadot
66101950c46SEmmanuel Vadot	panel@0 {
66201950c46SEmmanuel Vadot		compatible = "djn,9a-3r063-1102b";
66301950c46SEmmanuel Vadot		reg = <0>;
66401950c46SEmmanuel Vadot
66501950c46SEmmanuel Vadot		backlight = <&pm6150l_wled>;
66601950c46SEmmanuel Vadot		reset-gpios = <&pm6150l_gpios 9 GPIO_ACTIVE_LOW>;
66701950c46SEmmanuel Vadot
66801950c46SEmmanuel Vadot		vdd1-supply = <&vreg_l1e>;
66901950c46SEmmanuel Vadot		vsn-supply = <&lcdb_dummy>;
67001950c46SEmmanuel Vadot		vsp-supply = <&lcdb_dummy>;
67101950c46SEmmanuel Vadot
67201950c46SEmmanuel Vadot		port {
67301950c46SEmmanuel Vadot			panel_in: endpoint {
67401950c46SEmmanuel Vadot				remote-endpoint = <&mdss_dsi0_out>;
67501950c46SEmmanuel Vadot			};
67601950c46SEmmanuel Vadot		};
67701950c46SEmmanuel Vadot	};
67801950c46SEmmanuel Vadot};
67901950c46SEmmanuel Vadot
68001950c46SEmmanuel Vadot&mdss_dsi0_out {
68101950c46SEmmanuel Vadot	data-lanes = <0 1 2 3>;
68201950c46SEmmanuel Vadot	remote-endpoint = <&panel_in>;
68301950c46SEmmanuel Vadot};
68401950c46SEmmanuel Vadot
68501950c46SEmmanuel Vadot&mdss_dsi0_phy {
68601950c46SEmmanuel Vadot	vdds-supply = <&vreg_l18a>;
687e67e8565SEmmanuel Vadot	status = "okay";
688cb7aa33aSEmmanuel Vadot};
689cb7aa33aSEmmanuel Vadot
690cb7aa33aSEmmanuel Vadot&mpss {
69101950c46SEmmanuel Vadot	firmware-name = "qcom/sm7225/fairphone4/modem.mbn";
692cb7aa33aSEmmanuel Vadot	status = "okay";
693cb7aa33aSEmmanuel Vadot};
694cb7aa33aSEmmanuel Vadot
695*0e8011faSEmmanuel Vadot&pm6150l_adc {
696*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pm6150l_adc_default>;
697*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
698*0e8011faSEmmanuel Vadot
699*0e8011faSEmmanuel Vadot	channel@4d {
700*0e8011faSEmmanuel Vadot		reg = <ADC5_AMUX_THM1_100K_PU>;
701*0e8011faSEmmanuel Vadot		label = "pa_therm1";
702*0e8011faSEmmanuel Vadot		qcom,hw-settle-time = <200>;
703*0e8011faSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
704*0e8011faSEmmanuel Vadot		qcom,ratiometric;
705*0e8011faSEmmanuel Vadot	};
706*0e8011faSEmmanuel Vadot
707*0e8011faSEmmanuel Vadot	channel@4e {
708*0e8011faSEmmanuel Vadot		reg = <ADC5_AMUX_THM2_100K_PU>;
709*0e8011faSEmmanuel Vadot		label = "msm_therm";
710*0e8011faSEmmanuel Vadot		qcom,hw-settle-time = <200>;
711*0e8011faSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
712*0e8011faSEmmanuel Vadot		qcom,ratiometric;
713*0e8011faSEmmanuel Vadot	};
714*0e8011faSEmmanuel Vadot
715*0e8011faSEmmanuel Vadot	channel@4f {
716*0e8011faSEmmanuel Vadot		reg = <ADC5_AMUX_THM3_100K_PU>;
717*0e8011faSEmmanuel Vadot		label = "pa_therm0";
718*0e8011faSEmmanuel Vadot		qcom,hw-settle-time = <200>;
719*0e8011faSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
720*0e8011faSEmmanuel Vadot		qcom,ratiometric;
721*0e8011faSEmmanuel Vadot	};
722*0e8011faSEmmanuel Vadot
723*0e8011faSEmmanuel Vadot	channel@53 {
724*0e8011faSEmmanuel Vadot		reg = <ADC5_GPIO2_100K_PU>;
725*0e8011faSEmmanuel Vadot		label = "rear_cam_therm";
726*0e8011faSEmmanuel Vadot		qcom,hw-settle-time = <200>;
727*0e8011faSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
728*0e8011faSEmmanuel Vadot		qcom,ratiometric;
729*0e8011faSEmmanuel Vadot	};
730*0e8011faSEmmanuel Vadot
731*0e8011faSEmmanuel Vadot	channel@54 {
732*0e8011faSEmmanuel Vadot		reg = <ADC5_GPIO3_100K_PU>;
733*0e8011faSEmmanuel Vadot		label = "rear_cam_flash_therm";
734*0e8011faSEmmanuel Vadot		qcom,hw-settle-time = <200>;
735*0e8011faSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
736*0e8011faSEmmanuel Vadot		qcom,ratiometric;
737*0e8011faSEmmanuel Vadot	};
738*0e8011faSEmmanuel Vadot
739*0e8011faSEmmanuel Vadot	channel@55 {
740*0e8011faSEmmanuel Vadot		reg = <ADC5_GPIO4_100K_PU>;
741*0e8011faSEmmanuel Vadot		label = "quiet_therm";
742*0e8011faSEmmanuel Vadot		qcom,hw-settle-time = <200>;
743*0e8011faSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
744*0e8011faSEmmanuel Vadot		qcom,ratiometric;
745*0e8011faSEmmanuel Vadot	};
746*0e8011faSEmmanuel Vadot};
747*0e8011faSEmmanuel Vadot
748*0e8011faSEmmanuel Vadot&pm6150l_adc_tm {
749*0e8011faSEmmanuel Vadot	status = "okay";
750*0e8011faSEmmanuel Vadot
751*0e8011faSEmmanuel Vadot	pa-therm1@0 {
752*0e8011faSEmmanuel Vadot		reg = <0>;
753*0e8011faSEmmanuel Vadot		io-channels = <&pm6150l_adc ADC5_AMUX_THM1_100K_PU>;
754*0e8011faSEmmanuel Vadot		qcom,hw-settle-time-us = <200>;
755*0e8011faSEmmanuel Vadot		qcom,ratiometric;
756*0e8011faSEmmanuel Vadot	};
757*0e8011faSEmmanuel Vadot
758*0e8011faSEmmanuel Vadot	pa-therm0@1 {
759*0e8011faSEmmanuel Vadot		reg = <1>;
760*0e8011faSEmmanuel Vadot		io-channels = <&pm6150l_adc ADC5_AMUX_THM3_100K_PU>;
761*0e8011faSEmmanuel Vadot		qcom,hw-settle-time-us = <200>;
762*0e8011faSEmmanuel Vadot		qcom,ratiometric;
763*0e8011faSEmmanuel Vadot	};
764*0e8011faSEmmanuel Vadot
765*0e8011faSEmmanuel Vadot	rear-cam-flash-therm@2 {
766*0e8011faSEmmanuel Vadot		reg = <2>;
767*0e8011faSEmmanuel Vadot		io-channels = <&pm6150l_adc ADC5_GPIO3_100K_PU>;
768*0e8011faSEmmanuel Vadot		qcom,hw-settle-time-us = <200>;
769*0e8011faSEmmanuel Vadot		qcom,ratiometric;
770*0e8011faSEmmanuel Vadot	};
771*0e8011faSEmmanuel Vadot
772*0e8011faSEmmanuel Vadot	quiet-therm@3 {
773*0e8011faSEmmanuel Vadot		reg = <3>;
774*0e8011faSEmmanuel Vadot		io-channels = <&pm6150l_adc ADC5_GPIO4_100K_PU>;
775*0e8011faSEmmanuel Vadot		qcom,hw-settle-time-us = <200>;
776*0e8011faSEmmanuel Vadot		qcom,ratiometric;
777*0e8011faSEmmanuel Vadot	};
778*0e8011faSEmmanuel Vadot};
779*0e8011faSEmmanuel Vadot
780cb7aa33aSEmmanuel Vadot&pm6150l_flash {
781cb7aa33aSEmmanuel Vadot	status = "okay";
782cb7aa33aSEmmanuel Vadot
783cb7aa33aSEmmanuel Vadot	led-0 {
784cb7aa33aSEmmanuel Vadot		function = LED_FUNCTION_FLASH;
785cb7aa33aSEmmanuel Vadot		color = <LED_COLOR_ID_YELLOW>;
786cb7aa33aSEmmanuel Vadot		led-sources = <1>;
787cb7aa33aSEmmanuel Vadot		led-max-microamp = <180000>;
788cb7aa33aSEmmanuel Vadot		flash-max-microamp = <1000000>;
789cb7aa33aSEmmanuel Vadot		flash-max-timeout-us = <1280000>;
790cb7aa33aSEmmanuel Vadot	};
791cb7aa33aSEmmanuel Vadot
792cb7aa33aSEmmanuel Vadot	led-1 {
793cb7aa33aSEmmanuel Vadot		function = LED_FUNCTION_FLASH;
794cb7aa33aSEmmanuel Vadot		color = <LED_COLOR_ID_WHITE>;
795cb7aa33aSEmmanuel Vadot		led-sources = <2>;
796cb7aa33aSEmmanuel Vadot		led-max-microamp = <180000>;
797cb7aa33aSEmmanuel Vadot		flash-max-microamp = <1000000>;
798cb7aa33aSEmmanuel Vadot		flash-max-timeout-us = <1280000>;
799cb7aa33aSEmmanuel Vadot	};
800e67e8565SEmmanuel Vadot};
801e67e8565SEmmanuel Vadot
802*0e8011faSEmmanuel Vadot&pm6150l_gpios {
803*0e8011faSEmmanuel Vadot	pm6150l_adc_default: adc-default-state {
804*0e8011faSEmmanuel Vadot		pins = "gpio6", "gpio7", "gpio10";
805*0e8011faSEmmanuel Vadot		function = PMIC_GPIO_FUNC_NORMAL;
806*0e8011faSEmmanuel Vadot		bias-high-impedance;
807*0e8011faSEmmanuel Vadot	};
808*0e8011faSEmmanuel Vadot};
809*0e8011faSEmmanuel Vadot
810c9ccf3a3SEmmanuel Vadot&pm6150l_wled {
811c9ccf3a3SEmmanuel Vadot	qcom,switching-freq = <800>;
812c9ccf3a3SEmmanuel Vadot	qcom,current-limit-microamp = <20000>;
813c9ccf3a3SEmmanuel Vadot	qcom,num-strings = <2>;
814cb7aa33aSEmmanuel Vadot
815cb7aa33aSEmmanuel Vadot	status = "okay";
816c9ccf3a3SEmmanuel Vadot};
817c9ccf3a3SEmmanuel Vadot
8188cc087a1SEmmanuel Vadot&pm6350_gpios {
819b97ee269SEmmanuel Vadot	gpio_keys_pin: gpio-keys-state {
8208cc087a1SEmmanuel Vadot		pins = "gpio2";
8218cc087a1SEmmanuel Vadot		function = PMIC_GPIO_FUNC_NORMAL;
8228cc087a1SEmmanuel Vadot		bias-pull-up;
8238cc087a1SEmmanuel Vadot		input-enable;
8248cc087a1SEmmanuel Vadot		power-source = <0>;
8258cc087a1SEmmanuel Vadot	};
8268cc087a1SEmmanuel Vadot};
8278cc087a1SEmmanuel Vadot
8288cc087a1SEmmanuel Vadot&pm6350_resin {
8298cc087a1SEmmanuel Vadot	linux,code = <KEY_VOLUMEDOWN>;
830cb7aa33aSEmmanuel Vadot	status = "okay";
8318cc087a1SEmmanuel Vadot};
8328cc087a1SEmmanuel Vadot
8337ef62cebSEmmanuel Vadot&pm7250b_adc {
834aa1a8ff2SEmmanuel Vadot	channel@4d {
8357ef62cebSEmmanuel Vadot		reg = <ADC5_AMUX_THM1_100K_PU>;
8367ef62cebSEmmanuel Vadot		qcom,ratiometric;
8377ef62cebSEmmanuel Vadot		qcom,hw-settle-time = <200>;
8387ef62cebSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
8397ef62cebSEmmanuel Vadot		label = "charger_skin_therm";
8407ef62cebSEmmanuel Vadot	};
8417ef62cebSEmmanuel Vadot
842aa1a8ff2SEmmanuel Vadot	channel@4f {
8437ef62cebSEmmanuel Vadot		reg = <ADC5_AMUX_THM3_100K_PU>;
8447ef62cebSEmmanuel Vadot		qcom,ratiometric;
8457ef62cebSEmmanuel Vadot		qcom,hw-settle-time = <200>;
8467ef62cebSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
8477ef62cebSEmmanuel Vadot		label = "conn_therm";
8487ef62cebSEmmanuel Vadot	};
8497ef62cebSEmmanuel Vadot};
8507ef62cebSEmmanuel Vadot
8517ef62cebSEmmanuel Vadot&pm7250b_adc_tm {
8527ef62cebSEmmanuel Vadot	status = "okay";
8537ef62cebSEmmanuel Vadot
8547ef62cebSEmmanuel Vadot	charger-skin-therm@0 {
8557ef62cebSEmmanuel Vadot		reg = <0>;
8567ef62cebSEmmanuel Vadot		io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
8577ef62cebSEmmanuel Vadot		qcom,ratiometric;
8587ef62cebSEmmanuel Vadot		qcom,hw-settle-time-us = <200>;
8597ef62cebSEmmanuel Vadot	};
8607ef62cebSEmmanuel Vadot
8617ef62cebSEmmanuel Vadot	conn-therm@1 {
8627ef62cebSEmmanuel Vadot		reg = <1>;
8637ef62cebSEmmanuel Vadot		io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
8647ef62cebSEmmanuel Vadot		qcom,ratiometric;
8657ef62cebSEmmanuel Vadot		qcom,hw-settle-time-us = <200>;
8667ef62cebSEmmanuel Vadot	};
8677ef62cebSEmmanuel Vadot};
8687ef62cebSEmmanuel Vadot
869*0e8011faSEmmanuel Vadot&pm7250b_typec {
870*0e8011faSEmmanuel Vadot	vdd-pdphy-supply = <&vreg_l3a>;
871*0e8011faSEmmanuel Vadot
872*0e8011faSEmmanuel Vadot	status = "okay";
873*0e8011faSEmmanuel Vadot
874*0e8011faSEmmanuel Vadot	connector {
875*0e8011faSEmmanuel Vadot		compatible = "usb-c-connector";
876*0e8011faSEmmanuel Vadot
877*0e8011faSEmmanuel Vadot		power-role = "dual";
878*0e8011faSEmmanuel Vadot		data-role = "dual";
879*0e8011faSEmmanuel Vadot		self-powered;
880*0e8011faSEmmanuel Vadot
881*0e8011faSEmmanuel Vadot		/*
882*0e8011faSEmmanuel Vadot		 * Disable USB Power Delivery for now, seems to need extra work
883*0e8011faSEmmanuel Vadot		 * to support role switching while also letting the battery
884*0e8011faSEmmanuel Vadot		 * charge still - without charger driver
885*0e8011faSEmmanuel Vadot		 */
886*0e8011faSEmmanuel Vadot		typec-power-opmode = "default";
887*0e8011faSEmmanuel Vadot		pd-disable;
888*0e8011faSEmmanuel Vadot
889*0e8011faSEmmanuel Vadot		ports {
890*0e8011faSEmmanuel Vadot			#address-cells = <1>;
891*0e8011faSEmmanuel Vadot			#size-cells = <0>;
892*0e8011faSEmmanuel Vadot
893*0e8011faSEmmanuel Vadot			port@0 {
894*0e8011faSEmmanuel Vadot				reg = <0>;
895*0e8011faSEmmanuel Vadot				pm7250b_hs_in: endpoint {
896*0e8011faSEmmanuel Vadot					remote-endpoint = <&usb_1_dwc3_hs_out>;
897*0e8011faSEmmanuel Vadot				};
898*0e8011faSEmmanuel Vadot			};
899*0e8011faSEmmanuel Vadot
900*0e8011faSEmmanuel Vadot			port@1 {
901*0e8011faSEmmanuel Vadot				reg = <1>;
902*0e8011faSEmmanuel Vadot				pm7250b_ss_in: endpoint {
903*0e8011faSEmmanuel Vadot					remote-endpoint = <&usb_1_qmpphy_out>;
904*0e8011faSEmmanuel Vadot				};
905*0e8011faSEmmanuel Vadot			};
906*0e8011faSEmmanuel Vadot		};
907*0e8011faSEmmanuel Vadot	};
908*0e8011faSEmmanuel Vadot};
909*0e8011faSEmmanuel Vadot
910*0e8011faSEmmanuel Vadot&pm7250b_vbus {
911*0e8011faSEmmanuel Vadot	regulator-min-microamp = <500000>;
912*0e8011faSEmmanuel Vadot	regulator-max-microamp = <1500000>;
913*0e8011faSEmmanuel Vadot	status = "okay";
914*0e8011faSEmmanuel Vadot};
915*0e8011faSEmmanuel Vadot
916*0e8011faSEmmanuel Vadot&pmk8350_adc_tm {
917*0e8011faSEmmanuel Vadot	status = "okay";
918*0e8011faSEmmanuel Vadot
919*0e8011faSEmmanuel Vadot	xo-therm@0 {
920*0e8011faSEmmanuel Vadot		reg = <0>;
921*0e8011faSEmmanuel Vadot		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
922*0e8011faSEmmanuel Vadot		qcom,hw-settle-time-us = <200>;
923*0e8011faSEmmanuel Vadot		qcom,ratiometric;
924*0e8011faSEmmanuel Vadot	};
925*0e8011faSEmmanuel Vadot};
926*0e8011faSEmmanuel Vadot
927cb7aa33aSEmmanuel Vadot&pmk8350_rtc {
928cb7aa33aSEmmanuel Vadot	status = "okay";
929cb7aa33aSEmmanuel Vadot};
930cb7aa33aSEmmanuel Vadot
931cb7aa33aSEmmanuel Vadot&pmk8350_vadc {
932aa1a8ff2SEmmanuel Vadot	channel@644 {
933cb7aa33aSEmmanuel Vadot		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
934cb7aa33aSEmmanuel Vadot		qcom,ratiometric;
935cb7aa33aSEmmanuel Vadot		qcom,hw-settle-time = <200>;
936cb7aa33aSEmmanuel Vadot		qcom,pre-scaling = <1 1>;
937cb7aa33aSEmmanuel Vadot		label = "xo_therm";
938cb7aa33aSEmmanuel Vadot	};
939cb7aa33aSEmmanuel Vadot};
940cb7aa33aSEmmanuel Vadot
941f126890aSEmmanuel Vadot&qup_uart1_cts {
942f126890aSEmmanuel Vadot	/*
943f126890aSEmmanuel Vadot	 * Configure a bias-bus-hold on CTS to lower power
944f126890aSEmmanuel Vadot	 * usage when Bluetooth is turned off. Bus hold will
945f126890aSEmmanuel Vadot	 * maintain a low power state regardless of whether
946f126890aSEmmanuel Vadot	 * the Bluetooth module drives the pin in either
947f126890aSEmmanuel Vadot	 * direction or leaves the pin fully unpowered.
948f126890aSEmmanuel Vadot	 */
949f126890aSEmmanuel Vadot	bias-bus-hold;
950f126890aSEmmanuel Vadot};
951f126890aSEmmanuel Vadot
952f126890aSEmmanuel Vadot&qup_uart1_rts {
953f126890aSEmmanuel Vadot	/* We'll drive RTS, so no pull */
954f126890aSEmmanuel Vadot	drive-strength = <2>;
955f126890aSEmmanuel Vadot	bias-disable;
956f126890aSEmmanuel Vadot};
957f126890aSEmmanuel Vadot
958f126890aSEmmanuel Vadot&qup_uart1_rx {
959f126890aSEmmanuel Vadot	/*
960f126890aSEmmanuel Vadot	 * Configure a pull-up on RX. This is needed to avoid
961f126890aSEmmanuel Vadot	 * garbage data when the TX pin of the Bluetooth module is
962f126890aSEmmanuel Vadot	 * in tri-state (module powered off or not driving the
963f126890aSEmmanuel Vadot	 * signal yet).
964f126890aSEmmanuel Vadot	 */
965f126890aSEmmanuel Vadot	bias-pull-up;
966f126890aSEmmanuel Vadot};
967f126890aSEmmanuel Vadot
968f126890aSEmmanuel Vadot&qup_uart1_tx {
969f126890aSEmmanuel Vadot	/* We'll drive TX, so no pull */
970f126890aSEmmanuel Vadot	drive-strength = <2>;
971f126890aSEmmanuel Vadot	bias-disable;
972f126890aSEmmanuel Vadot};
973f126890aSEmmanuel Vadot
974cb7aa33aSEmmanuel Vadot&qupv3_id_0 {
975cb7aa33aSEmmanuel Vadot	status = "okay";
976cb7aa33aSEmmanuel Vadot};
977cb7aa33aSEmmanuel Vadot
9788cc087a1SEmmanuel Vadot&qupv3_id_1 {
9798cc087a1SEmmanuel Vadot	status = "okay";
9808cc087a1SEmmanuel Vadot};
9818cc087a1SEmmanuel Vadot
9828bab661aSEmmanuel Vadot&sdc2_off_state {
9838bab661aSEmmanuel Vadot	sd-cd-pins {
9848bab661aSEmmanuel Vadot		pins = "gpio94";
9858bab661aSEmmanuel Vadot		function = "gpio";
9868bab661aSEmmanuel Vadot		drive-strength = <2>;
9878bab661aSEmmanuel Vadot		bias-disable;
9888bab661aSEmmanuel Vadot	};
9898bab661aSEmmanuel Vadot};
9908bab661aSEmmanuel Vadot
9918bab661aSEmmanuel Vadot&sdc2_on_state {
9928bab661aSEmmanuel Vadot	sd-cd-pins {
9938bab661aSEmmanuel Vadot		pins = "gpio94";
9948bab661aSEmmanuel Vadot		function = "gpio";
9958bab661aSEmmanuel Vadot		drive-strength = <2>;
9968bab661aSEmmanuel Vadot		bias-pull-up;
9978bab661aSEmmanuel Vadot	};
9988bab661aSEmmanuel Vadot};
9998bab661aSEmmanuel Vadot
10008bab661aSEmmanuel Vadot&sdhc_2 {
10018bab661aSEmmanuel Vadot	vmmc-supply = <&vreg_l9e>;
10028bab661aSEmmanuel Vadot	vqmmc-supply = <&vreg_l6e>;
10038bab661aSEmmanuel Vadot
10048bab661aSEmmanuel Vadot	cd-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
10058bab661aSEmmanuel Vadot
10068bab661aSEmmanuel Vadot	status = "okay";
10078bab661aSEmmanuel Vadot};
10088bab661aSEmmanuel Vadot
10098cc087a1SEmmanuel Vadot&tlmm {
10108cc087a1SEmmanuel Vadot	gpio-reserved-ranges = <13 4>, <56 2>;
1011f126890aSEmmanuel Vadot
1012f126890aSEmmanuel Vadot	qup_uart1_sleep_cts: qup-uart1-sleep-cts-state {
1013f126890aSEmmanuel Vadot		pins = "gpio61";
1014f126890aSEmmanuel Vadot		function = "gpio";
1015f126890aSEmmanuel Vadot		/*
1016f126890aSEmmanuel Vadot		 * Configure a bias-bus-hold on CTS to lower power
1017f126890aSEmmanuel Vadot		 * usage when Bluetooth is turned off. Bus hold will
1018f126890aSEmmanuel Vadot		 * maintain a low power state regardless of whether
1019f126890aSEmmanuel Vadot		 * the Bluetooth module drives the pin in either
1020f126890aSEmmanuel Vadot		 * direction or leaves the pin fully unpowered.
1021f126890aSEmmanuel Vadot		 */
1022f126890aSEmmanuel Vadot		bias-bus-hold;
1023f126890aSEmmanuel Vadot	};
1024f126890aSEmmanuel Vadot
1025f126890aSEmmanuel Vadot	qup_uart1_sleep_rts: qup-uart1-sleep-rts-state {
1026f126890aSEmmanuel Vadot		pins = "gpio62";
1027f126890aSEmmanuel Vadot		function = "gpio";
1028f126890aSEmmanuel Vadot		/*
1029f126890aSEmmanuel Vadot		 * Configure pull-down on RTS. As RTS is active low
1030f126890aSEmmanuel Vadot		 * signal, pull it low to indicate the BT SoC that it
1031f126890aSEmmanuel Vadot		 * can wakeup the system anytime from suspend state by
1032f126890aSEmmanuel Vadot		 * pulling RX low (by sending wakeup bytes).
1033f126890aSEmmanuel Vadot		 */
1034f126890aSEmmanuel Vadot		bias-pull-down;
1035f126890aSEmmanuel Vadot	};
1036f126890aSEmmanuel Vadot
1037f126890aSEmmanuel Vadot	qup_uart1_sleep_rx: qup-uart1-sleep-rx-state {
1038f126890aSEmmanuel Vadot		pins = "gpio64";
1039f126890aSEmmanuel Vadot		function = "gpio";
1040f126890aSEmmanuel Vadot		/*
1041f126890aSEmmanuel Vadot		 * Configure a pull-up on RX. This is needed to avoid
1042f126890aSEmmanuel Vadot		 * garbage data when the TX pin of the Bluetooth module
1043f126890aSEmmanuel Vadot		 * is floating which may cause spurious wakeups.
1044f126890aSEmmanuel Vadot		 */
1045f126890aSEmmanuel Vadot		bias-pull-up;
1046f126890aSEmmanuel Vadot	};
1047f126890aSEmmanuel Vadot
1048f126890aSEmmanuel Vadot	qup_uart1_sleep_tx: qup-uart1-sleep-tx-state {
1049f126890aSEmmanuel Vadot		pins = "gpio63";
1050f126890aSEmmanuel Vadot		function = "gpio";
1051f126890aSEmmanuel Vadot		/*
1052f126890aSEmmanuel Vadot		 * Configure pull-up on TX when it isn't actively driven
1053f126890aSEmmanuel Vadot		 * to prevent BT SoC from receiving garbage during sleep.
1054f126890aSEmmanuel Vadot		 */
1055f126890aSEmmanuel Vadot		bias-pull-up;
1056f126890aSEmmanuel Vadot	};
1057*0e8011faSEmmanuel Vadot
1058*0e8011faSEmmanuel Vadot	pm8008_default: pm8008-default-state {
1059*0e8011faSEmmanuel Vadot		int-pins {
1060*0e8011faSEmmanuel Vadot			pins = "gpio59";
1061*0e8011faSEmmanuel Vadot			function = "gpio";
1062*0e8011faSEmmanuel Vadot			drive-strength = <2>;
1063*0e8011faSEmmanuel Vadot			bias-pull-down;
1064*0e8011faSEmmanuel Vadot		};
1065*0e8011faSEmmanuel Vadot
1066*0e8011faSEmmanuel Vadot		reset-n-pins {
1067*0e8011faSEmmanuel Vadot			pins = "gpio58";
1068*0e8011faSEmmanuel Vadot			function = "gpio";
1069*0e8011faSEmmanuel Vadot			drive-strength = <2>;
1070*0e8011faSEmmanuel Vadot			bias-disable;
1071*0e8011faSEmmanuel Vadot		};
1072*0e8011faSEmmanuel Vadot	};
1073f126890aSEmmanuel Vadot};
1074f126890aSEmmanuel Vadot
1075f126890aSEmmanuel Vadot&uart1 {
1076f126890aSEmmanuel Vadot	/delete-property/ interrupts;
1077f126890aSEmmanuel Vadot	interrupts-extended = <&intc GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
1078f126890aSEmmanuel Vadot			      <&tlmm 64 IRQ_TYPE_EDGE_FALLING>;
1079f126890aSEmmanuel Vadot
1080f126890aSEmmanuel Vadot	pinctrl-names = "default", "sleep";
1081f126890aSEmmanuel Vadot	pinctrl-1 = <&qup_uart1_sleep_cts>, <&qup_uart1_sleep_rts>, <&qup_uart1_sleep_tx>, <&qup_uart1_sleep_rx>;
1082f126890aSEmmanuel Vadot
1083f126890aSEmmanuel Vadot	status = "okay";
1084f126890aSEmmanuel Vadot
1085f126890aSEmmanuel Vadot	bluetooth {
1086f126890aSEmmanuel Vadot		compatible = "qcom,wcn3988-bt";
1087f126890aSEmmanuel Vadot
1088f126890aSEmmanuel Vadot		vddio-supply = <&vreg_l11a>;
1089f126890aSEmmanuel Vadot		vddxo-supply = <&vreg_l7a>;
1090f126890aSEmmanuel Vadot		vddrf-supply = <&vreg_l2e>;
1091f126890aSEmmanuel Vadot		vddch0-supply = <&vreg_l10e>;
1092f126890aSEmmanuel Vadot		swctrl-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>;
1093f126890aSEmmanuel Vadot
1094f126890aSEmmanuel Vadot		max-speed = <3200000>;
1095f126890aSEmmanuel Vadot	};
10968cc087a1SEmmanuel Vadot};
10978cc087a1SEmmanuel Vadot
1098d5b0e70fSEmmanuel Vadot&uart9 {
10998cc087a1SEmmanuel Vadot	status = "okay";
11008cc087a1SEmmanuel Vadot};
11018cc087a1SEmmanuel Vadot
1102d5b0e70fSEmmanuel Vadot&ufs_mem_hc {
1103d5b0e70fSEmmanuel Vadot	reset-gpios = <&tlmm 156 GPIO_ACTIVE_LOW>;
1104d5b0e70fSEmmanuel Vadot
1105d5b0e70fSEmmanuel Vadot	vcc-supply = <&vreg_l7e>;
1106d5b0e70fSEmmanuel Vadot	vcc-max-microamp = <800000>;
1107d5b0e70fSEmmanuel Vadot	vccq2-supply = <&vreg_l12a>;
1108d5b0e70fSEmmanuel Vadot	vccq2-max-microamp = <800000>;
1109cb7aa33aSEmmanuel Vadot
1110cb7aa33aSEmmanuel Vadot	status = "okay";
1111d5b0e70fSEmmanuel Vadot};
1112d5b0e70fSEmmanuel Vadot
1113d5b0e70fSEmmanuel Vadot&ufs_mem_phy {
1114d5b0e70fSEmmanuel Vadot	vdda-phy-supply = <&vreg_l18a>;
1115d5b0e70fSEmmanuel Vadot	vdda-pll-supply = <&vreg_l22a>;
1116cb7aa33aSEmmanuel Vadot
1117cb7aa33aSEmmanuel Vadot	status = "okay";
1118d5b0e70fSEmmanuel Vadot};
1119d5b0e70fSEmmanuel Vadot
11208cc087a1SEmmanuel Vadot&usb_1 {
11218cc087a1SEmmanuel Vadot	status = "okay";
11228cc087a1SEmmanuel Vadot};
11238cc087a1SEmmanuel Vadot
11248cc087a1SEmmanuel Vadot&usb_1_dwc3 {
11258cc087a1SEmmanuel Vadot	maximum-speed = "super-speed";
1126*0e8011faSEmmanuel Vadot	dr_mode = "otg";
1127*0e8011faSEmmanuel Vadot};
1128*0e8011faSEmmanuel Vadot
1129*0e8011faSEmmanuel Vadot&usb_1_dwc3_hs_out {
1130*0e8011faSEmmanuel Vadot	remote-endpoint = <&pm7250b_hs_in>;
11318cc087a1SEmmanuel Vadot};
11328cc087a1SEmmanuel Vadot
11338cc087a1SEmmanuel Vadot&usb_1_hsphy {
11348cc087a1SEmmanuel Vadot	vdd-supply = <&vreg_l18a>;
11358cc087a1SEmmanuel Vadot	vdda-pll-supply = <&vreg_l2a>;
11368cc087a1SEmmanuel Vadot	vdda-phy-dpdm-supply = <&vreg_l3a>;
1137cb7aa33aSEmmanuel Vadot
1138cb7aa33aSEmmanuel Vadot	status = "okay";
11398cc087a1SEmmanuel Vadot};
11408cc087a1SEmmanuel Vadot
11418cc087a1SEmmanuel Vadot&usb_1_qmpphy {
11428cc087a1SEmmanuel Vadot	vdda-phy-supply = <&vreg_l22a>;
11438cc087a1SEmmanuel Vadot	vdda-pll-supply = <&vreg_l16a>;
1144cb7aa33aSEmmanuel Vadot
1145cb7aa33aSEmmanuel Vadot	status = "okay";
11468cc087a1SEmmanuel Vadot};
1147d5b0e70fSEmmanuel Vadot
1148*0e8011faSEmmanuel Vadot&usb_1_qmpphy_out {
1149*0e8011faSEmmanuel Vadot	remote-endpoint = <&pm7250b_ss_in>;
1150*0e8011faSEmmanuel Vadot};
1151*0e8011faSEmmanuel Vadot
1152d5b0e70fSEmmanuel Vadot&wifi {
1153d5b0e70fSEmmanuel Vadot	vdd-0.8-cx-mx-supply = <&vreg_l4a>;
1154d5b0e70fSEmmanuel Vadot	vdd-1.8-xo-supply = <&vreg_l7a>;
1155d5b0e70fSEmmanuel Vadot	vdd-1.3-rfa-supply = <&vreg_l2e>;
1156d5b0e70fSEmmanuel Vadot	vdd-3.3-ch0-supply = <&vreg_l10e>;
1157d5b0e70fSEmmanuel Vadot	vdd-3.3-ch1-supply = <&vreg_l11e>;
1158cb7aa33aSEmmanuel Vadot
1159cb7aa33aSEmmanuel Vadot	status = "okay";
1160d5b0e70fSEmmanuel Vadot};
1161