// SPDX-License-Identifier: (GPL-2.0+ OR MIT)

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include "rk3566-anbernic-rgxx3.dtsi"

/ {
	model = "RG503";
	compatible = "anbernic,rg503", "rockchip,rk3566";

	aliases {
		mmc0 = &sdmmc0;
		mmc1 = &sdmmc1;
		mmc2 = &sdmmc2;
	};

	battery: battery {
		compatible = "simple-battery";
		charge-full-design-microamp-hours = <3472000>;
		charge-term-current-microamp = <300000>;
		constant-charge-current-max-microamp = <2000000>;
		constant-charge-voltage-max-microvolt = <4200000>;
		factory-internal-resistance-micro-ohms = <117000>;
		voltage-max-design-microvolt = <4172000>;
		voltage-min-design-microvolt = <3400000>;

		ocv-capacity-celsius = <20>;
		ocv-capacity-table-0 =	<4172000 100>, <4054000 95>, <3984000 90>, <3926000 85>,
					<3874000 80>, <3826000 75>, <3783000 70>, <3746000 65>,
					<3714000 60>, <3683000 55>, <3650000 50>, <3628000 45>,
					<3612000 40>, <3600000 35>, <3587000 30>, <3571000 25>,
					<3552000 20>, <3525000 15>, <3492000 10>, <3446000 5>,
					<3400000 0>;
	};

	gpio_spi: spi {
		compatible = "spi-gpio";
		pinctrl-names = "default";
		pinctrl-0 = <&spi_pins>;
		#address-cells = <1>;
		#size-cells = <0>;

		sck-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
		mosi-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
		cs-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
		num-chipselects = <0>;
	};

	/* Channels reversed for both headphones and speakers. */
	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "rk817_ext";
		simple-audio-card,aux-devs = <&spk_amp>;
		simple-audio-card,format = "i2s";
		simple-audio-card,hp-det-gpio = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,widgets =
			"Microphone", "Mic Jack",
			"Headphone", "Headphones",
			"Speaker", "Internal Speakers";
		simple-audio-card,routing =
			"MICL", "Mic Jack",
			"Headphones", "HPOL",
			"Headphones", "HPOR",
			"Internal Speakers", "Speaker Amp OUTL",
			"Internal Speakers", "Speaker Amp OUTR",
			"Speaker Amp INL", "HPOL",
			"Speaker Amp INR", "HPOR";
		simple-audio-card,pin-switches = "Internal Speakers";

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

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

	spk_amp: audio-amplifier {
		compatible = "simple-audio-amplifier";
		enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
		pinctrl-0 = <&spk_amp_enable_h>;
		pinctrl-names = "default";
		sound-name-prefix = "Speaker Amp";
	};
};

&cru {
	assigned-clocks = <&cru PLL_GPLL>, <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
	assigned-clock-rates = <1200000000>, <200000000>, <500000000>;
};

&gpio_keys_control {
	button-a {
		gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
		label = "EAST";
		linux,code = <BTN_EAST>;
	};

	button-left {
		gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
		label = "DPAD-LEFT";
		linux,code = <BTN_DPAD_LEFT>;
	};

	button-right {
		gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
		label = "DPAD-RIGHT";
		linux,code = <BTN_DPAD_RIGHT>;
	};

	button-r1 {
		gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
		label = "TR";
		linux,code = <BTN_TR>;
	};

	button-r2 {
		gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
		label = "TR2";
		linux,code = <BTN_TR2>;
	};

	button-right {
		gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
		label = "DPAD-RIGHT";
		linux,code = <BTN_DPAD_RIGHT>;
	};

	button-y {
		gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
		label = "WEST";
		linux,code = <BTN_WEST>;
	};
};

&pinctrl {
	audio-amplifier {
		spk_amp_enable_h: spk-amp-enable-h {
			rockchip,pins =
				<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	gpio-spi {
		spi_pins: spi-pins {
			rockchip,pins =
				<4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>,
				<4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>,
				<4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
};

&rk817 {
	rk817_charger: charger {
		monitored-battery = <&battery>;
		rockchip,resistor-sense-micro-ohms = <10000>;
		rockchip,sleep-enter-current-microamp = <300000>;
		rockchip,sleep-filter-current-microamp = <100000>;
	};
};
