// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, Linaro Ltd.
 * Copyright (c) 2020, Konrad Dybcio <konrad.dybcio@somainline.org>
 * Copyright (c) 2020, AngeloGioacchino Del Regno
 *                     <angelogioacchino.delregno@somainline.org>
 */

/dts-v1/;

#include "sdm660.dtsi"
#include "pm660.dtsi"
#include "pm660l.dtsi"

/ {
	model = "Inforce 6560 Single Board Computer";
	compatible = "inforce,ifc6560", "qcom,sda660";
	chassis-type = "embedded"; /* SBC */

	aliases {
		serial0 = &blsp1_uart2;
		serial1 = &blsp2_uart1;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	gpio-keys {
		compatible = "gpio-keys";

		key-volup {
			label = "Volume Up";
			gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
			debounce-interval = <15>;
		};
	};

	/*
	 * Until we hook up type-c detection, we
	 * have to stick with this. But it works.
	 */
	extcon_usb: extcon-usb {
		compatible = "linux,extcon-usb-gpio";
		id-gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>;
	};

	hdmi-out {
		compatible = "hdmi-connector";
		type = "a";

		port {
			hdmi_con: endpoint {
				remote-endpoint = <&adv7533_out>;
			};
		};
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-min-microvolt = <3800000>;
		regulator-max-microvolt = <3800000>;

		regulator-always-on;
		regulator-boot-on;
	};

	v3p3_bck_bst: v3p3-bck-bst-regulator {
		compatible = "regulator-fixed";
		regulator-name = "v3p3_bck_bst";

		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		vin-supply = <&vph_pwr>;
	};

	v1p2_ldo: v1p2-ldo-regulator {
		compatible = "regulator-fixed";
		regulator-name = "v1p2_ldo";

		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;

		vin-supply = <&vph_pwr>;
	};

	v5p0_boost: v5p0-boost-regulator {
		compatible = "regulator-fixed";
		regulator-name = "v5p0_boost";

		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;

		vin-supply = <&vph_pwr>;
	};

	/*
	 * this is also used for APC1 CPU power, touching it resets the board
	 */
	vreg_l10a_1p8: vreg-l10a-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vreg_l10a_1p8";
		regulator-min-microvolt = <1804000>;
		regulator-max-microvolt = <1896000>;
		regulator-always-on;
		regulator-boot-on;
	};
};

&adsp_pil {
	firmware-name = "qcom/sda660/adsp.mbn";
};

&blsp_i2c6 {
	status = "okay";

	adv7533: hdmi@39 {
		compatible = "adi,adv7535";
		reg = <0x39>, <0x66>;
		reg-names = "main", "edid";

		interrupt-parent = <&pm660l_gpios>;
		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;

		clocks = <&rpmcc RPM_SMD_BB_CLK2>;
		clock-names = "cec";
		/*
		 * Limit to 3 lanes to prevent the bridge from changing amount
		 * of lanes in the fly. MSM DSI host doesn't like that.
		 */
		adi,dsi-lanes = <3>;
		avdd-supply = <&vreg_l13a_1p8>;
		dvdd-supply = <&vreg_l13a_1p8>;
		pvdd-supply = <&vreg_l13a_1p8>;
		a2vdd-supply = <&vreg_l13a_1p8>;
		v3p3-supply = <&v3p3_bck_bst>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				adv7533_in: endpoint {
					remote-endpoint = <&mdss_dsi0_out>;
				};
			};

			port@1 {
				reg = <1>;

				adv7533_out: endpoint {
					remote-endpoint = <&hdmi_con>;
				};
			};
		};
	};
};

&blsp1_dma {
	/*
	 * The board will lock up if we toggle the BLSP clock, unless the
	 * BAM DMA interconnects support is in place.
	 */
	/delete-property/ clocks;
};

&blsp1_uart2 {
	status = "okay";
};

&blsp2_dma {
	/*
	 * The board will lock up if we toggle the BLSP clock, unless the
	 * BAM DMA interconnects support is in place.
	 */
	/delete-property/ clocks;
};

