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

/ {
	backlight: backlight {
		compatible = "pwm-backlight";
		power-supply = <&vcc_sys>;
		pwms = <&pwm4 0 25000 0>;
	};

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

	/* Channels reversed for both headphones and speakers. */
	sound {
		compatible = "simple-audio-card";
		pinctrl-0 = <&hp_det>;
		pinctrl-names = "default";
		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>, <128000000>;
};

&dsi_dphy0 {
	status = "okay";
};

&dsi0 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;

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

	panel: panel@0 {
		compatible = "anbernic,rg-arc-panel", "sitronix,st7701";
		reg = <0>;
		backlight = <&backlight>;
		IOVCC-supply = <&vcc3v3_lcd0_n>;
		pinctrl-names = "default";
		pinctrl-0 = <&lcd_rst>;
		reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
		rotation = <90>;
		VCC-supply = <&vcc3v3_lcd0_n>;

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

/*
 * Device uses a non-standard six button layout for a gamepad with X,
 * Y, and Z on the top row of buttons and A, B, and C under the bottom
 * row.
 */
&gpio_keys_control {
	button-a {
		gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>;
		label = "A";
		linux,code = <BTN_A>;
	};

	button-b {
		gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
		label = "B";
		linux,code = <BTN_B>;
	};

	button-c {
		gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
		label = "C";
		linux,code = <BTN_C>;
	};

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

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

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

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

	button-x {
		gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
		label = "X";
		linux,code = <BTN_X>;
	};

	button-y {
		gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
		label = "Y";
		linux,code = <BTN_Y>;
	};

	button-z {
		gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
		label = "Z";
		linux,code = <BTN_Z>;
	};
};

&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_rst: lcd-rst {
			rockchip,pins =
				<4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	headphone {
		hp_det: hp-det {
			rockchip,pins =
				<4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
};

&pwm4 {
	status = "okay";
};

&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>;
	};
};
