// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2019 Hardkernel Co., Ltd
 * Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH
 */

/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include "rk3326.dtsi"

/ {
	model = "ODROID-GO Advance";
	compatible = "hardkernel,rk3326-odroid-go2", "rockchip,rk3326";

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

	adc-joystick {
		compatible = "adc-joystick";
		io-channels = <&saradc 1>,
			      <&saradc 2>;
		#address-cells = <1>;
		#size-cells = <0>;

		axis@0 {
			reg = <0>;
			abs-flat = <10>;
			abs-fuzz = <10>;
			abs-range = <172 772>;
			linux,code = <ABS_X>;
		};

		axis@1 {
			reg = <1>;
			abs-flat = <10>;
			abs-fuzz = <10>;
			abs-range = <278 815>;
			linux,code = <ABS_Y>;
		};
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		power-supply = <&vcc_bl>;
		pwms = <&pwm1 0 25000 0>;
	};

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

		/*
		 *      *** ODROIDGO2-Advance Switch layout ***
		 * |------------------------------------------------|
		 * | sw15                                      sw16 |
		 * |------------------------------------------------|
		 * |     sw1      |-------------------|      sw8    |
		 * |  sw3   sw4   |                   |   sw7   sw5 |
		 * |     sw2      |    LCD Display    |      sw6    |
		 * |              |                   |             |
		 * |              |-------------------|             |
		 * |         sw9 sw10   sw11 sw12   sw13 sw14       |
		 * |------------------------------------------------|
		 */

		sw1 {
			gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
			label = "DPAD-UP";
			linux,code = <BTN_DPAD_UP>;
		};
		sw2 {
			gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>;
			label = "DPAD-DOWN";
			linux,code = <BTN_DPAD_DOWN>;
		};
		sw3 {
			gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
			label = "DPAD-LEFT";
			linux,code = <BTN_DPAD_LEFT>;
		};
		sw4 {
			gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>;
			label = "DPAD-RIGHT";
			linux,code = <BTN_DPAD_RIGHT>;
		};
		sw5 {
			gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>;
			label = "BTN-A";
			linux,code = <BTN_EAST>;
		};
		sw6 {
			gpios = <&gpio1 RK_PA5 GPIO_ACTIVE_LOW>;
			label = "BTN-B";
			linux,code = <BTN_SOUTH>;
		};
		sw7 {
			gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_LOW>;
			label = "BTN-Y";
			linux,code = <BTN_WEST>;
		};
		sw8 {
			gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_LOW>;
			label = "BTN-X";
			linux,code = <BTN_NORTH>;
		};
		sw9 {
			gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
			label = "F1";
			linux,code = <BTN_TRIGGER_HAPPY1>;
		};
		sw10 {
			gpios = <&gpio2 RK_PA1 GPIO_ACTIVE_LOW>;
			label = "F2";
			linux,code = <BTN_TRIGGER_HAPPY2>;
		};
		sw11 {
			gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
			label = "F3";
			linux,code = <BTN_TRIGGER_HAPPY3>;
		};
		sw12 {
			gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_LOW>;
			label = "F4";
			linux,code = <BTN_TRIGGER_HAPPY4>;
		};
		sw13 {
			gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_LOW>;
			label = "F5";
			linux,code = <BTN_TRIGGER_HAPPY5>;
		};
		sw14 {
			gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_LOW>;
			label = "F6";
			linux,code = <BTN_TRIGGER_HAPPY6>;
		};
		sw15 {
			gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>;
			label = "TOP-LEFT";
			linux,code = <BTN_TL>;
		};
		sw16 {
			gpios = <&gpio2 RK_PA7 GPIO_ACTIVE_LOW>;
			label = "TOP-RIGHT";
			linux,code = <BTN_TR>;
		};
	};

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

		blue_led: led-0 {
			label = "blue:heartbeat";
			gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	vccsys: vccsys {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v8_sys";
		regulator-always-on;
		regulator-min-microvolt = <3800000>;
		regulator-max-microvolt = <3800000>;
	};

	vcc_host: vcc_host {
		compatible = "regulator-fixed";
		regulator-name = "vcc_host";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;

		gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-always-on;
		vin-supply = <&vccsys>;
	};
};

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

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

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

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

&cru {
	assigned-clocks = <&cru PLL_NPLL>,
		<&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
		<&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
		<&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>,
		<&cru PLL_CPLL>;

	assigned-clock-rates = <1188000000>,
		<200000000>, <200000000>,
		<150000000>, <150000000>,
		<100000000>, <200000000>,
		<17000000>;
};

&display_subsystem {
	status = "okay";
};

&dsi {
	status = "okay";

	ports {
		mipi_out: port@1 {
			reg = <1>;

			mipi_out_panel: endpoint {
				remote-endpoint = <&mipi_in_panel>;
			};
		};
	};

	panel@0 {
		compatible = "elida,kd35t133";
		reg = <0>;
		backlight = <&backlight>;
		iovcc-supply = <&vcc_lcd>;
		reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
		vdd-supply = <&vcc_lcd>;

		port {
			mipi_in_panel: endpoint {
				remote-endpoint = <&mipi_out_panel>;
			};
		};
	};
};

