// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (c) 2021 T-Chip Intelligent Technology Co., Ltd

/dts-v1/;

#include <dt-bindings/input/input.h>

#include "rk3328-roc-cc.dts"

/ {
	model = "Firefly ROC-RK3328-PC";
	compatible = "firefly,roc-rk3328-pc", "rockchip,rk3328";

	adc-keys {
		compatible = "adc-keys";
		io-channels = <&saradc 0>;
		io-channel-names = "buttons";
		keyup-threshold-microvolt = <1750000>;

		/* This button is unpopulated out of the factory. */
		button-recovery {
			label = "Recovery";
			linux,code = <KEY_VENDOR>;
			press-threshold-microvolt = <10000>;
		};
	};

	ir-receiver {
		compatible = "gpio-ir-receiver";
		gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
		linux,rc-map-name = "rc-khadas";
		pinctrl-names = "default";
		pinctrl-0 = <&ir_int>;
	};

	sdio_pwrseq: sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_en>, <&wifi_host_wake>;
		reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
	};
};

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

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

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

	sdmmcio {
		sdio_per_pin: sdio-per-pin {
			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_down>;
		};
	};

	wifi {
		wifi_en: wifi-en {
			rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		wifi_host_wake: wifi-host-wake {
			rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none_4ma>;
		};

		bt_rst: bt-rst {
			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		bt_en: bt-en {
			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
};

&pmic_int_l {
	rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
};

&rk805 {
	interrupt-parent = <&gpio0>;
	interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
};

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

&usb20_host_drv {
	rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
};

&vcc_host1_5v {
	gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
};

&vcc_sdio {
	gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&sdio_per_pin>;
};