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

/dts-v1/;

#include <dt-bindings/leds/common.h>
#include "sm4250.dtsi"
#include "pm6125.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;
	};
};

&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 {
	maximum-speed = "super-speed";
};

&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";
};

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