// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2020, Linaro Ltd.
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm8250.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
#include "pm8150l.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. Robotics RB5";
	compatible = "qcom,qrb5165-rb5", "qcom,sm8250";

	aliases {
		serial0 = &uart12;
	};

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

	dc12v: dc12v-regulator {
		compatible = "regulator-fixed";
		regulator-name = "DC12V";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		regulator-always-on;
	};

	leds {
		compatible = "gpio-leds";

		user4 {
			label = "green:user4";
			gpios = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "panic-indicator";
			default-state = "off";
		};

		wlan {
			label = "yellow:wlan";
			gpios = <&pm8150_gpios 9 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "phy0tx";
			default-state = "off";
		};

		bt {
			label = "blue:bt";
			gpios = <&pm8150_gpios 7 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "bluetooth-power";
			default-state = "off";
		};

	};

	vbat: vbat-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VBAT";
		vin-supply = <&vreg_l11c_3p3>;
		regulator-min-microvolt = <4200000>;
		regulator-max-microvolt = <4200000>;
		regulator-always-on;
	};

	vbat_som: vbat-som-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VBAT_SOM";
		vin-supply = <&dc12v>;
		regulator-min-microvolt = <4200000>;
		regulator-max-microvolt = <4200000>;
		regulator-always-on;
	};

	vdc_3v3: vdc-3v3-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VDC_3V3";
		vin-supply = <&dc12v>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	vdc_5v: vdc-5v-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VDC_5V";

		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
		vin-supply = <&vreg_l11c_3p3>;
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-min-microvolt = <3700000>;
		regulator-max-microvolt = <3700000>;
		regulator-always-on;
	};

	vreg_s4a_1p8: vreg-s4a-1p8 {
		compatible = "regulator-fixed";
		regulator-name = "vreg_s4a_1p8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};
};

