xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3566-anbernic-rg-arc.dtsi (revision c771600c6af14749609b49565ffb4cac2959710d)
105a708c6SChris Morgan// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
205a708c6SChris Morgan
305a708c6SChris Morgan/dts-v1/;
405a708c6SChris Morgan
505a708c6SChris Morgan#include <dt-bindings/gpio/gpio.h>
605a708c6SChris Morgan#include <dt-bindings/input/linux-event-codes.h>
705a708c6SChris Morgan#include <dt-bindings/pinctrl/rockchip.h>
805a708c6SChris Morgan#include "rk3566-anbernic-rgxx3.dtsi"
905a708c6SChris Morgan
1005a708c6SChris Morgan/ {
1105a708c6SChris Morgan	backlight: backlight {
1205a708c6SChris Morgan		compatible = "pwm-backlight";
1305a708c6SChris Morgan		power-supply = <&vcc_sys>;
1405a708c6SChris Morgan		pwms = <&pwm4 0 25000 0>;
1505a708c6SChris Morgan	};
1605a708c6SChris Morgan
1705a708c6SChris Morgan	battery: battery {
1805a708c6SChris Morgan		compatible = "simple-battery";
1905a708c6SChris Morgan		charge-full-design-microamp-hours = <3472000>;
2005a708c6SChris Morgan		charge-term-current-microamp = <300000>;
2105a708c6SChris Morgan		constant-charge-current-max-microamp = <2000000>;
2205a708c6SChris Morgan		constant-charge-voltage-max-microvolt = <4200000>;
2305a708c6SChris Morgan		factory-internal-resistance-micro-ohms = <117000>;
2405a708c6SChris Morgan		voltage-max-design-microvolt = <4172000>;
2505a708c6SChris Morgan		voltage-min-design-microvolt = <3400000>;
2605a708c6SChris Morgan
2705a708c6SChris Morgan		ocv-capacity-celsius = <20>;
2805a708c6SChris Morgan		ocv-capacity-table-0 =	<4172000 100>, <4054000 95>, <3984000 90>, <3926000 85>,
2905a708c6SChris Morgan					<3874000 80>, <3826000 75>, <3783000 70>, <3746000 65>,
3005a708c6SChris Morgan					<3714000 60>, <3683000 55>, <3650000 50>, <3628000 45>,
3105a708c6SChris Morgan					<3612000 40>, <3600000 35>, <3587000 30>, <3571000 25>,
3205a708c6SChris Morgan					<3552000 20>, <3525000 15>, <3492000 10>, <3446000 5>,
3305a708c6SChris Morgan					<3400000 0>;
3405a708c6SChris Morgan	};
3505a708c6SChris Morgan
3605a708c6SChris Morgan	/* Channels reversed for both headphones and speakers. */
3705a708c6SChris Morgan	sound {
3805a708c6SChris Morgan		compatible = "simple-audio-card";
3905a708c6SChris Morgan		pinctrl-0 = <&hp_det>;
4005a708c6SChris Morgan		pinctrl-names = "default";
4105a708c6SChris Morgan		simple-audio-card,name = "rk817_ext";
4205a708c6SChris Morgan		simple-audio-card,aux-devs = <&spk_amp>;
4305a708c6SChris Morgan		simple-audio-card,format = "i2s";
44*7ac5c0a5SGeert Uytterhoeven		simple-audio-card,hp-det-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
4505a708c6SChris Morgan		simple-audio-card,mclk-fs = <256>;
4605a708c6SChris Morgan		simple-audio-card,widgets =
4705a708c6SChris Morgan			"Microphone", "Mic Jack",
4805a708c6SChris Morgan			"Headphone", "Headphones",
4905a708c6SChris Morgan			"Speaker", "Internal Speakers";
5005a708c6SChris Morgan		simple-audio-card,routing =
5105a708c6SChris Morgan			"MICL", "Mic Jack",
5205a708c6SChris Morgan			"Headphones", "HPOL",
5305a708c6SChris Morgan			"Headphones", "HPOR",
5405a708c6SChris Morgan			"Internal Speakers", "Speaker Amp OUTL",
5505a708c6SChris Morgan			"Internal Speakers", "Speaker Amp OUTR",
5605a708c6SChris Morgan			"Speaker Amp INL", "HPOL",
5705a708c6SChris Morgan			"Speaker Amp INR", "HPOR";
5805a708c6SChris Morgan		simple-audio-card,pin-switches = "Internal Speakers";
5905a708c6SChris Morgan
6005a708c6SChris Morgan		simple-audio-card,codec {
6105a708c6SChris Morgan			sound-dai = <&rk817>;
6205a708c6SChris Morgan		};
6305a708c6SChris Morgan
6405a708c6SChris Morgan		simple-audio-card,cpu {
6505a708c6SChris Morgan			sound-dai = <&i2s1_8ch>;
6605a708c6SChris Morgan		};
6705a708c6SChris Morgan	};
6805a708c6SChris Morgan
6905a708c6SChris Morgan	spk_amp: audio-amplifier {
7005a708c6SChris Morgan		compatible = "simple-audio-amplifier";
7105a708c6SChris Morgan		enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
7205a708c6SChris Morgan		pinctrl-0 = <&spk_amp_enable_h>;
7305a708c6SChris Morgan		pinctrl-names = "default";
7405a708c6SChris Morgan		sound-name-prefix = "Speaker Amp";
7505a708c6SChris Morgan	};
7605a708c6SChris Morgan};
7705a708c6SChris Morgan
7805a708c6SChris Morgan&cru {
7905a708c6SChris Morgan	assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
8005a708c6SChris Morgan			  <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
8105a708c6SChris Morgan	assigned-clock-rates = <32768>, <1200000000>,
8205a708c6SChris Morgan			       <200000000>, <128000000>;
8305a708c6SChris Morgan};
8405a708c6SChris Morgan
8505a708c6SChris Morgan&dsi_dphy0 {
8605a708c6SChris Morgan	status = "okay";
8705a708c6SChris Morgan};
8805a708c6SChris Morgan
8905a708c6SChris Morgan&dsi0 {
9005a708c6SChris Morgan	status = "okay";
9105a708c6SChris Morgan	#address-cells = <1>;
9205a708c6SChris Morgan	#size-cells = <0>;
9305a708c6SChris Morgan
9405a708c6SChris Morgan	ports {
9505a708c6SChris Morgan		dsi0_in: port@0 {
9605a708c6SChris Morgan			reg = <0>;
9705a708c6SChris Morgan			dsi0_in_vp1: endpoint {
9805a708c6SChris Morgan				remote-endpoint = <&vp1_out_dsi0>;
9905a708c6SChris Morgan			};
10005a708c6SChris Morgan		};
10105a708c6SChris Morgan
10205a708c6SChris Morgan		dsi0_out: port@1 {
10305a708c6SChris Morgan			reg = <1>;
10405a708c6SChris Morgan			mipi_out_panel: endpoint {
10505a708c6SChris Morgan				remote-endpoint = <&mipi_in_panel>;
10605a708c6SChris Morgan			};
10705a708c6SChris Morgan		};
10805a708c6SChris Morgan	};
10905a708c6SChris Morgan
11005a708c6SChris Morgan	panel: panel@0 {
11105a708c6SChris Morgan		compatible = "anbernic,rg-arc-panel", "sitronix,st7701";
11205a708c6SChris Morgan		reg = <0>;
11305a708c6SChris Morgan		backlight = <&backlight>;
11405a708c6SChris Morgan		IOVCC-supply = <&vcc3v3_lcd0_n>;
11505a708c6SChris Morgan		pinctrl-names = "default";
11605a708c6SChris Morgan		pinctrl-0 = <&lcd_rst>;
11705a708c6SChris Morgan		reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
11805a708c6SChris Morgan		rotation = <90>;
11905a708c6SChris Morgan		VCC-supply = <&vcc3v3_lcd0_n>;
12005a708c6SChris Morgan
12105a708c6SChris Morgan		port {
12205a708c6SChris Morgan			mipi_in_panel: endpoint {
12305a708c6SChris Morgan				remote-endpoint = <&mipi_out_panel>;
12405a708c6SChris Morgan			};
12505a708c6SChris Morgan		};
12605a708c6SChris Morgan	};
12705a708c6SChris Morgan};
12805a708c6SChris Morgan
12905a708c6SChris Morgan/*
13005a708c6SChris Morgan * Device uses a non-standard six button layout for a gamepad with X,
13105a708c6SChris Morgan * Y, and Z on the top row of buttons and A, B, and C under the bottom
13205a708c6SChris Morgan * row.
13305a708c6SChris Morgan */
13405a708c6SChris Morgan&gpio_keys_control {
13505a708c6SChris Morgan	button-a {
13605a708c6SChris Morgan		gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>;
13705a708c6SChris Morgan		label = "A";
13805a708c6SChris Morgan		linux,code = <BTN_A>;
13905a708c6SChris Morgan	};
14005a708c6SChris Morgan
14105a708c6SChris Morgan	button-b {
14205a708c6SChris Morgan		gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
14305a708c6SChris Morgan		label = "B";
14405a708c6SChris Morgan		linux,code = <BTN_B>;
14505a708c6SChris Morgan	};
14605a708c6SChris Morgan
14705a708c6SChris Morgan	button-c {
14805a708c6SChris Morgan		gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
14905a708c6SChris Morgan		label = "C";
15005a708c6SChris Morgan		linux,code = <BTN_C>;
15105a708c6SChris Morgan	};
15205a708c6SChris Morgan
15305a708c6SChris Morgan	button-left {
15405a708c6SChris Morgan		gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
15505a708c6SChris Morgan		label = "DPAD-LEFT";
15605a708c6SChris Morgan		linux,code = <BTN_DPAD_LEFT>;
15705a708c6SChris Morgan	};
15805a708c6SChris Morgan
15905a708c6SChris Morgan	button-r1 {
16005a708c6SChris Morgan		gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
16105a708c6SChris Morgan		label = "TR";
16205a708c6SChris Morgan		linux,code = <BTN_TR>;
16305a708c6SChris Morgan	};
16405a708c6SChris Morgan
16505a708c6SChris Morgan	button-r2 {
16605a708c6SChris Morgan		gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
16705a708c6SChris Morgan		label = "TR2";
16805a708c6SChris Morgan		linux,code = <BTN_TR2>;
16905a708c6SChris Morgan	};
17005a708c6SChris Morgan
17105a708c6SChris Morgan	button-right {
17205a708c6SChris Morgan		gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
17305a708c6SChris Morgan		label = "DPAD-RIGHT";
17405a708c6SChris Morgan		linux,code = <BTN_DPAD_RIGHT>;
17505a708c6SChris Morgan	};
17605a708c6SChris Morgan
17705a708c6SChris Morgan	button-x {
17805a708c6SChris Morgan		gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
17905a708c6SChris Morgan		label = "X";
18005a708c6SChris Morgan		linux,code = <BTN_X>;
18105a708c6SChris Morgan	};
18205a708c6SChris Morgan
18305a708c6SChris Morgan	button-y {
18405a708c6SChris Morgan		gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
18505a708c6SChris Morgan		label = "Y";
18605a708c6SChris Morgan		linux,code = <BTN_Y>;
18705a708c6SChris Morgan	};
18805a708c6SChris Morgan
18905a708c6SChris Morgan	button-z {
19005a708c6SChris Morgan		gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
19105a708c6SChris Morgan		label = "Z";
19205a708c6SChris Morgan		linux,code = <BTN_Z>;
19305a708c6SChris Morgan	};
19405a708c6SChris Morgan};
19505a708c6SChris Morgan
19605a708c6SChris Morgan&pinctrl {
19705a708c6SChris Morgan	audio-amplifier {
19805a708c6SChris Morgan		spk_amp_enable_h: spk-amp-enable-h {
19905a708c6SChris Morgan			rockchip,pins =
20005a708c6SChris Morgan				<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
20105a708c6SChris Morgan		};
20205a708c6SChris Morgan	};
20305a708c6SChris Morgan
20405a708c6SChris Morgan	gpio-lcd {
20505a708c6SChris Morgan		lcd_rst: lcd-rst {
20605a708c6SChris Morgan			rockchip,pins =
20705a708c6SChris Morgan				<4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
20805a708c6SChris Morgan		};
20905a708c6SChris Morgan	};
21005a708c6SChris Morgan
21105a708c6SChris Morgan	headphone {
21205a708c6SChris Morgan		hp_det: hp-det {
21305a708c6SChris Morgan			rockchip,pins =
21405a708c6SChris Morgan				<4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
21505a708c6SChris Morgan		};
21605a708c6SChris Morgan	};
21705a708c6SChris Morgan};
21805a708c6SChris Morgan
21905a708c6SChris Morgan&pwm4 {
22005a708c6SChris Morgan	status = "okay";
22105a708c6SChris Morgan};
22205a708c6SChris Morgan
22305a708c6SChris Morgan&rk817 {
22405a708c6SChris Morgan	rk817_charger: charger {
22505a708c6SChris Morgan		monitored-battery = <&battery>;
22605a708c6SChris Morgan		rockchip,resistor-sense-micro-ohms = <10000>;
22705a708c6SChris Morgan		rockchip,sleep-enter-current-microamp = <300000>;
22805a708c6SChris Morgan		rockchip,sleep-filter-current-microamp = <100000>;
22905a708c6SChris Morgan	};
23005a708c6SChris Morgan};
23105a708c6SChris Morgan
23205a708c6SChris Morgan&vp1 {
23305a708c6SChris Morgan	vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
23405a708c6SChris Morgan		reg = <ROCKCHIP_VOP2_EP_MIPI0>;
23505a708c6SChris Morgan		remote-endpoint = <&dsi0_in_vp1>;
23605a708c6SChris Morgan	};
23705a708c6SChris Morgan};
238