// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2016 Andreas Färber
 */

/dts-v1/;
#include "rk3368.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "GeekBox";
	compatible = "geekbuying,geekbox", "rockchip,rk3368";

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

	memory@0 {
		device_type = "memory";
		reg = <0x0 0x0 0x0 0x80000000>;
	};

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

	ir: ir-receiver {
		compatible = "gpio-ir-receiver";
		gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&ir_int>;
	};

	keys: gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pwr_key>;

		power {
			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
			label = "GPIO Power";
			linux,code = <KEY_POWER>;
			wakeup-source;
		};
	};

	leds: gpio-leds {
		compatible = "gpio-leds";

		blue {
			gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
			label = "geekbox:blue:led";
			default-state = "on";
		};

		red {
			gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
			label = "geekbox:red:led";
			default-state = "off";
		};
	};

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

&emmc {
	status = "okay";
	bus-width = <8>;
	cap-mmc-highspeed;
	clock-frequency = <150000000>;
	disable-wp;
	non-removable;
	vmmc-supply = <&vcc_io>;
	vqmmc-supply = <&vcc18_flash>;
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
};

&gmac {
	status = "okay";
	phy-supply = <&vcc_lan>;
	phy-mode = "rgmii";
	clock_in_out = "input";
	assigned-clocks = <&cru SCLK_MAC>;
	assigned-clock-parents = <&ext_gmac>;
	pinctrl-names = "default";
	pinctrl-0 = <&rgmii_pins>;
	tx_delay = <0x30>;
	rx_delay = <0x10>;
};

&i2c0 {
	status = "okay";

	rk808: pmic@1b {
		compatible = "rockchip,rk808";
		reg = <0x1b>;
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int>, <&pmic_sleep>;
		interrupt-parent = <&gpio0>;
		interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
		rockchip,system-power-controller;
		vcc1-supply = <&vcc_sys>;
		vcc2-supply = <&vcc_sys>;
		vcc3-supply = <&vcc_sys>;
		vcc4-supply = <&vcc_sys>;
		vcc6-supply = <&vcc_sys>;
		vcc7-supply = <&vcc_sys>;
		vcc8-supply = <&vcc_io>;
		vcc9-supply = <&vcc_sys>;
		vcc10-supply = <&vcc_sys>;
		vcc11-supply = <&vcc_sys>;
		vcc12-supply = <&vcc_io>;
		clock-output-names = "xin32k", "rk808-clkout2";
		#clock-cells = <1>;

		regulators {
			vdd_cpu: DCDC_REG1 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1500000>;
				regulator-name = "vdd_cpu";
			};

			vdd_log: DCDC_REG2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1500000>;
				regulator-name = "vdd_log";
			};

			vcc_ddr: DCDC_REG3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-name = "vcc_ddr";
			};

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

			vcc18_flash: LDO_REG1 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc18_flash";
			};

			vcc33_lcd: LDO_REG2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc33_lcd";
			};

			vdd_10: LDO_REG3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-name = "vdd_10";
			};

			vcca_18: LDO_REG4 {
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcca_18";
			};

			vccio_sd: LDO_REG5 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vccio_sd";
			};

			vdd10_lcd: LDO_REG6 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-name = "vdd10_lcd";
			};

			vcc_18: LDO_REG7 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc_18";
			};

			vcc18_lcd: LDO_REG8 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc18_lcd";
			};

			vcc_sd: SWITCH_REG1 {
				regulator-name = "vcc_sd";
			};

			vcc_lan: SWITCH_REG2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-name = "vcc_lan";
			};
		};
	};
};

&pinctrl {
	ir {
		ir_int: ir-int {
			rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	keys {
		pwr_key: pwr-key {
			rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	pmic {
		pmic_sleep: pmic-sleep {
			rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
		};

		pmic_int: pmic-int {
			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&tsadc {
	status = "okay";
	rockchip,hw-tshut-mode = <0>; /* CRU */
	rockchip,hw-tshut-polarity = <1>; /* high */
};

&uart2 {
	status = "okay";
};

&usb_host0_ehci {
	status = "okay";
};

&usb_otg {
	status = "okay";
};

&wdt {
	status = "okay";
};