&blsp2_uart1 {
	status = "okay";

	bluetooth {
		compatible = "qcom,wcn3990-bt";

		vddio-supply = <&vreg_l13a_1p8>;
		vddxo-supply = <&vreg_l9a_1p8>;
		vddrf-supply = <&vreg_l6a_1p3>;
		vddch0-supply = <&vreg_l19a_3p3>;
		max-speed = <3200000>;
	};
};

&mdss {
	status = "okay";
};

&mdss_dsi0 {
	status = "okay";
	vdda-supply = <&vreg_l1a_1p225>;
};

&mdss_dsi0_out {
	remote-endpoint = <&adv7533_in>;
	data-lanes = <0 1 2 3>;
};

&mdss_dsi0_phy {
	status = "okay";
	vcca-supply = <&vreg_l1b_0p925>;
};

&mmss_smmu {
	status = "okay";
};

&pon_pwrkey {
	status = "okay";
};

&pon_resin {
	status = "okay";

	linux,code = <KEY_VOLUMEUP>;
};

&qusb2phy0 {
	status = "okay";

	vdd-supply = <&vreg_l1b_0p925>;
	vdda-pll-supply = <&vreg_l10a_1p8>;
	vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
};

&qusb2phy1 {
	status = "okay";

	vdd-supply = <&vreg_l1b_0p925>;
	vdda-pll-supply = <&vreg_l10a_1p8>;
	vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
};

&rpm_requests {
	regulators-0 {
		compatible = "qcom,rpm-pm660-regulators";

		vdd_s1-supply = <&vph_pwr>;
		vdd_s2-supply = <&vph_pwr>;
		vdd_s3-supply = <&vph_pwr>;
		vdd_s4-supply = <&vph_pwr>;
		vdd_s5-supply = <&vph_pwr>;
		vdd_s6-supply = <&vph_pwr>;

		vdd_l1_l6_l7-supply = <&vreg_s5a_1p35>;
		vdd_l2_l3-supply = <&vreg_s2b_1p05>;
		vdd_l5-supply = <&vreg_s2b_1p05>;
		vdd_l8_l9_l10_l11_l12_l13_l14-supply = <&vreg_s4a_2p04>;
		vdd_l15_l16_l17_l18_l19-supply = <&vreg_bob>;

		vreg_s4a_2p04: s4 {
			regulator-min-microvolt = <1805000>;
			regulator-max-microvolt = <2040000>;
			regulator-enable-ramp-delay = <200>;
			regulator-ramp-delay = <0>;
			regulator-always-on;
		};

		vreg_s5a_1p35: s5 {
			regulator-min-microvolt = <1224000>;
			regulator-max-microvolt = <1350000>;
			regulator-enable-ramp-delay = <200>;
			regulator-ramp-delay = <0>;
		};

		vreg_l1a_1p225: l1 {
			regulator-min-microvolt = <1150000>;
			regulator-max-microvolt = <1250000>;
			regulator-enable-ramp-delay = <250>;
			regulator-allow-set-load;
		};

		vreg_l6a_1p3: l6 {
			regulator-min-microvolt = <1304000>;
			regulator-max-microvolt = <1368000>;
			regulator-enable-ramp-delay = <250>;
			regulator-ramp-delay = <0>;
			regulator-allow-set-load;
		};

		vreg_l8a_1p8: l8 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-enable-ramp-delay = <250>;
			regulator-ramp-delay = <0>;
			regulator-system-load = <325000>;
			regulator-allow-set-load;
		};

		vreg_l9a_1p8: l9 {
			regulator-min-microvolt = <1804000>;
			regulator-max-microvolt = <1896000>;
			regulator-enable-ramp-delay = <250>;
			regulator-ramp-delay = <0>;
			regulator-allow-set-load;
		};

		vreg_l13a_1p8: l13 {
			/* This gives power to the LPDDR4: never turn it off! */
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1944000>;
			regulator-enable-ramp-delay = <250>;
			regulator-ramp-delay = <0>;
			regulator-always-on;
			regulator-boot-on;
		};

		vreg_l19a_3p3: l19 {
			regulator-min-microvolt = <3312000>;
			regulator-max-microvolt = <3400000>;
			regulator-enable-ramp-delay = <250>;
			regulator-ramp-delay = <0>;
			regulator-allow-set-load;
		};
	};

	regulators-1 {
		compatible = "qcom,rpm-pm660l-regulators";

		vdd_s1-supply = <&vph_pwr>;
		vdd_s2-supply = <&vph_pwr>;
		vdd_s3_s4-supply = <&vph_pwr>;
		vdd_s5-supply = <&vph_pwr>;
		vdd_s6-supply = <&vph_pwr>;

		vdd_l1_l9_l10-supply = <&vreg_s2b_1p05>;
		vdd_l2-supply = <&vreg_bob>;
		vdd_l3_l5_l7_l8-supply = <&vreg_bob>;
		vdd_l4_l6-supply = <&vreg_bob>;
		vdd_bob-supply = <&vph_pwr>;

		vreg_s2b_1p05: s2 {
			regulator-min-microvolt = <1050000>;
			regulator-max-microvolt = <1050000>;
			regulator-enable-ramp-delay = <200>;
			regulator-ramp-delay = <0>;
		};

		vreg_l1b_0p925: l1 {
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <925000>;
			regulator-enable-ramp-delay = <250>;
			regulator-allow-set-load;
		};

		vreg_l2b_2p95: l2 {
			regulator-min-microvolt = <1648000>;
			regulator-max-microvolt = <3100000>;
			regulator-enable-ramp-delay = <250>;
			regulator-ramp-delay = <0>;
			regulator-allow-set-load;
		};

		vreg_l4b_2p95: l4 {
			regulator-min-microvolt = <2944000>;
			regulator-max-microvolt = <2952000>;
			regulator-enable-ramp-delay = <250>;
			regulator-ramp-delay = <0>;

			regulator-min-microamp = <200>;
			regulator-max-microamp = <600000>;
			regulator-system-load = <570000>;
			regulator-allow-set-load;
		};

		/*
		 * Downstream specifies a range of 1721-3600mV,
		 * but the only assigned consumers are SDHCI2 VMMC
		 * and Coresight QPDI that both request pinned 2.95V.
		 * Tighten the range to 1.8-3.328 (closest to 3.3) to
		 * make the mmc driver happy.
		 */
		vreg_l5b_2p95: l5 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3328000>;
			regulator-enable-ramp-delay = <250>;
			regulator-system-load = <800000>;
			regulator-ramp-delay = <0>;
			regulator-allow-set-load;
		};

		vreg_l7b_3p125: l7 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3125000>;
			regulator-enable-ramp-delay = <250>;
		};

		vreg_l8b_3p3: l8 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <3400000>;
			regulator-enable-ramp-delay = <250>;
			regulator-ramp-delay = <0>;
		};

		vreg_bob: bob {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3624000>;
			regulator-enable-ramp-delay = <500>;
			regulator-ramp-delay = <0>;
		};
	};
};

