// SPDX-License-Identifier: GPL-2.0+ OR X11
/*
 * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
 */

#include <dt-bindings/pwm/pwm.h>
#include "rk3399.dtsi"

/ {
	model = "Theobroma Systems RK3399-Q7 SoM";
	compatible = "tsd,rk3399-q7", "tsd,puma", "rockchip,rk3399";

	config {
		u-boot,spl-payload-offset = <0x40000>; /* @ 256KB */
		u-boot,mmc-env-offset = <0x4000>;      /* @  16KB */
		u-boot,efi-partition-entries-offset = <0x200000>; /* 2MB */
		u-boot,boot-led = "module_led";
		sysreset-gpio = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;
	};

	chosen {
		stdout-path = "serial0:115200n8";
		u-boot,spl-boot-order = \
			"same-as-spl", &spiflash, &sdhci, &sdmmc;
	};

	aliases {
		spi0 = &spi1;
		spi1 = &spi5;
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&leds_pins_puma>;

		module_led {
			label = "module_led";
			gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		sd_card_led {
			label = "sd_card_led";
			gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc0";
		};
	};

	clkin_gmac: external-gmac-clock {
		compatible = "fixed-clock";
		clock-frequency = <125000000>;
		clock-output-names = "clkin_gmac";
		#clock-cells = <0>;
	};

	dw_hdmi_audio: dw-hdmi-audio {
		status = "enabled";
		compatible = "rockchip,dw-hdmi-audio";
		#sound-dai-cells = <0>;
	};

	hdmi_codec: hdmi-codec {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,name = "HDMI-CODEC";

		simple-audio-card,cpu {
			sound-dai = <&i2s2>;
		};

		simple-audio-card,codec {
			sound-dai = <&hdmi>;
		};
	};

	hdmi_sound: hdmi-sound {
		status = "disabled";
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,name = "rockchip,hdmi";

		simple-audio-card,cpu {
			sound-dai = <&i2s2>;
		};
		simple-audio-card,codec {
			sound-dai = <&hdmi>;
		};
	};

	usbhub_enable: usbhub_enable {
		compatible = "regulator-fixed";
		regulator-name = "usbhub_enable";
		enable-active-low;
		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	/*
	 * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
	 * eMMC and SPI flash powered-down initially (in fact it keeps the
	 * reset signal asserted).  Even though it is an enable signal, we
	 * model this as a regulator.
	 */
	bios_enable: bios_enable {
		compatible = "regulator-fixed";
		u-boot,dm-pre-reloc;
		regulator-name = "bios_enable";
		enable-active-high;
		gpio = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	vccadc_ref: vccadc-ref {
		compatible = "regulator-fixed";
		regulator-name = "vcc1v8_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	vcc3v3_sys: vcc3v3-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	vcc5v0_otg: vcc5v0-otg-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&otg_vbus_drv>;
		regulator-name = "vcc5v0_otg";
		regulator-always-on;
	};

	vcc5v0_host: vcc5v0-host-regulator {
		compatible = "regulator-fixed";
		enable-active-low;
		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&host_vbus_drv>;
		regulator-name = "vcc5v0_host";
		regulator-always-on;
	};

	vcc5v0_sys: vcc5v0-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	vcc_phy: vcc-phy-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc_phy";
		regulator-always-on;
		regulator-boot-on;
	};

	vdd_log: vdd-log {
		compatible = "pwm-regulator";
		pwms = <&pwm2 0 25000 1>;
		regulator-name = "vdd_log";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <1400000>;
		regulator-always-on;
		regulator-boot-on;

		/* for rockchip boot on */
		rockchip,pwm_id= <2>;
		rockchip,pwm_voltage = <1000000>;
	};
};

&emmc_phy {
	status = "okay";
};

&gmac {
	phy-supply = <&vcc_phy>;
	phy-mode = "rgmii";
	clock_in_out = "input";
	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
	snps,reset-active-low;
	snps,reset-delays-us = <2 10000 50000>;
	assigned-clocks = <&cru SCLK_RMII_SRC>;
	assigned-clock-parents = <&clkin_gmac>;
	pinctrl-names = "default";
	pinctrl-0 = <&rgmii_pins>;
	tx_delay = <0x10>;
	rx_delay = <0x10>;
	status = "okay";
};

&hdmi {
	#address-cells = <1>;
	#size-cells = <0>;
	#sound-dai-cells = <0>;
	status = "okay";
};

&i2c0 {
	status = "okay";
	i2c-scl-rising-time-ns = <168>;
	i2c-scl-falling-time-ns = <4>;
	clock-frequency = <400000>;

	vdd_gpu: fan535555@60 {
		compatible = "fcs,fan53555";
		reg = <0x60>;
		vsel-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
		vin-supply = <&vcc5v0_sys>;
		regulator-compatible = "fan53555-reg";
		regulator-name = "vdd_gpu";
		regulator-min-microvolt = <600000>;
		regulator-max-microvolt = <1230000>;
		regulator-ramp-delay = <1000>;
		fcs,suspend-voltage-selector = <1>;
		regulator-always-on;
		regulator-boot-on;
		regulator-initial-state = <3>;
			regulator-state-mem {
			regulator-off-in-suspend;
		};
	};

	rk808: pmic@1b {
		compatible = "rockchip,rk808";
		reg = <0x1b>;
		interrupt-parent = <&gpio1>;
		interrupts = <22 IRQ_TYPE_LEVEL_LOW>;  // TODO check interrupt?
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int_l>;
		rockchip,system-power-controller;
		wakeup-source;
		#clock-cells = <1>;
		clock-output-names = "xin32k", "rk808-clkout2";

		vcc1-supply = <&vcc5v0_sys>;
		vcc2-supply = <&vcc5v0_sys>;
		vcc3-supply = <&vcc5v0_sys>;
		vcc4-supply = <&vcc5v0_sys>;
		vcc6-supply = <&vcc5v0_sys>;
		vcc7-supply = <&vcc5v0_sys>;
		vcc8-supply = <&vcc3v3_sys>;
		vcc9-supply = <&vcc5v0_sys>;
		vcc10-supply = <&vcc5v0_sys>;
		vcc11-supply = <&vcc5v0_sys>;
		vcc12-supply = <&vcc3v3_sys>;
		vddio-supply = <&vcc1v8_pmu>;

		regulators {
			vdd_center: DCDC_REG1 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-name = "vdd_center";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vdd_cpu_l: DCDC_REG2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-name = "vdd_cpu_l";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_ddr: DCDC_REG3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-name = "vcc_ddr";
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vcc_1v8: DCDC_REG4 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc_1v8";
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcc_ldo1: LDO_REG1 {
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc_ldo1";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc1v8_hdmi: LDO_REG2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc1v8_hdmi";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc1v8_pmu: LDO_REG3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc1v8_pmu";
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcc_sd: LDO_REG4 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-name = "vcc_sd";
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};

			vcc_ldo5: LDO_REG5 {
				regulator-boot-on;
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-name = "vcc_ldo5";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_ldo6: LDO_REG6 {
				regulator-boot-on;
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <1500000>;
				regulator-name = "vcc_ldo6";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc0v9_hdmi: LDO_REG7 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <900000>;
				regulator-name = "vcc0v9_hdmi";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_efuse: LDO_REG8 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc_efuse";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc3v3_s3: SWITCH_REG1 {
				regulator-always-on;
				regulator-boot-on;
				regulator-name = "vcc3v3_s3";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc3v3_s0: SWITCH_REG2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-name = "vcc3v3_s0";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};
		};
	};
};

&i2c8 {
	status = "okay";
	clock-frequency = <400000>;

	vdd_cpu_b: fan53555@60 {
		compatible = "fcs,fan53555";
		reg = <0x60>;
		vsel-gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
		vin-supply = <&vcc5v0_sys>;
		regulator-compatible = "fan53555-reg";
		regulator-name = "vdd_cpu_b";
		regulator-min-microvolt = <600000>;
		regulator-max-microvolt = <1230000>;
		regulator-ramp-delay = <1000>;
		fcs,suspend-voltage-selector = <1>;
		regulator-always-on;
		regulator-boot-on;
		regulator-initial-state = <3>;
			regulator-state-mem {
			regulator-off-in-suspend;
		};
	};
};

&i2s0 {
	status = "okay";
	rockchip,i2s-broken-burst-len;
	rockchip,playback-channels = <8>;
	rockchip,capture-channels = <8>;
	#sound-dai-cells = <0>;
};

&i2s2 {
	#sound-dai-cells = <0>;
	status = "okay";
};

&io_domains {
	status = "okay";

	bt656-supply = <&vcc_1v8>;	/* bt656_gpio2ab_ms */
	audio-supply = <&vcc_1v8>;	/* audio_gpio3d4a_ms */
	sdmmc-supply = <&vcc_sd>;	/* sdmmc_gpio4b_ms */
	gpio1830-supply = <&vcc_1v8>;	/* gpio1833_gpio4cd_ms */
};

&pcie0 {
	assigned-clocks = <&cru SCLK_PCIEPHY_REF>;
	assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>;
	assigned-clock-rates = <100000000>;
	ep-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
	num-lanes = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&pcie_clkreqn>;
	status = "okay";
};

&pcie_phy {
		status = "okay";
};

&pmu_io_domains {
	status = "okay";
	pmu1830-supply = <&vcc_1v8>;
};

&pwm0 {
	status = "okay";
};

&pwm2 {
	status = "okay";
};

&sdhci {
	bus-width = <8>;
	mmc-hs400-1_8v;
	supports-emmc;
	non-removable;
	keep-power-in-suspend;
	mmc-hs400-enhanced-strobe;
	status = "okay";
};

&sdmmc {
	u-boot,dm-pre-reloc;
	clock-frequency = <150000000>;
	clock-freq-min-max = <100000 150000000>;
	supports-sd;
	bus-width = <4>;
	cap-mmc-highspeed;
	cap-sd-highspeed;
	disable-wp;
	num-slots = <1>;
	vqmmc-supply = <&vcc_sd>;
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
	status = "okay";
};

&uart2 {
	status = "okay";
};

&usb_host0_ehci {
	status = "disabled";
};

&usb_host0_ohci {
	status = "disabled";
};

&dwc3_typec0 {
	status = "okay";
};

&usb_host1_ehci {
	status = "disabled";
};

&usb_host1_ohci {
	status = "disabled";
};

&dwc3_typec1 {
	status = "okay";
	tsd,usb-port-power = "usbhub_enable";
};

&vopb {
	status = "okay";
};

&gpio1 {
	u-boot,dm-pre-reloc;
};

&gpio3 {
	u-boot,dm-pre-reloc;
};

&pinctrl {
	/* Pins that are not explicitely used by any devices */
	pinctrl-names = "default";
	pinctrl-0 = <&puma_pin_hog>;

	hog {
		puma_pin_hog: puma_pin_hog {
			rockchip,pins =
				/* We need pull-ups on Q7 buttons */
				<RK_GPIO0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>, /* LID_BTN# */
				<RK_GPIO0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>, /* BATLOW# */
				<RK_GPIO0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>, /* SLP_BTN# */
				<RK_GPIO0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>; /* BIOS_DISABLE# */
		};
	};

	pmic {
		pmic_int_l: pmic-int-l {
			rockchip,pins =
				<RK_GPIO1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	leds_pins_puma: led_pins@0 {
			rockchip,pins =
				<RK_GPIO2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>,
				<RK_GPIO1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
	};

	usb2 {
		otg_vbus_drv: otg-vbus-drv {
			rockchip,pins =
				<RK_GPIO0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		host_vbus_drv: host-vbus-drv {
			rockchip,pins =
				<RK_GPIO4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	i2c8 {
		i2c8_xfer_a: i2c8-xfer {
			rockchip,pins =
				<RK_GPIO1 RK_PC5 RK_FUNC_1 &pcfg_pull_up>,
				<RK_GPIO1 RK_PC4 RK_FUNC_1 &pcfg_pull_up>;
		};
	};
};

&i2c1 {
	status = "okay";
	clock-frequency = <400000>;
};
&i2c2 {
	status = "okay";
	clock-frequency = <400000>;
};
&i2c4 {
	status = "okay";
	clock-frequency = <400000>;
};
&i2c6 {
	status = "okay";
	clock-frequency = <400000>;
};

&i2c6_xfer {
	/* Enable pull-ups, the pins would float otherwise. */
	rockchip,pins =
		<RK_GPIO2 RK_PB2 RK_FUNC_2 &pcfg_pull_up>,
		<RK_GPIO2 RK_PB1 RK_FUNC_2 &pcfg_pull_up>;
};

&i2c7 {
	status = "okay";
	clock-frequency = <400000>;

	rtc_twi: rtc@6f {
		compatible = "isil,isl1208";
		reg = <0x6f>;
	};
	fan: fan@18 {
		compatible = "ti,amc6821";
		reg = <0x18>;
		cooling-min-state = <0>;
		cooling-max-state = <9>;
		#cooling-cells = <2>;
	};
};

&uart0 {
	u-boot,dm-pre-reloc;
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_xfer &uart0_cts>;
	status = "okay";
};


&spi1 {
	u-boot,dm-pre-reloc;

	status = "okay";

	#address-cells = <1>;
	#size-cells = <0>;

	spiflash: w25q32dw@0 {
		u-boot,dm-pre-reloc;

		compatible = "spi-flash";
		reg = <0>;
		spi-max-frequency = <49500000>;
		spi-cpol;
		spi-cpha;
	};
};

&spi5 {
	status = "okay";
};
