// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
// Copyright (c) 2017-2019 Arm Ltd.

/dts-v1/;
#include "rk3328.dtsi"

/ {
	model = "Beelink A1";
	compatible = "azw,beelink-a1", "rockchip,rk3328";

	aliases {
		mmc0 = &sdmmc;
		mmc1 = &emmc;
	};

	/*
	 * UART pins, as viewed with bottom of case removed:
	 *
	 *           Front
	 *        /-------
	 *  L    / o <- Gnd
	 *  e   / o <-- Rx
	 *  f  / o <--- Tx
	 *  t / o <---- +3.3v
	 *    |
	 */
	chosen {
		stdout-path = "serial2:1500000n8";
	};

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

	vcc_host_5v: usb3-current-switch {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb30_host_drv>;
		regulator-name = "vcc_host_5v";
		vin-supply = <&vcc_sys>;
	};

	vcc_sys: vcc-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc_sys";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	ir-receiver {
		compatible = "gpio-ir-receiver";
		gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
		linux,rc-map-name = "rc-beelink-gs1";
	};
};

&analog_sound {
	simple-audio-card,name = "Analog A/V";
	status = "okay";
};

&codec {
	mute-gpios = <&grf_gpio 0 GPIO_ACTIVE_LOW>;
	status = "okay";
};

&cpu0 {
	cpu-supply = <&vdd_arm>;
};

&cpu1 {
	cpu-supply = <&vdd_arm>;
};

&cpu2 {
	cpu-supply = <&vdd_arm>;
};

&cpu3 {
	cpu-supply = <&vdd_arm>;
};

&emmc {
	bus-width = <8>;
	cap-mmc-highspeed;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;
	no-sd;
	no-sdio;
	non-removable;
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
	vmmc-supply = <&vcc_io>;
	vqmmc-supply = <&vcc18_emmc>;
	status = "okay";
};

&gmac2io {
	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
	clock_in_out = "input";
	phy-handle = <&rtl8211f>;
	phy-mode = "rgmii";
	phy-supply = <&vcc_io>;
	pinctrl-names = "default";
	pinctrl-0 = <&rgmiim1_pins>;
	snps,aal;
	snps,pbl = <0x4>;
	tx_delay = <0x26>;
	rx_delay = <0x11>;
	status = "okay";

	mdio {
		compatible = "snps,dwmac-mdio";
		#address-cells = <1>;
		#size-cells = <0>;

		rtl8211f: ethernet-phy@0 {
			reg = <0>;
			reset-assert-us = <10000>;
			reset-deassert-us = <30000>;
			reset-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_LOW>;
		};
	};
};

&gpu {
	mali-supply = <&vdd_logic>;
};

&hdmi {
	status = "okay";
};

&hdmiphy {
	status = "okay";
};

&hdmi_sound {
	status = "okay";
};

&i2c1 {
	clock-frequency = <1000000>;
	i2c-scl-falling-time-ns = <5>;
	i2c-scl-rising-time-ns = <83>;
	status = "okay";

	pmic@18 {
		compatible = "rockchip,rk805";
		reg = <0x18>;
		interrupt-parent = <&gpio2>;
		interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int_l>;
		rockchip,system-power-controller;
		wakeup-source;
		#clock-cells = <0>;

		vcc1-supply = <&vcc_sys>;
		vcc2-supply = <&vcc_sys>;
		vcc3-supply = <&vcc_sys>;
		vcc4-supply = <&vcc_sys>;
		vcc5-supply = <&vcc_io>;
		vcc6-supply = <&vcc_io>;

		regulators {
			vdd_logic: DCDC_REG1 {
				regulator-name = "vdd_logic";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1000000>;
				};
			};

			vdd_arm: DCDC_REG2 {
				regulator-name = "vdd_arm";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <950000>;
				};
			};

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

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

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

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

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

&i2s0 {
	status = "okay";
};

&i2s1 {
	status = "okay";
};

&io_domains {
	vccio1-supply = <&vcc_io>;
	vccio2-supply = <&vcc18_emmc>;
	vccio3-supply = <&vcc_io>;
	vccio4-supply = <&vdd_18>;
	vccio5-supply = <&vcc_io>;
	vccio6-supply = <&vdd_18>;
	pmuio-supply = <&vcc_io>;
	status = "okay";
};

&pinctrl {
	pmic {
		pmic_int_l: pmic-int-l {
			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	usb3 {
		usb30_host_drv: usb30-host-drv {
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	wifi {
		bt_dis: bt-dis {
			rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_output_low>;
		};

		bt_wake_host: bt-wake-host {
			rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		chip_en: chip-en {
			rockchip,pins = <2 RK_PC3 RK_FUNC_GPIO &pcfg_output_low>;
		};

		host_wake_bt: host-wake-bt {
			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_output_high>;
		};

		wl_dis: wl-dis {
			rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_output_low>;
		};

		wl_wake_host: wl-wake-host {
			rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&sdmmc {
	bus-width = <4>;
	cap-mmc-highspeed;
	cap-sd-highspeed;
	disable-wp;
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
	vmmc-supply = <&vcc_io>;
	vqmmc-supply = <&vcc_io>;
	status = "okay";
};

&tsadc {
	rockchip,hw-tshut-mode = <0>;
	rockchip,hw-tshut-polarity = <0>;
	status = "okay";
};

&uart2 {
	status = "okay";
};

&u2phy {
	status = "okay";
};

&u2phy_host {
	status = "okay";
};

&u2phy_otg {
	status = "okay";
};

&usb20_otg {
	dr_mode = "host";
	status = "okay";
};

&usb_host0_ehci {
	pinctrl-names = "default";
	pinctrl-0 = <&bt_dis &bt_wake_host &chip_en &host_wake_bt &wl_dis &wl_wake_host>;
	status = "okay";
};

&vop {
	status = "okay";
};

&vop_mmu {
	status = "okay";
};
