// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2023, Linaro Limited
 */

/dts-v1/;

#include <dt-bindings/leds/common.h>
#include <dt-bindings/usb/pd.h>
#include "sm4250.dtsi"
#include "pm6125.dtsi"
#include "pmi632.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. QRB4210 RB2";
	compatible = "qcom,qrb4210-rb2", "qcom,qrb4210", "qcom,sm4250";

	aliases {
		serial0 = &uart4;
		serial1 = &uart3;
	};

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

	clocks {
		clk40M: can-clk {
			compatible = "fixed-clock";
			clock-frequency = <40000000>;
			#clock-cells = <0>;
		};
	};

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

		pinctrl-0 = <&kypd_vol_up_n>;
		pinctrl-names = "default";

		key-volume-up {
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>;
			debounce-interval = <15>;
			linux,can-disable;
			wakeup-source;
		};
	};

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

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

	leds {
		compatible = "gpio-leds";

		led-bt {
			label = "blue:bt";
			function = LED_FUNCTION_BLUETOOTH;
			color = <LED_COLOR_ID_BLUE>;
			gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "bluetooth-power";
			default-state = "off";
		};

		led-user0 {
			label = "green:user0";
			function = LED_FUNCTION_INDICATOR;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "none";
			default-state = "off";
			panic-indicator;
		};

		led-wlan {
			label = "yellow:wlan";
			function = LED_FUNCTION_WLAN;
			color = <LED_COLOR_ID_YELLOW>;
			gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "phy0tx";
			default-state = "off";
		};
	};

	vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 {
		compatible = "regulator-fixed";
		regulator-name = "VREG_HDMI_OUT_1P2";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
		vin-supply = <&vdc_1v2>;
		regulator-always-on;
		regulator-boot-on;
	};

	lt9611_3v3: regulator-lt9611-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "LT9611_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vdc_3v3>;
		regulator-always-on;
		regulator-boot-on;
	};

	/* Main barrel jack input */
	vdc_12v: regulator-vdc-12v {
		compatible = "regulator-fixed";
		regulator-name = "DC_12V";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	/* 1.2V supply stepped down from the barrel jack input */
	vdc_1v2: regulator-vdc-1v2 {
		compatible = "regulator-fixed";
		regulator-name = "VDC_1V2";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
		vin-supply = <&vdc_12v>;
		regulator-always-on;
		regulator-boot-on;
	};

	/* 3.3V supply stepped down from the barrel jack input */
	vdc_3v3: regulator-vdc-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VDC_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vdc_12v>;
		regulator-always-on;
		regulator-boot-on;
	};

	/* 5V supply stepped down from the barrel jack input */
	vdc_5v: regulator-vdc-5v {
		compatible = "regulator-fixed";
		regulator-name = "VDC_5V";

		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	/* "Battery" voltage for the SoM, stepped down from the barrel jack input */
	vdc_vbat_som: regulator-vdc-vbat {
		compatible = "regulator-fixed";
		regulator-name = "VBAT_SOM";
		regulator-min-microvolt = <4200000>;
		regulator-max-microvolt = <4200000>;
		regulator-always-on;
		regulator-boot-on;
	};

	/* PMI632 charger out, supplied by VBAT */
	vph_pwr: regulator-vph-pwr {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-min-microvolt = <3700000>;
		regulator-max-microvolt = <3700000>;
		vin-supply = <&vdc_vbat_som>;

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

&gpi_dma0 {
	status = "okay";
};

&gpu {
	status = "okay";

	zap-shader {
		firmware-name = "qcom/qrb4210/a610_zap.mbn";
	};
};

&i2c2 {
	clock-frequency = <400000>;
	status = "okay";

	lt9611_codec: hdmi-bridge@2b {
		compatible = "lontium,lt9611uxc";
		reg = <0x2b>;
		interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
		reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;

		vdd-supply = <&vreg_hdmi_out_1p2>;
		vcc-supply = <&lt9611_3v3>;

		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
		pinctrl-names = "default";
		#sound-dai-cells = <1>;

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

			port@0 {
				reg = <0>;

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

			port@2 {
				reg = <2>;

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

&mdss {
	status = "okay";
};

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

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

&mdss_dsi0_phy {
	status = "okay";
};

&pm6125_gpios {
	kypd_vol_up_n: kypd-vol-up-n-state {
		pins = "gpio5";
		function = "normal";
		power-source = <0>;
		bias-pull-up;
		input-enable;
	};
};

&pmi632_typec {
	status = "okay";

	connector {
		compatible = "usb-c-connector";

		power-role = "dual";
		data-role = "dual";
		self-powered;

		typec-power-opmode = "default";
		pd-disable;

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

			port@0 {
				reg = <0>;
				pmi632_hs_in: endpoint {
					remote-endpoint = <&usb_dwc3_hs>;
				};
			};

			port@1 {
				reg = <1>;
				pmi632_ss_in: endpoint {
					remote-endpoint = <&usb_qmpphy_out>;
				};
			};
		};
	};
};

&pmi632_vbus {
	regulator-min-microamp = <500000>;
	regulator-max-microamp = <3000000>;
	status = "okay";
};

&pon_pwrkey {
	status = "okay";
};

&pon_resin {
	linux,code = <KEY_VOLUMEDOWN>;
	status = "okay";
};

&qupv3_id_0 {
	status = "okay";
};

&remoteproc_adsp {
	firmware-name = "qcom/qrb4210/adsp.mbn";

	status = "okay";
};

&remoteproc_cdsp {
	firmware-name = "qcom/qrb4210/cdsp.mbn";

	status = "okay";
};

&remoteproc_mpss {
	firmware-name = "qcom/qrb4210/modem.mbn";

	status = "okay";
};

&rpm_requests {
	regulators {
		compatible = "qcom,rpm-pm6125-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-s7-supply = <&vph_pwr>;
		vdd-s8-supply = <&vph_pwr>;
		vdd-s9-supply = <&vph_pwr>;
		vdd-s10-supply = <&vph_pwr>;

		vdd-l1-l7-l17-l18-supply = <&vreg_s6a_1p352>;
		vdd-l2-l3-l4-supply = <&vreg_s6a_1p352>;
		vdd-l5-l15-l19-l20-l21-l22-supply = <&vph_pwr>;
		vdd-l6-l8-supply = <&vreg_s5a_0p848>;
		vdd-l9-l11-supply = <&vreg_s7a_2p04>;
		vdd-l10-l13-l14-supply = <&vreg_s7a_2p04>;
		vdd-l12-l16-supply = <&vreg_s7a_2p04>;
		vdd-l23-l24-supply = <&vph_pwr>;

		vreg_s5a_0p848: s5 {
			regulator-min-microvolt = <920000>;
			regulator-max-microvolt = <1128000>;
		};

		vreg_s6a_1p352: s6 {
			regulator-min-microvolt = <304000>;
			regulator-max-microvolt = <1456000>;
		};

		vreg_s7a_2p04: s7 {
			regulator-min-microvolt = <1280000>;
			regulator-max-microvolt = <2080000>;
		};

		vreg_l1a_1p0: l1 {
			regulator-min-microvolt = <952000>;
			regulator-max-microvolt = <1152000>;
		};

		vreg_l4a_0p9: l4 {
			regulator-min-microvolt = <488000>;
			regulator-max-microvolt = <1000000>;
		};

		vreg_l5a_2p96: l5 {
			regulator-min-microvolt = <1648000>;
			regulator-max-microvolt = <3056000>;
			regulator-allow-set-load;
		};

		vreg_l6a_0p6: l6 {
			regulator-min-microvolt = <576000>;
			regulator-max-microvolt = <656000>;
		};

		vreg_l7a_1p256: l7 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1304000>;
		};

		vreg_l8a_0p664: l8 {
			regulator-min-microvolt = <640000>;
			regulator-max-microvolt = <640000>;
		};

		vreg_l9a_1p8: l9 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-allow-set-load;
		};

		vreg_l10a_1p8: l10 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1904000>;
		};

		vreg_l11a_1p8: l11 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1952000>;
			regulator-allow-set-load;
		};

		vreg_l12a_1p8: l12 {
			regulator-min-microvolt = <1624000>;
			regulator-max-microvolt = <1984000>;
		};

		vreg_l13a_1p8: l13 {
			regulator-min-microvolt = <1504000>;
			regulator-max-microvolt = <1952000>;
		};

		vreg_l14a_1p8: l14 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1904000>;
		};

		vreg_l15a_3p128: l15 {
			regulator-min-microvolt = <2920000>;
			regulator-max-microvolt = <3232000>;
		};

		vreg_l16a_1p3: l16 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1904000>;
			regulator-allow-set-load;
		};

		vreg_l17a_1p3: l17 {
			regulator-min-microvolt = <1152000>;
			regulator-max-microvolt = <1384000>;
			regulator-allow-set-load;
		};

		vreg_l18a_1p232: l18 {
			regulator-min-microvolt = <1104000>;
			regulator-max-microvolt = <1312000>;
		};

		vreg_l19a_1p8: l19 {
			regulator-min-microvolt = <1624000>;
			regulator-max-microvolt = <3304000>;
		};

		vreg_l20a_1p8: l20 {
			regulator-min-microvolt = <1624000>;
			regulator-max-microvolt = <3304000>;
		};

		vreg_l21a_2p704: l21 {
			regulator-min-microvolt = <2400000>;
			regulator-max-microvolt = <3600000>;
		};

		vreg_l22a_2p96: l22 {
			regulator-min-microvolt = <2952000>;
			regulator-max-microvolt = <3304000>;
			regulator-system-load = <100000>;
			regulator-allow-set-load;
		};

		vreg_l23a_3p3: l23 {
			regulator-min-microvolt = <3312000>;
			regulator-max-microvolt = <3312000>;
			regulator-allow-set-load;
		};

		vreg_l24a_2p96: l24 {
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <3600000>;
			regulator-system-load = <100000>;
			regulator-allow-set-load;
		};
	};
};