&sdc2_state_on {
	sd-cd-pins {
		pins = "gpio54";
		function = "gpio";
		bias-pull-up;
		drive-strength = <2>;
	};
};

&sdc2_state_off {
	sd-cd-pins {
		pins = "gpio54";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
	};
};

&sdhc_1 {
	status = "okay";
	supports-cqe;

	vmmc-supply = <&vreg_l4b_2p95>;
	vqmmc-supply = <&vreg_l8a_1p8>;

	mmc-ddr-1_8v;
	mmc-hs400-1_8v;
	mmc-hs400-enhanced-strobe;
};

&sdhc_2 {
	status = "okay";

	vmmc-supply = <&vreg_l5b_2p95>;
	vqmmc-supply = <&vreg_l2b_2p95>;

	cd-gpios = <&tlmm 54 GPIO_ACTIVE_LOW>;
	no-sdio;
	no-mmc;
};

&tlmm {
	gpio-reserved-ranges = <0 4>, <8 4>;
};

&usb2 {
	status = "okay";
};

&usb2_dwc3 {
	dr_mode = "host";
};

&usb3 {
	status = "okay";
};

&usb3_dwc3 {
	dr_mode = "peripheral";
	extcon = <&extcon_usb>;
};

&usb3_qmpphy {
	vdda-phy-supply = <&vreg_l1b_0p925>;
	vdda-pll-supply = <&vreg_l10a_1p8>;
	status = "okay";
};
