// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 *
 */

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

/ {
	model = "Rockchip RK3308 EVB";
	compatible = "rockchip,rk3308-evb", "rockchip,rk3308";

	chosen {
		stdout-path = "serial4:1500000n8";
	};

	adc-keys0 {
		compatible = "adc-keys";
		io-channels = <&saradc 0>;
		io-channel-names = "buttons";
		poll-interval = <100>;
		keyup-threshold-microvolt = <1800000>;

		func-key {
			linux,code = <KEY_FN>;
			label = "function";
			press-threshold-microvolt = <18000>;
		};
	};

	adc-keys1 {
		compatible = "adc-keys";
		io-channels = <&saradc 1>;
		io-channel-names = "buttons";
		poll-interval = <100>;
		keyup-threshold-microvolt = <1800000>;

		esc-key {
			linux,code = <KEY_MICMUTE>;
			label = "micmute";
			press-threshold-microvolt = <1130000>;
		};

		home-key {
			linux,code = <KEY_MODE>;
			label = "mode";
			press-threshold-microvolt = <901000>;
		};

		menu-key {
			linux,code = <KEY_PLAY>;
			label = "play";
			press-threshold-microvolt = <624000>;
		};

		vol-down-key {
			linux,code = <KEY_VOLUMEDOWN>;
			label = "volume down";
			press-threshold-microvolt = <300000>;
		};

		vol-up-key {
			linux,code = <KEY_VOLUMEUP>;
			label = "volume up";
			press-threshold-microvolt = <18000>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		autorepeat;

		pinctrl-names = "default";
		pinctrl-0 = <&pwr_key>;

		power {
			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
			label = "GPIO Key Power";
			debounce-interval = <100>;
			wakeup-source;
		};
	};

	vcc12v_dcin: vcc12v-dcin {
		compatible = "regulator-fixed";
		regulator-name = "vcc12v_dcin";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		regulator-always-on;
		regulator-boot-on;
	};

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

	vccio_sdio: vcc_1v8: vcc-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "vcc_1v8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc_io>;
	};

	vcc_ddr: vcc-ddr {
		compatible = "regulator-fixed";
		regulator-name = "vcc_ddr";
		regulator-min-microvolt = <1500000>;
		regulator-max-microvolt = <1500000>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc5v0_sys>;
	};

	vcc_io: vcc-io {
		compatible = "regulator-fixed";
		regulator-name = "vcc_io";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc5v0_sys>;
	};

	vccio_flash: vccio-flash {
		compatible = "regulator-fixed";
		regulator-name = "vccio_flash";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc_io>;
	};

	vcc5v0_host: vcc5v0-host {
		compatible = "regulator-fixed";
		gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_drv>;
		regulator-name = "vbus_host";
		vin-supply = <&vcc5v0_sys>;
	};

	vdd_core: vdd-core {
		compatible = "pwm-regulator";
		pwms = <&pwm0 0 5000 1>;
		regulator-name = "vdd_core";
		regulator-min-microvolt = <827000>;
		regulator-max-microvolt = <1340000>;
		regulator-always-on;
		regulator-boot-on;
		regulator-settling-time-up-us = <250>;
		pwm-supply = <&vcc5v0_sys>;
	};

	vdd_log: vdd-log {
		compatible = "regulator-fixed";
		regulator-name = "vdd_log";
		regulator-min-microvolt = <1050000>;
		regulator-max-microvolt = <1050000>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc5v0_sys>;
	};

	vdd_1v0: vdd-1v0 {
		compatible = "regulator-fixed";
		regulator-name = "vdd_1v0";
		regulator-min-microvolt = <1000000>;
		regulator-max-microvolt = <1000000>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc5v0_sys>;
	};
};

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

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

&pinctrl {
	buttons {
		pwr_key: pwr-key {
			rockchip,pins = <0 RK_PA6 0 &pcfg_pull_up>;
		};
	};

	usb {
		usb_drv: usb-drv {
			rockchip,pins = <0 RK_PC5 0 &pcfg_pull_none>;
		};
	};

	sdio-pwrseq {
		wifi_enable_h: wifi-enable-h {
			rockchip,pins = <0 RK_PA2 0 &pcfg_pull_none>;
		};
	};
};

&pwm0 {
	status = "okay";
	pinctrl-0 = <&pwm0_pin_pull_down>;
};

&uart4 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart4_xfer>;
	status = "okay";
};
