// 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>;
			};
		};
	};

	i2c2_gpio: i2c {
		compatible = "i2c-gpio";

		sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
		scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;

		status = "disabled";
	};

	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_gpio {
	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 = <1000000>;
	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;
			regulator-always-on;
			regulator-boot-on;
		};

		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";
	firmware-name = "qrb4210";

	status = "okay";
};

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