&dsi_dphy {
	status = "okay";
};

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

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

	rk817: pmic@20 {
		compatible = "rockchip,rk817";
		reg = <0x20>;
		interrupt-parent = <&gpio0>;
		interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int>;
		wakeup-source;
		#clock-cells = <1>;
		clock-output-names = "rk808-clkout1", "xin32k";

		vcc1-supply = <&vccsys>;
		vcc2-supply = <&vccsys>;
		vcc3-supply = <&vccsys>;
		vcc4-supply = <&vccsys>;
		vcc5-supply = <&vccsys>;
		vcc6-supply = <&vccsys>;
		vcc7-supply = <&vccsys>;

		regulators {
			vdd_logic: DCDC_REG1 {
				regulator-name = "vdd_logic";
				regulator-min-microvolt = <950000>;
				regulator-max-microvolt = <1150000>;
				regulator-ramp-delay = <6001>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <950000>;
				};
			};

			vdd_arm: DCDC_REG2 {
				regulator-name = "vdd_arm";
				regulator-min-microvolt = <950000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-off-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_3v3: DCDC_REG4 {
				regulator-name = "vcc_3v3";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-off-in-suspend;
					regulator-suspend-microvolt = <3300000>;
				};
			};

			vcc_1v8: LDO_REG2 {
				regulator-name = "vcc_1v8";
				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_1v0: LDO_REG3 {
				regulator-name = "vdd_1v0";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1000000>;
				};
			};

			vcc3v3_pmu: LDO_REG4 {
				regulator-name = "vcc3v3_pmu";
				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>;
				};
			};

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

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3300000>;
				};
			};

			vcc_sd: LDO_REG6 {
				regulator-name = "vcc_sd";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3300000>;
				};
			};

			vcc_bl: LDO_REG7 {
				regulator-name = "vcc_bl";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;

				regulator-state-mem {
					regulator-off-in-suspend;
					regulator-suspend-microvolt = <3300000>;
				};
			};

			vcc_lcd: LDO_REG8 {
				regulator-name = "vcc_lcd";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
					regulator-suspend-microvolt = <2800000>;
				};
			};

			vcc_cam: LDO_REG9 {
				regulator-name = "vcc_cam";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;

				regulator-state-mem {
					regulator-off-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};
		};
	};
};

/* EXT Header(P2): 7(SCL:GPIO0.C2), 8(SDA:GPIO0.C3) */
&i2c1 {
	clock-frequency = <400000>;
	status = "okay";
};

/* I2S 1 Channel Used */
&i2s1_2ch {
	status = "okay";
};

&io_domains {
	vccio1-supply = <&vcc_3v3>;
	vccio2-supply = <&vccio_sd>;
	vccio3-supply = <&vcc_3v3>;
	vccio4-supply = <&vcc_3v3>;
	vccio5-supply = <&vcc_3v3>;
	vccio6-supply = <&vcc_3v3>;
	status = "okay";
};

&pmu_io_domains {
	pmuio1-supply = <&vcc3v3_pmu>;
	pmuio2-supply = <&vcc3v3_pmu>;
	status = "okay";
};

&pwm1 {
	status = "okay";
};

&saradc {
	vref-supply = <&vcc_1v8>;
	status = "okay";
};

&sdmmc {
	cap-sd-highspeed;
	card-detect-delay = <200>;
	cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; /*[> CD GPIO <]*/
	sd-uhs-sdr12;
	sd-uhs-sdr25;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	vmmc-supply = <&vcc_sd>;
	vqmmc-supply = <&vccio_sd>;
	status = "okay";
};

&tsadc {
	status = "okay";
};

&u2phy {
	status = "okay";

	u2phy_host: host-port {
		status = "okay";
	};

	u2phy_otg: otg-port {
		status = "disabled";
	};
};

&usb20_otg {
	status = "okay";
};

/* EXT Header(P2): 2(RXD:GPIO1.C0),3(TXD:.C1),4(CTS:.C2),5(RTS:.C3) */
&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_xfer &uart1_cts>;
	status = "okay";
};

&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart2m1_xfer>;
	status = "okay";
};

&vopb {
	status = "okay";
};

&vopb_mmu {
	status = "okay";
};

&pinctrl {
	btns {
		btn_pins: btn-pins {
			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
					<1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
					<1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
					<1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
					<1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
					<1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
					<1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
					<1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	headphone {
		hp_det: hp-det {
			rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>;
		};
	};

	leds {
		blue_led_pin: blue-led-pin {
			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	pmic {
		dc_det: dc-det {
			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
		};

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

		soc_slppin_gpio: soc_slppin_gpio {
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
		};

		soc_slppin_rst: soc_slppin_rst {
			rockchip,pins = <0 RK_PA4 2 &pcfg_pull_none>;
		};

		soc_slppin_slp: soc_slppin_slp {
			rockchip,pins = <0 RK_PA4 1 &pcfg_pull_none>;
		};
	};
};
