// 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";

	aliases {
		mmc0 = &sdmmc;
	};

	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       |
		 * |------------------------------------------------|
		 */

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

	rk817-sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "Analog";
		simple-audio-card,format = "i2s";
		simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,widgets =
			"Microphone", "Mic Jack",
			"Headphone", "Headphones",
			"Speaker", "Speaker";
		simple-audio-card,routing =
			"MICL", "Mic Jack",
			"Headphones", "HPOL",
			"Headphones", "HPOR",
			"Speaker", "SPKO";

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

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

	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;
		regulator-boot-on;
		vin-supply = <&usb_midu>;
	};
};

&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>;
		rotation = <270>;
		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>;
		clock-output-names = "rk808-clkout1", "xin32k";
		clock-names = "mclk";
		clocks = <&cru SCLK_I2S1_OUT>;
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
		wakeup-source;
		#clock-cells = <1>;
		#sound-dai-cells = <0>;

		vcc1-supply = <&vccsys>;
		vcc2-supply = <&vccsys>;
		vcc3-supply = <&vccsys>;
		vcc4-supply = <&vccsys>;
		vcc5-supply = <&vccsys>;
		vcc6-supply = <&vccsys>;
		vcc7-supply = <&vccsys>;
		vcc8-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>;
				};
			};

			usb_midu: BOOST {
				regulator-name = "usb_midu";
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5400000>;
				regulator-always-on;
				regulator-boot-on;
			};
		};

		rk817_codec: codec {
			rockchip,mic-in-differential;
		};
	};
};

/* 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";
};

&sfc {
	pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>;
	pinctrl-names = "default";
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <108000000>;
		spi-rx-bus-width = <2>;
		spi-tx-bus-width = <1>;
	};
};

&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>;
		};
	};
};
