// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/*
 * Copyright (c) 2023, Linaro Ltd
 */

/dts-v1/;

#include <dt-bindings/leds/common.h>
#include "qcm2290.dtsi"
#include "pm4125.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. Robotics RB1";
	compatible = "qcom,qrb2210-rb1", "qcom,qrb2210", "qcom,qcm2290";

	aliases {
		serial0 = &uart4;
		sdhc1 = &sdhc_1;
		sdhc2 = &sdhc_2;
	};

	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 = <&key_volp_n>;
		pinctrl-names = "default";

		key-volume-up {
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&tlmm 96 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;
	};

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

&CPU_PD0 {
	/delete-property/ power-domains;
};

&CPU_PD1 {
	/delete-property/ power-domains;
};

&CPU_PD2 {
	/delete-property/ power-domains;
};

&CPU_PD3 {
	/delete-property/ power-domains;
};

/delete-node/ &CLUSTER_PD;

&gpi_dma0 {
	status = "okay";
};

&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 = <&pm4125_l5>;
	status = "okay";
};

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

&mdss_dsi0_phy {
	status = "okay";
};

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

&qupv3_id_0 {
	status = "okay";
};

&remoteproc_adsp {
	firmware-name = "qcom/qcm2290/adsp.mbn";
	status = "okay";
};

&remoteproc_mpss {
	firmware-name = "qcom/qcm2290/modem.mbn";
	status = "okay";
};

&rpm_requests {
	regulators {
		compatible = "qcom,rpm-pm2250-regulators";
		vdd_s3-supply = <&vph_pwr>;
		vdd_s4-supply = <&vph_pwr>;
		vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>;
		vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>;
		vdd_l13_l14_l15_l16-supply = <&pm4125_s4>;

		/*
		 * S1 - VDD_APC
		 * S2 - VDD_CX
		 */

		pm4125_s3: s3 {
			/* 0.4V-1.6625V -> 1.3V (Power tree requirements) */
			regulator-min-microvolt = <1352000>;
			regulator-max-microvolt = <1352000>;
			regulator-boot-on;
		};

		pm4125_s4: s4 {
			/* 1.2V-2.35V -> 2.05V (Power tree requirements) */
			regulator-min-microvolt = <2072000>;
			regulator-max-microvolt = <2072000>;
			regulator-boot-on;
		};

		/* L1 - VDD_MX */

		pm4125_l2: l2 {
			/* LPDDR4X VDD2 */
			regulator-min-microvolt = <1136000>;
			regulator-max-microvolt = <1136000>;
			regulator-always-on;
			regulator-boot-on;
		};

		pm4125_l3: l3 {
			/* LPDDR4X VDDQ */
			regulator-min-microvolt = <616000>;
			regulator-max-microvolt = <616000>;
			regulator-always-on;
			regulator-boot-on;
		};

		pm4125_l4: l4 {
			/* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2700000>;
			regulator-allow-set-load;
		};

		pm4125_l5: l5 {
			/* CSI/DSI */
			regulator-min-microvolt = <1232000>;
			regulator-max-microvolt = <1232000>;
			regulator-allow-set-load;
			regulator-boot-on;
		};

		pm4125_l6: l6 {
			/* DRAM PLL */
			regulator-min-microvolt = <928000>;
			regulator-max-microvolt = <928000>;
			regulator-always-on;
			regulator-boot-on;
		};

		pm4125_l7: l7 {
			/* Wi-Fi CX/MX */
			regulator-min-microvolt = <664000>;
			regulator-max-microvolt = <664000>;
		};

		/*
		 * L8 - VDD_LPI_CX
		 * L9 - VDD_LPI_MX
		 */

		pm4125_l10: l10 {
			/* Wi-Fi RFA */
			regulator-min-microvolt = <1304000>;
			regulator-max-microvolt = <1304000>;
		};

		pm4125_l11: l11 {
			/* GPS RF1 */
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1000000>;
			regulator-boot-on;
		};

		pm4125_l12: l12 {
			/* USB PHYs */
			regulator-min-microvolt = <928000>;
			regulator-max-microvolt = <928000>;
			regulator-allow-set-load;
			regulator-boot-on;
		};

		pm4125_l13: l13 {
			/* USB/QFPROM/PLLs */
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-allow-set-load;
			regulator-boot-on;
		};

		pm4125_l14: l14 {
			/* SDHCI1 VQMMC */
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-allow-set-load;
			/* Broken hardware, never turn it off! */
			regulator-always-on;
		};

		pm4125_l15: l15 {
			/* WCD/DSI/BT VDDIO */
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-allow-set-load;
			regulator-always-on;
			regulator-boot-on;
		};

		pm4125_l16: l16 {
			/* GPS RF2 */
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-boot-on;
		};

		pm4125_l17: l17 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};

		pm4125_l18: l18 {
			/* VDD_PXn */
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm4125_l19: l19 {
			/* VDD_PXn */
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm4125_l20: l20 {
			/* SDHCI1 VMMC */
			regulator-min-microvolt = <2400000>;
			regulator-max-microvolt = <3600000>;
			regulator-allow-set-load;
		};

		pm4125_l21: l21 {
			/* SDHCI2 VMMC */
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <3300000>;
			regulator-allow-set-load;
			regulator-boot-on;
		};

		pm4125_l22: l22 {
			/* Wi-Fi */
			regulator-min-microvolt = <3312000>;
			regulator-max-microvolt = <3312000>;
		};
	};
};

&sdhc_1 {
	vmmc-supply = <&pm4125_l20>;
	vqmmc-supply = <&pm4125_l14>;
	pinctrl-0 = <&sdc1_state_on>;
	pinctrl-1 = <&sdc1_state_off>;
	pinctrl-names = "default", "sleep";
	non-removable;
	supports-cqe;
	no-sdio;
	no-sd;
	status = "okay";
};

&sdhc_2 {
	vmmc-supply = <&pm4125_l21>;
	vqmmc-supply = <&pm4125_l4>;
	cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>;
	pinctrl-0 = <&sdc2_state_on &sd_det_in_on>;
	pinctrl-1 = <&sdc2_state_off &sd_det_in_off>;
	pinctrl-names = "default", "sleep";
	no-sdio;
	no-mmc;
	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>;
	};
};

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

	sd_det_in_on: sd-det-in-on-state {
		pins = "gpio88";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};

	sd_det_in_off: sd-det-in-off-state {
		pins = "gpio88";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	key_volp_n: key-volp-n-state {
		pins = "gpio96";
		function = "gpio";
		bias-pull-up;
		output-disable;
	};
};

/* UART connected to the Micro-USB port via a FTDI chip */
&uart4 {
	compatible = "qcom,geni-debug-uart";
	status = "okay";
};

&usb {
	status = "okay";
};

&usb_qmpphy {
	vdda-phy-supply = <&pm4125_l12>;
	vdda-pll-supply = <&pm4125_l13>;
	status = "okay";
};

&usb_dwc3 {
	dr_mode = "host";
};

&usb_hsphy {
	vdd-supply = <&pm4125_l12>;
	vdda-pll-supply = <&pm4125_l13>;
	vdda-phy-dpdm-supply = <&pm4125_l21>;
	status = "okay";
};

&wifi {
	vdd-0.8-cx-mx-supply = <&pm4125_l7>;
	vdd-1.8-xo-supply = <&pm4125_l13>;
	vdd-1.3-rfa-supply = <&pm4125_l10>;
	vdd-3.3-ch0-supply = <&pm4125_l22>;
	qcom,ath10k-calibration-variant = "Thundercomm_RB1";
	status = "okay";
};

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