&sdhc_1 {
	pinctrl-0 = <&sdc1_state_on>;
	pinctrl-1 = <&sdc1_state_off>;
	pinctrl-names = "default", "sleep";

	vmmc-supply = <&vreg_l24a_2p96>;
	vqmmc-supply = <&vreg_l11a_1p8>;
	no-sdio;
	non-removable;

	status = "okay";
};

&sdhc_2 {
	cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; /* card detect gpio */

	pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>;
	pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>;
	pinctrl-names = "default", "sleep";

	vmmc-supply = <&vreg_l22a_2p96>;
	vqmmc-supply = <&vreg_l5a_2p96>;
	no-sdio;

	status = "okay";
};

&spi5 {
	status = "okay";

	can@0 {
		compatible = "microchip,mcp2518fd";
		reg = <0>;
		interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>;
		clocks = <&clk40M>;
		spi-max-frequency = <10000000>;
		vdd-supply = <&vdc_5v>;
		xceiver-supply = <&vdc_5v>;
	};
};

&sleep_clk {
	clock-frequency = <32000>;
};

&tlmm {
	gpio-reserved-ranges = <43 2>, <49 1>, <54 1>,
			       <56 3>, <61 2>, <64 1>,
			       <68 1>, <72 8>, <96 1>;

	uart3_default: uart3-default-state {
		cts-pins {
			pins = "gpio8";
			function = "qup3";
			drive-strength = <2>;
			bias-bus-hold;
		};

		rts-pins {
			pins = "gpio9";
			function = "qup3";
			drive-strength = <2>;
			bias-disable;
		};

		tx-pins {
			pins = "gpio10";
			function = "qup3";
			drive-strength = <2>;
			bias-disable;
		};

		rx-pins {
			pins = "gpio11";
			function = "qup3";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	uart3_sleep: uart3-sleep-state {
		cts-pins {
			pins = "gpio8";
			function = "gpio";
			drive-strength = <2>;
			bias-bus-hold;
		};

		rts-pins {
			pins = "gpio9";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-down;
		};

		tx-pins {
			pins = "gpio10";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};

		rx-pins {
			pins = "gpio11";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	lt9611_rst_pin: lt9611-rst-state {
		pins = "gpio41";
		function = "gpio";
		input-disable;
		output-high;
	};

	lt9611_irq_pin: lt9611-irq-state {
		pins = "gpio46";
		function = "gpio";
		bias-disable;
	};

	sdc2_card_det_n: sd-card-det-n-state {
		pins = "gpio88";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};
};

&uart3 {
	interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
			      <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
	pinctrl-0 = <&uart3_default>;
	pinctrl-1 = <&uart3_sleep>;
	pinctrl-names = "default", "sleep";
	status = "okay";

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

		vddio-supply = <&vreg_l9a_1p8>;
		vddxo-supply = <&vreg_l16a_1p3>;
		vddrf-supply = <&vreg_l17a_1p3>;
		vddch0-supply = <&vreg_l23a_3p3>;
		enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
		max-speed = <3200000>;
	};
};

&uart4 {
	status = "okay";
};

&usb {
	status = "okay";
};

&usb_dwc3_hs {
	remote-endpoint = <&pmi632_hs_in>;
};

&usb_hsphy {
	vdd-supply = <&vreg_l4a_0p9>;
	vdda-pll-supply = <&vreg_l12a_1p8>;
	vdda-phy-dpdm-supply = <&vreg_l15a_3p128>;

	status = "okay";
};

&usb_qmpphy {
	vdda-phy-supply = <&vreg_l4a_0p9>;
	vdda-pll-supply = <&vreg_l12a_1p8>;

	status = "okay";
};

&usb_qmpphy_out {
	remote-endpoint = <&pmi632_ss_in>;
};

&wifi {
	vdd-0.8-cx-mx-supply = <&vreg_l8a_0p664>;
	vdd-1.8-xo-supply = <&vreg_l16a_1p3>;
	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
	vdd-3.3-ch0-supply = <&vreg_l23a_3p3>;
	qcom,ath10k-calibration-variant = "Thundercomm_RB2";

	status = "okay";
};

&xo_board {
	clock-frequency = <19200000>;
};
