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 {
24bb06eb36SAntony Wang			polling-delay-passive = <0>;
25bb06eb36SAntony Wang			polling-delay = <0>;
26bb06eb36SAntony Wang
27e4ffe8d5SMatthias Kaehlcke			thermal-sensors = <&pm6150_adc_tm 0>;
28bb06eb36SAntony Wang
29bb06eb36SAntony Wang			trips {
3038f3267dSMatthias Kaehlcke				charger-crit {
31bb06eb36SAntony Wang					temperature = <125000>;
32bb06eb36SAntony Wang					hysteresis = <1000>;
33bb06eb36SAntony Wang					type = "critical";
34bb06eb36SAntony Wang				};
35bb06eb36SAntony Wang			};
36bb06eb36SAntony Wang		};
37bb06eb36SAntony Wang	};
3838f3267dSMatthias Kaehlcke};
39bb06eb36SAntony Wang
407ec3e673SRob Clark/*
417ec3e673SRob Clark * Reserved memory changes
427ec3e673SRob Clark *
437ec3e673SRob Clark * Delete all unused memory nodes and define the peripheral memory regions
447ec3e673SRob Clark * required by the board dts.
457ec3e673SRob Clark */
467ec3e673SRob Clark
477ec3e673SRob Clark/delete-node/ &hyp_mem;
48e6041464SStephen Boyd/delete-node/ &ipa_fw_mem;
497ec3e673SRob Clark/delete-node/ &xbl_mem;
507ec3e673SRob Clark/delete-node/ &aop_mem;
517ec3e673SRob Clark/delete-node/ &sec_apps_mem;
527ec3e673SRob Clark/delete-node/ &tz_mem;
537ec3e673SRob Clark
547ec3e673SRob Clark/* Increase the size from 2MB to 8MB */
557ec3e673SRob Clark&rmtfs_mem {
56f66965b0SSujit Kautkar	reg = <0x0 0x94600000 0x0 0x800000>;
577ec3e673SRob Clark};
587ec3e673SRob Clark
597ec3e673SRob Clark/ {
607ec3e673SRob Clark	reserved-memory {
617ec3e673SRob Clark		atf_mem: memory@80b00000 {
627ec3e673SRob Clark			reg = <0x0 0x80b00000 0x0 0x100000>;
637ec3e673SRob Clark			no-map;
647ec3e673SRob Clark		};
657ec3e673SRob Clark
667ec3e673SRob Clark		mpss_mem: memory@86000000 {
67ef9a5d18SSibi Sankar			reg = <0x0 0x86000000 0x0 0x2000000>;
687ec3e673SRob Clark			no-map;
697ec3e673SRob Clark		};
707ec3e673SRob Clark
717ec3e673SRob Clark		venus_mem: memory@8f600000 {
727ec3e673SRob Clark			reg = <0 0x8f600000 0 0x500000>;
737ec3e673SRob Clark			no-map;
747ec3e673SRob Clark		};
757ec3e673SRob Clark
767ec3e673SRob Clark		wlan_mem: memory@94100000 {
777ec3e673SRob Clark			reg = <0x0 0x94100000 0x0 0x200000>;
787ec3e673SRob Clark			no-map;
797ec3e673SRob Clark		};
807ec3e673SRob Clark
817ec3e673SRob Clark		mba_mem: memory@94400000 {
827ec3e673SRob Clark			reg = <0x0 0x94400000 0x0 0x200000>;
837ec3e673SRob Clark			no-map;
847ec3e673SRob Clark		};
85cb0eaae8SSibi Sankar
86cb0eaae8SSibi Sankar		mdata_mem: mpss-metadata {
87cb0eaae8SSibi Sankar			alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>;
88cb0eaae8SSibi Sankar			size = <0x0 0x4000>;
89cb0eaae8SSibi Sankar			no-map;
90cb0eaae8SSibi Sankar		};
917ec3e673SRob Clark	};
927ec3e673SRob Clark
937ec3e673SRob Clark	aliases {
947ec3e673SRob Clark		bluetooth0 = &bluetooth;
957ec3e673SRob Clark		hsuart0 = &uart3;
967ec3e673SRob Clark		serial0 = &uart8;
977ec3e673SRob Clark		wifi0 = &wifi;
987ec3e673SRob Clark	};
997ec3e673SRob Clark
1007ec3e673SRob Clark	chosen {
1017ec3e673SRob Clark		stdout-path = "serial0:115200n8";
1027ec3e673SRob Clark	};
1037ec3e673SRob Clark
1047ec3e673SRob Clark	/* FIXED REGULATORS - parents above children */
1057ec3e673SRob Clark
1067ec3e673SRob Clark	/* This is the top level supply and variable voltage */
1077ec3e673SRob Clark	ppvar_sys: ppvar-sys-regulator {
1087ec3e673SRob Clark		compatible = "regulator-fixed";
1097ec3e673SRob Clark		regulator-name = "ppvar_sys";
1107ec3e673SRob Clark		regulator-always-on;
1117ec3e673SRob Clark		regulator-boot-on;
1127ec3e673SRob Clark	};
1137ec3e673SRob Clark
1147ec3e673SRob Clark	/* This divides ppvar_sys by 2, so voltage is variable */
1157ec3e673SRob Clark	src_vph_pwr: src-vph-pwr-regulator {
1167ec3e673SRob Clark		compatible = "regulator-fixed";
1177ec3e673SRob Clark		regulator-name = "src_vph_pwr";
1187ec3e673SRob Clark
1197ec3e673SRob Clark		/* EC turns on with switchcap_on; always on for AP */
1207ec3e673SRob Clark		regulator-always-on;
1217ec3e673SRob Clark		regulator-boot-on;
1227ec3e673SRob Clark
1237ec3e673SRob Clark		vin-supply = <&ppvar_sys>;
1247ec3e673SRob Clark	};
1257ec3e673SRob Clark
1267ec3e673SRob Clark	pp5000_a: pp5000-a-regulator {
1277ec3e673SRob Clark		compatible = "regulator-fixed";
1287ec3e673SRob Clark		regulator-name = "pp5000_a";
1297ec3e673SRob Clark
1307ec3e673SRob Clark		/* EC turns on with en_pp5000_a; always on for AP */
1317ec3e673SRob Clark		regulator-always-on;
1327ec3e673SRob Clark		regulator-boot-on;
1337ec3e673SRob Clark		regulator-min-microvolt = <5000000>;
1347ec3e673SRob Clark		regulator-max-microvolt = <5000000>;
1357ec3e673SRob Clark
1367ec3e673SRob Clark		vin-supply = <&ppvar_sys>;
1377ec3e673SRob Clark	};
1387ec3e673SRob Clark
1397ec3e673SRob Clark	pp3300_a: pp3300-a-regulator {
1407ec3e673SRob Clark		compatible = "regulator-fixed";
1417ec3e673SRob Clark		regulator-name = "pp3300_a";
1427ec3e673SRob Clark
1437ec3e673SRob Clark		/* EC turns on with en_pp3300_a; always on for AP */
1447ec3e673SRob Clark		regulator-always-on;
1457ec3e673SRob Clark		regulator-boot-on;
1467ec3e673SRob Clark		regulator-min-microvolt = <3300000>;
1477ec3e673SRob Clark		regulator-max-microvolt = <3300000>;
1487ec3e673SRob Clark
1497ec3e673SRob Clark		/*
1507ec3e673SRob Clark		 * Actually should be pp3300 but that's practically an alias for
1517ec3e673SRob Clark		 * pp3300_a so we use pp3300's vin-supply here to avoid one more
1527ec3e673SRob Clark		 * node.
1537ec3e673SRob Clark		 */
1547ec3e673SRob Clark		vin-supply = <&ppvar_sys>;
1557ec3e673SRob Clark	};
1567ec3e673SRob Clark
157bb59462eSStephen Boyd	pp1800_ec:
158bb59462eSStephen Boyd	pp1800_sensors:
159bb59462eSStephen Boyd	pp1800_ldo: pp1800-ldo-regulator {
160bb59462eSStephen Boyd		compatible = "regulator-fixed";
161bb59462eSStephen Boyd		regulator-name = "pp1800_ldo";
162bb59462eSStephen Boyd
163bb59462eSStephen Boyd		/* EC turns on with hibernate_l; always on for AP */
164bb59462eSStephen Boyd		regulator-always-on;
165bb59462eSStephen Boyd		regulator-boot-on;
166bb59462eSStephen Boyd		regulator-min-microvolt = <1800000>;
167bb59462eSStephen Boyd		regulator-max-microvolt = <1800000>;
168bb59462eSStephen Boyd
169bb59462eSStephen Boyd		/*
170bb59462eSStephen Boyd		 * Actually should be pp1800_h1 but we don't have any need to
171bb59462eSStephen Boyd		 * model that so we use the parent of pp1800_h1.
172bb59462eSStephen Boyd		 */
173bb59462eSStephen Boyd		vin-supply = <&pp3300_a>;
174bb59462eSStephen Boyd	};
175bb59462eSStephen Boyd
176bb59462eSStephen Boyd	pp1800_uf_cam: pp1800-uf-cam-regulator {
177bb59462eSStephen Boyd		compatible = "regulator-fixed";
178bb59462eSStephen Boyd		regulator-name = "pp1800_uf_cam";
179bb59462eSStephen Boyd		status = "disabled";
180bb59462eSStephen Boyd
181bb59462eSStephen Boyd		regulator-min-microvolt = <1800000>;
182bb59462eSStephen Boyd		regulator-max-microvolt = <1800000>;
183bb59462eSStephen Boyd
184bb59462eSStephen Boyd		gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
185bb59462eSStephen Boyd		enable-active-high;
186bb59462eSStephen Boyd		pinctrl-names = "default";
187bb59462eSStephen Boyd		pinctrl-0 = <&uf_cam_en>;
188bb59462eSStephen Boyd
189bb59462eSStephen Boyd		vin-supply = <&pp1800_ldo>;
190bb59462eSStephen Boyd		regulator-enable-ramp-delay = <1000>;
191bb59462eSStephen Boyd	};
192bb59462eSStephen Boyd
193bb59462eSStephen Boyd	pp1800_wf_cam: pp1800-wf-cam-regulator {
194bb59462eSStephen Boyd		compatible = "regulator-fixed";
195bb59462eSStephen Boyd		regulator-name = "pp1800_wf_cam";
196bb59462eSStephen Boyd		status = "disabled";
197bb59462eSStephen Boyd
198bb59462eSStephen Boyd		regulator-min-microvolt = <1800000>;
199bb59462eSStephen Boyd		regulator-max-microvolt = <1800000>;
200bb59462eSStephen Boyd
201bb59462eSStephen Boyd		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
202bb59462eSStephen Boyd		enable-active-high;
203bb59462eSStephen Boyd		pinctrl-names = "default";
204bb59462eSStephen Boyd		pinctrl-0 = <&wf_cam_en>;
205bb59462eSStephen Boyd
206bb59462eSStephen Boyd		vin-supply = <&pp1800_ldo>;
207bb59462eSStephen Boyd		regulator-enable-ramp-delay = <1000>;
208bb59462eSStephen Boyd	};
209bb59462eSStephen Boyd
210bb59462eSStephen Boyd	pp2800_uf_cam: pp2800-uf-cam-regulator {
211bb59462eSStephen Boyd		compatible = "regulator-fixed";
212bb59462eSStephen Boyd		regulator-name = "pp2800_uf_cam";
213bb59462eSStephen Boyd		status = "disabled";
214bb59462eSStephen Boyd
215bb59462eSStephen Boyd		regulator-min-microvolt = <2850000>;
216bb59462eSStephen Boyd		regulator-max-microvolt = <2850000>;
217bb59462eSStephen Boyd
218bb59462eSStephen Boyd		gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
219bb59462eSStephen Boyd		enable-active-high;
220bb59462eSStephen Boyd		/*
221bb59462eSStephen Boyd		 * The pinconf can only be referenced once so we put it on the
222bb59462eSStephen Boyd		 * first regulator and comment it out here.
223bb59462eSStephen Boyd		 * pinctrl-names = "default";
224bb59462eSStephen Boyd		 * pinctrl-0 = <&uf_cam_en>;
225bb59462eSStephen Boyd		 */
226bb59462eSStephen Boyd
227bb59462eSStephen Boyd		vin-supply = <&pp3300_a>;
228bb59462eSStephen Boyd	};
229bb59462eSStephen Boyd
230bb59462eSStephen Boyd	pp2800_vcm_wf_cam:
231bb59462eSStephen Boyd	pp2800_wf_cam: pp2800-wf-cam-regulator {
232bb59462eSStephen Boyd		compatible = "regulator-fixed";
233bb59462eSStephen Boyd		regulator-name = "pp2800_wf_cam";
234bb59462eSStephen Boyd		status = "disabled";
235bb59462eSStephen Boyd
236bb59462eSStephen Boyd		regulator-min-microvolt = <2850000>;
237bb59462eSStephen Boyd		regulator-max-microvolt = <2850000>;
238bb59462eSStephen Boyd
239bb59462eSStephen Boyd		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
240bb59462eSStephen Boyd		enable-active-high;
241bb59462eSStephen Boyd		/*
242bb59462eSStephen Boyd		 * The pinconf can only be referenced once so we put it on the
243bb59462eSStephen Boyd		 * first regulator and comment it out here.
244bb59462eSStephen Boyd		 * pinctrl-names = "default";
245bb59462eSStephen Boyd		 * pinctrl-0 = <&wf_cam_en>;
246bb59462eSStephen Boyd		 */
247bb59462eSStephen Boyd
248bb59462eSStephen Boyd		vin-supply = <&pp3300_a>;
249bb59462eSStephen Boyd	};
250bb59462eSStephen Boyd
2517ec3e673SRob Clark	pp3300_audio:
2527ec3e673SRob Clark	pp3300_codec: pp3300-codec-regulator {
2537ec3e673SRob Clark		compatible = "regulator-fixed";
2547ec3e673SRob Clark		regulator-name = "pp3300_codec";
2557ec3e673SRob Clark
2567ec3e673SRob Clark		regulator-min-microvolt = <3300000>;
2577ec3e673SRob Clark		regulator-max-microvolt = <3300000>;
2587ec3e673SRob Clark
2597ec3e673SRob Clark		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
2607ec3e673SRob Clark		enable-active-high;
2617ec3e673SRob Clark		pinctrl-names = "default";
2627ec3e673SRob Clark		pinctrl-0 = <&en_pp3300_codec>;
2637ec3e673SRob Clark
2647ec3e673SRob Clark		vin-supply = <&pp3300_a>;
2657ec3e673SRob Clark	};
2667ec3e673SRob Clark
2677ec3e673SRob Clark	pp3300_dx_edp:
2687ec3e673SRob Clark	pp3300_ts: pp3300-dx-edp-regulator {
2697ec3e673SRob Clark		compatible = "regulator-fixed";
2707ec3e673SRob Clark		regulator-name = "pp3300_dx_edp";
2717ec3e673SRob Clark
2727ec3e673SRob Clark		regulator-min-microvolt = <3300000>;
2737ec3e673SRob Clark		regulator-max-microvolt = <3300000>;
2747ec3e673SRob Clark
2757ec3e673SRob Clark		gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
2767ec3e673SRob Clark		enable-active-high;
2777ec3e673SRob Clark		pinctrl-names = "default";
2787ec3e673SRob Clark		pinctrl-0 = <&en_pp3300_dx_edp>;
2797ec3e673SRob Clark
2807ec3e673SRob Clark		vin-supply = <&pp3300_a>;
2817ec3e673SRob Clark	};
2827ec3e673SRob Clark
2837ec3e673SRob Clark	pp3300_fp_tp: pp3300-fp-tp-regulator {
2847ec3e673SRob Clark		compatible = "regulator-fixed";
2857ec3e673SRob Clark		regulator-name = "pp3300_fp_tp";
2867ec3e673SRob Clark
2877ec3e673SRob Clark		regulator-min-microvolt = <3300000>;
2887ec3e673SRob Clark		regulator-max-microvolt = <3300000>;
2897ec3e673SRob Clark
2907ec3e673SRob Clark		/* AP turns on with PP1800_VIO_OUT; always on for AP */
2917ec3e673SRob Clark		regulator-always-on;
2927ec3e673SRob Clark		regulator-boot-on;
2937ec3e673SRob Clark
2947ec3e673SRob Clark		vin-supply = <&pp3300_a>;
2957ec3e673SRob Clark	};
2967ec3e673SRob Clark
297171bac46SDouglas Anderson	pp3300_hub: pp3300-hub-regulator {
298066c2a94SMatthias Kaehlcke		compatible = "regulator-fixed";
299066c2a94SMatthias Kaehlcke		regulator-name = "pp3300_hub";
300066c2a94SMatthias Kaehlcke
301066c2a94SMatthias Kaehlcke		regulator-min-microvolt = <3300000>;
302066c2a94SMatthias Kaehlcke		regulator-max-microvolt = <3300000>;
303066c2a94SMatthias Kaehlcke
304066c2a94SMatthias Kaehlcke		gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>;
305066c2a94SMatthias Kaehlcke		enable-active-high;
306066c2a94SMatthias Kaehlcke		pinctrl-names = "default";
307066c2a94SMatthias Kaehlcke		pinctrl-0 = <&en_pp3300_hub>;
308066c2a94SMatthias Kaehlcke
309a73dd03bSMatthias Kaehlcke		/* The BIOS leaves this regulator on */
310066c2a94SMatthias Kaehlcke		regulator-boot-on;
311066c2a94SMatthias Kaehlcke
312066c2a94SMatthias Kaehlcke		vin-supply = <&pp3300_a>;
313066c2a94SMatthias Kaehlcke	};
314066c2a94SMatthias Kaehlcke
3157ec3e673SRob Clark	/* BOARD-SPECIFIC TOP LEVEL NODES */
3167ec3e673SRob Clark
3177ec3e673SRob Clark	backlight: backlight {
3187ec3e673SRob Clark		compatible = "pwm-backlight";
3197ec3e673SRob Clark
320ab8e32daSAlexandru Stan		/* The panels don't seem to like anything below ~ 5% */
321ab8e32daSAlexandru Stan		brightness-levels = <
322ab8e32daSAlexandru Stan			196 256 324 400 484 576 676 784 900 1024 1156 1296
323ab8e32daSAlexandru Stan			1444 1600 1764 1936 2116 2304 2500 2704 2916 3136
324ab8e32daSAlexandru Stan			3364 3600 3844 4096
325ab8e32daSAlexandru Stan		>;
326ab8e32daSAlexandru Stan		num-interpolated-steps = <64>;
327ab8e32daSAlexandru Stan		default-brightness-level = <951>;
328ab8e32daSAlexandru Stan
3297ec3e673SRob Clark		pwms = <&cros_ec_pwm 1>;
3307ec3e673SRob Clark		enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
3317ec3e673SRob Clark		power-supply = <&ppvar_sys>;
3327ec3e673SRob Clark		pinctrl-names = "default";
3337ec3e673SRob Clark		pinctrl-0 = <&ap_edp_bklten>;
3347ec3e673SRob Clark	};
3357ec3e673SRob Clark
3367ec3e673SRob Clark	gpio_keys: gpio-keys {
3377ec3e673SRob Clark		compatible = "gpio-keys";
3387ec3e673SRob Clark		status = "disabled";
3397ec3e673SRob Clark		pinctrl-names = "default";
3407ec3e673SRob Clark		pinctrl-0 = <&pen_pdct_l>;
3417ec3e673SRob Clark
342b08f5cbdSKrzysztof Kozlowski		pen_insert: switch-pen-insert {
3437ec3e673SRob Clark			label = "Pen Insert";
3447ec3e673SRob Clark
3457ec3e673SRob Clark			/* Insert = low, eject = high */
3467ec3e673SRob Clark			gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
3477ec3e673SRob Clark			linux,code = <SW_PEN_INSERTED>;
3487ec3e673SRob Clark			linux,input-type = <EV_SW>;
3495643caa8SStephen Boyd			wakeup-event-action = <EV_ACT_DEASSERTED>;
3507ec3e673SRob Clark			wakeup-source;
3517ec3e673SRob Clark		};
3527ec3e673SRob Clark	};
3537ec3e673SRob Clark
3544f365c75SJudy Hsiao	max98360a: audio-codec-0 {
3554f365c75SJudy Hsiao		compatible = "maxim,max98360a";
3567ec3e673SRob Clark		pinctrl-names = "default";
3577ec3e673SRob Clark		pinctrl-0 = <&amp_en>;
3587ec3e673SRob Clark		sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;
3597ec3e673SRob Clark		#sound-dai-cells = <0>;
3607ec3e673SRob Clark	};
3617ec3e673SRob Clark
3627ec3e673SRob Clark	pwmleds {
3637ec3e673SRob Clark		compatible = "pwm-leds";
364cb3920b5SKrzysztof Kozlowski		keyboard_backlight: led-0 {
3657ec3e673SRob Clark			status = "disabled";
3667ec3e673SRob Clark			label = "cros_ec::kbd_backlight";
36709143dd2SKrzysztof Kozlowski			function = LED_FUNCTION_KBD_BACKLIGHT;
3687ec3e673SRob Clark			pwms = <&cros_ec_pwm 0>;
3697ec3e673SRob Clark			max-brightness = <1023>;
3707ec3e673SRob Clark		};
3717ec3e673SRob Clark	};
37229bd62eeSAjit Pandey
37329bd62eeSAjit Pandey	sound: sound {
37429bd62eeSAjit Pandey		compatible = "google,sc7180-trogdor";
37529bd62eeSAjit Pandey		model = "sc7180-rt5682-max98357a-1mic";
37629bd62eeSAjit Pandey
37729bd62eeSAjit Pandey		audio-routing =
37829bd62eeSAjit Pandey			"Headphone Jack", "HPOL",
37929bd62eeSAjit Pandey			"Headphone Jack", "HPOR";
38029bd62eeSAjit Pandey
38129bd62eeSAjit Pandey		#address-cells = <1>;
38229bd62eeSAjit Pandey		#size-cells = <0>;
38329bd62eeSAjit Pandey
38429bd62eeSAjit Pandey		dai-link@0 {
38529bd62eeSAjit Pandey			link-name = "MultiMedia0";
38629bd62eeSAjit Pandey			reg = <MI2S_PRIMARY>;
38729bd62eeSAjit Pandey			cpu {
38829bd62eeSAjit Pandey				sound-dai = <&lpass_cpu MI2S_PRIMARY>;
38929bd62eeSAjit Pandey			};
39029bd62eeSAjit Pandey
39129bd62eeSAjit Pandey			sound_multimedia0_codec: codec {
39229bd62eeSAjit Pandey				sound-dai = <&alc5682 0 /* aif1 */>;
39329bd62eeSAjit Pandey			};
39429bd62eeSAjit Pandey		};
39529bd62eeSAjit Pandey
39629bd62eeSAjit Pandey		dai-link@1 {
39729bd62eeSAjit Pandey			link-name = "MultiMedia1";
39829bd62eeSAjit Pandey			reg = <MI2S_SECONDARY>;
39929bd62eeSAjit Pandey			cpu {
40029bd62eeSAjit Pandey				sound-dai = <&lpass_cpu MI2S_SECONDARY>;
40129bd62eeSAjit Pandey			};
40229bd62eeSAjit Pandey
40329bd62eeSAjit Pandey			sound_multimedia1_codec: codec {
4044f365c75SJudy Hsiao				sound-dai = <&max98360a>;
40529bd62eeSAjit Pandey			};
40629bd62eeSAjit Pandey		};
407b22d313eSV Sujith Kumar Reddy
4080a91caceSStephen Boyd		dai-link@5 {
409b22d313eSV Sujith Kumar Reddy			link-name = "MultiMedia2";
4100a91caceSStephen Boyd			reg = <LPASS_DP_RX>;
411b22d313eSV Sujith Kumar Reddy			cpu {
4120a91caceSStephen Boyd				sound-dai = <&lpass_cpu LPASS_DP_RX>;
413b22d313eSV Sujith Kumar Reddy			};
414b22d313eSV Sujith Kumar Reddy
415b22d313eSV Sujith Kumar Reddy			codec {
416b22d313eSV Sujith Kumar Reddy				sound-dai = <&mdss_dp>;
417b22d313eSV Sujith Kumar Reddy			};
418b22d313eSV Sujith Kumar Reddy		};
41929bd62eeSAjit Pandey	};
4207ec3e673SRob Clark};
4217ec3e673SRob Clark
4227ec3e673SRob Clark&qfprom {
4237ec3e673SRob Clark	vcc-supply = <&pp1800_l11a>;
4247ec3e673SRob Clark};
4257ec3e673SRob Clark
4267ec3e673SRob Clark&qspi {
4277ec3e673SRob Clark	status = "okay";
428ab752f03SDouglas Anderson	pinctrl-names = "default", "sleep";
429ab752f03SDouglas Anderson	pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data0>, <&qspi_data1>;
430ab752f03SDouglas Anderson	pinctrl-1 = <&qspi_sleep>;
4317ec3e673SRob Clark
4327ec3e673SRob Clark	flash@0 {
4337ec3e673SRob Clark		compatible = "jedec,spi-nor";
4347ec3e673SRob Clark		reg = <0>;
4357ec3e673SRob Clark
436729046d4SStephen Boyd		spi-max-frequency = <37500000>;
4377ec3e673SRob Clark		spi-tx-bus-width = <2>;
4387ec3e673SRob Clark		spi-rx-bus-width = <2>;
4397ec3e673SRob Clark	};
4407ec3e673SRob Clark};
4417ec3e673SRob Clark
4427ec3e673SRob Clark&apps_rsc {
443adfb9d68SKrzysztof Kozlowski	regulators-0 {
4447ec3e673SRob Clark		compatible = "qcom,pm6150-rpmh-regulators";
4457ec3e673SRob Clark		qcom,pmic-id = "a";
4467ec3e673SRob Clark
4477ec3e673SRob Clark		vddpx_1:
4487ec3e673SRob Clark		vdd2:
4497ec3e673SRob Clark		pp1125_s1a: smps1 {
4507ec3e673SRob Clark			regulator-min-microvolt = <1128000>;
4517ec3e673SRob Clark			regulator-max-microvolt = <1128000>;
4527ec3e673SRob Clark		};
4537ec3e673SRob Clark
4547ec3e673SRob Clark		vdd_qlink_lv:
4557ec3e673SRob Clark		vdd_qlink_lv_ck:
4567ec3e673SRob Clark		vdd_qusb_hs0_core:
4577ec3e673SRob Clark		vdd_ufs1_core:
4587ec3e673SRob Clark		vdda_mipi_csi0_0p9:
4597ec3e673SRob Clark		vdda_mipi_csi1_0p9:
4607ec3e673SRob Clark		vdda_mipi_csi2_0p9:
4617ec3e673SRob Clark		vdda_mipi_csi3_0p9:
4627ec3e673SRob Clark		vdda_mipi_dsi0_pll:
4637ec3e673SRob Clark		vdda_pll_cc_ebi01:
4647ec3e673SRob Clark		vdda_qrefs_0p9:
4657ec3e673SRob Clark		vdda_usb_ss_dp_core:
4667ec3e673SRob Clark		pp900_l4a: ldo4 {
4677ec3e673SRob Clark			regulator-min-microvolt = <824000>;
4687ec3e673SRob Clark			regulator-max-microvolt = <928000>;
4697ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4707ec3e673SRob Clark		};
4717ec3e673SRob Clark
4727ec3e673SRob Clark		vdd_cx_wlan:
4737ec3e673SRob Clark		pp800_l9a: ldo9 {
4747ec3e673SRob Clark			regulator-min-microvolt = <488000>;
4757ec3e673SRob Clark			regulator-max-microvolt = <800000>;
4767ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4777ec3e673SRob Clark		};
4787ec3e673SRob Clark
4797ec3e673SRob Clark		vdd1:
4807ec3e673SRob Clark		vddpx_3:
4817ec3e673SRob Clark		vddpx_7:
4827ec3e673SRob Clark		vio_in:
4837ec3e673SRob Clark		pp1800_l10a: ldo10 {
4847ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
4857ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
4867ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4877ec3e673SRob Clark		};
4887ec3e673SRob Clark
4897ec3e673SRob Clark		vdd_qfprom:
4907ec3e673SRob Clark		vdda_apc1_cs_1p8:
4917ec3e673SRob Clark		vdda_qrefs_1p8:
4927ec3e673SRob Clark		vdda_qusb_hs0_1p8:
4937ec3e673SRob Clark		vddpx_11:
4947ec3e673SRob Clark		vreg_bb_clk:
4957ec3e673SRob Clark		pp1800_l11a: ldo11 {
4967ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
4977ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
4987ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
4997ec3e673SRob Clark		};
5007ec3e673SRob Clark
5017ec3e673SRob Clark		mcp_vccq:
5027ec3e673SRob Clark		pp1800_l12a_r: ldo12 {
5037ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5047ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5057ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5067ec3e673SRob Clark		};
5077ec3e673SRob Clark
508e5376f2eSDouglas Anderson		/*
509e5376f2eSDouglas Anderson		 * On trogdor this needs to match l10a since we use it to
510e5376f2eSDouglas Anderson		 * give power to things like SPI flash which communicate back
511e5376f2eSDouglas Anderson		 * on lines powered by l10a.  Thus we force to 1.8V.
512e5376f2eSDouglas Anderson		 */
5137ec3e673SRob Clark		pp1800_l13a: ldo13 {
5147ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5157ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5167ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
517ced32c29SDouglas Anderson			regulator-always-on;
518ced32c29SDouglas Anderson			regulator-boot-on;
5197ec3e673SRob Clark		};
5207ec3e673SRob Clark
5217ec3e673SRob Clark		pp1800_prox:
5227ec3e673SRob Clark		pp1800_l14a: ldo14 {
5237ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5247ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5257ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5267ec3e673SRob Clark		};
5277ec3e673SRob Clark
5287ec3e673SRob Clark		pp1800_alc5682:
5297ec3e673SRob Clark		pp1800_l15a: ldo15 {
5307ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5317ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5327ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5337ec3e673SRob Clark		};
5347ec3e673SRob Clark
5357ec3e673SRob Clark		vdda_qusb_hs0_3p1:
5367ec3e673SRob Clark		vdd_pdphy:
5377ec3e673SRob Clark		pp3100_l17a: ldo17 {
5387ec3e673SRob Clark			regulator-min-microvolt = <2920000>;
5397ec3e673SRob Clark			regulator-max-microvolt = <3232000>;
5407ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5417ec3e673SRob Clark		};
5427ec3e673SRob Clark
5437ec3e673SRob Clark		pp1800_pen:
5447ec3e673SRob Clark		pp1800_l18a: ldo18 {
5457ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
5467ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
5477ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5487ec3e673SRob Clark		};
5497ec3e673SRob Clark
5507ec3e673SRob Clark		mcp_vcc:
5517ec3e673SRob Clark		pp2850_l19a: ldo19 {
5527ec3e673SRob Clark			regulator-min-microvolt = <2960000>;
5537ec3e673SRob Clark			regulator-max-microvolt = <2960000>;
5547ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5557ec3e673SRob Clark		};
5567ec3e673SRob Clark	};
5577ec3e673SRob Clark
558adfb9d68SKrzysztof Kozlowski	regulators-1 {
5597ec3e673SRob Clark		compatible = "qcom,pm6150l-rpmh-regulators";
5607ec3e673SRob Clark		qcom,pmic-id = "c";
5617ec3e673SRob Clark
5627ec3e673SRob Clark		pp1300_s8c: smps8 {
5637ec3e673SRob Clark			regulator-min-microvolt = <1120000>;
5647ec3e673SRob Clark			regulator-max-microvolt = <1408000>;
5657ec3e673SRob Clark		};
5667ec3e673SRob Clark
5677ec3e673SRob Clark		pp1800_l1c: ldo1 {
568e5376f2eSDouglas Anderson			regulator-min-microvolt = <1616000>;
569e5376f2eSDouglas Anderson			regulator-max-microvolt = <1984000>;
5707ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5717ec3e673SRob Clark		};
5727ec3e673SRob Clark
5737ec3e673SRob Clark		vdd_wcss_adc_dac:
5747ec3e673SRob Clark		pp1300_l2c: ldo2 {
5757ec3e673SRob Clark			regulator-min-microvolt = <1168000>;
5767ec3e673SRob Clark			regulator-max-microvolt = <1304000>;
5777ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5787ec3e673SRob Clark		};
5797ec3e673SRob Clark
5807ec3e673SRob Clark		pp1200_brij:
5817ec3e673SRob Clark		vdd_ufs1_1p2:
5827ec3e673SRob Clark		vdda_csi0_1p25:
5837ec3e673SRob Clark		vdda_csi1_1p25:
5847ec3e673SRob Clark		vdda_csi2_1p25:
5857ec3e673SRob Clark		vdda_csi3_1p25:
5867ec3e673SRob Clark		vdda_hv_ebi0:
5877ec3e673SRob Clark		vdda_mipi_dsi0_1p2:
5887ec3e673SRob Clark		vdda_usb_ss_dp_1p2:
5897ec3e673SRob Clark		vddpx_10:
5907ec3e673SRob Clark		pp1200_l3c: ldo3 {
5917ec3e673SRob Clark			regulator-min-microvolt = <1200000>;
5927ec3e673SRob Clark			regulator-max-microvolt = <1200000>;
5937ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
5947ec3e673SRob Clark		};
5957ec3e673SRob Clark
5967ec3e673SRob Clark		vddpx_2:
5977ec3e673SRob Clark		ppvar_l6c: ldo6 {
5987ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
599465b13ccSDouglas Anderson			regulator-max-microvolt = <2952000>;
6007ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6017ec3e673SRob Clark		};
6027ec3e673SRob Clark
6037ec3e673SRob Clark		pp3300_l7c: ldo7 {
6047ec3e673SRob Clark			regulator-min-microvolt = <3304000>;
6057ec3e673SRob Clark			regulator-max-microvolt = <3304000>;
6067ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6077ec3e673SRob Clark		};
6087ec3e673SRob Clark
6097ec3e673SRob Clark		pp1800_brij_vccio:
6107ec3e673SRob Clark		pp1800_edp_vpll:
6117ec3e673SRob Clark		pp1800_l8c: ldo8 {
6127ec3e673SRob Clark			regulator-min-microvolt = <1800000>;
6137ec3e673SRob Clark			regulator-max-microvolt = <1800000>;
6147ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6157ec3e673SRob Clark		};
6167ec3e673SRob Clark
6177ec3e673SRob Clark		pp2950_l9c: ldo9 {
6187ec3e673SRob Clark			regulator-min-microvolt = <2952000>;
6197ec3e673SRob Clark			regulator-max-microvolt = <2952000>;
6207ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6217ec3e673SRob Clark		};
6227ec3e673SRob Clark
6237ec3e673SRob Clark		pp3300_l10c: ldo10 {
6247ec3e673SRob Clark			regulator-min-microvolt = <3000000>;
6257ec3e673SRob Clark			regulator-max-microvolt = <3400000>;
6267ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6277ec3e673SRob Clark		};
6287ec3e673SRob Clark
6297ec3e673SRob Clark		pp3300_l11c: ldo11 {
6307ec3e673SRob Clark			regulator-min-microvolt = <3000000>;
6317ec3e673SRob Clark			regulator-max-microvolt = <3400000>;
6327ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
6337ec3e673SRob Clark		};
6347ec3e673SRob Clark
6357ec3e673SRob Clark		src_vreg_bob: bob {
6367ec3e673SRob Clark			regulator-min-microvolt = <3008000>;
6377ec3e673SRob Clark			regulator-max-microvolt = <3960000>;
6387ec3e673SRob Clark			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
6397ec3e673SRob Clark		};
6407ec3e673SRob Clark	};
6417ec3e673SRob Clark};
6427ec3e673SRob Clark
643d277cab7SStephen Boydap_ec_spi: &spi6 {
6447ec3e673SRob Clark	status = "okay";
6457ec3e673SRob Clark	cros_ec: ec@0 {
6467ec3e673SRob Clark		compatible = "google,cros-ec-spi";
6477ec3e673SRob Clark		reg = <0>;
6487ec3e673SRob Clark		interrupt-parent = <&tlmm>;
6497ec3e673SRob Clark		interrupts = <94 IRQ_TYPE_LEVEL_LOW>;
6507ec3e673SRob Clark		pinctrl-names = "default";
6517ec3e673SRob Clark		pinctrl-0 = <&ap_ec_int_l>;
6527ec3e673SRob Clark		spi-max-frequency = <3000000>;
6537ec3e673SRob Clark
6541e49defbSKrzysztof Kozlowski		cros_ec_pwm: pwm {
6557ec3e673SRob Clark			compatible = "google,cros-ec-pwm";
6567ec3e673SRob Clark			#pwm-cells = <1>;
6577ec3e673SRob Clark		};
6587ec3e673SRob Clark
6597ec3e673SRob Clark		i2c_tunnel: i2c-tunnel {
6607ec3e673SRob Clark			compatible = "google,cros-ec-i2c-tunnel";
6617ec3e673SRob Clark			google,remote-bus = <0>;
6627ec3e673SRob Clark			#address-cells = <1>;
6637ec3e673SRob Clark			#size-cells = <0>;
6647ec3e673SRob Clark		};
6657ec3e673SRob Clark
6667ec3e673SRob Clark		typec {
6677ec3e673SRob Clark			compatible = "google,cros-ec-typec";
6687ec3e673SRob Clark			#address-cells = <1>;
6697ec3e673SRob Clark			#size-cells = <0>;
6707ec3e673SRob Clark
6717c6d828eSStephen Boyd			usb_c0: connector@0 {
6727ec3e673SRob Clark				compatible = "usb-c-connector";
6737ec3e673SRob Clark				reg = <0>;
6747ec3e673SRob Clark				label = "left";
6757ec3e673SRob Clark				power-role = "dual";
6767ec3e673SRob Clark				data-role = "host";
6777ec3e673SRob Clark				try-power-role = "source";
6787ec3e673SRob Clark			};
6797ec3e673SRob Clark
6807c6d828eSStephen Boyd			usb_c1: connector@1 {
6817ec3e673SRob Clark				compatible = "usb-c-connector";
6827ec3e673SRob Clark				reg = <1>;
6837ec3e673SRob Clark				label = "right";
6847ec3e673SRob Clark				power-role = "dual";
6857ec3e673SRob Clark				data-role = "host";
6867ec3e673SRob Clark				try-power-role = "source";
6877ec3e673SRob Clark			};
6887ec3e673SRob Clark		};
6897ec3e673SRob Clark	};
6907ec3e673SRob Clark};
6917ec3e673SRob Clark
692d277cab7SStephen Boydap_h1_spi: &spi0 {
6937ec3e673SRob Clark	status = "okay";
6947ec3e673SRob Clark	cr50: tpm@0 {
6957ec3e673SRob Clark		compatible = "google,cr50";
6967ec3e673SRob Clark		reg = <0>;
6977ec3e673SRob Clark		pinctrl-names = "default";
6987ec3e673SRob Clark		pinctrl-0 = <&h1_ap_int_odl>;
6997ec3e673SRob Clark		spi-max-frequency = <800000>;
7007ec3e673SRob Clark		interrupt-parent = <&tlmm>;
7017ec3e673SRob Clark		interrupts = <42 IRQ_TYPE_EDGE_RISING>;
7027ec3e673SRob Clark	};
7037ec3e673SRob Clark};
7047ec3e673SRob Clark
705fcd66fe6SStephen Boyd&camcc {
706fcd66fe6SStephen Boyd	status = "disabled";
707fcd66fe6SStephen Boyd};
708fcd66fe6SStephen Boyd
7097ec3e673SRob Clarkap_sar_sensor_i2c: &i2c5 {
7107ec3e673SRob Clark	clock-frequency = <400000>;
7117ec3e673SRob Clark
7127ec3e673SRob Clark	ap_sar_sensor: proximity@28 {
7137ec3e673SRob Clark		compatible = "semtech,sx9310";
7147ec3e673SRob Clark		reg = <0x28>;
7157ec3e673SRob Clark		#io-channel-cells = <1>;
7167ec3e673SRob Clark		pinctrl-names = "default";
7177ec3e673SRob Clark		pinctrl-0 = <&p_sensor_int_l>;
7187ec3e673SRob Clark
7197ec3e673SRob Clark		interrupt-parent = <&tlmm>;
7207ec3e673SRob Clark		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
7217ec3e673SRob Clark
7227ec3e673SRob Clark		vdd-supply = <&pp3300_a>;
7237ec3e673SRob Clark		svdd-supply = <&pp1800_prox>;
7247ec3e673SRob Clark
7257ec3e673SRob Clark		label = "proximity-wifi";
7267ec3e673SRob Clark	};
7277ec3e673SRob Clark};
7287ec3e673SRob Clark
7297ec3e673SRob Clarkap_tp_i2c: &i2c7 {
7307ec3e673SRob Clark	clock-frequency = <400000>;
7317ec3e673SRob Clark
732ce250024SDouglas Anderson	trackpad: trackpad@15 {
7337ec3e673SRob Clark		compatible = "elan,ekth3000";
7347ec3e673SRob Clark		reg = <0x15>;
7357ec3e673SRob Clark		pinctrl-names = "default";
736ce250024SDouglas Anderson		pinctrl-0 = <&tp_int_odl>;
7377ec3e673SRob Clark
7387ec3e673SRob Clark		interrupt-parent = <&tlmm>;
739ce250024SDouglas Anderson		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
7407ec3e673SRob Clark
7417ec3e673SRob Clark		vcc-supply = <&pp3300_fp_tp>;
7427ec3e673SRob Clark
7437ec3e673SRob Clark		wakeup-source;
7447ec3e673SRob Clark	};
7457ec3e673SRob Clark};
7467ec3e673SRob Clark
7477ec3e673SRob Clarkhp_i2c: &i2c9 {
7487ec3e673SRob Clark	status = "okay";
7497ec3e673SRob Clark	clock-frequency = <400000>;
7507ec3e673SRob Clark
7517ec3e673SRob Clark	alc5682: codec@1a {
7527ec3e673SRob Clark		compatible = "realtek,rt5682i";
7537ec3e673SRob Clark		reg = <0x1a>;
7547ec3e673SRob Clark		pinctrl-names = "default";
7557ec3e673SRob Clark		pinctrl-0 = <&hp_irq>;
7567ec3e673SRob Clark
7577ec3e673SRob Clark		#sound-dai-cells = <1>;
7587ec3e673SRob Clark
7597ec3e673SRob Clark		interrupt-parent = <&tlmm>;
7607ec3e673SRob Clark		/*
7617ec3e673SRob Clark		 * This will get ignored because the interrupt type
7627ec3e673SRob Clark		 * is set in rt5682.c.
7637ec3e673SRob Clark		 */
7647ec3e673SRob Clark		interrupts = <28 IRQ_TYPE_EDGE_BOTH>;
7657ec3e673SRob Clark
7667ec3e673SRob Clark		AVDD-supply = <&pp1800_alc5682>;
767172cb25fSNícolas F. R. A. Prado		DBVDD-supply = <&pp1800_alc5682>;
768172cb25fSNícolas F. R. A. Prado		LDO1-IN-supply = <&pp1800_alc5682>;
7697ec3e673SRob Clark		MICVDD-supply = <&pp3300_codec>;
7707ec3e673SRob Clark		VBAT-supply = <&pp3300_audio>;
7717ec3e673SRob Clark
7727ec3e673SRob Clark		realtek,dmic1-data-pin = <1>;
7737ec3e673SRob Clark		realtek,dmic1-clk-pin = <1>;
7747ec3e673SRob Clark		realtek,jd-src = <1>;
7757ec3e673SRob Clark	};
7767ec3e673SRob Clark};
7777ec3e673SRob Clark
77843926a3cSNikita Travkin&lpasscc {
77943926a3cSNikita Travkin	status = "okay";
78043926a3cSNikita Travkin};
78143926a3cSNikita Travkin
78229bd62eeSAjit Pandey&lpass_cpu {
78329bd62eeSAjit Pandey	status = "okay";
78429bd62eeSAjit Pandey
78529bd62eeSAjit Pandey	pinctrl-names = "default";
78629bd62eeSAjit Pandey	pinctrl-0 = <&sec_mi2s_active>, <&pri_mi2s_active>, <&pri_mi2s_mclk_active>;
78729bd62eeSAjit Pandey
78829bd62eeSAjit Pandey	#address-cells = <1>;
78929bd62eeSAjit Pandey	#size-cells = <0>;
79029bd62eeSAjit Pandey
791eef26fb4SKrzysztof Kozlowski	dai-link@0 {
79229bd62eeSAjit Pandey		reg = <MI2S_PRIMARY>;
79329bd62eeSAjit Pandey		qcom,playback-sd-lines = <1>;
79429bd62eeSAjit Pandey		qcom,capture-sd-lines = <0>;
79529bd62eeSAjit Pandey	};
79629bd62eeSAjit Pandey
797eef26fb4SKrzysztof Kozlowski	secondary_mi2s: dai-link@1 {
79829bd62eeSAjit Pandey		reg = <MI2S_SECONDARY>;
79929bd62eeSAjit Pandey		qcom,playback-sd-lines = <0>;
80029bd62eeSAjit Pandey	};
801b22d313eSV Sujith Kumar Reddy
802eef26fb4SKrzysztof Kozlowski	dai-link@5 {
803b22d313eSV Sujith Kumar Reddy		reg = <LPASS_DP_RX>;
804b22d313eSV Sujith Kumar Reddy	};
80529bd62eeSAjit Pandey};
80629bd62eeSAjit Pandey
80743926a3cSNikita Travkin&lpass_hm {
8087ec3e673SRob Clark	status = "okay";
8097ec3e673SRob Clark};
8107ec3e673SRob Clark
8117ec3e673SRob Clark&mdss {
8127ec3e673SRob Clark	status = "okay";
8137ec3e673SRob Clark};
8147ec3e673SRob Clark
815f1b7e897SKuogee Hsieh&mdss_dp {
816f1b7e897SKuogee Hsieh	status = "okay";
817f1b7e897SKuogee Hsieh	pinctrl-names = "default";
818f1b7e897SKuogee Hsieh	pinctrl-0 = <&dp_hot_plug_det>;
81926c5aa54SKuogee Hsieh};
82026c5aa54SKuogee Hsieh
82126c5aa54SKuogee Hsieh&mdss_dp_out {
822f1b7e897SKuogee Hsieh	data-lanes = <0 1>;
82326c5aa54SKuogee Hsieh	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>;
824f1b7e897SKuogee Hsieh};
825f1b7e897SKuogee Hsieh
8262b616f86SDmitry Baryshkov&mdss_dsi0 {
8272b616f86SDmitry Baryshkov	status = "okay";
8282b616f86SDmitry Baryshkov	vdda-supply = <&vdda_mipi_dsi0_1p2>;
8292b616f86SDmitry Baryshkov};
8302b616f86SDmitry Baryshkov
8312b616f86SDmitry Baryshkov&mdss_dsi0_out {
8322b616f86SDmitry Baryshkov	data-lanes = <0 1 2 3>;
8332b616f86SDmitry Baryshkov};
8342b616f86SDmitry Baryshkov
8352b616f86SDmitry Baryshkov&mdss_dsi0_phy {
8362b616f86SDmitry Baryshkov	status = "okay";
8372b616f86SDmitry Baryshkov	vdds-supply = <&vdda_mipi_dsi0_pll>;
8382b616f86SDmitry Baryshkov};
8392b616f86SDmitry Baryshkov
840bb06eb36SAntony Wang&pm6150_adc {
84141c18552SMarijn Suijten	channel@4f {
842bb06eb36SAntony Wang		reg = <ADC5_AMUX_THM3_100K_PU>;
843bb06eb36SAntony Wang		qcom,ratiometric;
844bb06eb36SAntony Wang		qcom,hw-settle-time = <200>;
84541c18552SMarijn Suijten		label = "charger_therm";
846bb06eb36SAntony Wang	};
847bb06eb36SAntony Wang};
848bb06eb36SAntony Wang
849bb06eb36SAntony Wang&pm6150_adc_tm {
850bb06eb36SAntony Wang	status = "okay";
851bb06eb36SAntony Wang
852e4ffe8d5SMatthias Kaehlcke	charger-thermistor@0 {
853e4ffe8d5SMatthias Kaehlcke		reg = <0>;
854bb06eb36SAntony Wang		io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
855bb06eb36SAntony Wang		qcom,ratiometric;
856bb06eb36SAntony Wang		qcom,hw-settle-time-us = <200>;
857bb06eb36SAntony Wang	};
858bb06eb36SAntony Wang};
859bb06eb36SAntony Wang
860d141e052SStephen Boyd&pm6150_pon {
8617ec3e673SRob Clark	status = "disabled";
8627ec3e673SRob Clark};
8637ec3e673SRob Clark
8647ec3e673SRob Clark&qupv3_id_0 {
8657ec3e673SRob Clark	status = "okay";
8667ec3e673SRob Clark};
8677ec3e673SRob Clark
8687ec3e673SRob Clark&qupv3_id_1 {
8697ec3e673SRob Clark	status = "okay";
8707ec3e673SRob Clark};
8717ec3e673SRob Clark
8727ec3e673SRob Clark&remoteproc_mpss {
8737ec3e673SRob Clark	status = "okay";
8747ec3e673SRob Clark	compatible = "qcom,sc7180-mss-pil";
87547603d62SKrzysztof Kozlowski	reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
87647603d62SKrzysztof Kozlowski	reg-names = "qdsp6", "rmb";
87747603d62SKrzysztof Kozlowski
87847603d62SKrzysztof Kozlowski	clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
87947603d62SKrzysztof Kozlowski		 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
88047603d62SKrzysztof Kozlowski		 <&gcc GCC_MSS_NAV_AXI_CLK>,
88147603d62SKrzysztof Kozlowski		 <&gcc GCC_MSS_SNOC_AXI_CLK>,
88247603d62SKrzysztof Kozlowski		 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
88347603d62SKrzysztof Kozlowski		 <&rpmhcc RPMH_CXO_CLK>;
88447603d62SKrzysztof Kozlowski	clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo";
88547603d62SKrzysztof Kozlowski
8867ec3e673SRob Clark	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
887cb0eaae8SSibi Sankar	memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>;
8887ec3e673SRob Clark
8897ec3e673SRob Clark	/* This gets overridden for SKUs with LTE support. */
8907ec3e673SRob Clark	firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
8917ec3e673SRob Clark			"qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";
89247603d62SKrzysztof Kozlowski
89347603d62SKrzysztof Kozlowski	resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
89447603d62SKrzysztof Kozlowski		 <&pdc_reset PDC_MODEM_SYNC_RESET>;
89547603d62SKrzysztof Kozlowski	reset-names = "mss_restart", "pdc_reset";
89647603d62SKrzysztof Kozlowski
89747603d62SKrzysztof Kozlowski	qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
89847603d62SKrzysztof Kozlowski	qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;
8997ec3e673SRob Clark};
9007ec3e673SRob Clark
901a54b7fa6SDouglas Anderson&scm {
902a54b7fa6SDouglas Anderson	/* TF-A firmware maps memory cached so mark dma-coherent to match. */
903a54b7fa6SDouglas Anderson	dma-coherent;
904a54b7fa6SDouglas Anderson};
905a54b7fa6SDouglas Anderson
9067ec3e673SRob Clark&sdhc_1 {
9077ec3e673SRob Clark	status = "okay";
9087ec3e673SRob Clark
9097ec3e673SRob Clark	pinctrl-names = "default", "sleep";
9107ec3e673SRob Clark	pinctrl-0 = <&sdc1_on>;
9117ec3e673SRob Clark	pinctrl-1 = <&sdc1_off>;
9127ec3e673SRob Clark	vmmc-supply = <&mcp_vcc>;
9137ec3e673SRob Clark	vqmmc-supply = <&mcp_vccq>;
9147ec3e673SRob Clark};
9157ec3e673SRob Clark
9167ec3e673SRob Clark&sdhc_2 {
9177ec3e673SRob Clark	pinctrl-names = "default", "sleep";
9187ec3e673SRob Clark	pinctrl-0 = <&sdc2_on>;
9197ec3e673SRob Clark	pinctrl-1 = <&sdc2_off>;
9207ec3e673SRob Clark	vmmc-supply = <&pp2950_l9c>;
9217ec3e673SRob Clark	vqmmc-supply = <&ppvar_l6c>;
9227ec3e673SRob Clark
9237ec3e673SRob Clark	cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
9247ec3e673SRob Clark};
9257ec3e673SRob Clark
926cfbb97fdSDouglas Anderson&spi0 {
9272f0300a6SKrzysztof Kozlowski	pinctrl-0 = <&qup_spi0_spi>, <&qup_spi0_cs_gpio>;
928cfbb97fdSDouglas Anderson	cs-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
929cfbb97fdSDouglas Anderson};
930cfbb97fdSDouglas Anderson
931cfbb97fdSDouglas Anderson&spi6 {
9322f0300a6SKrzysztof Kozlowski	pinctrl-0 = <&qup_spi6_spi>, <&qup_spi6_cs_gpio>;
933cfbb97fdSDouglas Anderson	cs-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
934cfbb97fdSDouglas Anderson};
935cfbb97fdSDouglas Anderson
9367ec3e673SRob Clarkap_spi_fp: &spi10 {
9372f0300a6SKrzysztof Kozlowski	pinctrl-0 = <&qup_spi10_spi>, <&qup_spi10_cs_gpio>;
938cfbb97fdSDouglas Anderson	cs-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
939cfbb97fdSDouglas Anderson
9407ec3e673SRob Clark	cros_ec_fp: ec@0 {
9419ec68feaSStephen Boyd		compatible = "google,cros-ec-fp", "google,cros-ec-spi";
9427ec3e673SRob Clark		reg = <0>;
9437ec3e673SRob Clark		interrupt-parent = <&tlmm>;
9447ec3e673SRob Clark		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
9457ec3e673SRob Clark		pinctrl-names = "default";
9469ec68feaSStephen Boyd		pinctrl-0 = <&fp_to_ap_irq_l>, <&fp_rst_l>, <&fpmcu_boot0>;
9479ec68feaSStephen Boyd		boot0-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
9489ec68feaSStephen Boyd		reset-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
9497ec3e673SRob Clark		spi-max-frequency = <3000000>;
9509ec68feaSStephen Boyd		vdd-supply = <&pp3300_fp_tp>;
9517ec3e673SRob Clark	};
9527ec3e673SRob Clark};
9537ec3e673SRob Clark
9547ec3e673SRob Clark#include <arm/cros-ec-sbs.dtsi>
9557ec3e673SRob Clark
9567ec3e673SRob Clark&uart3 {
9577ec3e673SRob Clark	status = "okay";
9587ec3e673SRob Clark
9594e0a3e04Ssatya priya	/delete-property/interrupts;
9604e0a3e04Ssatya priya	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
9614e0a3e04Ssatya priya				<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
9624e0a3e04Ssatya priya
9634e0a3e04Ssatya priya	pinctrl-names = "default", "sleep";
9644e0a3e04Ssatya priya	pinctrl-1 = <&qup_uart3_sleep>;
9654e0a3e04Ssatya priya
9667ec3e673SRob Clark	bluetooth: bluetooth {
9677ec3e673SRob Clark		compatible = "qcom,wcn3991-bt";
9687ec3e673SRob Clark		vddio-supply = <&pp1800_l10a>;
9697ec3e673SRob Clark		vddxo-supply = <&pp1800_l1c>;
9707ec3e673SRob Clark		vddrf-supply = <&pp1300_l2c>;
9717ec3e673SRob Clark		vddch0-supply = <&pp3300_l10c>;
9727ec3e673SRob Clark		max-speed = <3200000>;
973*b99d0617SJohan Hovold
974*b99d0617SJohan Hovold		qcom,local-bd-address-broken;
9757ec3e673SRob Clark	};
9767ec3e673SRob Clark};
9777ec3e673SRob Clark
9787ec3e673SRob Clark&uart8 {
9797ec3e673SRob Clark	status = "okay";
9807ec3e673SRob Clark};
9817ec3e673SRob Clark
9827ec3e673SRob Clark&usb_1 {
9837ec3e673SRob Clark	status = "okay";
9847ec3e673SRob Clark};
9857ec3e673SRob Clark
9867ec3e673SRob Clark&usb_1_dwc3 {
9877ec3e673SRob Clark	dr_mode = "host";
988a73dd03bSMatthias Kaehlcke	#address-cells = <1>;
989a73dd03bSMatthias Kaehlcke	#size-cells = <0>;
990a73dd03bSMatthias Kaehlcke
991a73dd03bSMatthias Kaehlcke	/* 2.x hub on port 1 */
992a73dd03bSMatthias Kaehlcke	usb_hub_2_x: hub@1 {
993a73dd03bSMatthias Kaehlcke		compatible = "usbbda,5411";
994a73dd03bSMatthias Kaehlcke		reg = <1>;
995a73dd03bSMatthias Kaehlcke		vdd-supply = <&pp3300_hub>;
996a73dd03bSMatthias Kaehlcke		peer-hub = <&usb_hub_3_x>;
997a73dd03bSMatthias Kaehlcke	};
998a73dd03bSMatthias Kaehlcke
999a73dd03bSMatthias Kaehlcke	/* 3.x hub on port 2 */
1000a73dd03bSMatthias Kaehlcke	usb_hub_3_x: hub@2 {
1001a73dd03bSMatthias Kaehlcke		compatible = "usbbda,411";
1002a73dd03bSMatthias Kaehlcke		reg = <2>;
1003a73dd03bSMatthias Kaehlcke		vdd-supply = <&pp3300_hub>;
1004a73dd03bSMatthias Kaehlcke		peer-hub = <&usb_hub_2_x>;
1005a73dd03bSMatthias Kaehlcke	};
10067ec3e673SRob Clark};
10077ec3e673SRob Clark
10087ec3e673SRob Clark&usb_1_hsphy {
10097ec3e673SRob Clark	status = "okay";
10107ec3e673SRob Clark	vdd-supply = <&vdd_qusb_hs0_core>;
10117ec3e673SRob Clark	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
10127ec3e673SRob Clark	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
10137ec3e673SRob Clark	qcom,imp-res-offset-value = <8>;
10147ec3e673SRob Clark	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
10157ec3e673SRob Clark	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
10167ec3e673SRob Clark	qcom,bias-ctrl-value = <0x22>;
10177ec3e673SRob Clark	qcom,charge-ctrl-value = <3>;
10187ec3e673SRob Clark	qcom,hsdisc-trim-value = <0>;
10197ec3e673SRob Clark};
10207ec3e673SRob Clark
10217ec3e673SRob Clark&usb_1_qmpphy {
10227ec3e673SRob Clark	status = "okay";
10237ec3e673SRob Clark	vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
10247ec3e673SRob Clark	vdda-pll-supply = <&vdda_usb_ss_dp_core>;
10257ec3e673SRob Clark};
10267ec3e673SRob Clark
10277ec3e673SRob Clark&venus {
10287ec3e673SRob Clark	video-firmware {
10297ec3e673SRob Clark		iommus = <&apps_smmu 0x0c42 0x0>;
10307ec3e673SRob Clark	};
10317ec3e673SRob Clark};
10327ec3e673SRob Clark
10337ec3e673SRob Clark&wifi {
10347ec3e673SRob Clark	status = "okay";
10357ec3e673SRob Clark	vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>;
10367ec3e673SRob Clark	vdd-1.8-xo-supply = <&pp1800_l1c>;
10377ec3e673SRob Clark	vdd-1.3-rfa-supply = <&pp1300_l2c>;
10387ec3e673SRob Clark	vdd-3.3-ch0-supply = <&pp3300_l10c>;
10397ec3e673SRob Clark	vdd-3.3-ch1-supply = <&pp3300_l11c>;
10407ec3e673SRob Clark
10417ec3e673SRob Clark	wifi-firmware {
10427ec3e673SRob Clark		iommus = <&apps_smmu 0xc2 0x1>;
10437ec3e673SRob Clark	};
10447ec3e673SRob Clark};
10457ec3e673SRob Clark
10467ec3e673SRob Clark/* PINCTRL - additions to nodes defined in sc7180.dtsi */
10477ec3e673SRob Clark
1048f772081fSDouglas Anderson&dp_hot_plug_det {
1049f772081fSDouglas Anderson	bias-disable;
1050f772081fSDouglas Anderson};
1051f772081fSDouglas Anderson
1052b4b2c20dSDouglas Anderson&pri_mi2s_active {
1053b4b2c20dSDouglas Anderson	drive-strength = <2>;
1054b4b2c20dSDouglas Anderson	bias-pull-down;
1055b4b2c20dSDouglas Anderson};
1056b4b2c20dSDouglas Anderson
1057b4b2c20dSDouglas Anderson&pri_mi2s_mclk_active {
1058b4b2c20dSDouglas Anderson	drive-strength = <2>;
1059b4b2c20dSDouglas Anderson	bias-pull-down;
1060b4b2c20dSDouglas Anderson};
1061b4b2c20dSDouglas Anderson
10627ec3e673SRob Clark&qspi_cs0 {
1063ab752f03SDouglas Anderson	bias-disable;		/* External pullup */
10647ec3e673SRob Clark};
10657ec3e673SRob Clark
10667ec3e673SRob Clark&qspi_clk {
1067abbe13a2SWenchao Han	drive-strength = <8>;
1068ab752f03SDouglas Anderson	bias-disable;		/* Rely on Cr50 internal pulldown */
10697ec3e673SRob Clark};
10707ec3e673SRob Clark
1071ab752f03SDouglas Anderson&qspi_data0 {
1072ab752f03SDouglas Anderson	bias-disable;		/* Rely on Cr50 internal pulldown */
1073ab752f03SDouglas Anderson};
1074ab752f03SDouglas Anderson
1075ab752f03SDouglas Anderson&qspi_data1 {
1076ab752f03SDouglas Anderson	bias-pull-down;
10777ec3e673SRob Clark};
10787ec3e673SRob Clark
10797ec3e673SRob Clark&qup_i2c2_default {
10807ec3e673SRob Clark	drive-strength = <2>;
10817ec3e673SRob Clark
10827ec3e673SRob Clark	/* Has external pullup */
10837ec3e673SRob Clark	bias-disable;
10847ec3e673SRob Clark};
10857ec3e673SRob Clark
10867ec3e673SRob Clark&qup_i2c4_default {
10877ec3e673SRob Clark	drive-strength = <2>;
10887ec3e673SRob Clark
10897ec3e673SRob Clark	/* Has external pullup */
10907ec3e673SRob Clark	bias-disable;
10917ec3e673SRob Clark};
10927ec3e673SRob Clark
10937ec3e673SRob Clark&qup_i2c5_default {
10947ec3e673SRob Clark	drive-strength = <2>;
10957ec3e673SRob Clark
10967ec3e673SRob Clark	/* Has external pullup */
10977ec3e673SRob Clark	bias-disable;
10987ec3e673SRob Clark};
10997ec3e673SRob Clark
11007ec3e673SRob Clark&qup_i2c7_default {
11017ec3e673SRob Clark	drive-strength = <2>;
11027ec3e673SRob Clark
11037ec3e673SRob Clark	/* Has external pullup */
11047ec3e673SRob Clark	bias-disable;
11057ec3e673SRob Clark};
11067ec3e673SRob Clark
11077ec3e673SRob Clark&qup_i2c9_default {
11087ec3e673SRob Clark	drive-strength = <2>;
11097ec3e673SRob Clark
11107ec3e673SRob Clark	/* Has external pullup */
11117ec3e673SRob Clark	bias-disable;
11127ec3e673SRob Clark};
11132f0300a6SKrzysztof Kozlowski
11142f0300a6SKrzysztof Kozlowski&qup_spi0_spi {
11152f0300a6SKrzysztof Kozlowski	drive-strength = <2>;
11162f0300a6SKrzysztof Kozlowski	bias-disable;
11177ec3e673SRob Clark};
11187ec3e673SRob Clark
1119cfbb97fdSDouglas Anderson&qup_spi0_cs_gpio {
11207ec3e673SRob Clark	drive-strength = <2>;
11217ec3e673SRob Clark	bias-disable;
11227ec3e673SRob Clark};
11232f0300a6SKrzysztof Kozlowski
11242f0300a6SKrzysztof Kozlowski&qup_spi6_spi {
11252f0300a6SKrzysztof Kozlowski	drive-strength = <2>;
11262f0300a6SKrzysztof Kozlowski	bias-disable;
11277ec3e673SRob Clark};
11287ec3e673SRob Clark
1129cfbb97fdSDouglas Anderson&qup_spi6_cs_gpio {
11307ec3e673SRob Clark	drive-strength = <2>;
11317ec3e673SRob Clark	bias-disable;
11327ec3e673SRob Clark};
11332f0300a6SKrzysztof Kozlowski
11342f0300a6SKrzysztof Kozlowski&qup_spi10_spi {
11352f0300a6SKrzysztof Kozlowski	drive-strength = <2>;
11362f0300a6SKrzysztof Kozlowski	bias-disable;
11377ec3e673SRob Clark};
11387ec3e673SRob Clark
1139cfbb97fdSDouglas Anderson&qup_spi10_cs_gpio {
11407ec3e673SRob Clark	drive-strength = <2>;
11417ec3e673SRob Clark	bias-disable;
11427ec3e673SRob Clark};
11437ec3e673SRob Clark
11442f0300a6SKrzysztof Kozlowski&qup_uart3_cts {
11457ec3e673SRob Clark	/*
11467ec3e673SRob Clark	 * Configure a pull-down on CTS to match the pull of
11477ec3e673SRob Clark	 * the Bluetooth module.
11487ec3e673SRob Clark	 */
11497ec3e673SRob Clark	bias-pull-down;
11507ec3e673SRob Clark};
11517ec3e673SRob Clark
11522f0300a6SKrzysztof Kozlowski&qup_uart3_rts {
11532f0300a6SKrzysztof Kozlowski	/* We'll drive RTS, so no pull */
11547ec3e673SRob Clark	drive-strength = <2>;
11557ec3e673SRob Clark	bias-disable;
11567ec3e673SRob Clark};
11577ec3e673SRob Clark
11582f0300a6SKrzysztof Kozlowski&qup_uart3_tx {
11592f0300a6SKrzysztof Kozlowski	/* We'll drive TX, so no pull */
11602f0300a6SKrzysztof Kozlowski	drive-strength = <2>;
11612f0300a6SKrzysztof Kozlowski	bias-disable;
11622f0300a6SKrzysztof Kozlowski};
11632f0300a6SKrzysztof Kozlowski
11642f0300a6SKrzysztof Kozlowski&qup_uart3_rx {
11657ec3e673SRob Clark	/*
11667ec3e673SRob Clark	 * Configure a pull-up on RX. This is needed to avoid
11677ec3e673SRob Clark	 * garbage data when the TX pin of the Bluetooth module is
11687ec3e673SRob Clark	 * in tri-state (module powered off or not driving the
11697ec3e673SRob Clark	 * signal yet).
11707ec3e673SRob Clark	 */
11717ec3e673SRob Clark	bias-pull-up;
11727ec3e673SRob Clark};
11737ec3e673SRob Clark
11742f0300a6SKrzysztof Kozlowski&qup_uart8_tx {
11757ec3e673SRob Clark	drive-strength = <2>;
11767ec3e673SRob Clark	bias-disable;
11777ec3e673SRob Clark};
11787ec3e673SRob Clark
11792f0300a6SKrzysztof Kozlowski&qup_uart8_rx {
11807ec3e673SRob Clark	drive-strength = <2>;
11817ec3e673SRob Clark	bias-pull-up;
11827ec3e673SRob Clark};
11837ec3e673SRob Clark
1184b4b2c20dSDouglas Anderson&sec_mi2s_active {
1185b4b2c20dSDouglas Anderson	drive-strength = <2>;
1186b4b2c20dSDouglas Anderson	bias-pull-down;
1187b4b2c20dSDouglas Anderson};
1188b4b2c20dSDouglas Anderson
11897ec3e673SRob Clark/* PINCTRL - board-specific pinctrl */
11907ec3e673SRob Clark
1191ea25d61bSMarijn Suijten&pm6150_gpios {
11927ec3e673SRob Clark	status = "disabled"; /* No GPIOs are connected */
11937ec3e673SRob Clark};
11947ec3e673SRob Clark
1195ea25d61bSMarijn Suijten&pm6150l_gpios {
11967ec3e673SRob Clark	gpio-line-names = "AP_SUSPEND",
11977ec3e673SRob Clark			  "",
11987ec3e673SRob Clark			  "",
11997ec3e673SRob Clark			  "",
12007ec3e673SRob Clark			  "",
12017ec3e673SRob Clark			  "",
12027ec3e673SRob Clark			  "",
12037ec3e673SRob Clark			  "",
12047ec3e673SRob Clark			  "",
12057ec3e673SRob Clark			  "",
12067ec3e673SRob Clark			  "",
12077ec3e673SRob Clark			  "";
12087ec3e673SRob Clark};
12097ec3e673SRob Clark
12107ec3e673SRob Clark&tlmm {
12117ec3e673SRob Clark	/*
12127ec3e673SRob Clark	 * pinctrl settings for pins that have no real owners.
12137ec3e673SRob Clark	 */
12147ec3e673SRob Clark	pinctrl-names = "default";
12157ec3e673SRob Clark	pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>;
12167ec3e673SRob Clark
12172f0300a6SKrzysztof Kozlowski	amp_en: amp-en-state {
12187ec3e673SRob Clark		pins = "gpio23";
12197ec3e673SRob Clark		function = "gpio";
12207ec3e673SRob Clark		bias-pull-down;
12217ec3e673SRob Clark	};
12227ec3e673SRob Clark
12232f0300a6SKrzysztof Kozlowski	ap_ec_int_l: ap-ec-int-l-state {
12247ec3e673SRob Clark		pins = "gpio94";
12257ec3e673SRob Clark		function = "gpio";
12267ec3e673SRob Clark		bias-pull-up;
12277ec3e673SRob Clark	};
12287ec3e673SRob Clark
12292f0300a6SKrzysztof Kozlowski	ap_edp_bklten: ap-edp-bklten-state {
12307ec3e673SRob Clark		pins = "gpio12";
12317ec3e673SRob Clark		function = "gpio";
12327ec3e673SRob Clark		drive-strength = <2>;
12337ec3e673SRob Clark		bias-disable;
12347ec3e673SRob Clark
12357ec3e673SRob Clark		/* Force backlight to be disabled to match state at boot. */
12367ec3e673SRob Clark		output-low;
12377ec3e673SRob Clark	};
12387ec3e673SRob Clark
12392f0300a6SKrzysztof Kozlowski	ap_suspend_l_neuter: ap-suspend-l-neuter-state {
12407ec3e673SRob Clark		pins = "gpio27";
12417ec3e673SRob Clark		function = "gpio";
12427ec3e673SRob Clark		bias-disable;
12437ec3e673SRob Clark	};
12447ec3e673SRob Clark
12452f0300a6SKrzysztof Kozlowski	bios_flash_wp_l: bios-flash-wp-l-state {
12467ec3e673SRob Clark		pins = "gpio66";
12477ec3e673SRob Clark		function = "gpio";
12487ec3e673SRob Clark		bias-disable;
12497ec3e673SRob Clark	};
12507ec3e673SRob Clark
12512f0300a6SKrzysztof Kozlowski	edp_brij_en: edp-brij-en-state {
12527ec3e673SRob Clark		pins = "gpio104";
12537ec3e673SRob Clark		function = "gpio";
12547ec3e673SRob Clark		drive-strength = <2>;
12557ec3e673SRob Clark		bias-disable;
12567ec3e673SRob Clark	};
12577ec3e673SRob Clark
12582f0300a6SKrzysztof Kozlowski	en_pp3300_codec: en-pp3300-codec-state {
12597ec3e673SRob Clark		pins = "gpio83";
12607ec3e673SRob Clark		function = "gpio";
12617ec3e673SRob Clark		drive-strength = <2>;
12627ec3e673SRob Clark		bias-disable;
12637ec3e673SRob Clark	};
12647ec3e673SRob Clark
12652f0300a6SKrzysztof Kozlowski	en_pp3300_dx_edp: en-pp3300-dx-edp-state {
12667ec3e673SRob Clark		pins = "gpio30";
12677ec3e673SRob Clark		function = "gpio";
12687ec3e673SRob Clark		drive-strength = <2>;
12697ec3e673SRob Clark		bias-disable;
12707ec3e673SRob Clark	};
12717ec3e673SRob Clark
12722f0300a6SKrzysztof Kozlowski	en_pp3300_hub: en-pp3300-hub-state {
1273066c2a94SMatthias Kaehlcke		pins = "gpio84";
1274066c2a94SMatthias Kaehlcke		function = "gpio";
1275066c2a94SMatthias Kaehlcke		drive-strength = <2>;
1276066c2a94SMatthias Kaehlcke		bias-disable;
1277066c2a94SMatthias Kaehlcke	};
1278066c2a94SMatthias Kaehlcke
12799ec68feaSStephen Boyd	fp_rst_l: fp-rst-l-state {
12809ec68feaSStephen Boyd		pins = "gpio22";
12819ec68feaSStephen Boyd		function = "gpio";
12829ec68feaSStephen Boyd		bias-disable;
12839ec68feaSStephen Boyd		drive-strength = <2>;
12849ec68feaSStephen Boyd	};
12859ec68feaSStephen Boyd
12862f0300a6SKrzysztof Kozlowski	fp_to_ap_irq_l: fp-to-ap-irq-l-state {
12877ec3e673SRob Clark		pins = "gpio4";
12887ec3e673SRob Clark		function = "gpio";
12897ec3e673SRob Clark
12907ec3e673SRob Clark		/* Has external pullup */
12917ec3e673SRob Clark		bias-disable;
12927ec3e673SRob Clark	};
12937ec3e673SRob Clark
12949ec68feaSStephen Boyd	fpmcu_boot0: fpmcu-boot0-state {
12959ec68feaSStephen Boyd		pins = "gpio10";
12969ec68feaSStephen Boyd		function = "gpio";
12979ec68feaSStephen Boyd		bias-disable;
12989ec68feaSStephen Boyd	};
12999ec68feaSStephen Boyd
13002f0300a6SKrzysztof Kozlowski	h1_ap_int_odl: h1-ap-int-odl-state {
13017ec3e673SRob Clark		pins = "gpio42";
13027ec3e673SRob Clark		function = "gpio";
13037ec3e673SRob Clark		bias-pull-up;
13047ec3e673SRob Clark	};
13057ec3e673SRob Clark
13062f0300a6SKrzysztof Kozlowski	hp_irq: hp-irq-state {
13077ec3e673SRob Clark		pins = "gpio28";
13087ec3e673SRob Clark		function = "gpio";
13097ec3e673SRob Clark		bias-pull-up;
13107ec3e673SRob Clark	};
13117ec3e673SRob Clark
13122f0300a6SKrzysztof Kozlowski	pen_irq_l: pen-irq-l-state {
13137ec3e673SRob Clark		pins = "gpio21";
13147ec3e673SRob Clark		function = "gpio";
13157ec3e673SRob Clark
13167ec3e673SRob Clark		/* Has external pullup */
13177ec3e673SRob Clark		bias-disable;
13187ec3e673SRob Clark	};
13197ec3e673SRob Clark
13202f0300a6SKrzysztof Kozlowski	pen_pdct_l: pen-pdct-l-state-state {
13217ec3e673SRob Clark		pins = "gpio52";
13227ec3e673SRob Clark		function = "gpio";
13237ec3e673SRob Clark
13247ec3e673SRob Clark		/* Has external pullup */
13257ec3e673SRob Clark		bias-disable;
13267ec3e673SRob Clark	};
13277ec3e673SRob Clark
13282f0300a6SKrzysztof Kozlowski	pen_rst_odl: pen-rst-odl-state {
13297ec3e673SRob Clark		pins = "gpio18";
13307ec3e673SRob Clark		function = "gpio";
13317ec3e673SRob Clark		bias-disable;
13327ec3e673SRob Clark		drive-strength = <2>;
13337ec3e673SRob Clark
13347ec3e673SRob Clark		/*
13357ec3e673SRob Clark		 * The pen driver doesn't currently support
13367ec3e673SRob Clark		 * driving this reset line.  By specifying
13377ec3e673SRob Clark		 * output-high here we're relying on the fact
13387ec3e673SRob Clark		 * that this pin has a default pulldown at boot
13397ec3e673SRob Clark		 * (which makes sure the pen was in reset if it
13407ec3e673SRob Clark		 * was powered) and then we set it high here to
13417ec3e673SRob Clark		 * take it out of reset.  Better would be if the
13427ec3e673SRob Clark		 * pen driver could control this and we could
13437ec3e673SRob Clark		 * remove "output-high" here.
13447ec3e673SRob Clark		 */
13457ec3e673SRob Clark		output-high; /* TODO: Remove this? */
13467ec3e673SRob Clark	};
13477ec3e673SRob Clark
13482f0300a6SKrzysztof Kozlowski	p_sensor_int_l: p-sensor-int-l-state {
13497ec3e673SRob Clark		pins = "gpio24";
13507ec3e673SRob Clark		function = "gpio";
13517ec3e673SRob Clark
1352d5276bfaSStephen Boyd		/* Has external pullup */
1353d5276bfaSStephen Boyd		bias-disable;
13547ec3e673SRob Clark	};
13557ec3e673SRob Clark
1356ab752f03SDouglas Anderson	qspi_sleep: qspi-sleep-state {
1357ab752f03SDouglas Anderson		pins = "gpio63", "gpio64", "gpio65", "gpio68";
1358ab752f03SDouglas Anderson
1359ab752f03SDouglas Anderson		/*
1360ab752f03SDouglas Anderson		 * When we're not actively transferring we want pins as GPIOs
1361ab752f03SDouglas Anderson		 * with output disabled so that the quad SPI IP block stops
1362ab752f03SDouglas Anderson		 * driving them. We rely on the normal pulls configured in
1363ab752f03SDouglas Anderson		 * the active state and don't redefine them here. Also note
1364ab752f03SDouglas Anderson		 * that we don't need the reverse (output-enable) in the
1365ab752f03SDouglas Anderson		 * normal mode since the "output-enable" only matters for
1366ab752f03SDouglas Anderson		 * GPIO function.
1367ab752f03SDouglas Anderson		 */
1368ab752f03SDouglas Anderson		function = "gpio";
1369ab752f03SDouglas Anderson		output-disable;
1370ab752f03SDouglas Anderson	};
1371ab752f03SDouglas Anderson
13722f0300a6SKrzysztof Kozlowski	qup_uart3_sleep: qup-uart3-sleep-state {
13732f0300a6SKrzysztof Kozlowski		cts-pins {
13744e0a3e04Ssatya priya			/*
13754e0a3e04Ssatya priya			 * Configure a pull-down on CTS to match the pull of
13764e0a3e04Ssatya priya			 * the Bluetooth module.
13774e0a3e04Ssatya priya			 */
13784e0a3e04Ssatya priya			pins = "gpio38";
13792f0300a6SKrzysztof Kozlowski			function = "gpio";
13804e0a3e04Ssatya priya			bias-pull-down;
13814e0a3e04Ssatya priya		};
13824e0a3e04Ssatya priya
13832f0300a6SKrzysztof Kozlowski		rts-pins {
13844e0a3e04Ssatya priya			/*
13854e0a3e04Ssatya priya			 * Configure pull-down on RTS. As RTS is active low
13864e0a3e04Ssatya priya			 * signal, pull it low to indicate the BT SoC that it
13874e0a3e04Ssatya priya			 * can wakeup the system anytime from suspend state by
13884e0a3e04Ssatya priya			 * pulling RX low (by sending wakeup bytes).
13894e0a3e04Ssatya priya			 */
13904e0a3e04Ssatya priya			pins = "gpio39";
13912f0300a6SKrzysztof Kozlowski			function = "gpio";
13924e0a3e04Ssatya priya			bias-pull-down;
13934e0a3e04Ssatya priya		};
13944e0a3e04Ssatya priya
13952f0300a6SKrzysztof Kozlowski		tx-pins {
13964e0a3e04Ssatya priya			/*
13974e0a3e04Ssatya priya			 * Configure pull-up on TX when it isn't actively driven
13984e0a3e04Ssatya priya			 * to prevent BT SoC from receiving garbage during sleep.
13994e0a3e04Ssatya priya			 */
14004e0a3e04Ssatya priya			pins = "gpio40";
14012f0300a6SKrzysztof Kozlowski			function = "gpio";
14024e0a3e04Ssatya priya			bias-pull-up;
14034e0a3e04Ssatya priya		};
14044e0a3e04Ssatya priya
14052f0300a6SKrzysztof Kozlowski		rx-pins {
14064e0a3e04Ssatya priya			/*
14074e0a3e04Ssatya priya			 * Configure a pull-up on RX. This is needed to avoid
14084e0a3e04Ssatya priya			 * garbage data when the TX pin of the Bluetooth module
14094e0a3e04Ssatya priya			 * is floating which may cause spurious wakeups.
14104e0a3e04Ssatya priya			 */
14114e0a3e04Ssatya priya			pins = "gpio41";
14122f0300a6SKrzysztof Kozlowski			function = "gpio";
14134e0a3e04Ssatya priya			bias-pull-up;
14144e0a3e04Ssatya priya		};
14154e0a3e04Ssatya priya	};
14164e0a3e04Ssatya priya
1417ce250024SDouglas Anderson	/* Named trackpad_int_1v8_odl on earlier revision schematics */
1418ce250024SDouglas Anderson	trackpad_int_1v8_odl:
14192f0300a6SKrzysztof Kozlowski	tp_int_odl: tp-int-odl-state {
1420ce250024SDouglas Anderson		pins = "gpio0";
14217ec3e673SRob Clark		function = "gpio";
14227ec3e673SRob Clark
14237ec3e673SRob Clark		/* Has external pullup */
14247ec3e673SRob Clark		bias-disable;
14257ec3e673SRob Clark	};
14267ec3e673SRob Clark
14272f0300a6SKrzysztof Kozlowski	ts_int_l: ts-int-l-state {
14287ec3e673SRob Clark		pins = "gpio9";
14297ec3e673SRob Clark		function = "gpio";
14307ec3e673SRob Clark		bias-pull-up;
14317ec3e673SRob Clark	};
14327ec3e673SRob Clark
14332f0300a6SKrzysztof Kozlowski	ts_reset_l: ts-reset-l-state {
14347ec3e673SRob Clark		pins = "gpio8";
14357ec3e673SRob Clark		function = "gpio";
14367ec3e673SRob Clark		bias-disable;
14379506a366SDouglas Anderson
14389506a366SDouglas Anderson		/*
14399506a366SDouglas Anderson		 * The reset GPIO to the touchscreen takes almost 2ms to drop
14409506a366SDouglas Anderson		 * at the default drive strength. When we bump it up to 8mA it
14419506a366SDouglas Anderson		 * falls in under 500us. We want this to be fast since the Elan
14429506a366SDouglas Anderson		 * datasheet (and any drivers written based on it) talk about using
14439506a366SDouglas Anderson		 * a 500 us reset pulse.
14449506a366SDouglas Anderson		 */
14459506a366SDouglas Anderson		drive-strength = <8>;
14467ec3e673SRob Clark	};
1447c8d6f8e5SSujit Kautkar
14482f0300a6SKrzysztof Kozlowski	sdc1_on: sdc1-on-state {
14492f0300a6SKrzysztof Kozlowski		clk-pins {
1450c8d6f8e5SSujit Kautkar			pins = "sdc1_clk";
1451c8d6f8e5SSujit Kautkar			bias-disable;
1452c8d6f8e5SSujit Kautkar			drive-strength = <16>;
1453c8d6f8e5SSujit Kautkar		};
1454c8d6f8e5SSujit Kautkar
14552f0300a6SKrzysztof Kozlowski		cmd-pins {
1456c8d6f8e5SSujit Kautkar			pins = "sdc1_cmd";
1457c8d6f8e5SSujit Kautkar			bias-pull-up;
1458752432e4SShaik Sajida Bhanu			drive-strength = <16>;
1459c8d6f8e5SSujit Kautkar		};
1460c8d6f8e5SSujit Kautkar
14612f0300a6SKrzysztof Kozlowski		data-pins {
1462c8d6f8e5SSujit Kautkar			pins = "sdc1_data";
1463c8d6f8e5SSujit Kautkar			bias-pull-up;
1464752432e4SShaik Sajida Bhanu			drive-strength = <16>;
1465c8d6f8e5SSujit Kautkar		};
1466c8d6f8e5SSujit Kautkar
14672f0300a6SKrzysztof Kozlowski		rclk-pins {
1468c8d6f8e5SSujit Kautkar			pins = "sdc1_rclk";
1469c8d6f8e5SSujit Kautkar			bias-pull-down;
1470c8d6f8e5SSujit Kautkar		};
1471c8d6f8e5SSujit Kautkar	};
1472c8d6f8e5SSujit Kautkar
14732f0300a6SKrzysztof Kozlowski	sdc1_off: sdc1-off-state {
14742f0300a6SKrzysztof Kozlowski		clk-pins {
1475c8d6f8e5SSujit Kautkar			pins = "sdc1_clk";
1476c8d6f8e5SSujit Kautkar			bias-disable;
1477c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1478c8d6f8e5SSujit Kautkar		};
1479c8d6f8e5SSujit Kautkar
14802f0300a6SKrzysztof Kozlowski		cmd-pins {
1481c8d6f8e5SSujit Kautkar			pins = "sdc1_cmd";
1482c8d6f8e5SSujit Kautkar			bias-pull-up;
1483c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1484c8d6f8e5SSujit Kautkar		};
1485c8d6f8e5SSujit Kautkar
14862f0300a6SKrzysztof Kozlowski		data-pins {
1487c8d6f8e5SSujit Kautkar			pins = "sdc1_data";
1488c8d6f8e5SSujit Kautkar			bias-pull-up;
1489c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1490c8d6f8e5SSujit Kautkar		};
1491c8d6f8e5SSujit Kautkar
14922f0300a6SKrzysztof Kozlowski		rclk-pins {
1493c8d6f8e5SSujit Kautkar			pins = "sdc1_rclk";
1494c8d6f8e5SSujit Kautkar			bias-pull-down;
1495c8d6f8e5SSujit Kautkar		};
1496c8d6f8e5SSujit Kautkar	};
1497c8d6f8e5SSujit Kautkar
14982f0300a6SKrzysztof Kozlowski	sdc2_on: sdc2-on-state {
14992f0300a6SKrzysztof Kozlowski		clk-pins {
1500c8d6f8e5SSujit Kautkar			pins = "sdc2_clk";
1501c8d6f8e5SSujit Kautkar			bias-disable;
1502c8d6f8e5SSujit Kautkar			drive-strength = <16>;
1503c8d6f8e5SSujit Kautkar		};
1504c8d6f8e5SSujit Kautkar
15052f0300a6SKrzysztof Kozlowski		cmd-pins {
1506c8d6f8e5SSujit Kautkar			pins = "sdc2_cmd";
1507c8d6f8e5SSujit Kautkar			bias-pull-up;
1508c8d6f8e5SSujit Kautkar			drive-strength = <10>;
1509c8d6f8e5SSujit Kautkar		};
1510c8d6f8e5SSujit Kautkar
15112f0300a6SKrzysztof Kozlowski		data-pins {
1512c8d6f8e5SSujit Kautkar			pins = "sdc2_data";
1513c8d6f8e5SSujit Kautkar			bias-pull-up;
1514c8d6f8e5SSujit Kautkar			drive-strength = <10>;
1515c8d6f8e5SSujit Kautkar		};
1516c8d6f8e5SSujit Kautkar
15172f0300a6SKrzysztof Kozlowski		sd-cd-pins {
1518c8d6f8e5SSujit Kautkar			pins = "gpio69";
15192f0300a6SKrzysztof Kozlowski			function = "gpio";
1520c8d6f8e5SSujit Kautkar			bias-pull-up;
1521c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1522c8d6f8e5SSujit Kautkar		};
1523c8d6f8e5SSujit Kautkar	};
1524c8d6f8e5SSujit Kautkar
15252f0300a6SKrzysztof Kozlowski	sdc2_off: sdc2-off-state {
15262f0300a6SKrzysztof Kozlowski		clk-pins {
1527c8d6f8e5SSujit Kautkar			pins = "sdc2_clk";
1528c8d6f8e5SSujit Kautkar			bias-disable;
1529c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1530c8d6f8e5SSujit Kautkar		};
1531c8d6f8e5SSujit Kautkar
15322f0300a6SKrzysztof Kozlowski		cmd-pins {
1533c8d6f8e5SSujit Kautkar			pins = "sdc2_cmd";
1534c8d6f8e5SSujit Kautkar			bias-pull-up;
1535c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1536c8d6f8e5SSujit Kautkar		};
1537c8d6f8e5SSujit Kautkar
15382f0300a6SKrzysztof Kozlowski		data-pins {
1539c8d6f8e5SSujit Kautkar			pins = "sdc2_data";
1540c8d6f8e5SSujit Kautkar			bias-pull-up;
1541c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1542c8d6f8e5SSujit Kautkar		};
1543c8d6f8e5SSujit Kautkar
15442f0300a6SKrzysztof Kozlowski		sd-cd-pins {
1545c8d6f8e5SSujit Kautkar			pins = "gpio69";
15462f0300a6SKrzysztof Kozlowski			function = "gpio";
154771208cd4SSujit Kautkar			bias-pull-up;
1548c8d6f8e5SSujit Kautkar			drive-strength = <2>;
1549c8d6f8e5SSujit Kautkar		};
1550c8d6f8e5SSujit Kautkar	};
1551bb59462eSStephen Boyd
15522f0300a6SKrzysztof Kozlowski	uf_cam_en: uf-cam-en-state {
1553bb59462eSStephen Boyd		pins = "gpio6";
1554bb59462eSStephen Boyd		function = "gpio";
1555bb59462eSStephen Boyd		drive-strength = <2>;
15562f0300a6SKrzysztof Kozlowski
1557bb59462eSStephen Boyd		/* External pull down */
1558bb59462eSStephen Boyd		bias-disable;
1559bb59462eSStephen Boyd	};
1560bb59462eSStephen Boyd
15612f0300a6SKrzysztof Kozlowski	wf_cam_en: wf-cam-en-state {
1562bb59462eSStephen Boyd		pins = "gpio7";
1563bb59462eSStephen Boyd		function = "gpio";
1564bb59462eSStephen Boyd		drive-strength = <2>;
15652f0300a6SKrzysztof Kozlowski
1566bb59462eSStephen Boyd		/* External pull down */
1567bb59462eSStephen Boyd		bias-disable;
1568bb59462eSStephen Boyd	};
1569bb59462eSStephen Boyd};
1570