&apps_rsc {
	pm8009-rpmh-regulators {
		compatible = "qcom,pm8009-1-rpmh-regulators";
		qcom,pmic-id = "f";

		vdd-s1-supply = <&vph_pwr>;
		vdd-s2-supply = <&vph_pwr>;
		vdd-l2-supply = <&vreg_s8c_1p3>;
		vdd-l5-l6-supply = <&vreg_bob>;
		vdd-l7-supply = <&vreg_s4a_1p8>;

		vreg_s2f_0p95: smps2 {
			regulator-name = "vreg_s2f_0p95";
			regulator-min-microvolt = <900000>;
			regulator-max-microvolt = <952000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
		};

		vreg_l1f_1p1: ldo1 {
			regulator-name = "vreg_l1f_1p1";
			regulator-min-microvolt = <1104000>;
			regulator-max-microvolt = <1104000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2f_1p2: ldo2 {
			regulator-name = "vreg_l2f_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6f_2p8: ldo6 {
			regulator-name = "vreg_l6f_2p8";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7f_1p8: ldo7 {
			regulator-name = "vreg_l7f_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	pm8150-rpmh-regulators {
		compatible = "qcom,pm8150-rpmh-regulators";
		qcom,pmic-id = "a";

		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-l2-l10-supply = <&vreg_bob>;
		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p95>;
		vdd-l6-l9-supply = <&vreg_s8c_1p3>;
		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
		vdd-l13-l16-l17-supply = <&vreg_bob>;

		vreg_l2a_3p1: ldo2 {
			regulator-name = "vreg_l2a_3p1";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3a_0p9: ldo3 {
			regulator-name = "vreg_l3a_0p9";
			regulator-min-microvolt = <928000>;
			regulator-max-microvolt = <932000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5a_0p88: ldo5 {
			regulator-name = "vreg_l5a_0p88";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6a_1p2: ldo6 {
			regulator-name = "vreg_l6a_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7a_1p7: ldo7 {
			regulator-name = "vreg_l7a_1p7";
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9a_1p2: ldo9 {
			regulator-name = "vreg_l9a_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10a_1p8: ldo10 {
			regulator-name = "vreg_l10a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l12a_1p8: ldo12 {
			regulator-name = "vreg_l12a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l13a_ts_3p0: ldo13 {
			regulator-name = "vreg_l13a_ts_3p0";
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l14a_1p8: ldo14 {
			regulator-name = "vreg_l14a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l15a_1p8: ldo15 {
			regulator-name = "vreg_l15a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l16a_2p7: ldo16 {
			regulator-name = "vreg_l16a_2p7";
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l17a_3p0: ldo17 {
			regulator-name = "vreg_l17a_3p0";
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l18a_0p92: ldo18 {
			regulator-name = "vreg_l18a_0p92";
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <912000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s5a_1p9: smps5 {
			regulator-name = "vreg_s5a_1p9";
			regulator-min-microvolt = <1904000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s6a_0p95: smps6 {
			regulator-name = "vreg_s6a_0p95";
			regulator-min-microvolt = <920000>;
			regulator-max-microvolt = <1128000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	pm8150l-rpmh-regulators {
		compatible = "qcom,pm8150l-rpmh-regulators";
		qcom,pmic-id = "c";

		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-l1-l8-supply = <&vreg_s4a_1p8>;
		vdd-l2-l3-supply = <&vreg_s8c_1p3>;
		vdd-l4-l5-l6-supply = <&vreg_bob>;
		vdd-l7-l11-supply = <&vreg_bob>;
		vdd-l9-l10-supply = <&vreg_bob>;
		vdd-bob-supply = <&vph_pwr>;

		vreg_bob: bob {
			regulator-name = "vreg_bob";
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <4000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
		};

		vreg_l1c_1p8: ldo1 {
			regulator-name = "vreg_l1c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2c_1p2: ldo2 {
			regulator-name = "vreg_l2c_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3c_0p8: ldo3 {
			regulator-name = "vreg_l3c_0p8";
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4c_1p7: ldo4 {
			regulator-name = "vreg_l4c_1p7";
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <2928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5c_1p8: ldo5 {
			regulator-name = "vreg_l5c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6c_2p96: ldo6 {
			regulator-name = "vreg_l6c_2p96";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7c_cam_vcm0_2p85: ldo7 {
			regulator-name = "vreg_l7c_cam_vcm0_2p85";
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <3104000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8c_1p8: ldo8 {
			regulator-name = "vreg_l8c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9c_2p96: ldo9 {
			regulator-name = "vreg_l9c_2p96";
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10c_3p0: ldo10 {
			regulator-name = "vreg_l10c_3p0";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11c_3p3: ldo11 {
			regulator-name = "vreg_l11c_3p3";
			regulator-min-microvolt = <3296000>;
			regulator-max-microvolt = <3296000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-always-on;
		};

		vreg_s8c_1p3: smps8 {
			regulator-name = "vreg_s8c_1p3";
			regulator-min-microvolt = <1352000>;
			regulator-max-microvolt = <1352000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};
};

/* LS-I2C0 */
&i2c4 {
	status = "okay";
};

&i2c5 {
	status = "okay";
};

/* LS-I2C1 */
&i2c15 {
	status = "okay";
};

&pm8150_gpios {
	gpio-reserved-ranges = <1 1>, <3 2>, <7 1>;
	gpio-line-names =
		"NC",
		"OPTION2",
		"PM_GPIO-F",
		"PM_SLP_CLK_IN",
		"OPTION1",
		"VOL_UP_N",
		"PM8250_GPIO7", /* Blue LED */
		"SP_ARI_PWR_ALARM",
		"GPIO_9_P", /* Yellow LED */
		"GPIO_10_P"; /* Green LED */
};

&pm8150b_gpios {
	gpio-line-names =
		"NC",
		"NC",
		"NC",
		"NC",
		"HAP_BOOST_EN", /* SOM */
		"SMB_STAT", /* SOM */
		"NC",
		"NC",
		"SDM_FORCE_USB_BOOT",
		"NC",
		"NC",
		"NC";
};

&pm8150l_gpios {
	gpio-line-names =
		"NC",
		"PM3003A_EN",
		"NC",
		"NC",
		"PM_GPIO5", /* HDMI RST_N */
		"PM_GPIO-A", /* PWM */
		"PM_GPIO7",
		"NC",
		"NC",
		"PM_GPIO-B",
		"NC",
		"PM3003A_MODE";
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&qupv3_id_2 {
	status = "okay";
};

/* CAN */
&spi0 {
	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <40 4>;
	gpio-line-names =
		"GPIO-MM",
		"GPIO-NN",
		"GPIO-OO",
		"GPIO-PP",
		"GPIO-A",
		"GPIO-C",
		"GPIO-E",
		"GPIO-D",
		"I2C0-SDA",
		"I2C0-SCL",
		"GPIO-TT", /* GPIO_10 */
		"NC",
		"GPIO_12_I2C_SDA",
		"GPIO_13_I2C_SCL",
		"GPIO-X",
		"GPIO_15_RGMII_INT",
		"HST_BT_UART_CTS",
		"HST_BT_UART_RFR",
		"HST_BT_UART_TX",
		"HST_BT_UART_RX",
		"HST_WLAN_EN", /* GPIO_20 */
		"HST_BT_EN",
		"GPIO-AAA",
		"GPIO-BBB",
		"GPIO-CCC",
		"GPIO-Z",
		"GPIO-DDD",
		"GPIO-BB",
		"GPIO_28_CAN_SPI_MISO",
		"GPIO_29_CAN_SPI_MOSI",
		"GPIO_30_CAN_SPI_CLK", /* GPIO_30 */
		"GPIO_31_CAN_SPI_CS",
		"GPIO-UU",
		"NC",
		"UART1_TXD_SOM",
		"UART1_RXD_SOM",
		"UART0_CTS",
		"UART0_RTS",
		"UART0_TXD",
		"UART0_RXD",
		"SPI1_MISO", /* GPIO_40 */
		"SPI1_MOSI",
		"SPI1_CLK",
		"SPI1_CS",
		"I2C1_SDA",
		"I2C1_SCL",
		"GPIO-F",
		"GPIO-JJ",
		"Board_ID1",
		"Board_ID2",
		"NC", /* GPIO_50 */
		"NC",
		"SPI0_MISO",
		"SPI0_MOSI",
		"SPI0_SCLK",
		"SPI0_CS",
		"GPIO-QQ",
		"GPIO-RR",
		"USB2LAN_RESET",
		"USB2LAN_EXTWAKE",
		"NC", /* GPIO_60 */
		"NC",
		"NC",
		"LT9611_INT",
		"GPIO-AA",
		"USB_CC_DIR",
		"GPIO-G",
		"GPIO-LL",
		"USB_DP_HPD_1P8",
		"NC",
		"NC", /* GPIO_70 */
		"SD_CMD",
		"SD_DAT3",
		"SD_SCLK",
		"SD_DAT2",
		"SD_DAT1",
		"SD_DAT0", /* BOOT_CFG3 */
		"SD_UFS_CARD_DET_N",
		"GPIO-II",
		"PCIE0_RST_N",
		"PCIE0_CLK_REQ_N", /* GPIO_80 */
		"PCIE0_WAKE_N",
		"GPIO-CC",
		"GPIO-DD",
		"GPIO-EE",
		"GPIO-FF",
		"GPIO-GG",
		"GPIO-HH",
		"GPIO-VV",
		"GPIO-WW",
		"NC", /* GPIO_90 */
		"NC",
		"GPIO-K",
		"GPIO-I",
		"CSI0_MCLK",
		"CSI1_MCLK",
		"CSI2_MCLK",
		"CSI3_MCLK",
		"GPIO-AA", /* CSI4_MCLK */
		"GPIO-BB", /* CSI5_MCLK */
		"GPIO-KK", /* GPIO_100 */
		"CCI_I2C_SDA0",
		"CCI_I2C_SCL0",
		"CCI_I2C_SDA1",
		"CCI_I2C_SCL1",
		"CCI_I2C_SDA2",
		"CCI_I2C_SCL2",
		"CCI_I2C_SDA3",
		"CCI_I2C_SCL3",
		"GPIO-L",
		"NC", /* GPIO_110 */
		"NC",
		"ACCEL_INT",
		"GYRO_INT",
		"GPIO-J",
		"GPIO-YY",
		"GPIO-H",
		"GPIO-ZZ",
		"NC",
		"NC",
		"NC", /* GPIO_120 */
		"NC",
		"MAG_INT",
		"MAG_DRDY_INT",
		"HST_SW_CTRL",
		"GPIO-M",
		"GPIO-N",
		"GPIO-O",
		"GPIO-P",
		"PS_INT",
		"WSA1_EN", /* GPIO_130 */
		"USB_HUB_RESET",
		"SDM_FORCE_USB_BOOT",
		"I2S1_CLK_HDMI",
		"I2S1_DATA0_HDMI",
		"I2S1_WS_HDMI",
		"GPIO-B",
		"GPIO_137", /* To LT9611_I2S_MCLK_3V3 */
		"PCM_CLK",
		"PCM_DI",
		"PCM_DO", /* GPIO_140 */
		"PCM_FS",
		"HST_SLIM_CLK",
		"HST_SLIM_DATA",
		"GPIO-U",
		"GPIO-Y",
		"GPIO-R",
		"GPIO-Q",
		"GPIO-S",
		"GPIO-T",
		"GPIO-V", /* GPIO_150 */
		"GPIO-W",
		"DMIC_CLK1",
		"DMIC_DATA1",
		"DMIC_CLK2",
		"DMIC_DATA2",
		"WSA_SWR_CLK",
		"WSA_SWR_DATA",
		"DMIC_CLK3",
		"DMIC_DATA3",
		"I2C4_SDA", /* GPIO_160 */
		"I2C4_SCL",
		"SPI3_CS1",
		"SPI3_CS2",
		"SPI2_MISO_LS3",
		"SPI2_MOSI_LS3",
		"SPI2_CLK_LS3",
		"SPI2_ACCEL_CS_LS3",
		"SPI2_CS1",
		"NC",
		"GPIO-SS", /* GPIO_170 */
		"GPIO-XX",
		"SPI3_MISO",
		"SPI3_MOSI",
		"SPI3_CLK",
		"SPI3_CS",
		"HST_BLE_SNS_UART_TX",
		"HST_BLE_SNS_UART_RX",
		"HST_WLAN_UART_TX",
		"HST_WLAN_UART_RX";
};

&uart12 {
	status = "okay";
};

&ufs_mem_hc {
	status = "okay";

	vcc-supply = <&vreg_l17a_3p0>;
	vcc-max-microamp = <800000>;
	vccq-supply = <&vreg_l6a_1p2>;
	vccq-max-microamp = <800000>;
	vccq2-supply = <&vreg_s4a_1p8>;
	vccq2-max-microamp = <800000>;
};

&ufs_mem_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l5a_0p88>;
	vdda-max-microamp = <89900>;
	vdda-pll-supply = <&vreg_l9a_1p2>;
	vdda-pll-max-microamp = <18800>;
};
