// 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 "pm2250.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;
	};
};

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

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

&mdss_dsi0_phy {
	status = "okay";
};

&pm2250_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 = <&pm2250_s3>;
		vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>;
		vdd_l13_l14_l15_l16-supply = <&pm2250_s4>;

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

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

		pm2250_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 */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&sdhc_1 {
	vmmc-supply = <&pm2250_l20>;
	vqmmc-supply = <&pm2250_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 = <&pm2250_l21>;
	vqmmc-supply = <&pm2250_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 = <&pm2250_l12>;
	vdda-pll-supply = <&pm2250_l13>;
	status = "okay";
};

&usb_dwc3 {
	dr_mode = "host";
};

&usb_hsphy {
	vdd-supply = <&pm2250_l12>;
	vdda-pll-supply = <&pm2250_l13>;
	vdda-phy-dpdm-supply = <&pm2250_l21>;
	status = "okay";
};

&wifi {
	vdd-0.8-cx-mx-supply = <&pm2250_l7>;
	vdd-1.8-xo-supply = <&pm2250_l13>;
	vdd-1.3-rfa-supply = <&pm2250_l10>;
	vdd-3.3-ch0-supply = <&pm2250_l22>;
	qcom,ath10k-calibration-variant = "Thundercomm_RB1";
	status = "okay";
};

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