xref: /openbmc/linux/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
134279d6eSDmitry Baryshkov// SPDX-License-Identifier: BSD-3-Clause
234279d6eSDmitry Baryshkov/*
334279d6eSDmitry Baryshkov * Copyright (c) 2021, Linaro Ltd.
434279d6eSDmitry Baryshkov * Copyright (c) 2020, Konrad Dybcio <konrad.dybcio@somainline.org>
534279d6eSDmitry Baryshkov * Copyright (c) 2020, AngeloGioacchino Del Regno
634279d6eSDmitry Baryshkov *                     <angelogioacchino.delregno@somainline.org>
734279d6eSDmitry Baryshkov */
834279d6eSDmitry Baryshkov
934279d6eSDmitry Baryshkov/dts-v1/;
1034279d6eSDmitry Baryshkov
1134279d6eSDmitry Baryshkov#include "sdm660.dtsi"
1234279d6eSDmitry Baryshkov#include "pm660.dtsi"
1334279d6eSDmitry Baryshkov#include "pm660l.dtsi"
1434279d6eSDmitry Baryshkov
1534279d6eSDmitry Baryshkov/ {
1634279d6eSDmitry Baryshkov	model = "Inforce 6560 Single Board Computer";
1734279d6eSDmitry Baryshkov	compatible = "inforce,ifc6560", "qcom,sda660";
1834279d6eSDmitry Baryshkov	chassis-type = "embedded"; /* SBC */
1934279d6eSDmitry Baryshkov
2034279d6eSDmitry Baryshkov	aliases {
2134279d6eSDmitry Baryshkov		serial0 = &blsp1_uart2;
2234279d6eSDmitry Baryshkov		serial1 = &blsp2_uart1;
2334279d6eSDmitry Baryshkov	};
2434279d6eSDmitry Baryshkov
2534279d6eSDmitry Baryshkov	chosen {
2634279d6eSDmitry Baryshkov		stdout-path = "serial0:115200n8";
2734279d6eSDmitry Baryshkov	};
2834279d6eSDmitry Baryshkov
2934279d6eSDmitry Baryshkov	gpio-keys {
3034279d6eSDmitry Baryshkov		compatible = "gpio-keys";
3134279d6eSDmitry Baryshkov
320d8d7722SKrzysztof Kozlowski		key-volup {
3334279d6eSDmitry Baryshkov			label = "Volume Up";
3434279d6eSDmitry Baryshkov			gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
3534279d6eSDmitry Baryshkov			linux,code = <KEY_VOLUMEUP>;
3634279d6eSDmitry Baryshkov			debounce-interval = <15>;
3734279d6eSDmitry Baryshkov		};
3834279d6eSDmitry Baryshkov	};
3934279d6eSDmitry Baryshkov
4034279d6eSDmitry Baryshkov	/*
4134279d6eSDmitry Baryshkov	 * Until we hook up type-c detection, we
4234279d6eSDmitry Baryshkov	 * have to stick with this. But it works.
4334279d6eSDmitry Baryshkov	 */
4434279d6eSDmitry Baryshkov	extcon_usb: extcon-usb {
4534279d6eSDmitry Baryshkov		compatible = "linux,extcon-usb-gpio";
46*f6485041SAlexander Stein		id-gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>;
4734279d6eSDmitry Baryshkov	};
4834279d6eSDmitry Baryshkov
4934279d6eSDmitry Baryshkov	hdmi-out {
5034279d6eSDmitry Baryshkov		compatible = "hdmi-connector";
5134279d6eSDmitry Baryshkov		type = "a";
5234279d6eSDmitry Baryshkov
5334279d6eSDmitry Baryshkov		port {
5434279d6eSDmitry Baryshkov			hdmi_con: endpoint {
5534279d6eSDmitry Baryshkov				remote-endpoint = <&adv7533_out>;
5634279d6eSDmitry Baryshkov			};
5734279d6eSDmitry Baryshkov		};
5834279d6eSDmitry Baryshkov	};
5934279d6eSDmitry Baryshkov
6034279d6eSDmitry Baryshkov	vph_pwr: vph-pwr-regulator {
6134279d6eSDmitry Baryshkov		compatible = "regulator-fixed";
6234279d6eSDmitry Baryshkov		regulator-name = "vph_pwr";
6334279d6eSDmitry Baryshkov		regulator-min-microvolt = <3800000>;
6434279d6eSDmitry Baryshkov		regulator-max-microvolt = <3800000>;
6534279d6eSDmitry Baryshkov
6634279d6eSDmitry Baryshkov		regulator-always-on;
6734279d6eSDmitry Baryshkov		regulator-boot-on;
6834279d6eSDmitry Baryshkov	};
6934279d6eSDmitry Baryshkov
7034279d6eSDmitry Baryshkov	v3p3_bck_bst: v3p3-bck-bst-regulator {
7134279d6eSDmitry Baryshkov		compatible = "regulator-fixed";
7234279d6eSDmitry Baryshkov		regulator-name = "v3p3_bck_bst";
7334279d6eSDmitry Baryshkov
7434279d6eSDmitry Baryshkov		regulator-min-microvolt = <3300000>;
7534279d6eSDmitry Baryshkov		regulator-max-microvolt = <3300000>;
7634279d6eSDmitry Baryshkov
7734279d6eSDmitry Baryshkov		vin-supply = <&vph_pwr>;
7834279d6eSDmitry Baryshkov	};
7934279d6eSDmitry Baryshkov
8034279d6eSDmitry Baryshkov	v1p2_ldo: v1p2-ldo-regulator {
8134279d6eSDmitry Baryshkov		compatible = "regulator-fixed";
8234279d6eSDmitry Baryshkov		regulator-name = "v1p2_ldo";
8334279d6eSDmitry Baryshkov
8434279d6eSDmitry Baryshkov		regulator-min-microvolt = <1200000>;
8534279d6eSDmitry Baryshkov		regulator-max-microvolt = <1200000>;
8634279d6eSDmitry Baryshkov
8734279d6eSDmitry Baryshkov		vin-supply = <&vph_pwr>;
8834279d6eSDmitry Baryshkov	};
8934279d6eSDmitry Baryshkov
9034279d6eSDmitry Baryshkov	v5p0_boost: v5p0-boost-regulator {
9134279d6eSDmitry Baryshkov		compatible = "regulator-fixed";
9234279d6eSDmitry Baryshkov		regulator-name = "v5p0_boost";
9334279d6eSDmitry Baryshkov
9434279d6eSDmitry Baryshkov		regulator-min-microvolt = <5000000>;
9534279d6eSDmitry Baryshkov		regulator-max-microvolt = <5000000>;
9634279d6eSDmitry Baryshkov
9734279d6eSDmitry Baryshkov		vin-supply = <&vph_pwr>;
9834279d6eSDmitry Baryshkov	};
9934279d6eSDmitry Baryshkov};
10034279d6eSDmitry Baryshkov
10134279d6eSDmitry Baryshkov&adsp_pil {
1026dae44d9SDmitry Baryshkov	firmware-name = "qcom/sda660/adsp.mbn";
10334279d6eSDmitry Baryshkov};
10434279d6eSDmitry Baryshkov
10534279d6eSDmitry Baryshkov&blsp_i2c6 {
10634279d6eSDmitry Baryshkov	status = "okay";
10734279d6eSDmitry Baryshkov
10834279d6eSDmitry Baryshkov	adv7533: hdmi@39 {
10934279d6eSDmitry Baryshkov		compatible = "adi,adv7535";
11034279d6eSDmitry Baryshkov		reg = <0x39>, <0x66>;
11134279d6eSDmitry Baryshkov		reg-names = "main", "edid";
11234279d6eSDmitry Baryshkov
11334279d6eSDmitry Baryshkov		interrupt-parent = <&pm660l_gpios>;
11434279d6eSDmitry Baryshkov		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
11534279d6eSDmitry Baryshkov
11634279d6eSDmitry Baryshkov		clocks = <&rpmcc RPM_SMD_BB_CLK2>;
11734279d6eSDmitry Baryshkov		clock-names = "cec";
11834279d6eSDmitry Baryshkov		/*
11934279d6eSDmitry Baryshkov		 * Limit to 3 lanes to prevent the bridge from changing amount
12034279d6eSDmitry Baryshkov		 * of lanes in the fly. MSM DSI host doesn't like that.
12134279d6eSDmitry Baryshkov		 */
12234279d6eSDmitry Baryshkov		adi,dsi-lanes = <3>;
12334279d6eSDmitry Baryshkov		avdd-supply = <&vreg_l13a_1p8>;
12434279d6eSDmitry Baryshkov		dvdd-supply = <&vreg_l13a_1p8>;
12534279d6eSDmitry Baryshkov		pvdd-supply = <&vreg_l13a_1p8>;
12634279d6eSDmitry Baryshkov		a2vdd-supply = <&vreg_l13a_1p8>;
12734279d6eSDmitry Baryshkov		v3p3-supply = <&v3p3_bck_bst>;
12834279d6eSDmitry Baryshkov
12934279d6eSDmitry Baryshkov		ports {
13034279d6eSDmitry Baryshkov			#address-cells = <1>;
13134279d6eSDmitry Baryshkov			#size-cells = <0>;
13234279d6eSDmitry Baryshkov
13334279d6eSDmitry Baryshkov			port@0 {
13434279d6eSDmitry Baryshkov				reg = <0>;
13534279d6eSDmitry Baryshkov
13634279d6eSDmitry Baryshkov				adv7533_in: endpoint {
1378e61d532SDmitry Baryshkov					remote-endpoint = <&mdss_dsi0_out>;
13834279d6eSDmitry Baryshkov				};
13934279d6eSDmitry Baryshkov			};
14034279d6eSDmitry Baryshkov
14134279d6eSDmitry Baryshkov			port@1 {
14234279d6eSDmitry Baryshkov				reg = <1>;
14334279d6eSDmitry Baryshkov
14434279d6eSDmitry Baryshkov				adv7533_out: endpoint {
14534279d6eSDmitry Baryshkov					remote-endpoint = <&hdmi_con>;
14634279d6eSDmitry Baryshkov				};
14734279d6eSDmitry Baryshkov			};
14834279d6eSDmitry Baryshkov		};
14934279d6eSDmitry Baryshkov	};
15034279d6eSDmitry Baryshkov};
15134279d6eSDmitry Baryshkov
15234279d6eSDmitry Baryshkov&blsp1_dma {
15334279d6eSDmitry Baryshkov	/*
15434279d6eSDmitry Baryshkov	 * The board will lock up if we toggle the BLSP clock, unless the
15534279d6eSDmitry Baryshkov	 * BAM DMA interconnects support is in place.
15634279d6eSDmitry Baryshkov	 */
15734279d6eSDmitry Baryshkov	/delete-property/ clocks;
15834279d6eSDmitry Baryshkov};
15934279d6eSDmitry Baryshkov
16034279d6eSDmitry Baryshkov&blsp1_uart2 {
16134279d6eSDmitry Baryshkov	status = "okay";
16234279d6eSDmitry Baryshkov};
16334279d6eSDmitry Baryshkov
16434279d6eSDmitry Baryshkov&blsp2_dma {
16534279d6eSDmitry Baryshkov	/*
16634279d6eSDmitry Baryshkov	 * The board will lock up if we toggle the BLSP clock, unless the
16734279d6eSDmitry Baryshkov	 * BAM DMA interconnects support is in place.
16834279d6eSDmitry Baryshkov	 */
16934279d6eSDmitry Baryshkov	/delete-property/ clocks;
17034279d6eSDmitry Baryshkov};
17134279d6eSDmitry Baryshkov
17234279d6eSDmitry Baryshkov&blsp2_uart1 {
17334279d6eSDmitry Baryshkov	status = "okay";
17434279d6eSDmitry Baryshkov
17534279d6eSDmitry Baryshkov	bluetooth {
17634279d6eSDmitry Baryshkov		compatible = "qcom,wcn3990-bt";
17734279d6eSDmitry Baryshkov
17834279d6eSDmitry Baryshkov		vddio-supply = <&vreg_l13a_1p8>;
17934279d6eSDmitry Baryshkov		vddxo-supply = <&vreg_l9a_1p8>;
18034279d6eSDmitry Baryshkov		vddrf-supply = <&vreg_l6a_1p3>;
18134279d6eSDmitry Baryshkov		vddch0-supply = <&vreg_l19a_3p3>;
18234279d6eSDmitry Baryshkov		max-speed = <3200000>;
18334279d6eSDmitry Baryshkov	};
18434279d6eSDmitry Baryshkov};
18534279d6eSDmitry Baryshkov
1868e61d532SDmitry Baryshkov&mdss {
1878e61d532SDmitry Baryshkov	status = "okay";
1888e61d532SDmitry Baryshkov};
1898e61d532SDmitry Baryshkov
1908e61d532SDmitry Baryshkov&mdss_dsi0 {
19134279d6eSDmitry Baryshkov	status = "okay";
19234279d6eSDmitry Baryshkov	vdda-supply = <&vreg_l1a_1p225>;
19334279d6eSDmitry Baryshkov};
19434279d6eSDmitry Baryshkov
1958e61d532SDmitry Baryshkov&mdss_dsi0_out {
19634279d6eSDmitry Baryshkov	remote-endpoint = <&adv7533_in>;
19734279d6eSDmitry Baryshkov	data-lanes = <0 1 2 3>;
19834279d6eSDmitry Baryshkov};
19934279d6eSDmitry Baryshkov
2008e61d532SDmitry Baryshkov&mdss_dsi0_phy {
20134279d6eSDmitry Baryshkov	status = "okay";
20234279d6eSDmitry Baryshkov	vcca-supply = <&vreg_l1b_0p925>;
20334279d6eSDmitry Baryshkov};
20434279d6eSDmitry Baryshkov
20534279d6eSDmitry Baryshkov&mmss_smmu {
20634279d6eSDmitry Baryshkov	status = "okay";
20734279d6eSDmitry Baryshkov};
20834279d6eSDmitry Baryshkov
20934279d6eSDmitry Baryshkov&pon_pwrkey {
21034279d6eSDmitry Baryshkov	status = "okay";
21134279d6eSDmitry Baryshkov};
21234279d6eSDmitry Baryshkov
21334279d6eSDmitry Baryshkov&pon_resin {
21434279d6eSDmitry Baryshkov	status = "okay";
21534279d6eSDmitry Baryshkov
21634279d6eSDmitry Baryshkov	linux,code = <KEY_VOLUMEUP>;
21734279d6eSDmitry Baryshkov};
21834279d6eSDmitry Baryshkov
21934279d6eSDmitry Baryshkov&qusb2phy0 {
22034279d6eSDmitry Baryshkov	status = "okay";
22134279d6eSDmitry Baryshkov
22234279d6eSDmitry Baryshkov	vdd-supply = <&vreg_l1b_0p925>;
22334279d6eSDmitry Baryshkov	vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
22434279d6eSDmitry Baryshkov};
22534279d6eSDmitry Baryshkov
22634279d6eSDmitry Baryshkov&qusb2phy1 {
22734279d6eSDmitry Baryshkov	status = "okay";
22834279d6eSDmitry Baryshkov
22934279d6eSDmitry Baryshkov	vdd-supply = <&vreg_l1b_0p925>;
23034279d6eSDmitry Baryshkov	vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
23134279d6eSDmitry Baryshkov};
23234279d6eSDmitry Baryshkov
23334279d6eSDmitry Baryshkov&rpm_requests {
234372698e8SKrzysztof Kozlowski	regulators-0 {
23534279d6eSDmitry Baryshkov		compatible = "qcom,rpm-pm660-regulators";
23634279d6eSDmitry Baryshkov
23734279d6eSDmitry Baryshkov		vdd_s1-supply = <&vph_pwr>;
23834279d6eSDmitry Baryshkov		vdd_s2-supply = <&vph_pwr>;
23934279d6eSDmitry Baryshkov		vdd_s3-supply = <&vph_pwr>;
24034279d6eSDmitry Baryshkov		vdd_s4-supply = <&vph_pwr>;
24134279d6eSDmitry Baryshkov		vdd_s5-supply = <&vph_pwr>;
24234279d6eSDmitry Baryshkov		vdd_s6-supply = <&vph_pwr>;
24334279d6eSDmitry Baryshkov
24434279d6eSDmitry Baryshkov		vdd_l1_l6_l7-supply = <&vreg_s5a_1p35>;
24534279d6eSDmitry Baryshkov		vdd_l2_l3-supply = <&vreg_s2b_1p05>;
24634279d6eSDmitry Baryshkov		vdd_l5-supply = <&vreg_s2b_1p05>;
24734279d6eSDmitry Baryshkov		vdd_l8_l9_l10_l11_l12_l13_l14-supply = <&vreg_s4a_2p04>;
24834279d6eSDmitry Baryshkov		vdd_l15_l16_l17_l18_l19-supply = <&vreg_bob>;
24934279d6eSDmitry Baryshkov
25034279d6eSDmitry Baryshkov		vreg_s4a_2p04: s4 {
25134279d6eSDmitry Baryshkov			regulator-min-microvolt = <1805000>;
25234279d6eSDmitry Baryshkov			regulator-max-microvolt = <2040000>;
25334279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <200>;
25434279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
25534279d6eSDmitry Baryshkov			regulator-always-on;
25634279d6eSDmitry Baryshkov		};
25734279d6eSDmitry Baryshkov
25834279d6eSDmitry Baryshkov		vreg_s5a_1p35: s5 {
25934279d6eSDmitry Baryshkov			regulator-min-microvolt = <1224000>;
26034279d6eSDmitry Baryshkov			regulator-max-microvolt = <1350000>;
26134279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <200>;
26234279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
26334279d6eSDmitry Baryshkov		};
26434279d6eSDmitry Baryshkov
26534279d6eSDmitry Baryshkov		vreg_l1a_1p225: l1 {
26634279d6eSDmitry Baryshkov			regulator-min-microvolt = <1150000>;
26734279d6eSDmitry Baryshkov			regulator-max-microvolt = <1250000>;
26834279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
26934279d6eSDmitry Baryshkov			regulator-allow-set-load;
27034279d6eSDmitry Baryshkov		};
27134279d6eSDmitry Baryshkov
27234279d6eSDmitry Baryshkov		vreg_l6a_1p3: l6 {
27334279d6eSDmitry Baryshkov			regulator-min-microvolt = <1304000>;
27434279d6eSDmitry Baryshkov			regulator-max-microvolt = <1368000>;
27534279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
27634279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
27734279d6eSDmitry Baryshkov			regulator-allow-set-load;
27834279d6eSDmitry Baryshkov		};
27934279d6eSDmitry Baryshkov
28034279d6eSDmitry Baryshkov		vreg_l8a_1p8: l8 {
28134279d6eSDmitry Baryshkov			regulator-min-microvolt = <1800000>;
28234279d6eSDmitry Baryshkov			regulator-max-microvolt = <1800000>;
28334279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
28434279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
28534279d6eSDmitry Baryshkov			regulator-system-load = <325000>;
28634279d6eSDmitry Baryshkov			regulator-allow-set-load;
28734279d6eSDmitry Baryshkov		};
28834279d6eSDmitry Baryshkov
28934279d6eSDmitry Baryshkov		vreg_l9a_1p8: l9 {
29034279d6eSDmitry Baryshkov			regulator-min-microvolt = <1804000>;
29134279d6eSDmitry Baryshkov			regulator-max-microvolt = <1896000>;
29234279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
29334279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
29434279d6eSDmitry Baryshkov			regulator-allow-set-load;
29534279d6eSDmitry Baryshkov		};
29634279d6eSDmitry Baryshkov
29734279d6eSDmitry Baryshkov		vreg_l13a_1p8: l13 {
29834279d6eSDmitry Baryshkov			/* This gives power to the LPDDR4: never turn it off! */
29934279d6eSDmitry Baryshkov			regulator-min-microvolt = <1800000>;
30034279d6eSDmitry Baryshkov			regulator-max-microvolt = <1944000>;
30134279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
30234279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
30334279d6eSDmitry Baryshkov			regulator-always-on;
30434279d6eSDmitry Baryshkov			regulator-boot-on;
30534279d6eSDmitry Baryshkov		};
30634279d6eSDmitry Baryshkov
30734279d6eSDmitry Baryshkov		vreg_l19a_3p3: l19 {
30834279d6eSDmitry Baryshkov			regulator-min-microvolt = <3312000>;
30934279d6eSDmitry Baryshkov			regulator-max-microvolt = <3400000>;
31034279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
31134279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
31234279d6eSDmitry Baryshkov			regulator-allow-set-load;
31334279d6eSDmitry Baryshkov		};
31434279d6eSDmitry Baryshkov	};
31534279d6eSDmitry Baryshkov
316372698e8SKrzysztof Kozlowski	regulators-1 {
31734279d6eSDmitry Baryshkov		compatible = "qcom,rpm-pm660l-regulators";
31834279d6eSDmitry Baryshkov
31934279d6eSDmitry Baryshkov		vdd_s1-supply = <&vph_pwr>;
32034279d6eSDmitry Baryshkov		vdd_s2-supply = <&vph_pwr>;
32134279d6eSDmitry Baryshkov		vdd_s3_s4-supply = <&vph_pwr>;
32234279d6eSDmitry Baryshkov		vdd_s5-supply = <&vph_pwr>;
32334279d6eSDmitry Baryshkov		vdd_s6-supply = <&vph_pwr>;
32434279d6eSDmitry Baryshkov
32534279d6eSDmitry Baryshkov		vdd_l1_l9_l10-supply = <&vreg_s2b_1p05>;
32634279d6eSDmitry Baryshkov		vdd_l2-supply = <&vreg_bob>;
32734279d6eSDmitry Baryshkov		vdd_l3_l5_l7_l8-supply = <&vreg_bob>;
32834279d6eSDmitry Baryshkov		vdd_l4_l6-supply = <&vreg_bob>;
32934279d6eSDmitry Baryshkov		vdd_bob-supply = <&vph_pwr>;
33034279d6eSDmitry Baryshkov
33134279d6eSDmitry Baryshkov		vreg_s2b_1p05: s2 {
33234279d6eSDmitry Baryshkov			regulator-min-microvolt = <1050000>;
33334279d6eSDmitry Baryshkov			regulator-max-microvolt = <1050000>;
33434279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <200>;
33534279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
33634279d6eSDmitry Baryshkov		};
33734279d6eSDmitry Baryshkov
33834279d6eSDmitry Baryshkov		vreg_l1b_0p925: l1 {
33934279d6eSDmitry Baryshkov			regulator-min-microvolt = <800000>;
34034279d6eSDmitry Baryshkov			regulator-max-microvolt = <925000>;
34134279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
34234279d6eSDmitry Baryshkov			regulator-allow-set-load;
34334279d6eSDmitry Baryshkov		};
34434279d6eSDmitry Baryshkov
34534279d6eSDmitry Baryshkov		vreg_l2b_2p95: l2 {
34634279d6eSDmitry Baryshkov			regulator-min-microvolt = <1648000>;
34734279d6eSDmitry Baryshkov			regulator-max-microvolt = <3100000>;
34834279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
34934279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
35034279d6eSDmitry Baryshkov			regulator-allow-set-load;
35134279d6eSDmitry Baryshkov		};
35234279d6eSDmitry Baryshkov
35334279d6eSDmitry Baryshkov		vreg_l4b_2p95: l4 {
35434279d6eSDmitry Baryshkov			regulator-min-microvolt = <2944000>;
35534279d6eSDmitry Baryshkov			regulator-max-microvolt = <2952000>;
35634279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
35734279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
35834279d6eSDmitry Baryshkov
35934279d6eSDmitry Baryshkov			regulator-min-microamp = <200>;
36034279d6eSDmitry Baryshkov			regulator-max-microamp = <600000>;
36134279d6eSDmitry Baryshkov			regulator-system-load = <570000>;
36234279d6eSDmitry Baryshkov			regulator-allow-set-load;
36334279d6eSDmitry Baryshkov		};
36434279d6eSDmitry Baryshkov
36534279d6eSDmitry Baryshkov		/*
36634279d6eSDmitry Baryshkov		 * Downstream specifies a range of 1721-3600mV,
36734279d6eSDmitry Baryshkov		 * but the only assigned consumers are SDHCI2 VMMC
36834279d6eSDmitry Baryshkov		 * and Coresight QPDI that both request pinned 2.95V.
36934279d6eSDmitry Baryshkov		 * Tighten the range to 1.8-3.328 (closest to 3.3) to
37034279d6eSDmitry Baryshkov		 * make the mmc driver happy.
37134279d6eSDmitry Baryshkov		 */
37234279d6eSDmitry Baryshkov		vreg_l5b_2p95: l5 {
37334279d6eSDmitry Baryshkov			regulator-min-microvolt = <1800000>;
37434279d6eSDmitry Baryshkov			regulator-max-microvolt = <3328000>;
37534279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
37634279d6eSDmitry Baryshkov			regulator-system-load = <800000>;
37734279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
37834279d6eSDmitry Baryshkov			regulator-allow-set-load;
37934279d6eSDmitry Baryshkov		};
38034279d6eSDmitry Baryshkov
38134279d6eSDmitry Baryshkov		vreg_l7b_3p125: l7 {
38234279d6eSDmitry Baryshkov			regulator-min-microvolt = <2700000>;
38334279d6eSDmitry Baryshkov			regulator-max-microvolt = <3125000>;
38434279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
38534279d6eSDmitry Baryshkov		};
38634279d6eSDmitry Baryshkov
38734279d6eSDmitry Baryshkov		vreg_l8b_3p3: l8 {
38834279d6eSDmitry Baryshkov			regulator-min-microvolt = <2800000>;
38934279d6eSDmitry Baryshkov			regulator-max-microvolt = <3400000>;
39034279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <250>;
39134279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
39234279d6eSDmitry Baryshkov		};
39334279d6eSDmitry Baryshkov
39434279d6eSDmitry Baryshkov		vreg_bob: bob {
39534279d6eSDmitry Baryshkov			regulator-min-microvolt = <3300000>;
39634279d6eSDmitry Baryshkov			regulator-max-microvolt = <3624000>;
39734279d6eSDmitry Baryshkov			regulator-enable-ramp-delay = <500>;
39834279d6eSDmitry Baryshkov			regulator-ramp-delay = <0>;
39934279d6eSDmitry Baryshkov		};
40034279d6eSDmitry Baryshkov	};
40134279d6eSDmitry Baryshkov};
40234279d6eSDmitry Baryshkov
40334279d6eSDmitry Baryshkov&sdc2_state_on {
404048a765aSKrzysztof Kozlowski	sd-cd-pins {
40534279d6eSDmitry Baryshkov		pins = "gpio54";
406048a765aSKrzysztof Kozlowski		function = "gpio";
40734279d6eSDmitry Baryshkov		bias-pull-up;
40834279d6eSDmitry Baryshkov		drive-strength = <2>;
40934279d6eSDmitry Baryshkov	};
41034279d6eSDmitry Baryshkov};
41134279d6eSDmitry Baryshkov
41234279d6eSDmitry Baryshkov&sdc2_state_off {
413048a765aSKrzysztof Kozlowski	sd-cd-pins {
41434279d6eSDmitry Baryshkov		pins = "gpio54";
415048a765aSKrzysztof Kozlowski		function = "gpio";
41634279d6eSDmitry Baryshkov		bias-disable;
41734279d6eSDmitry Baryshkov		drive-strength = <2>;
41834279d6eSDmitry Baryshkov	};
41934279d6eSDmitry Baryshkov};
42034279d6eSDmitry Baryshkov
42134279d6eSDmitry Baryshkov&sdhc_1 {
42234279d6eSDmitry Baryshkov	status = "okay";
42334279d6eSDmitry Baryshkov	supports-cqe;
42434279d6eSDmitry Baryshkov
42534279d6eSDmitry Baryshkov	vmmc-supply = <&vreg_l4b_2p95>;
42634279d6eSDmitry Baryshkov	vqmmc-supply = <&vreg_l8a_1p8>;
42734279d6eSDmitry Baryshkov
42834279d6eSDmitry Baryshkov	mmc-ddr-1_8v;
42934279d6eSDmitry Baryshkov	mmc-hs400-1_8v;
43034279d6eSDmitry Baryshkov	mmc-hs400-enhanced-strobe;
43134279d6eSDmitry Baryshkov};
43234279d6eSDmitry Baryshkov
43334279d6eSDmitry Baryshkov&sdhc_2 {
43434279d6eSDmitry Baryshkov	status = "okay";
43534279d6eSDmitry Baryshkov
43634279d6eSDmitry Baryshkov	vmmc-supply = <&vreg_l5b_2p95>;
43734279d6eSDmitry Baryshkov	vqmmc-supply = <&vreg_l2b_2p95>;
43834279d6eSDmitry Baryshkov
43934279d6eSDmitry Baryshkov	cd-gpios = <&tlmm 54 GPIO_ACTIVE_LOW>;
44034279d6eSDmitry Baryshkov	no-sdio;
4416e36e6c6SKrzysztof Kozlowski	no-mmc;
44234279d6eSDmitry Baryshkov};
44334279d6eSDmitry Baryshkov
44434279d6eSDmitry Baryshkov&tlmm {
44534279d6eSDmitry Baryshkov	gpio-reserved-ranges = <0 4>, <8 4>;
44634279d6eSDmitry Baryshkov};
44734279d6eSDmitry Baryshkov
44834279d6eSDmitry Baryshkov&usb2 {
44934279d6eSDmitry Baryshkov	status = "okay";
45034279d6eSDmitry Baryshkov};
45134279d6eSDmitry Baryshkov
45234279d6eSDmitry Baryshkov&usb2_dwc3 {
45334279d6eSDmitry Baryshkov	dr_mode = "host";
45434279d6eSDmitry Baryshkov};
45534279d6eSDmitry Baryshkov
45634279d6eSDmitry Baryshkov&usb3 {
45734279d6eSDmitry Baryshkov	status = "okay";
45834279d6eSDmitry Baryshkov};
45934279d6eSDmitry Baryshkov
46034279d6eSDmitry Baryshkov&usb3_dwc3 {
46134279d6eSDmitry Baryshkov	dr_mode = "peripheral";
46234279d6eSDmitry Baryshkov	extcon = <&extcon_usb>;
46334279d6eSDmitry Baryshkov};
464