// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2019 Hardkernel Co., Ltd
 * Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH
 * Copyright (c) 2022 Maya Matuszczyk <maccraft123mc@gmail.com>
 */

/dts-v1/;
#include "rk3326-odroid-go.dtsi"

/ {
	model = "ODROID-GO Super";
	compatible = "hardkernel,rk3326-odroid-go3", "rockchip,rk3326";

	joystick_mux_controller: mux-controller {
		compatible = "gpio-mux";
		pinctrl = <&mux_en_pins>;
		#mux-control-cells = <0>;

		mux-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>,
			    <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
	};

	joystick_mux: adc-mux {
		compatible = "io-channel-mux";
		io-channels = <&saradc 1>;
		io-channel-names = "parent";
		#io-channel-cells = <1>;

		mux-controls = <&joystick_mux_controller>;
		channels = "0", "1", "2", "3";
	};

	analog_sticks: adc-joystick {
		compatible = "adc-joystick";
		io-channels = <&joystick_mux 0>,
			      <&joystick_mux 1>,
			      <&joystick_mux 2>,
			      <&joystick_mux 3>;
		poll-interval = <60>;
		#address-cells = <1>;
		#size-cells = <0>;

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

		axis@1 {
			reg = <1>;
			abs-flat = <10>;
			abs-fuzz = <10>;
			abs-range = <180 800>;
			linux,code = <ABS_RX>;
		};

		axis@2 {
			reg = <2>;
			abs-flat = <10>;
			abs-fuzz = <10>;
			abs-range = <180 800>;
			linux,code = <ABS_Y>;
		};

		axis@3 {
			reg = <3>;
			abs-flat = <10>;
			abs-fuzz = <10>;
			abs-range = <180 800>;
			linux,code = <ABS_RY>;
		};
	};

	battery: battery {
		compatible = "simple-battery";
		charge-full-design-microamp-hours = <4000000>;
		charge-term-current-microamp = <300000>;
		constant-charge-current-max-microamp = <2000000>;
		constant-charge-voltage-max-microvolt = <4200000>;
		factory-internal-resistance-micro-ohms = <180000>;
		voltage-max-design-microvolt = <4100000>;
		voltage-min-design-microvolt = <3500000>;

		ocv-capacity-celsius = <20>;
		ocv-capacity-table-0 =  <4046950 100>, <4001920 95>, <3967900 90>, <3919950 85>,
					<3888450 80>, <3861850 75>, <3831540 70>, <3799130 65>,
					<3768190 60>, <3745650 55>, <3726610 50>, <3711630 45>,
					<3696720 40>, <3685660 35>, <3674950 30>, <3663050 25>,
					<3649470 20>, <3635260 15>, <3616920 10>, <3592440 5>,
					<3574170 0>;
	};

	gpio-keys-vol {
		compatible = "gpio-keys";
		autorepeat;
		pinctrl-0 = <&btn_pins_vol>;
		pinctrl-names = "default";

		button-vol-down {
			gpios = <&gpio2 RK_PA1 GPIO_ACTIVE_LOW>;
			label = "VOLUMEDOWN";
			linux,code = <KEY_VOLUMEDOWN>;
		};

		button-volume-up {
			gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
			label = "VOLUMEUP";
			linux,code = <KEY_VOLUMEUP>;
		};
	};
};

/* f1 and f2 conflict with volume buttons */
/delete-node/ &btn_f1;
/delete-node/ &btn_f2;

&builtin_gamepad {
	button-sw19 {
		gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
		label = "SELECT";
		linux,code = <BTN_SELECT>;
	};
	/* note that TR2 and TL2 are swapped */
	button-sw20 {
		gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
		label = "TOP-RIGHT 2";
		linux,code = <BTN_TR2>;
	};
	button-sw21 {
		gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
		label = "TOP-LEFT 2";
		linux,code = <BTN_TL2>;
	};
	button-sw22 {
		gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
		label = "START";
		linux,code = <BTN_START>;
	};
};

&internal_display {
	status = "disabled";
};

&rk817_charger {
	monitored-battery = <&battery>;
};

&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_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>,
					<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
					<3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
					<3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
					<3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>;
		};
		btn_pins_vol: btn-pins-vol {
			rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
					<2 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	joystick {
		mux_en_pins: mux-pins {
			rockchip,pins = <3 RK_PB5 RK_FUNC_GPIO &pcfg_output_low>;
		};
	};
};
