xref: /openbmc/linux/scripts/dtc/include-prefixes/arm64/qcom/sc7180-trogdor.dtsi (revision 060f35a317ef09101b128f399dce7ed13d019461)
17ec3e673SRob Clark// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
27ec3e673SRob Clark/*
37ec3e673SRob Clark * Google Trogdor device tree source (common between revisions)
47ec3e673SRob Clark *
57ec3e673SRob Clark * Copyright 2019 Google LLC.
67ec3e673SRob Clark */
77ec3e673SRob Clark
87ec3e673SRob Clark#include <dt-bindings/gpio/gpio.h>
95643caa8SStephen Boyd#include <dt-bindings/input/gpio-keys.h>
107ec3e673SRob Clark#include <dt-bindings/input/input.h>
1109143dd2SKrzysztof Kozlowski#include <dt-bindings/leds/common.h>
127ec3e673SRob Clark#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
1329bd62eeSAjit Pandey#include <dt-bindings/sound/sc7180-lpass.h>
147ec3e673SRob Clark
1519794489SStephen Boyd#include "sc7180.dtsi"
164fb40b22SNikita Travkin#include "sc7180-firmware-tfa.dtsi"
1719794489SStephen Boyd/* PMICs depend on spmi_bus label and so must come after sc7180.dtsi */
187ec3e673SRob Clark#include "pm6150.dtsi"
197ec3e673SRob Clark#include "pm6150l.dtsi"
207ec3e673SRob Clark
21bb06eb36SAntony Wang/ {
22bb06eb36SAntony Wang	thermal-zones {
23e37584d1SMatthias Kaehlcke		charger_thermal: charger-thermal {
24e4ffe8d5SMatthias Kaehlcke			thermal-sensors = <&pm6150_adc_tm 0>;
25bb06eb36SAntony Wang
26bb06eb36SAntony Wang			trips {
2738f3267dSMatthias Kaehlcke				charger-crit {
28bb06eb36SAntony Wang					temperature = <125000>;
29bb06eb36SAntony Wang					hysteresis = <1000>;
30bb06eb36SAntony Wang					type = "critical";
31bb06eb36SAntony Wang				};
32bb06eb36SAntony Wang			};
33bb06eb36SAntony Wang		};
34bb06eb36SAntony Wang	};
3538f3267dSMatthias Kaehlcke};
36bb06eb36SAntony Wang
377ec3e673SRob Clark/*
387ec3e673SRob Clark * Reserved memory changes
397ec3e673SRob Clark *
407ec3e673SRob Clark * Delete all unused memory nodes and define the peripheral memory regions
417ec3e673SRob Clark * required by the board dts.
427ec3e673SRob Clark */
437ec3e673SRob Clark
447ec3e673SRob Clark/delete-node/ &hyp_mem;
45e6041464SStephen Boyd/delete-node/ &ipa_fw_mem;
467ec3e673SRob Clark/delete-node/ &xbl_mem;
477ec3e673SRob Clark/delete-node/ &aop_mem;
487ec3e673SRob Clark/delete-node/ &sec_apps_mem;
497ec3e673SRob Clark/delete-node/ &tz_mem;
507ec3e673SRob Clark
517ec3e673SRob Clark/* Increase the size from 2MB to 8MB */
527ec3e673SRob Clark&rmtfs_mem {
53f66965b0SSujit Kautkar	reg = <0x0 0x94600000 0x0 0x800000>;
547ec3e673SRob Clark};
557ec3e673SRob Clark
567ec3e673SRob Clark/ {
577ec3e673SRob Clark	reserved-memory {
587ec3e673SRob Clark		atf_mem: memory@80b00000 {
597ec3e673SRob Clark			reg = <0x0 0x80b00000 0x0 0x100000>;
607ec3e673SRob Clark			no-map;
617ec3e673SRob Clark		};
627ec3e673SRob Clark
637ec3e673SRob Clark		mpss_mem: memory@86000000 {
64ef9a5d18SSibi Sankar			reg = <0x0 0x86000000 0x0 0x2000000>;
657ec3e673SRob Clark			no-map;
667ec3e673SRob Clark		};
677ec3e673SRob Clark
687ec3e673SRob Clark		venus_mem: memory@8f600000 {
697ec3e673SRob Clark			reg = <0 0x8f600000 0 0x500000>;
707ec3e673SRob Clark			no-map;
717ec3e673SRob Clark		};
727ec3e673SRob Clark
737ec3e673SRob Clark		wlan_mem: memory@94100000 {
747ec3e673SRob Clark			reg = <0x0 0x94100000 0x0 0x200000>;
757ec3e673SRob Clark			no-map;
767ec3e673SRob Clark		};
777ec3e673SRob Clark
787ec3e673SRob Clark		mba_mem: memory@94400000 {
797ec3e673SRob Clark			reg = <0x0 0x94400000 0x0 0x200000>;
807ec3e673SRob Clark			no-map;
817ec3e673SRob Clark		};
82cb0eaae8SSibi Sankar
83cb0eaae8SSibi Sankar		mdata_mem: mpss-metadata {
84cb0eaae8SSibi Sankar			alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>;
85cb0eaae8SSibi Sankar			size = <0x0 0x4000>;
86cb0eaae8SSibi Sankar			no-map;
87cb0eaae8SSibi Sankar		};
887ec3e673SRob Clark	};
897ec3e673SRob Clark
907ec3e673SRob Clark	aliases {
917ec3e673SRob Clark		bluetooth0 = &bluetooth;
927ec3e673SRob Clark		hsuart0 = &uart3;
937ec3e673SRob Clark		serial0 = &uart8;
947ec3e673SRob Clark		wifi0 = &wifi;
957ec3e673SRob Clark	};
967ec3e673SRob Clark
977ec3e673SRob Clark	chosen {
987ec3e673SRob Clark		stdout-path = "serial0:115200n8";
997ec3e673SRob Clark	};
1007ec3e673SRob Clark
1017ec3e673SRob Clark	/* FIXED REGULATORS - parents above children */
1027ec3e673SRob Clark
1037ec3e673SRob Clark	/* This is the top level supply and variable voltage */
1047ec3e673SRob Clark	ppvar_sys: ppvar-sys-regulator {
1057ec3e673SRob Clark		compatible = "regulator-fixed";
1067ec3e673SRob Clark		regulator-name = "ppvar_sys";
1077ec3e673SRob Clark		regulator-always-on;
1087ec3e673SRob Clark		regulator-boot-on;
1097ec3e673SRob Clark	};
1107ec3e673SRob Clark
1117ec3e673SRob Clark	/* This divides ppvar_sys by 2, so voltage is variable */
1127ec3e673SRob Clark	src_vph_pwr: src-vph-pwr-regulator {
1137ec3e673SRob Clark		compatible = "regulator-fixed";
1147ec3e673SRob Clark		regulator-name = "src_vph_pwr";
1157ec3e673SRob Clark
1167ec3e673SRob Clark		/* EC turns on with switchcap_on; always on for AP */
1177ec3e673SRob Clark		regulator-always-on;
1187ec3e673SRob Clark		regulator-boot-on;
1197ec3e673SRob Clark
1207ec3e673SRob Clark		vin-supply = <&ppvar_sys>;
1217ec3e673SRob Clark	};
1227ec3e673SRob Clark
1237ec3e673SRob Clark	pp5000_a: pp5000-a-regulator {
1247ec3e673SRob Clark		compatible = "regulator-fixed";
1257ec3e673SRob Clark		regulator-name = "pp5000_a";
1267ec3e673SRob Clark
1277ec3e673SRob Clark		/* EC turns on with en_pp5000_a; always on for AP */
1287ec3e673SRob Clark		regulator-always-on;
1297ec3e673SRob Clark		regulator-boot-on;
1307ec3e673SRob Clark		regulator-min-microvolt = <5000000>;
1317ec3e673SRob Clark		regulator-max-microvolt = <5000000>;
1327ec3e673SRob Clark
1337ec3e673SRob Clark		vin-supply = <&ppvar_sys>;
1347ec3e673SRob Clark	};
1357ec3e673SRob Clark
1367ec3e673SRob Clark	pp3300_a: pp3300-a-regulator {
1377ec3e673SRob Clark		compatible = "regulator-fixed";
1387ec3e673SRob Clark		regulator-name = "pp3300_a";
1397ec3e673SRob Clark
1407ec3e673SRob Clark		/* EC turns on with en_pp3300_a; always on for AP */
1417ec3e673SRob Clark		regulator-always-on;
1427ec3e673SRob Clark		regulator-boot-on;
1437ec3e673SRob Clark		regulator-min-microvolt = <3300000>;
1447ec3e673SRob Clark		regulator-max-microvolt = <3300000>;
1457ec3e673SRob Clark
1467ec3e673SRob Clark		/*
1477ec3e673SRob Clark		 * Actually should be pp3300 but that's practically an alias for
1487ec3e673SRob Clark		 * pp3300_a so we use pp3300's vin-supply here to avoid one more
1497ec3e673SRob Clark		 * node.
1507ec3e673SRob Clark		 */
1517ec3e673SRob Clark		vin-supply = <&ppvar_sys>;
1527ec3e673SRob Clark	};
1537ec3e673SRob Clark
154bb59462eSStephen Boyd	pp1800_ec:
155bb59462eSStephen Boyd	pp1800_sensors:
156bb59462eSStephen Boyd	pp1800_ldo: pp1800-ldo-regulator {
157bb59462eSStephen Boyd		compatible = "regulator-fixed";
158bb59462eSStephen Boyd		regulator-name = "pp1800_ldo";
159bb59462eSStephen Boyd
160bb59462eSStephen Boyd		/* EC turns on with hibernate_l; always on for AP */
161bb59462eSStephen Boyd		regulator-always-on;
162bb59462eSStephen Boyd		regulator-boot-on;
163bb59462eSStephen Boyd		regulator-min-microvolt = <1800000>;
164bb59462eSStephen Boyd		regulator-max-microvolt = <1800000>;
165bb59462eSStephen Boyd
166bb59462eSStephen Boyd		/*
167bb59462eSStephen Boyd		 * Actually should be pp1800_h1 but we don't have any need to
168bb59462eSStephen Boyd		 * model that so we use the parent of pp1800_h1.
169bb59462eSStephen Boyd		 */
170bb59462eSStephen Boyd		vin-supply = <&pp3300_a>;
171bb59462eSStephen Boyd	};
172bb59462eSStephen Boyd
173bb59462eSStephen Boyd	pp1800_uf_cam: pp1800-uf-cam-regulator {
174bb59462eSStephen Boyd		compatible = "regulator-fixed";
175bb59462eSStephen Boyd		regulator-name = "pp1800_uf_cam";
176bb59462eSStephen Boyd		status = "disabled";
177bb59462eSStephen Boyd
178bb59462eSStephen Boyd		regulator-min-microvolt = <1800000>;
179bb59462eSStephen Boyd		regulator-max-microvolt = <1800000>;
180bb59462eSStephen Boyd
181bb59462eSStephen Boyd		gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
182bb59462eSStephen Boyd		enable-active-high;
183bb59462eSStephen Boyd		pinctrl-names = "default";
184bb59462eSStephen Boyd		pinctrl-0 = <&uf_cam_en>;
185bb59462eSStephen Boyd
186bb59462eSStephen Boyd		vin-supply = <&pp1800_ldo>;
187bb59462eSStephen Boyd		regulator-enable-ramp-delay = <1000>;
188bb59462eSStephen Boyd	};
189bb59462eSStephen Boyd
190bb59462eSStephen Boyd	pp1800_wf_cam: pp1800-wf-cam-regulator {
191bb59462eSStephen Boyd		compatible = "regulator-fixed";
192bb59462eSStephen Boyd		regulator-name = "pp1800_wf_cam";
193bb59462eSStephen Boyd		status = "disabled";
194bb59462eSStephen Boyd
195bb59462eSStephen Boyd		regulator-min-microvolt = <1800000>;
196bb59462eSStephen Boyd		regulator-max-microvolt = <1800000>;
197bb59462eSStephen Boyd
198bb59462eSStephen Boyd		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
199bb59462eSStephen Boyd		enable-active-high;
200bb59462eSStephen Boyd		pinctrl-names = "default";
201bb59462eSStephen Boyd		pinctrl-0 = <&wf_cam_en>;
202bb59462eSStephen Boyd
203bb59462eSStephen Boyd		vin-supply = <&pp1800_ldo>;
204bb59462eSStephen Boyd		regulator-enable-ramp-delay = <1000>;
205bb59462eSStephen Boyd	};
206bb59462eSStephen Boyd
207bb59462eSStephen Boyd	pp2800_uf_cam: pp2800-uf-cam-regulator {
208bb59462eSStephen Boyd		compatible = "regulator-fixed";
209bb59462eSStephen Boyd		regulator-name = "pp2800_uf_cam";
210bb59462eSStephen Boyd		status = "disabled";
211bb59462eSStephen Boyd
212bb59462eSStephen Boyd		regulator-min-microvolt = <2850000>;
213bb59462eSStephen Boyd		regulator-max-microvolt = <2850000>;
214bb59462eSStephen Boyd
215bb59462eSStephen Boyd		gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
216bb59462eSStephen Boyd		enable-active-high;
217bb59462eSStephen Boyd		/*
218bb59462eSStephen Boyd		 * The pinconf can only be referenced once so we put it on the
219bb59462eSStephen Boyd		 * first regulator and comment it out here.
220bb59462eSStephen Boyd		 * pinctrl-names = "default";
221bb59462eSStephen Boyd		 * pinctrl-0 = <&uf_cam_en>;
222bb59462eSStephen Boyd		 */
223bb59462eSStephen Boyd
224bb59462eSStephen Boyd		vin-supply = <&pp3300_a>;
225bb59462eSStephen Boyd	};
226bb59462eSStephen Boyd
227bb59462eSStephen Boyd	pp2800_vcm_wf_cam:
228bb59462eSStephen Boyd	pp2800_wf_cam: pp2800-wf-cam-regulator {
229bb59462eSStephen Boyd		compatible = "regulator-fixed";
230bb59462eSStephen Boyd		regulator-name = "pp2800_wf_cam";
231bb59462eSStephen Boyd		status = "disabled";
232bb59462eSStephen Boyd
233bb59462eSStephen Boyd		regulator-min-microvolt = <2850000>;
234bb59462eSStephen Boyd		regulator-max-microvolt = <2850000>;
235bb59462eSStephen Boyd
236bb59462eSStephen Boyd		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
237bb59462eSStephen Boyd		enable-active-high;
238bb59462eSStephen Boyd		/*
239bb59462eSStephen Boyd		 * The pinconf can only be referenced once so we put it on the
240bb59462eSStephen Boyd		 * first regulator and comment it out here.
241bb59462eSStephen Boyd		 * pinctrl-names = "default";
242bb59462eSStephen Boyd		 * pinctrl-0 = <&wf_cam_en>;
243bb59462eSStephen Boyd		 */
244bb59462eSStephen Boyd
245bb59462eSStephen Boyd		vin-supply = <&pp3300_a>;
246bb59462eSStephen Boyd	};
247bb59462eSStephen Boyd
2487ec3e673SRob Clark	pp3300_audio:
2497ec3e673SRob Clark	pp3300_codec: pp3300-codec-regulator {
2507ec3e673SRob Clark		compatible = "regulator-fixed";
2517ec3e673SRob Clark		regulator-name = "pp3300_codec";
2527ec3e673SRob Clark
2537ec3e673SRob Clark		regulator-min-microvolt = <3300000>;
2547ec3e673SRob Clark		regulator-max-microvolt = <3300000>;
2557ec3e673SRob Clark
2567ec3e673SRob Clark		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
2577ec3e673SRob Clark		enable-active-high;
2587ec3e673SRob Clark		pinctrl-names = "default";
2597ec3e673SRob Clark		pinctrl-0 = <&en_pp3300_codec>;
2607ec3e673SRob Clark
2617ec3e673SRob Clark		vin-supply = <&pp3300_a>;
2627ec3e673SRob Clark	};
2637ec3e673SRob Clark
2647ec3e673SRob Clark	pp3300_dx_edp:
2657ec3e673SRob Clark	pp3300_ts: pp3300-dx-edp-regulator {
2667ec3e673SRob Clark		compatible = "regulator-fixed";
2677ec3e673SRob Clark		regulator-name = "pp3300_dx_edp";
2687ec3e673SRob Clark
2697ec3e673SRob Clark		regulator-min-microvolt = <3300000>;
2707ec3e673SRob Clark		regulator-max-microvolt = <3300000>;
2717ec3e673SRob Clark
2727ec3e673SRob Clark		gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
2737ec3e673SRob Clark		enable-active-high;
2747ec3e673SRob Clark		pinctrl-names = "default";
2757ec3e673SRob Clark		pinctrl-0 = <&en_pp3300_dx_edp>;
2767ec3e673SRob Clark
2777ec3e673SRob Clark		vin-supply = <&pp3300_a>;
2787ec3e673SRob Clark	};
2797ec3e673SRob Clark
2807ec3e673SRob Clark	pp3300_fp_tp: pp3300-fp-tp-regulator {
2817ec3e673SRob Clark		compatible = "regulator-fixed";
2827ec3e673SRob Clark		regulator-name = "pp3300_fp_tp";
2837ec3e673SRob Clark
2847ec3e673SRob Clark		regulator-min-microvolt = <3300000>;
2857ec3e673SRob Clark		regulator-max-microvolt = <3300000>;
2867ec3e673SRob Clark
2877ec3e673SRob Clark		/* AP turns on with PP1800_VIO_OUT; always on for AP */
2887ec3e673SRob Clark		regulator-always-on;
2897ec3e673SRob Clark		regulator-boot-on;
2907ec3e673SRob Clark
2917ec3e673SRob Clark		vin-supply = <&pp3300_a>;
2927ec3e673SRob Clark	};
2937ec3e673SRob Clark
294171bac46SDouglas Anderson	pp3300_hub: pp3300-hub-regulator {
295066c2a94SMatthias Kaehlcke		compatible = "regulator-fixed";
296066c2a94SMatthias Kaehlcke		regulator-name = "pp3300_hub";
297066c2a94SMatthias Kaehlcke
298066c2a94SMatthias Kaehlcke		regulator-min-microvolt = <3300000>;
299066c2a94SMatthias Kaehlcke		regulator-max-microvolt = <3300000>;
300066c2a94SMatthias Kaehlcke
301066c2a94SMatthias Kaehlcke		gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>;
302066c2a94SMatthias Kaehlcke		enable-active-high;
303066c2a94SMatthias Kaehlcke		pinctrl-names = "default";
304066c2a94SMatthias Kaehlcke		pinctrl-0 = <&en_pp3300_hub>;
305066c2a94SMatthias Kaehlcke
306a73dd03bSMatthias Kaehlcke		/* The BIOS leaves this regulator on */
307066c2a94SMatthias Kaehlcke		regulator-boot-on;
308066c2a94SMatthias Kaehlcke
309066c2a94SMatthias Kaehlcke		vin-supply = <&pp3300_a>;
310066c2a94SMatthias Kaehlcke	};
311066c2a94SMatthias Kaehlcke
3127ec3e673SRob Clark	/* BOARD-SPECIFIC TOP LEVEL NODES */
3137ec3e673SRob Clark
3147ec3e673SRob Clark	backlight: backlight {
3157ec3e673SRob Clark		compatible = "pwm-backlight";
3167ec3e673SRob Clark
317ab8e32daSAlexandru Stan		/* The panels don't seem to like anything below ~ 5% */
318ab8e32daSAlexandru Stan		brightness-levels = <
319ab8e32daSAlexandru Stan			196 256 324 400 484 576 676 784 900 1024 1156 1296
320ab8e32daSAlexandru Stan			1444 1600 1764 1936 2116 2304 2500 2704 2916 3136
321ab8e32daSAlexandru Stan			3364 3600 3844 4096
322ab8e32daSAlexandru Stan		>;
323ab8e32daSAlexandru Stan		num-interpolated-steps = <64>;
324ab8e32daSAlexandru Stan		default-brightness-level = <951>;
325ab8e32daSAlexandru Stan
3267ec3e673SRob Clark		pwms = <&cros_ec_pwm 1>;
3277ec3e673SRob Clark		enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
3287ec3e673SRob Clark		power-supply = <&ppvar_sys>;
3297ec3e673SRob Clark		pinctrl-names = "default";
3307ec3e673SRob Clark		pinctrl-0 = <&ap_edp_bklten>;
3317ec3e673SRob Clark	};
3327ec3e673SRob Clark
3337ec3e673SRob Clark	gpio_keys: gpio-keys {
3347ec3e673SRob Clark		compatible = "gpio-keys";
3357ec3e673SRob Clark		status = "disabled";
3367ec3e673SRob Clark		pinctrl-names = "default";
3377ec3e673SRob Clark		pinctrl-0 = <&pen_pdct_l>;
3387ec3e673SRob Clark
339b08f5cbdSKrzysztof Kozlowski		pen_insert: switch-pen-insert {
3407ec3e673SRob Clark			label = "Pen Insert";
3417ec3e673SRob Clark
3427ec3e673SRob Clark			/* Insert = low, eject = high */
3437ec3e673SRob Clark			gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
3447ec3e673SRob Clark			linux,code = <SW_PEN_INSERTED>;
3457ec3e673SRob Clark			linux,input-type = <EV_SW>;
3465643caa8SStephen Boyd			wakeup-event-action = <EV_ACT_DEASSERTED>;
3477ec3e673SRob Clark			wakeup-source;
3487ec3e673SRob Clark		};
3497ec3e673SRob Clark	};
3507ec3e673SRob Clark
3514f365c75SJudy Hsiao	max98360a: audio-codec-0 {
3524f365c75SJudy Hsiao		compatible = "maxim,max98360a";
3537ec3e673SRob Clark		pinctrl-names = "default";
3547ec3e673SRob Clark		pinctrl-0 = <&amp_en>;
3557ec3e673SRob Clark		sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;
3567ec3e673SRob Clark		#sound-dai-cells = <0>;
3577ec3e673SRob Clark	};
3587ec3e673SRob Clark
3597ec3e673SRob Clark	pwmleds {
3607ec3e673SRob Clark		compatible = "pwm-leds";
361cb3920b5SKrzysztof Kozlowski		keyboard_backlight: led-0 {
3627ec3e673SRob Clark			status = "disabled";
3637ec3e673SRob Clark			label = "cros_ec::kbd_backlight";
36409143dd2SKrzysztof Kozlowski			function = LED_FUNCTION_KBD_BACKLIGHT;
3657ec3e673SRob Clark			pwms = <&cros_ec_pwm 0>;
3667ec3e673SRob Clark			max-brightness = <1023>;
3677ec3e673SRob Clark		};
3687ec3e673SRob Clark	};
36929bd62eeSAjit Pandey
37029bd62eeSAjit Pandey	sound: sound {
37129bd62eeSAjit Pandey		compatible = "google,sc7180-trogdor";
37229bd62eeSAjit Pandey		model = "sc7180-rt5682-max98357a-1mic";
37329bd62eeSAjit Pandey
37429bd62eeSAjit Pandey		audio-routing =
37529bd62eeSAjit Pandey			"Headphone Jack", "HPOL",
37629bd62eeSAjit Pandey			"Headphone Jack", "HPOR";
37729bd62eeSAjit Pandey
37829bd62eeSAjit Pandey		#address-cells = <1>;
37929bd62eeSAjit Pandey		#size-cells = <0>;
38029bd62eeSAjit Pandey
38129bd62eeSAjit Pandey		dai-link@0 {
38229bd62eeSAjit Pandey			link-name = "MultiMedia0";
38329bd62eeSAjit Pandey			reg = <MI2S_PRIMARY>;
38429bd62eeSAjit Pandey			cpu {
38529bd62eeSAjit Pandey				sound-dai = <&lpass_cpu MI2S_PRIMARY>;
38629bd62eeSAjit Pandey			};
38729bd62eeSAjit Pandey
38829bd62eeSAjit Pandey			sound_multimedia0_codec: codec {
38929bd62eeSAjit Pandey				sound-dai = <&alc5682 0 /* aif1 */>;
39029bd62eeSAjit Pandey			};
39129bd62eeSAjit Pandey		};
39229bd62eeSAjit Pandey
39329bd62eeSAjit Pandey		dai-link@1 {
39429bd62eeSAjit Pandey			link-name = "MultiMedia1";
39529bd62eeSAjit Pandey			reg = <MI2S_SECONDARY>;
39629bd62eeSAjit Pandey			cpu {
39729bd62eeSAjit Pandey				sound-dai = <&lpass_cpu MI2S_SECONDARY>;
39829bd62eeSAjit Pandey			};
39929bd62eeSAjit Pandey
40029bd62eeSAjit Pandey			sound_multimedia1_codec: codec {
4014f365c75SJudy Hsiao				sound-dai = <&max98360a>;
40229bd62eeSAjit Pandey			};
40329bd62eeSAjit Pandey		};
404b22d313eSV Sujith Kumar Reddy
4050a91caceSStephen Boyd		dai-link@5 {
406b22d313eSV Sujith Kumar Reddy			link-name = "MultiMedia2";
4070a91caceSStephen Boyd			reg = <LPASS_DP_RX>;
408b22d313eSV Sujith Kumar Reddy			cpu {
4090a91caceSStephen Boyd				sound-dai = <&lpass_cpu LPASS_DP_RX>;
410b22d313eSV Sujith Kumar Reddy			};
411b22d313eSV Sujith Kumar Reddy
412b22d313eSV Sujith Kumar Reddy			codec {
413b22d313eSV Sujith Kumar Reddy				sound-dai = <&mdss_dp>;
414b22d313eSV Sujith Kumar Reddy			};
415b22d313eSV Sujith Kumar Reddy		};
41629bd62eeSAjit Pandey	};
4177ec3e673SRob Clark};
4187ec3e673SRob Clark
4197ec3e673SRob Clark&qfprom {
4207ec3e673SRob Clark	vcc-supply = <&pp1800_l11a>;
4217ec3e673SRob Clark};
4227ec3e673SRob Clark
4237ec3e673SRob Clark&qspi {
4247ec3e673SRob Clark	status = "okay";
425ab752f03SDouglas Anderson	pinctrl-names = "default", "sleep";
426ab752f03SDouglas Anderson	pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data0>, <&qspi_data1>;
427ab752f03SDouglas Anderson	pinctrl-1 = <&qspi_sleep>;
4287ec3e673SRob Clark
4297ec3e673SRob Clark	flash@0 {
4307ec3e673SRob Clark		compatible = "jedec,spi-nor";
4317ec3e673SRob Clark		reg = <0>;
4327ec3e673SRob Clark
433729046d4SStephen Boyd		spi-max-frequency = <37500000>;
4347ec3e673SRob Clark		spi-tx-bus-width = <2>;
4357ec3e673SRob Clark		spi-rx-bus-width = <2>;
4367ec3e673SRob Clark	};
4377ec3e673SRob Clark};
4387ec3e673SRob Clark
4397ec3e673SRob Clark&apps_rsc {
440adfb9d68SKrzysztof Kozlowski	regulators-0 {
4417ec3e673SRob Clark		compatible = "qcom,pm6150-rpmh-regulators";
4427ec3e673SRob Clark		qcom,pmic-id = "a";
4437ec3e673SRob Clark
4447ec3e673SRob Clark		vddpx_1:
4457ec3e673SRob Clark		vdd2:
4467ec3e673SRob Clark		pp1125_s1a: smps1 {
4477ec3e673SRob Clark			regulator-min-microvolt = <1128000>;
4487ec3e673SRob Clark			regulator-max-microvolt = <1128000>;
4497ec3e673SRob Clark		};
4507ec3e673SRob Clark
4517ec3e673SRob Clark		vdd_qlink_lv:
4527ec3e673SRob Clark		vdd_qlink_lv_ck:
4537ec3e673SRob Clark		vdd_qusb_hs0_core:
4547ec3e673SRob Clark		vdd_ufs1_core:
4557ec3e673SRob Clark		vdda_mipi_csi0_0p9:
4567ec3e673SRob Clark		vdda_mipi_csi1_0p9:
4577ec3e673SRob Clark		vdda_mipi_csi2_0p9:
4587ec3e673SRob Clark		vdda_mipi_csi3_0p9:
4597ec3e673SRob Clark		vdda_mipi_dsi0_pll:
4607ec3e673SRob Clark		vdda_pll_cc_ebi01:
4617ec3e673SRob Clark		vdda_qrefs_0p9:
4627ec3e673SRob Clark		vdda_usb_ss_dp_core:
4637ec3e673SRob Clark		pp900_l4a: ldo4 {
4647ec3e673SRob Clark			regulator-min-microvolt = <824000>;
4657ec3e673SRob Clark			regulator-max-microvolt = <928000>;
4667ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4677ec3e673SRob Clark		};
4687ec3e673SRob Clark
4697ec3e673SRob Clark		vdd_cx_wlan:
4707ec3e673SRob Clark		pp800_l9a: ldo9 {
4717ec3e673SRob Clark			regulator-min-microvolt = <488000>;
4727ec3e673SRob Clark			regulator-max-microvolt = <800000>;
4737ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4747ec3e673SRob Clark		};
4757ec3e673SRob Clark
4767ec3e673SRob Clark		vdd1:
4777ec3e673SRob Clark		vddpx_3:
4787ec3e673SRob Clark		vddpx_7:
4797ec3e673SRob Clark		vio_in:
4807ec3e673SRob Clark		pp1800_l10a: ldo10 {
4817ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
4827ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
4837ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4847ec3e673SRob Clark		};
4857ec3e673SRob Clark
4867ec3e673SRob Clark		vdd_qfprom:
4877ec3e673SRob Clark		vdda_apc1_cs_1p8:
4887ec3e673SRob Clark		vdda_qrefs_1p8:
4897ec3e673SRob Clark		vdda_qusb_hs0_1p8:
4907ec3e673SRob Clark		vddpx_11:
4917ec3e673SRob Clark		vreg_bb_clk:
4927ec3e673SRob Clark		pp1800_l11a: ldo11 {
4937ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
4947ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
4957ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4967ec3e673SRob Clark		};
4977ec3e673SRob Clark
4987ec3e673SRob Clark		mcp_vccq:
4997ec3e673SRob Clark		pp1800_l12a_r: ldo12 {
5007ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5017ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5027ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5037ec3e673SRob Clark		};
5047ec3e673SRob Clark
505e5376f2eSDouglas Anderson		/*
506e5376f2eSDouglas Anderson		 * On trogdor this needs to match l10a since we use it to
507e5376f2eSDouglas Anderson		 * give power to things like SPI flash which communicate back
508e5376f2eSDouglas Anderson		 * on lines powered by l10a.  Thus we force to 1.8V.
509e5376f2eSDouglas Anderson		 */
5107ec3e673SRob Clark		pp1800_l13a: ldo13 {
5117ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5127ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5137ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
514ced32c29SDouglas Anderson			regulator-always-on;
515ced32c29SDouglas Anderson			regulator-boot-on;
5167ec3e673SRob Clark		};
5177ec3e673SRob Clark
5187ec3e673SRob Clark		pp1800_prox:
5197ec3e673SRob Clark		pp1800_l14a: ldo14 {
5207ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5217ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5227ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5237ec3e673SRob Clark		};
5247ec3e673SRob Clark
5257ec3e673SRob Clark		pp1800_alc5682:
5267ec3e673SRob Clark		pp1800_l15a: ldo15 {
5277ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5287ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5297ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5307ec3e673SRob Clark		};
5317ec3e673SRob Clark
5327ec3e673SRob Clark		vdda_qusb_hs0_3p1:
5337ec3e673SRob Clark		vdd_pdphy:
5347ec3e673SRob Clark		pp3100_l17a: ldo17 {
5357ec3e673SRob Clark			regulator-min-microvolt = <2920000>;
5367ec3e673SRob Clark			regulator-max-microvolt = <3232000>;
5377ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5387ec3e673SRob Clark		};
5397ec3e673SRob Clark
5407ec3e673SRob Clark		pp1800_pen:
5417ec3e673SRob Clark		pp1800_l18a: ldo18 {
5427ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5437ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5447ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5457ec3e673SRob Clark		};
5467ec3e673SRob Clark
5477ec3e673SRob Clark		mcp_vcc:
5487ec3e673SRob Clark		pp2850_l19a: ldo19 {
5497ec3e673SRob Clark			regulator-min-microvolt = <2960000>;
5507ec3e673SRob Clark			regulator-max-microvolt = <2960000>;
5517ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5527ec3e673SRob Clark		};
5537ec3e673SRob Clark	};
5547ec3e673SRob Clark
555adfb9d68SKrzysztof Kozlowski	regulators-1 {
5567ec3e673SRob Clark		compatible = "qcom,pm6150l-rpmh-regulators";
5577ec3e673SRob Clark		qcom,pmic-id = "c";
5587ec3e673SRob Clark
5597ec3e673SRob Clark		pp1300_s8c: smps8 {
5607ec3e673SRob Clark			regulator-min-microvolt = <1120000>;
5617ec3e673SRob Clark			regulator-max-microvolt = <1408000>;
5627ec3e673SRob Clark		};
5637ec3e673SRob Clark
5647ec3e673SRob Clark		pp1800_l1c: ldo1 {
565e5376f2eSDouglas Anderson			regulator-min-microvolt = <1616000>;
566e5376f2eSDouglas Anderson			regulator-max-microvolt = <1984000>;
5677ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5687ec3e673SRob Clark		};
5697ec3e673SRob Clark
5707ec3e673SRob Clark		vdd_wcss_adc_dac:
5717ec3e673SRob Clark		pp1300_l2c: ldo2 {
5727ec3e673SRob Clark			regulator-min-microvolt = <1168000>;
5737ec3e673SRob Clark			regulator-max-microvolt = <1304000>;
5747ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5757ec3e673SRob Clark		};
5767ec3e673SRob Clark
5777ec3e673SRob Clark		pp1200_brij:
5787ec3e673SRob Clark		vdd_ufs1_1p2:
5797ec3e673SRob Clark		vdda_csi0_1p25:
5807ec3e673SRob Clark		vdda_csi1_1p25:
5817ec3e673SRob Clark		vdda_csi2_1p25:
5827ec3e673SRob Clark		vdda_csi3_1p25:
5837ec3e673SRob Clark		vdda_hv_ebi0:
5847ec3e673SRob Clark		vdda_mipi_dsi0_1p2:
5857ec3e673SRob Clark		vdda_usb_ss_dp_1p2:
5867ec3e673SRob Clark		vddpx_10:
5877ec3e673SRob Clark		pp1200_l3c: ldo3 {
5887ec3e673SRob Clark			regulator-min-microvolt = <1200000>;
5897ec3e673SRob Clark			regulator-max-microvolt = <1200000>;
5907ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5917ec3e673SRob Clark		};
5927ec3e673SRob Clark
5937ec3e673SRob Clark		vddpx_2:
5947ec3e673SRob Clark		ppvar_l6c: ldo6 {
5957ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
596465b13ccSDouglas Anderson			regulator-max-microvolt = <2952000>;
5977ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5987ec3e673SRob Clark		};
5997ec3e673SRob Clark
6007ec3e673SRob Clark		pp3300_l7c: ldo7 {
6017ec3e673SRob Clark			regulator-min-microvolt = <3304000>;
6027ec3e673SRob Clark			regulator-max-microvolt = <3304000>;
6037ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6047ec3e673SRob Clark		};
6057ec3e673SRob Clark
6067ec3e673SRob Clark		pp1800_brij_vccio:
6077ec3e673SRob Clark		pp1800_edp_vpll:
6087ec3e673SRob Clark		pp1800_l8c: ldo8 {
6097ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
6107ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
6117ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6127ec3e673SRob Clark		};
6137ec3e673SRob Clark
6147ec3e673SRob Clark		pp2950_l9c: ldo9 {
6157ec3e673SRob Clark			regulator-min-microvolt = <2952000>;
6167ec3e673SRob Clark			regulator-max-microvolt = <2952000>;
6177ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6187ec3e673SRob Clark		};
6197ec3e673SRob Clark
6207ec3e673SRob Clark		pp3300_l10c: ldo10 {
6217ec3e673SRob Clark			regulator-min-microvolt = <3000000>;
6227ec3e673SRob Clark			regulator-max-microvolt = <3400000>;
6237ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6247ec3e673SRob Clark		};
6257ec3e673SRob Clark
6267ec3e673SRob Clark		pp3300_l11c: ldo11 {
6277ec3e673SRob Clark			regulator-min-microvolt = <3000000>;
6287ec3e673SRob Clark			regulator-max-microvolt = <3400000>;
6297ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6307ec3e673SRob Clark		};
6317ec3e673SRob Clark
6327ec3e673SRob Clark		src_vreg_bob: bob {
6337ec3e673SRob Clark			regulator-min-microvolt = <3008000>;
6347ec3e673SRob Clark			regulator-max-microvolt = <3960000>;
6357ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
6367ec3e673SRob Clark		};
6377ec3e673SRob Clark	};
6387ec3e673SRob Clark};
6397ec3e673SRob Clark
640d277cab7SStephen Boydap_ec_spi: &spi6 {
6417ec3e673SRob Clark	status = "okay";
6427ec3e673SRob Clark	cros_ec: ec@0 {
6437ec3e673SRob Clark		compatible = "google,cros-ec-spi";
6447ec3e673SRob Clark		reg = <0>;
6457ec3e673SRob Clark		interrupt-parent = <&tlmm>;
6467ec3e673SRob Clark		interrupts = <94 IRQ_TYPE_LEVEL_LOW>;
6477ec3e673SRob Clark		pinctrl-names = "default";
6487ec3e673SRob Clark		pinctrl-0 = <&ap_ec_int_l>;
6497ec3e673SRob Clark		spi-max-frequency = <3000000>;
6507ec3e673SRob Clark
6511e49defbSKrzysztof Kozlowski		cros_ec_pwm: pwm {
6527ec3e673SRob Clark			compatible = "google,cros-ec-pwm";
6537ec3e673SRob Clark			#pwm-cells = <1>;
6547ec3e673SRob Clark		};
6557ec3e673SRob Clark
6567ec3e673SRob Clark		i2c_tunnel: i2c-tunnel {
6577ec3e673SRob Clark			compatible = "google,cros-ec-i2c-tunnel";
6587ec3e673SRob Clark			google,remote-bus = <0>;
6597ec3e673SRob Clark			#address-cells = <1>;
6607ec3e673SRob Clark			#size-cells = <0>;
6617ec3e673SRob Clark		};
6627ec3e673SRob Clark
6637ec3e673SRob Clark		typec {
6647ec3e673SRob Clark			compatible = "google,cros-ec-typec";
6657ec3e673SRob Clark			#address-cells = <1>;
6667ec3e673SRob Clark			#size-cells = <0>;
6677ec3e673SRob Clark
6687c6d828eSStephen Boyd			usb_c0: connector@0 {
6697ec3e673SRob Clark				compatible = "usb-c-connector";
6707ec3e673SRob Clark				reg = <0>;
6717ec3e673SRob Clark				label = "left";
6727ec3e673SRob Clark				power-role = "dual";
6737ec3e673SRob Clark				data-role = "host";
6747ec3e673SRob Clark				try-power-role = "source";
6757ec3e673SRob Clark			};
6767ec3e673SRob Clark
6777c6d828eSStephen Boyd			usb_c1: connector@1 {
6787ec3e673SRob Clark				compatible = "usb-c-connector";
6797ec3e673SRob Clark				reg = <1>;
6807ec3e673SRob Clark				label = "right";
6817ec3e673SRob Clark				power-role = "dual";
6827ec3e673SRob Clark				data-role = "host";
6837ec3e673SRob Clark				try-power-role = "source";
6847ec3e673SRob Clark			};
6857ec3e673SRob Clark		};
6867ec3e673SRob Clark	};
6877ec3e673SRob Clark};
6887ec3e673SRob Clark
689d277cab7SStephen Boydap_h1_spi: &spi0 {
6907ec3e673SRob Clark	status = "okay";
6917ec3e673SRob Clark	cr50: tpm@0 {
6927ec3e673SRob Clark		compatible = "google,cr50";
6937ec3e673SRob Clark		reg = <0>;
6947ec3e673SRob Clark		pinctrl-names = "default";
6957ec3e673SRob Clark		pinctrl-0 = <&h1_ap_int_odl>;
6967ec3e673SRob Clark		spi-max-frequency = <800000>;
6977ec3e673SRob Clark		interrupt-parent = <&tlmm>;
6987ec3e673SRob Clark		interrupts = <42 IRQ_TYPE_EDGE_RISING>;
6997ec3e673SRob Clark	};
7007ec3e673SRob Clark};
7017ec3e673SRob Clark
702fcd66fe6SStephen Boyd&camcc {
703fcd66fe6SStephen Boyd	status = "disabled";
704fcd66fe6SStephen Boyd};
705fcd66fe6SStephen Boyd
7067ec3e673SRob Clarkap_sar_sensor_i2c: &i2c5 {
7077ec3e673SRob Clark	clock-frequency = <400000>;
7087ec3e673SRob Clark
7097ec3e673SRob Clark	ap_sar_sensor: proximity@28 {
7107ec3e673SRob Clark		compatible = "semtech,sx9310";
7117ec3e673SRob Clark		reg = <0x28>;
7127ec3e673SRob Clark		#io-channel-cells = <1>;
7137ec3e673SRob Clark		pinctrl-names = "default";
7147ec3e673SRob Clark		pinctrl-0 = <&p_sensor_int_l>;
7157ec3e673SRob Clark
7167ec3e673SRob Clark		interrupt-parent = <&tlmm>;
7177ec3e673SRob Clark		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
7187ec3e673SRob Clark
7197ec3e673SRob Clark		vdd-supply = <&pp3300_a>;
7207ec3e673SRob Clark		svdd-supply = <&pp1800_prox>;
7217ec3e673SRob Clark
7227ec3e673SRob Clark		label = "proximity-wifi";
7237ec3e673SRob Clark	};
7247ec3e673SRob Clark};
7257ec3e673SRob Clark
7267ec3e673SRob Clarkap_tp_i2c: &i2c7 {
7277ec3e673SRob Clark	clock-frequency = <400000>;
7287ec3e673SRob Clark
729ce250024SDouglas Anderson	trackpad: trackpad@15 {
7307ec3e673SRob Clark		compatible = "elan,ekth3000";
7317ec3e673SRob Clark		reg = <0x15>;
7327ec3e673SRob Clark		pinctrl-names = "default";
733ce250024SDouglas Anderson		pinctrl-0 = <&tp_int_odl>;
7347ec3e673SRob Clark
7357ec3e673SRob Clark		interrupt-parent = <&tlmm>;
736ce250024SDouglas Anderson		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
7377ec3e673SRob Clark
7387ec3e673SRob Clark		vcc-supply = <&pp3300_fp_tp>;
7397ec3e673SRob Clark
7407ec3e673SRob Clark		wakeup-source;
7417ec3e673SRob Clark	};
7427ec3e673SRob Clark};
7437ec3e673SRob Clark
7447ec3e673SRob Clarkhp_i2c: &i2c9 {
7457ec3e673SRob Clark	status = "okay";
7467ec3e673SRob Clark	clock-frequency = <400000>;
7477ec3e673SRob Clark
7487ec3e673SRob Clark	alc5682: codec@1a {
7497ec3e673SRob Clark		compatible = "realtek,rt5682i";
7507ec3e673SRob Clark		reg = <0x1a>;
7517ec3e673SRob Clark		pinctrl-names = "default";
7527ec3e673SRob Clark		pinctrl-0 = <&hp_irq>;
7537ec3e673SRob Clark
7547ec3e673SRob Clark		#sound-dai-cells = <1>;
7557ec3e673SRob Clark
7567ec3e673SRob Clark		interrupt-parent = <&tlmm>;
7577ec3e673SRob Clark		/*
7587ec3e673SRob Clark		 * This will get ignored because the interrupt type
7597ec3e673SRob Clark		 * is set in rt5682.c.
7607ec3e673SRob Clark		 */
7617ec3e673SRob Clark		interrupts = <28 IRQ_TYPE_EDGE_BOTH>;
7627ec3e673SRob Clark
7637ec3e673SRob Clark		AVDD-supply = <&pp1800_alc5682>;
764172cb25fSNícolas F. R. A. Prado		DBVDD-supply = <&pp1800_alc5682>;
765172cb25fSNícolas F. R. A. Prado		LDO1-IN-supply = <&pp1800_alc5682>;
7667ec3e673SRob Clark		MICVDD-supply = <&pp3300_codec>;
7677ec3e673SRob Clark		VBAT-supply = <&pp3300_audio>;
7687ec3e673SRob Clark
7697ec3e673SRob Clark		realtek,dmic1-data-pin = <1>;
7707ec3e673SRob Clark		realtek,dmic1-clk-pin = <1>;
7717ec3e673SRob Clark		realtek,jd-src = <1>;
7727ec3e673SRob Clark	};
7737ec3e673SRob Clark};
7747ec3e673SRob Clark
77543926a3cSNikita Travkin&lpasscc {
77643926a3cSNikita Travkin	status = "okay";
77743926a3cSNikita Travkin};
77843926a3cSNikita Travkin
77929bd62eeSAjit Pandey&lpass_cpu {
78029bd62eeSAjit Pandey	status = "okay";
78129bd62eeSAjit Pandey
78229bd62eeSAjit Pandey	pinctrl-names = "default";
78329bd62eeSAjit Pandey	pinctrl-0 = <&sec_mi2s_active>, <&pri_mi2s_active>, <&pri_mi2s_mclk_active>;
78429bd62eeSAjit Pandey
78529bd62eeSAjit Pandey	#address-cells = <1>;
78629bd62eeSAjit Pandey	#size-cells = <0>;
78729bd62eeSAjit Pandey
788eef26fb4SKrzysztof Kozlowski	dai-link@0 {
78929bd62eeSAjit Pandey		reg = <MI2S_PRIMARY>;
79029bd62eeSAjit Pandey		qcom,playback-sd-lines = <1>;
79129bd62eeSAjit Pandey		qcom,capture-sd-lines = <0>;
79229bd62eeSAjit Pandey	};
79329bd62eeSAjit Pandey
794eef26fb4SKrzysztof Kozlowski	secondary_mi2s: dai-link@1 {
79529bd62eeSAjit Pandey		reg = <MI2S_SECONDARY>;
79629bd62eeSAjit Pandey		qcom,playback-sd-lines = <0>;
79729bd62eeSAjit Pandey	};
798b22d313eSV Sujith Kumar Reddy
799eef26fb4SKrzysztof Kozlowski	dai-link@5 {
800b22d313eSV Sujith Kumar Reddy		reg = <LPASS_DP_RX>;
801b22d313eSV Sujith Kumar Reddy	};
80229bd62eeSAjit Pandey};
80329bd62eeSAjit Pandey
80443926a3cSNikita Travkin&lpass_hm {
8057ec3e673SRob Clark	status = "okay";
8067ec3e673SRob Clark};
8077ec3e673SRob Clark
8087ec3e673SRob Clark&mdss {
8097ec3e673SRob Clark	status = "okay";
8107ec3e673SRob Clark};
8117ec3e673SRob Clark
812f1b7e897SKuogee Hsieh&mdss_dp {
813f1b7e897SKuogee Hsieh	status = "okay";
814f1b7e897SKuogee Hsieh	pinctrl-names = "default";
815f1b7e897SKuogee Hsieh	pinctrl-0 = <&dp_hot_plug_det>;
81626c5aa54SKuogee Hsieh};
81726c5aa54SKuogee Hsieh
81826c5aa54SKuogee Hsieh&mdss_dp_out {
819f1b7e897SKuogee Hsieh	data-lanes = <0 1>;
82026c5aa54SKuogee Hsieh	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>;
821f1b7e897SKuogee Hsieh};
822f1b7e897SKuogee Hsieh
8232b616f86SDmitry Baryshkov&mdss_dsi0 {
8242b616f86SDmitry Baryshkov	status = "okay";
8252b616f86SDmitry Baryshkov	vdda-supply = <&vdda_mipi_dsi0_1p2>;
8262b616f86SDmitry Baryshkov};
8272b616f86SDmitry Baryshkov
8282b616f86SDmitry Baryshkov&mdss_dsi0_out {
8292b616f86SDmitry Baryshkov	data-lanes = <0 1 2 3>;
8302b616f86SDmitry Baryshkov};
8312b616f86SDmitry Baryshkov
8322b616f86SDmitry Baryshkov&mdss_dsi0_phy {
8332b616f86SDmitry Baryshkov	status = "okay";
8342b616f86SDmitry Baryshkov	vdds-supply = <&vdda_mipi_dsi0_pll>;
8352b616f86SDmitry Baryshkov};
8362b616f86SDmitry Baryshkov
837bb06eb36SAntony Wang&pm6150_adc {
83841c18552SMarijn Suijten	channel@4f {
839bb06eb36SAntony Wang		reg = <ADC5_AMUX_THM3_100K_PU>;
840bb06eb36SAntony Wang		qcom,ratiometric;
841bb06eb36SAntony Wang		qcom,hw-settle-time = <200>;
84241c18552SMarijn Suijten		label = "charger_therm";
843bb06eb36SAntony Wang	};
844bb06eb36SAntony Wang};
845bb06eb36SAntony Wang
846bb06eb36SAntony Wang&pm6150_adc_tm {
847bb06eb36SAntony Wang	status = "okay";
848bb06eb36SAntony Wang
849e4ffe8d5SMatthias Kaehlcke	charger-thermistor@0 {
850e4ffe8d5SMatthias Kaehlcke		reg = <0>;
851bb06eb36SAntony Wang		io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
852bb06eb36SAntony Wang		qcom,ratiometric;
853bb06eb36SAntony Wang		qcom,hw-settle-time-us = <200>;
854bb06eb36SAntony Wang	};
855bb06eb36SAntony Wang};
856bb06eb36SAntony Wang
857d141e052SStephen Boyd&pm6150_pon {
8587ec3e673SRob Clark	status = "disabled";
8597ec3e673SRob Clark};
8607ec3e673SRob Clark
8617ec3e673SRob Clark&qupv3_id_0 {
8627ec3e673SRob Clark	status = "okay";
8637ec3e673SRob Clark};
8647ec3e673SRob Clark
8657ec3e673SRob Clark&qupv3_id_1 {
8667ec3e673SRob Clark	status = "okay";
8677ec3e673SRob Clark};
8687ec3e673SRob Clark
8697ec3e673SRob Clark&remoteproc_mpss {
8707ec3e673SRob Clark	status = "okay";
8717ec3e673SRob Clark	compatible = "qcom,sc7180-mss-pil";
87247603d62SKrzysztof Kozlowski	reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
87347603d62SKrzysztof Kozlowski	reg-names = "qdsp6", "rmb";
87447603d62SKrzysztof Kozlowski
87547603d62SKrzysztof Kozlowski	clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
87647603d62SKrzysztof Kozlowski		 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
87747603d62SKrzysztof Kozlowski		 <&gcc GCC_MSS_NAV_AXI_CLK>,
87847603d62SKrzysztof Kozlowski		 <&gcc GCC_MSS_SNOC_AXI_CLK>,
87947603d62SKrzysztof Kozlowski		 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
88047603d62SKrzysztof Kozlowski		 <&rpmhcc RPMH_CXO_CLK>;
88147603d62SKrzysztof Kozlowski	clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo";
88247603d62SKrzysztof Kozlowski
8837ec3e673SRob Clark	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
884cb0eaae8SSibi Sankar	memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>;
8857ec3e673SRob Clark
8867ec3e673SRob Clark	/* This gets overridden for SKUs with LTE support. */
8877ec3e673SRob Clark	firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
8887ec3e673SRob Clark			"qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";
88947603d62SKrzysztof Kozlowski
89047603d62SKrzysztof Kozlowski	resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
89147603d62SKrzysztof Kozlowski		 <&pdc_reset PDC_MODEM_SYNC_RESET>;
89247603d62SKrzysztof Kozlowski	reset-names = "mss_restart", "pdc_reset";
89347603d62SKrzysztof Kozlowski
89447603d62SKrzysztof Kozlowski	qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
89547603d62SKrzysztof Kozlowski	qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;
8967ec3e673SRob Clark};
8977ec3e673SRob Clark
898a54b7fa6SDouglas Anderson&scm {
899a54b7fa6SDouglas Anderson	/* TF-A firmware maps memory cached so mark dma-coherent to match. */
900a54b7fa6SDouglas Anderson	dma-coherent;
901a54b7fa6SDouglas Anderson};
902a54b7fa6SDouglas Anderson
9037ec3e673SRob Clark&sdhc_1 {
9047ec3e673SRob Clark	status = "okay";
9057ec3e673SRob Clark
9067ec3e673SRob Clark	pinctrl-names = "default", "sleep";
9077ec3e673SRob Clark	pinctrl-0 = <&sdc1_on>;
9087ec3e673SRob Clark	pinctrl-1 = <&sdc1_off>;
9097ec3e673SRob Clark	vmmc-supply = <&mcp_vcc>;
9107ec3e673SRob Clark	vqmmc-supply = <&mcp_vccq>;
9117ec3e673SRob Clark};
9127ec3e673SRob Clark
9137ec3e673SRob Clark&sdhc_2 {
9147ec3e673SRob Clark	pinctrl-names = "default", "sleep";
9157ec3e673SRob Clark	pinctrl-0 = <&sdc2_on>;
9167ec3e673SRob Clark	pinctrl-1 = <&sdc2_off>;
9177ec3e673SRob Clark	vmmc-supply = <&pp2950_l9c>;
9187ec3e673SRob Clark	vqmmc-supply = <&ppvar_l6c>;
9197ec3e673SRob Clark
9207ec3e673SRob Clark	cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
9217ec3e673SRob Clark};
9227ec3e673SRob Clark
923cfbb97fdSDouglas Anderson&spi0 {
9242f0300a6SKrzysztof Kozlowski	pinctrl-0 = <&qup_spi0_spi>, <&qup_spi0_cs_gpio>;
925cfbb97fdSDouglas Anderson	cs-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
926cfbb97fdSDouglas Anderson};
927cfbb97fdSDouglas Anderson
928cfbb97fdSDouglas Anderson&spi6 {
9292f0300a6SKrzysztof Kozlowski	pinctrl-0 = <&qup_spi6_spi>, <&qup_spi6_cs_gpio>;
930cfbb97fdSDouglas Anderson	cs-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
931cfbb97fdSDouglas Anderson};
932cfbb97fdSDouglas Anderson
9337ec3e673SRob Clarkap_spi_fp: &spi10 {
9342f0300a6SKrzysztof Kozlowski	pinctrl-0 = <&qup_spi10_spi>, <&qup_spi10_cs_gpio>;
935cfbb97fdSDouglas Anderson	cs-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
936cfbb97fdSDouglas Anderson
9377ec3e673SRob Clark	cros_ec_fp: ec@0 {
9389ec68feaSStephen Boyd		compatible = "google,cros-ec-fp", "google,cros-ec-spi";
9397ec3e673SRob Clark		reg = <0>;
9407ec3e673SRob Clark		interrupt-parent = <&tlmm>;
9417ec3e673SRob Clark		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
9427ec3e673SRob Clark		pinctrl-names = "default";
9439ec68feaSStephen Boyd		pinctrl-0 = <&fp_to_ap_irq_l>, <&fp_rst_l>, <&fpmcu_boot0>;
9449ec68feaSStephen Boyd		boot0-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
9459ec68feaSStephen Boyd		reset-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
9467ec3e673SRob Clark		spi-max-frequency = <3000000>;
9479ec68feaSStephen Boyd		vdd-supply = <&pp3300_fp_tp>;
9487ec3e673SRob Clark	};
9497ec3e673SRob Clark};
9507ec3e673SRob Clark
9517ec3e673SRob Clark#include <arm/cros-ec-sbs.dtsi>
9527ec3e673SRob Clark
9537ec3e673SRob Clark&uart3 {
9547ec3e673SRob Clark	status = "okay";
9557ec3e673SRob Clark
9564e0a3e04Ssatya priya	/delete-property/interrupts;
9574e0a3e04Ssatya priya	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
9584e0a3e04Ssatya priya				<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
9594e0a3e04Ssatya priya
9604e0a3e04Ssatya priya	pinctrl-names = "default", "sleep";
9614e0a3e04Ssatya priya	pinctrl-1 = <&qup_uart3_sleep>;
9624e0a3e04Ssatya priya
9637ec3e673SRob Clark	bluetooth: bluetooth {
9647ec3e673SRob Clark		compatible = "qcom,wcn3991-bt";
9657ec3e673SRob Clark		vddio-supply = <&pp1800_l10a>;
9667ec3e673SRob Clark		vddxo-supply = <&pp1800_l1c>;
9677ec3e673SRob Clark		vddrf-supply = <&pp1300_l2c>;
9687ec3e673SRob Clark		vddch0-supply = <&pp3300_l10c>;
9697ec3e673SRob Clark		max-speed = <3200000>;
970*b99d0617SJohan Hovold
971*b99d0617SJohan Hovold		qcom,local-bd-address-broken;
9727ec3e673SRob Clark	};
9737ec3e673SRob Clark};
9747ec3e673SRob Clark
9757ec3e673SRob Clark&uart8 {
9767ec3e673SRob Clark	status = "okay";
9777ec3e673SRob Clark};
9787ec3e673SRob Clark
9797ec3e673SRob Clark&usb_1 {
9807ec3e673SRob Clark	status = "okay";
9817ec3e673SRob Clark};
9827ec3e673SRob Clark
9837ec3e673SRob Clark&usb_1_dwc3 {
9847ec3e673SRob Clark	dr_mode = "host";
985a73dd03bSMatthias Kaehlcke	#address-cells = <1>;
986a73dd03bSMatthias Kaehlcke	#size-cells = <0>;
987a73dd03bSMatthias Kaehlcke
988a73dd03bSMatthias Kaehlcke	/* 2.x hub on port 1 */
989a73dd03bSMatthias Kaehlcke	usb_hub_2_x: hub@1 {
990a73dd03bSMatthias Kaehlcke		compatible = "usbbda,5411";
991a73dd03bSMatthias Kaehlcke		reg = <1>;
992a73dd03bSMatthias Kaehlcke		vdd-supply = <&pp3300_hub>;
993a73dd03bSMatthias Kaehlcke		peer-hub = <&usb_hub_3_x>;
994a73dd03bSMatthias Kaehlcke	};
995a73dd03bSMatthias Kaehlcke
996a73dd03bSMatthias Kaehlcke	/* 3.x hub on port 2 */
997a73dd03bSMatthias Kaehlcke	usb_hub_3_x: hub@2 {
998a73dd03bSMatthias Kaehlcke		compatible = "usbbda,411";
999a73dd03bSMatthias Kaehlcke		reg = <2>;
1000a73dd03bSMatthias Kaehlcke		vdd-supply = <&pp3300_hub>;
1001a73dd03bSMatthias Kaehlcke		peer-hub = <&usb_hub_2_x>;
1002a73dd03bSMatthias Kaehlcke	};
10037ec3e673SRob Clark};
10047ec3e673SRob Clark
10057ec3e673SRob Clark&usb_1_hsphy {
10067ec3e673SRob Clark	status = "okay";
10077ec3e673SRob Clark	vdd-supply = <&vdd_qusb_hs0_core>;
10087ec3e673SRob Clark	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
10097ec3e673SRob Clark	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
10107ec3e673SRob Clark	qcom,imp-res-offset-value = <8>;
10117ec3e673SRob Clark	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
10127ec3e673SRob Clark	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
10137ec3e673SRob Clark	qcom,bias-ctrl-value = <0x22>;
10147ec3e673SRob Clark	qcom,charge-ctrl-value = <3>;
10157ec3e673SRob Clark	qcom,hsdisc-trim-value = <0>;
10167ec3e673SRob Clark};
10177ec3e673SRob Clark
10187ec3e673SRob Clark&usb_1_qmpphy {
10197ec3e673SRob Clark	status = "okay";
10207ec3e673SRob Clark	vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
10217ec3e673SRob Clark	vdda-pll-supply = <&vdda_usb_ss_dp_core>;
10227ec3e673SRob Clark};
10237ec3e673SRob Clark
10247ec3e673SRob Clark&venus {
10257ec3e673SRob Clark	video-firmware {
10267ec3e673SRob Clark		iommus = <&apps_smmu 0x0c42 0x0>;
10277ec3e673SRob Clark	};
10287ec3e673SRob Clark};
10297ec3e673SRob Clark
10307ec3e673SRob Clark&wifi {
10317ec3e673SRob Clark	status = "okay";
10327ec3e673SRob Clark	vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>;
10337ec3e673SRob Clark	vdd-1.8-xo-supply = <&pp1800_l1c>;
10347ec3e673SRob Clark	vdd-1.3-rfa-supply = <&pp1300_l2c>;
10357ec3e673SRob Clark	vdd-3.3-ch0-supply = <&pp3300_l10c>;
10367ec3e673SRob Clark	vdd-3.3-ch1-supply = <&pp3300_l11c>;
10377ec3e673SRob Clark
10387ec3e673SRob Clark	wifi-firmware {
10397ec3e673SRob Clark		iommus = <&apps_smmu 0xc2 0x1>;
10407ec3e673SRob Clark	};
10417ec3e673SRob Clark};
10427ec3e673SRob Clark
10437ec3e673SRob Clark/* PINCTRL - additions to nodes defined in sc7180.dtsi */
10447ec3e673SRob Clark
1045f772081fSDouglas Anderson&dp_hot_plug_det {
1046f772081fSDouglas Anderson	bias-disable;
1047f772081fSDouglas Anderson};
1048f772081fSDouglas Anderson
1049b4b2c20dSDouglas Anderson&pri_mi2s_active {
1050b4b2c20dSDouglas Anderson	drive-strength = <2>;
1051b4b2c20dSDouglas Anderson	bias-pull-down;
1052b4b2c20dSDouglas Anderson};
1053b4b2c20dSDouglas Anderson
1054b4b2c20dSDouglas Anderson&pri_mi2s_mclk_active {
1055b4b2c20dSDouglas Anderson	drive-strength = <2>;
1056b4b2c20dSDouglas Anderson	bias-pull-down;
1057b4b2c20dSDouglas Anderson};
1058b4b2c20dSDouglas Anderson
10597ec3e673SRob Clark&qspi_cs0 {
1060ab752f03SDouglas Anderson	bias-disable;		/* External pullup */
10617ec3e673SRob Clark};
10627ec3e673SRob Clark
10637ec3e673SRob Clark&qspi_clk {
1064abbe13a2SWenchao Han	drive-strength = <8>;
1065ab752f03SDouglas Anderson	bias-disable;		/* Rely on Cr50 internal pulldown */
10667ec3e673SRob Clark};
10677ec3e673SRob Clark
1068ab752f03SDouglas Anderson&qspi_data0 {
1069ab752f03SDouglas Anderson	bias-disable;		/* Rely on Cr50 internal pulldown */
1070ab752f03SDouglas Anderson};
1071ab752f03SDouglas Anderson
1072ab752f03SDouglas Anderson&qspi_data1 {
1073ab752f03SDouglas Anderson	bias-pull-down;
10747ec3e673SRob Clark};
10757ec3e673SRob Clark
10767ec3e673SRob Clark&qup_i2c2_default {
10777ec3e673SRob Clark	drive-strength = <2>;
10787ec3e673SRob Clark
10797ec3e673SRob Clark	/* Has external pullup */
10807ec3e673SRob Clark	bias-disable;
10817ec3e673SRob Clark};
10827ec3e673SRob Clark
10837ec3e673SRob Clark&qup_i2c4_default {
10847ec3e673SRob Clark	drive-strength = <2>;
10857ec3e673SRob Clark
10867ec3e673SRob Clark	/* Has external pullup */
10877ec3e673SRob Clark	bias-disable;
10887ec3e673SRob Clark};
10897ec3e673SRob Clark
10907ec3e673SRob Clark&qup_i2c5_default {
10917ec3e673SRob Clark	drive-strength = <2>;
10927ec3e673SRob Clark
10937ec3e673SRob Clark	/* Has external pullup */
10947ec3e673SRob Clark	bias-disable;
10957ec3e673SRob Clark};
10967ec3e673SRob Clark
10977ec3e673SRob Clark&qup_i2c7_default {
10987ec3e673SRob Clark	drive-strength = <2>;
10997ec3e673SRob Clark
11007ec3e673SRob Clark	/* Has external pullup */
11017ec3e673SRob Clark	bias-disable;
11027ec3e673SRob Clark};
11037ec3e673SRob Clark
11047ec3e673SRob Clark&qup_i2c9_default {
11057ec3e673SRob Clark	drive-strength = <2>;
11067ec3e673SRob Clark
11077ec3e673SRob Clark	/* Has external pullup */
11087ec3e673SRob Clark	bias-disable;
11097ec3e673SRob Clark};
11102f0300a6SKrzysztof Kozlowski
11112f0300a6SKrzysztof Kozlowski&qup_spi0_spi {
11122f0300a6SKrzysztof Kozlowski	drive-strength = <2>;
11132f0300a6SKrzysztof Kozlowski	bias-disable;
11147ec3e673SRob Clark};
11157ec3e673SRob Clark
1116cfbb97fdSDouglas Anderson&qup_spi0_cs_gpio {
11177ec3e673SRob Clark	drive-strength = <2>;
11187ec3e673SRob Clark	bias-disable;
11197ec3e673SRob Clark};
11202f0300a6SKrzysztof Kozlowski
11212f0300a6SKrzysztof Kozlowski&qup_spi6_spi {
11222f0300a6SKrzysztof Kozlowski	drive-strength = <2>;
11232f0300a6SKrzysztof Kozlowski	bias-disable;
11247ec3e673SRob Clark};
11257ec3e673SRob Clark
1126cfbb97fdSDouglas Anderson&qup_spi6_cs_gpio {
11277ec3e673SRob Clark	drive-strength = <2>;
11287ec3e673SRob Clark	bias-disable;
11297ec3e673SRob Clark};
11302f0300a6SKrzysztof Kozlowski
11312f0300a6SKrzysztof Kozlowski&qup_spi10_spi {
11322f0300a6SKrzysztof Kozlowski	drive-strength = <2>;
11332f0300a6SKrzysztof Kozlowski	bias-disable;
11347ec3e673SRob Clark};
11357ec3e673SRob Clark
1136cfbb97fdSDouglas Anderson&qup_spi10_cs_gpio {
11377ec3e673SRob Clark	drive-strength = <2>;
11387ec3e673SRob Clark	bias-disable;
11397ec3e673SRob Clark};
11407ec3e673SRob Clark
11412f0300a6SKrzysztof Kozlowski&qup_uart3_cts {
11427ec3e673SRob Clark	/*
11437ec3e673SRob Clark	 * Configure a pull-down on CTS to match the pull of
11447ec3e673SRob Clark	 * the Bluetooth module.
11457ec3e673SRob Clark	 */
11467ec3e673SRob Clark	bias-pull-down;
11477ec3e673SRob Clark};
11487ec3e673SRob Clark
11492f0300a6SKrzysztof Kozlowski&qup_uart3_rts {
11502f0300a6SKrzysztof Kozlowski	/* We'll drive RTS, so no pull */
11517ec3e673SRob Clark	drive-strength = <2>;
11527ec3e673SRob Clark	bias-disable;
11537ec3e673SRob Clark};
11547ec3e673SRob Clark
11552f0300a6SKrzysztof Kozlowski&qup_uart3_tx {
11562f0300a6SKrzysztof Kozlowski	/* We'll drive TX, so no pull */
11572f0300a6SKrzysztof Kozlowski	drive-strength = <2>;
11582f0300a6SKrzysztof Kozlowski	bias-disable;
11592f0300a6SKrzysztof Kozlowski};
11602f0300a6SKrzysztof Kozlowski
11612f0300a6SKrzysztof Kozlowski&qup_uart3_rx {
11627ec3e673SRob Clark	/*
11637ec3e673SRob Clark	 * Configure a pull-up on RX. This is needed to avoid
11647ec3e673SRob Clark	 * garbage data when the TX pin of the Bluetooth module is
11657ec3e673SRob Clark	 * in tri-state (module powered off or not driving the
11667ec3e673SRob Clark	 * signal yet).
11677ec3e673SRob Clark	 */
11687ec3e673SRob Clark	bias-pull-up;
11697ec3e673SRob Clark};
11707ec3e673SRob Clark
11712f0300a6SKrzysztof Kozlowski&qup_uart8_tx {
11727ec3e673SRob Clark	drive-strength = <2>;
11737ec3e673SRob Clark	bias-disable;
11747ec3e673SRob Clark};
11757ec3e673SRob Clark
11762f0300a6SKrzysztof Kozlowski&qup_uart8_rx {
11777ec3e673SRob Clark	drive-strength = <2>;
11787ec3e673SRob Clark	bias-pull-up;
11797ec3e673SRob Clark};
11807ec3e673SRob Clark
1181b4b2c20dSDouglas Anderson&sec_mi2s_active {
1182b4b2c20dSDouglas Anderson	drive-strength = <2>;
1183b4b2c20dSDouglas Anderson	bias-pull-down;
1184b4b2c20dSDouglas Anderson};
1185b4b2c20dSDouglas Anderson
11867ec3e673SRob Clark/* PINCTRL - board-specific pinctrl */
11877ec3e673SRob Clark
1188ea25d61bSMarijn Suijten&pm6150_gpios {
11897ec3e673SRob Clark	status = "disabled"; /* No GPIOs are connected */
11907ec3e673SRob Clark};
11917ec3e673SRob Clark
1192ea25d61bSMarijn Suijten&pm6150l_gpios {
11937ec3e673SRob Clark	gpio-line-names = "AP_SUSPEND",
11947ec3e673SRob Clark			  "",
11957ec3e673SRob Clark			  "",
11967ec3e673SRob Clark			  "",
11977ec3e673SRob Clark			  "",
11987ec3e673SRob Clark			  "",
11997ec3e673SRob Clark			  "",
12007ec3e673SRob Clark			  "",
12017ec3e673SRob Clark			  "",
12027ec3e673SRob Clark			  "",
12037ec3e673SRob Clark			  "",
12047ec3e673SRob Clark			  "";
12057ec3e673SRob Clark};
12067ec3e673SRob Clark
12077ec3e673SRob Clark&tlmm {
12087ec3e673SRob Clark	/*
12097ec3e673SRob Clark	 * pinctrl settings for pins that have no real owners.
12107ec3e673SRob Clark	 */
12117ec3e673SRob Clark	pinctrl-names = "default";
12127ec3e673SRob Clark	pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>;
12137ec3e673SRob Clark
12142f0300a6SKrzysztof Kozlowski	amp_en: amp-en-state {
12157ec3e673SRob Clark		pins = "gpio23";
12167ec3e673SRob Clark		function = "gpio";
12177ec3e673SRob Clark		bias-pull-down;
12187ec3e673SRob Clark	};
12197ec3e673SRob Clark
12202f0300a6SKrzysztof Kozlowski	ap_ec_int_l: ap-ec-int-l-state {
12217ec3e673SRob Clark		pins = "gpio94";
12227ec3e673SRob Clark		function = "gpio";
12237ec3e673SRob Clark		bias-pull-up;
12247ec3e673SRob Clark	};
12257ec3e673SRob Clark
12262f0300a6SKrzysztof Kozlowski	ap_edp_bklten: ap-edp-bklten-state {
12277ec3e673SRob Clark		pins = "gpio12";
12287ec3e673SRob Clark		function = "gpio";
12297ec3e673SRob Clark		drive-strength = <2>;
12307ec3e673SRob Clark		bias-disable;
12317ec3e673SRob Clark
12327ec3e673SRob Clark		/* Force backlight to be disabled to match state at boot. */
12337ec3e673SRob Clark		output-low;
12347ec3e673SRob Clark	};
12357ec3e673SRob Clark
12362f0300a6SKrzysztof Kozlowski	ap_suspend_l_neuter: ap-suspend-l-neuter-state {
12377ec3e673SRob Clark		pins = "gpio27";
12387ec3e673SRob Clark		function = "gpio";
12397ec3e673SRob Clark		bias-disable;
12407ec3e673SRob Clark	};
12417ec3e673SRob Clark
12422f0300a6SKrzysztof Kozlowski	bios_flash_wp_l: bios-flash-wp-l-state {
12437ec3e673SRob Clark		pins = "gpio66";
12447ec3e673SRob Clark		function = "gpio";
12457ec3e673SRob Clark		bias-disable;
12467ec3e673SRob Clark	};
12477ec3e673SRob Clark
12482f0300a6SKrzysztof Kozlowski	edp_brij_en: edp-brij-en-state {
12497ec3e673SRob Clark		pins = "gpio104";
12507ec3e673SRob Clark		function = "gpio";
12517ec3e673SRob Clark		drive-strength = <2>;
12527ec3e673SRob Clark		bias-disable;
12537ec3e673SRob Clark	};
12547ec3e673SRob Clark
12552f0300a6SKrzysztof Kozlowski	en_pp3300_codec: en-pp3300-codec-state {
12567ec3e673SRob Clark		pins = "gpio83";
12577ec3e673SRob Clark		function = "gpio";
12587ec3e673SRob Clark		drive-strength = <2>;
12597ec3e673SRob Clark		bias-disable;
12607ec3e673SRob Clark	};
12617ec3e673SRob Clark
12622f0300a6SKrzysztof Kozlowski	en_pp3300_dx_edp: en-pp3300-dx-edp-state {
12637ec3e673SRob Clark		pins = "gpio30";
12647ec3e673SRob Clark		function = "gpio";
12657ec3e673SRob Clark		drive-strength = <2>;
12667ec3e673SRob Clark		bias-disable;
12677ec3e673SRob Clark	};
12687ec3e673SRob Clark
12692f0300a6SKrzysztof Kozlowski	en_pp3300_hub: en-pp3300-hub-state {
1270066c2a94SMatthias Kaehlcke		pins = "gpio84";
1271066c2a94SMatthias Kaehlcke		function = "gpio";
1272066c2a94SMatthias Kaehlcke		drive-strength = <2>;
1273066c2a94SMatthias Kaehlcke		bias-disable;
1274066c2a94SMatthias Kaehlcke	};
1275066c2a94SMatthias Kaehlcke
12769ec68feaSStephen Boyd	fp_rst_l: fp-rst-l-state {
12779ec68feaSStephen Boyd		pins = "gpio22";
12789ec68feaSStephen Boyd		function = "gpio";
12799ec68feaSStephen Boyd		bias-disable;
12809ec68feaSStephen Boyd		drive-strength = <2>;
12819ec68feaSStephen Boyd	};
12829ec68feaSStephen Boyd
12832f0300a6SKrzysztof Kozlowski	fp_to_ap_irq_l: fp-to-ap-irq-l-state {
12847ec3e673SRob Clark		pins = "gpio4";
12857ec3e673SRob Clark		function = "gpio";
12867ec3e673SRob Clark
12877ec3e673SRob Clark		/* Has external pullup */
12887ec3e673SRob Clark		bias-disable;
12897ec3e673SRob Clark	};
12907ec3e673SRob Clark
12919ec68feaSStephen Boyd	fpmcu_boot0: fpmcu-boot0-state {
12929ec68feaSStephen Boyd		pins = "gpio10";
12939ec68feaSStephen Boyd		function = "gpio";
12949ec68feaSStephen Boyd		bias-disable;
12959ec68feaSStephen Boyd	};
12969ec68feaSStephen Boyd
12972f0300a6SKrzysztof Kozlowski	h1_ap_int_odl: h1-ap-int-odl-state {
12987ec3e673SRob Clark		pins = "gpio42";
12997ec3e673SRob Clark		function = "gpio";
13007ec3e673SRob Clark		bias-pull-up;
13017ec3e673SRob Clark	};
13027ec3e673SRob Clark
13032f0300a6SKrzysztof Kozlowski	hp_irq: hp-irq-state {
13047ec3e673SRob Clark		pins = "gpio28";
13057ec3e673SRob Clark		function = "gpio";
13067ec3e673SRob Clark		bias-pull-up;
13077ec3e673SRob Clark	};
13087ec3e673SRob Clark
13092f0300a6SKrzysztof Kozlowski	pen_irq_l: pen-irq-l-state {
13107ec3e673SRob Clark		pins = "gpio21";
13117ec3e673SRob Clark		function = "gpio";
13127ec3e673SRob Clark
13137ec3e673SRob Clark		/* Has external pullup */
13147ec3e673SRob Clark		bias-disable;
13157ec3e673SRob Clark	};
13167ec3e673SRob Clark
13172f0300a6SKrzysztof Kozlowski	pen_pdct_l: pen-pdct-l-state-state {
13187ec3e673SRob Clark		pins = "gpio52";
13197ec3e673SRob Clark		function = "gpio";
13207ec3e673SRob Clark
13217ec3e673SRob Clark		/* Has external pullup */
13227ec3e673SRob Clark		bias-disable;
13237ec3e673SRob Clark	};
13247ec3e673SRob Clark
13252f0300a6SKrzysztof Kozlowski	pen_rst_odl: pen-rst-odl-state {
13267ec3e673SRob Clark		pins = "gpio18";
13277ec3e673SRob Clark		function = "gpio";
13287ec3e673SRob Clark		bias-disable;
13297ec3e673SRob Clark		drive-strength = <2>;
13307ec3e673SRob Clark
13317ec3e673SRob Clark		/*
13327ec3e673SRob Clark		 * The pen driver doesn't currently support
13337ec3e673SRob Clark		 * driving this reset line.  By specifying
13347ec3e673SRob Clark		 * output-high here we're relying on the fact
13357ec3e673SRob Clark		 * that this pin has a default pulldown at boot
13367ec3e673SRob Clark		 * (which makes sure the pen was in reset if it
13377ec3e673SRob Clark		 * was powered) and then we set it high here to
13387ec3e673SRob Clark		 * take it out of reset.  Better would be if the
13397ec3e673SRob Clark		 * pen driver could control this and we could
13407ec3e673SRob Clark		 * remove "output-high" here.
13417ec3e673SRob Clark		 */
13427ec3e673SRob Clark		output-high; /* TODO: Remove this? */
13437ec3e673SRob Clark	};
13447ec3e673SRob Clark
13452f0300a6SKrzysztof Kozlowski	p_sensor_int_l: p-sensor-int-l-state {
13467ec3e673SRob Clark		pins = "gpio24";
13477ec3e673SRob Clark		function = "gpio";
13487ec3e673SRob Clark
1349d5276bfaSStephen Boyd		/* Has external pullup */
1350d5276bfaSStephen Boyd		bias-disable;
13517ec3e673SRob Clark	};
13527ec3e673SRob Clark
1353ab752f03SDouglas Anderson	qspi_sleep: qspi-sleep-state {
1354ab752f03SDouglas Anderson		pins = "gpio63", "gpio64", "gpio65", "gpio68";
1355ab752f03SDouglas Anderson
1356ab752f03SDouglas Anderson		/*
1357ab752f03SDouglas Anderson		 * When we're not actively transferring we want pins as GPIOs
1358ab752f03SDouglas Anderson		 * with output disabled so that the quad SPI IP block stops
1359ab752f03SDouglas Anderson		 * driving them. We rely on the normal pulls configured in
1360ab752f03SDouglas Anderson		 * the active state and don't redefine them here. Also note
1361ab752f03SDouglas Anderson		 * that we don't need the reverse (output-enable) in the
1362ab752f03SDouglas Anderson		 * normal mode since the "output-enable" only matters for
1363ab752f03SDouglas Anderson		 * GPIO function.
1364ab752f03SDouglas Anderson		 */
1365ab752f03SDouglas Anderson		function = "gpio";
1366ab752f03SDouglas Anderson		output-disable;
1367ab752f03SDouglas Anderson	};
1368ab752f03SDouglas Anderson
13692f0300a6SKrzysztof Kozlowski	qup_uart3_sleep: qup-uart3-sleep-state {
13702f0300a6SKrzysztof Kozlowski		cts-pins {
13714e0a3e04Ssatya priya			/*
13724e0a3e04Ssatya priya			 * Configure a pull-down on CTS to match the pull of
13734e0a3e04Ssatya priya			 * the Bluetooth module.
13744e0a3e04Ssatya priya			 */
13754e0a3e04Ssatya priya			pins = "gpio38";
13762f0300a6SKrzysztof Kozlowski			function = "gpio";
13774e0a3e04Ssatya priya			bias-pull-down;
13784e0a3e04Ssatya priya		};
13794e0a3e04Ssatya priya
13802f0300a6SKrzysztof Kozlowski		rts-pins {
13814e0a3e04Ssatya priya			/*
13824e0a3e04Ssatya priya			 * Configure pull-down on RTS. As RTS is active low
13834e0a3e04Ssatya priya			 * signal, pull it low to indicate the BT SoC that it
13844e0a3e04Ssatya priya			 * can wakeup the system anytime from suspend state by
13854e0a3e04Ssatya priya			 * pulling RX low (by sending wakeup bytes).
13864e0a3e04Ssatya priya			 */
13874e0a3e04Ssatya priya			pins = "gpio39";
13882f0300a6SKrzysztof Kozlowski			function = "gpio";
13894e0a3e04Ssatya priya			bias-pull-down;
13904e0a3e04Ssatya priya		};
13914e0a3e04Ssatya priya
13922f0300a6SKrzysztof Kozlowski		tx-pins {
13934e0a3e04Ssatya priya			/*
13944e0a3e04Ssatya priya			 * Configure pull-up on TX when it isn't actively driven
13954e0a3e04Ssatya priya			 * to prevent BT SoC from receiving garbage during sleep.
13964e0a3e04Ssatya priya			 */
13974e0a3e04Ssatya priya			pins = "gpio40";
13982f0300a6SKrzysztof Kozlowski			function = "gpio";
13994e0a3e04Ssatya priya			bias-pull-up;
14004e0a3e04Ssatya priya		};
14014e0a3e04Ssatya priya
14022f0300a6SKrzysztof Kozlowski		rx-pins {
14034e0a3e04Ssatya priya			/*
14044e0a3e04Ssatya priya			 * Configure a pull-up on RX. This is needed to avoid
14054e0a3e04Ssatya priya			 * garbage data when the TX pin of the Bluetooth module
14064e0a3e04Ssatya priya			 * is floating which may cause spurious wakeups.
14074e0a3e04Ssatya priya			 */
14084e0a3e04Ssatya priya			pins = "gpio41";
14092f0300a6SKrzysztof Kozlowski			function = "gpio";
14104e0a3e04Ssatya priya			bias-pull-up;
14114e0a3e04Ssatya priya		};
14124e0a3e04Ssatya priya	};
14134e0a3e04Ssatya priya
1414ce250024SDouglas Anderson	/* Named trackpad_int_1v8_odl on earlier revision schematics */
1415ce250024SDouglas Anderson	trackpad_int_1v8_odl:
14162f0300a6SKrzysztof Kozlowski	tp_int_odl: tp-int-odl-state {
1417ce250024SDouglas Anderson		pins = "gpio0";
14187ec3e673SRob Clark		function = "gpio";
14197ec3e673SRob Clark
14207ec3e673SRob Clark		/* Has external pullup */
14217ec3e673SRob Clark		bias-disable;
14227ec3e673SRob Clark	};
14237ec3e673SRob Clark
14242f0300a6SKrzysztof Kozlowski	ts_int_l: ts-int-l-state {
14257ec3e673SRob Clark		pins = "gpio9";
14267ec3e673SRob Clark		function = "gpio";
14277ec3e673SRob Clark		bias-pull-up;
14287ec3e673SRob Clark	};
14297ec3e673SRob Clark
14302f0300a6SKrzysztof Kozlowski	ts_reset_l: ts-reset-l-state {
14317ec3e673SRob Clark		pins = "gpio8";
14327ec3e673SRob Clark		function = "gpio";
14337ec3e673SRob Clark		bias-disable;
14349506a366SDouglas Anderson
14359506a366SDouglas Anderson		/*
14369506a366SDouglas Anderson		 * The reset GPIO to the touchscreen takes almost 2ms to drop
14379506a366SDouglas Anderson		 * at the default drive strength. When we bump it up to 8mA it
14389506a366SDouglas Anderson		 * falls in under 500us. We want this to be fast since the Elan
14399506a366SDouglas Anderson		 * datasheet (and any drivers written based on it) talk about using
14409506a366SDouglas Anderson		 * a 500 us reset pulse.
14419506a366SDouglas Anderson		 */
14429506a366SDouglas Anderson		drive-strength = <8>;
14437ec3e673SRob Clark	};
1444c8d6f8e5SSujit Kautkar
14452f0300a6SKrzysztof Kozlowski	sdc1_on: sdc1-on-state {
14462f0300a6SKrzysztof Kozlowski		clk-pins {
1447c8d6f8e5SSujit Kautkar			pins = "sdc1_clk";
1448c8d6f8e5SSujit Kautkar			bias-disable;
1449c8d6f8e5SSujit Kautkar			drive-strength = <16>;
1450c8d6f8e5SSujit Kautkar		};
1451c8d6f8e5SSujit Kautkar
14522f0300a6SKrzysztof Kozlowski		cmd-pins {
1453c8d6f8e5SSujit Kautkar			pins = "sdc1_cmd";
1454c8d6f8e5SSujit Kautkar			bias-pull-up;
1455752432e4SShaik Sajida Bhanu			drive-strength = <16>;
1456c8d6f8e5SSujit Kautkar		};
1457c8d6f8e5SSujit Kautkar
14582f0300a6SKrzysztof Kozlowski		data-pins {
1459c8d6f8e5SSujit Kautkar			pins = "sdc1_data";
1460c8d6f8e5SSujit Kautkar			bias-pull-up;
1461752432e4SShaik Sajida Bhanu			drive-strength = <16>;
1462c8d6f8e5SSujit Kautkar		};
1463c8d6f8e5SSujit Kautkar
14642f0300a6SKrzysztof Kozlowski		rclk-pins {
1465c8d6f8e5SSujit Kautkar			pins = "sdc1_rclk";
1466c8d6f8e5SSujit Kautkar			bias-pull-down;
1467c8d6f8e5SSujit Kautkar		};
1468c8d6f8e5SSujit Kautkar	};
1469c8d6f8e5SSujit Kautkar
14702f0300a6SKrzysztof Kozlowski	sdc1_off: sdc1-off-state {
14712f0300a6SKrzysztof Kozlowski		clk-pins {
1472c8d6f8e5SSujit Kautkar			pins = "sdc1_clk";
1473c8d6f8e5SSujit Kautkar			bias-disable;
1474c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1475c8d6f8e5SSujit Kautkar		};
1476c8d6f8e5SSujit Kautkar
14772f0300a6SKrzysztof Kozlowski		cmd-pins {
1478c8d6f8e5SSujit Kautkar			pins = "sdc1_cmd";
1479c8d6f8e5SSujit Kautkar			bias-pull-up;
1480c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1481c8d6f8e5SSujit Kautkar		};
1482c8d6f8e5SSujit Kautkar
14832f0300a6SKrzysztof Kozlowski		data-pins {
1484c8d6f8e5SSujit Kautkar			pins = "sdc1_data";
1485c8d6f8e5SSujit Kautkar			bias-pull-up;
1486c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1487c8d6f8e5SSujit Kautkar		};
1488c8d6f8e5SSujit Kautkar
14892f0300a6SKrzysztof Kozlowski		rclk-pins {
1490c8d6f8e5SSujit Kautkar			pins = "sdc1_rclk";
1491c8d6f8e5SSujit Kautkar			bias-pull-down;
1492c8d6f8e5SSujit Kautkar		};
1493c8d6f8e5SSujit Kautkar	};
1494c8d6f8e5SSujit Kautkar
14952f0300a6SKrzysztof Kozlowski	sdc2_on: sdc2-on-state {
14962f0300a6SKrzysztof Kozlowski		clk-pins {
1497c8d6f8e5SSujit Kautkar			pins = "sdc2_clk";
1498c8d6f8e5SSujit Kautkar			bias-disable;
1499c8d6f8e5SSujit Kautkar			drive-strength = <16>;
1500c8d6f8e5SSujit Kautkar		};
1501c8d6f8e5SSujit Kautkar
15022f0300a6SKrzysztof Kozlowski		cmd-pins {
1503c8d6f8e5SSujit Kautkar			pins = "sdc2_cmd";
1504c8d6f8e5SSujit Kautkar			bias-pull-up;
1505c8d6f8e5SSujit Kautkar			drive-strength = <10>;
1506c8d6f8e5SSujit Kautkar		};
1507c8d6f8e5SSujit Kautkar
15082f0300a6SKrzysztof Kozlowski		data-pins {
1509c8d6f8e5SSujit Kautkar			pins = "sdc2_data";
1510c8d6f8e5SSujit Kautkar			bias-pull-up;
1511c8d6f8e5SSujit Kautkar			drive-strength = <10>;
1512c8d6f8e5SSujit Kautkar		};
1513c8d6f8e5SSujit Kautkar
15142f0300a6SKrzysztof Kozlowski		sd-cd-pins {
1515c8d6f8e5SSujit Kautkar			pins = "gpio69";
15162f0300a6SKrzysztof Kozlowski			function = "gpio";
1517c8d6f8e5SSujit Kautkar			bias-pull-up;
1518c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1519c8d6f8e5SSujit Kautkar		};
1520c8d6f8e5SSujit Kautkar	};
1521c8d6f8e5SSujit Kautkar
15222f0300a6SKrzysztof Kozlowski	sdc2_off: sdc2-off-state {
15232f0300a6SKrzysztof Kozlowski		clk-pins {
1524c8d6f8e5SSujit Kautkar			pins = "sdc2_clk";
1525c8d6f8e5SSujit Kautkar			bias-disable;
1526c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1527c8d6f8e5SSujit Kautkar		};
1528c8d6f8e5SSujit Kautkar
15292f0300a6SKrzysztof Kozlowski		cmd-pins {
1530c8d6f8e5SSujit Kautkar			pins = "sdc2_cmd";
1531c8d6f8e5SSujit Kautkar			bias-pull-up;
1532c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1533c8d6f8e5SSujit Kautkar		};
1534c8d6f8e5SSujit Kautkar
15352f0300a6SKrzysztof Kozlowski		data-pins {
1536c8d6f8e5SSujit Kautkar			pins = "sdc2_data";
1537c8d6f8e5SSujit Kautkar			bias-pull-up;
1538c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1539c8d6f8e5SSujit Kautkar		};
1540c8d6f8e5SSujit Kautkar
15412f0300a6SKrzysztof Kozlowski		sd-cd-pins {
1542c8d6f8e5SSujit Kautkar			pins = "gpio69";
15432f0300a6SKrzysztof Kozlowski			function = "gpio";
154471208cd4SSujit Kautkar			bias-pull-up;
1545c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1546c8d6f8e5SSujit Kautkar		};
1547c8d6f8e5SSujit Kautkar	};
1548bb59462eSStephen Boyd
15492f0300a6SKrzysztof Kozlowski	uf_cam_en: uf-cam-en-state {
1550bb59462eSStephen Boyd		pins = "gpio6";
1551bb59462eSStephen Boyd		function = "gpio";
1552bb59462eSStephen Boyd		drive-strength = <2>;
15532f0300a6SKrzysztof Kozlowski
1554bb59462eSStephen Boyd		/* External pull down */
1555bb59462eSStephen Boyd		bias-disable;
1556bb59462eSStephen Boyd	};
1557bb59462eSStephen Boyd
15582f0300a6SKrzysztof Kozlowski	wf_cam_en: wf-cam-en-state {
1559bb59462eSStephen Boyd		pins = "gpio7";
1560bb59462eSStephen Boyd		function = "gpio";
1561bb59462eSStephen Boyd		drive-strength = <2>;
15622f0300a6SKrzysztof Kozlowski
1563bb59462eSStephen Boyd		/* External pull down */
1564bb59462eSStephen Boyd		bias-disable;
1565bb59462eSStephen Boyd	};
1566bb59462eSStephen Boyd};
1567