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

		panel@0 {
			compatible = "samsung,ams495qa01";
			reg = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&lcd_reset>;
			reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
			vdd-supply = <&vcc_3v3>;

			port {
				mipi_in_panel: endpoint {
					remote-endpoint = <&mipi_out_panel>;
				};
			};
		};
	};

	/* 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 = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
			  <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
	assigned-clock-rates = <32768>, <1200000000>,
			       <200000000>, <500000000>;
};

&dsi_dphy0 {
	status = "okay";
};

&dsi0 {
	status = "okay";

	ports {
		dsi0_in: port@0 {
			reg = <0>;

			dsi0_in_vp1: endpoint {
				remote-endpoint = <&vp1_out_dsi0>;
			};
		};

		dsi0_out: port@1 {
			reg = <1>;

			mipi_out_panel: endpoint {
				remote-endpoint = <&mipi_in_panel>;
			};
		};
	};
};

&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-lcd {
		lcd_reset: lcd-reset {
			rockchip,pins =
				<4 RK_PA0 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>;
	};
};

&vp1 {
	vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
		reg = <ROCKCHIP_VOP2_EP_MIPI0>;
		remote-endpoint = <&dsi0_in_vp1>;
	};
};
