Skip to content

Commit b0a1bb4

Browse files
committed
Merge tag 'sunxi-dt-for-6.10-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
- new boards: RG35XX 2024, RG35XX-Plus, RG35XX-H * tag 'sunxi-dt-for-6.10-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: arm64: dts: allwinner: h700: Add RG35XX-H DTS arm64: dts: allwinner: h700: Add RG35XX-Plus DTS arm64: dts: allwinner: h700: Add RG35XX 2024 DTS dt-bindings: arm: sunxi: document Anbernic RG35XX handheld gaming device variants Link: https://lore.kernel.org/r/20240427133006.GA146501@jernej-laptop Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents d4c74f6 + 0d185df commit b0a1bb4

5 files changed

Lines changed: 434 additions & 0 deletions

File tree

Documentation/devicetree/bindings/arm/sunxi.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,21 @@ properties:
5656
- const: anbernic,rg-nano
5757
- const: allwinner,sun8i-v3s
5858

59+
- description: Anbernic RG35XX (2024)
60+
- items:
61+
- const: anbernic,rg35xx-2024
62+
- const: allwinner,sun50i-h700
63+
64+
- description: Anbernic RG35XX Plus
65+
- items:
66+
- const: anbernic,rg35xx-plus
67+
- const: allwinner,sun50i-h700
68+
69+
- description: Anbernic RG35XX H
70+
- items:
71+
- const: anbernic,rg35xx-h
72+
- const: allwinner,sun50i-h700
73+
5974
- description: Amarula A64 Relic
6075
items:
6176
- const: amarula,a64-relic

arch/arm64/boot/dts/allwinner/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,6 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-longanpi-3h.dtb
4848
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero2w.dtb
4949
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero3.dtb
5050
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-transpeed-8k618-t.dtb
51+
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-2024.dtb
52+
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-plus.dtb
53+
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-h.dtb
Lines changed: 327 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,327 @@
1+
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
/*
3+
* Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
4+
*/
5+
6+
/dts-v1/;
7+
8+
#include "sun50i-h616.dtsi"
9+
10+
#include <dt-bindings/gpio/gpio.h>
11+
#include <dt-bindings/input/linux-event-codes.h>
12+
#include <dt-bindings/interrupt-controller/arm-gic.h>
13+
#include <dt-bindings/leds/common.h>
14+
15+
/ {
16+
model = "Anbernic RG35XX 2024";
17+
chassis-type = "handset";
18+
compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700";
19+
20+
aliases {
21+
serial0 = &uart0;
22+
};
23+
24+
chosen {
25+
stdout-path = "serial0:115200n8";
26+
};
27+
28+
gpio_keys_gamepad: gpio-keys-gamepad {
29+
compatible = "gpio-keys";
30+
31+
button-a {
32+
label = "Action-Pad A";
33+
gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
34+
linux,input-type = <EV_KEY>;
35+
linux,code = <BTN_EAST>;
36+
};
37+
38+
button-b {
39+
label = "Action-Pad B";
40+
gpios = <&pio 0 1 GPIO_ACTIVE_LOW>; /* PA1 */
41+
linux,input-type = <EV_KEY>;
42+
linux,code = <BTN_SOUTH>;
43+
};
44+
45+
button-down {
46+
label = "D-Pad Down";
47+
gpios = <&pio 4 0 GPIO_ACTIVE_LOW>; /* PE0 */
48+
linux,input-type = <EV_KEY>;
49+
linux,code = <BTN_DPAD_DOWN>;
50+
};
51+
52+
button-l1 {
53+
label = "Key L1";
54+
gpios = <&pio 0 10 GPIO_ACTIVE_LOW>; /* PA10 */
55+
linux,input-type = <EV_KEY>;
56+
linux,code = <BTN_TL>;
57+
};
58+
59+
button-l2 {
60+
label = "Key L2";
61+
gpios = <&pio 0 11 GPIO_ACTIVE_LOW>; /* PA11 */
62+
linux,input-type = <EV_KEY>;
63+
linux,code = <BTN_TL2>;
64+
};
65+
66+
button-left {
67+
label = "D-Pad left";
68+
gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
69+
linux,input-type = <EV_KEY>;
70+
linux,code = <BTN_DPAD_LEFT>;
71+
};
72+
73+
button-menu {
74+
label = "Key Menu";
75+
gpios = <&pio 4 3 GPIO_ACTIVE_LOW>; /* PE3 */
76+
linux,input-type = <EV_KEY>;
77+
linux,code = <BTN_MODE>;
78+
};
79+
80+
button-r1 {
81+
label = "Key R1";
82+
gpios = <&pio 0 12 GPIO_ACTIVE_LOW>; /* PA12 */
83+
linux,input-type = <EV_KEY>;
84+
linux,code = <BTN_TR>;
85+
};
86+
87+
button-r2 {
88+
label = "Key R2";
89+
gpios = <&pio 0 7 GPIO_ACTIVE_LOW>; /* PA7 */
90+
linux,input-type = <EV_KEY>;
91+
linux,code = <BTN_TR2>;
92+
};
93+
94+
button-right {
95+
label = "D-Pad Right";
96+
gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
97+
linux,input-type = <EV_KEY>;
98+
linux,code = <BTN_DPAD_RIGHT>;
99+
};
100+
101+
button-select {
102+
label = "Key Select";
103+
gpios = <&pio 0 5 GPIO_ACTIVE_LOW>; /* PA5 */
104+
linux,input-type = <EV_KEY>;
105+
linux,code = <BTN_SELECT>;
106+
};
107+
button-start {
108+
label = "Key Start";
109+
gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
110+
linux,input-type = <EV_KEY>;
111+
linux,code = <BTN_START>;
112+
};
113+
114+
button-up {
115+
label = "D-Pad Up";
116+
gpios = <&pio 0 6 GPIO_ACTIVE_LOW>; /* PA6 */
117+
linux,input-type = <EV_KEY>;
118+
linux,code = <BTN_DPAD_UP>;
119+
};
120+
121+
button-x {
122+
label = "Action-Pad X";
123+
gpios = <&pio 0 3 GPIO_ACTIVE_LOW>; /* PA3 */
124+
linux,input-type = <EV_KEY>;
125+
linux,code = <BTN_NORTH>;
126+
};
127+
128+
button-y {
129+
label = "Action Pad Y";
130+
gpios = <&pio 0 2 GPIO_ACTIVE_LOW>; /* PA2 */
131+
linux,input-type = <EV_KEY>;
132+
linux,code = <BTN_WEST>;
133+
};
134+
};
135+
136+
gpio-keys-volume {
137+
compatible = "gpio-keys";
138+
autorepeat;
139+
140+
button-vol-up {
141+
label = "Key Volume Up";
142+
gpios = <&pio 4 1 GPIO_ACTIVE_LOW>; /* PE1 */
143+
linux,input-type = <EV_KEY>;
144+
linux,code = <KEY_VOLUMEUP>;
145+
};
146+
147+
button-vol-down {
148+
label = "Key Volume Down";
149+
gpios = <&pio 4 2 GPIO_ACTIVE_LOW>; /* PE2 */
150+
linux,input-type = <EV_KEY>;
151+
linux,code = <KEY_VOLUMEDOWN>;
152+
};
153+
};
154+
155+
leds {
156+
compatible = "gpio-leds";
157+
158+
led-0 {
159+
function = LED_FUNCTION_POWER;
160+
color = <LED_COLOR_ID_GREEN>;
161+
gpios = <&pio 8 12 GPIO_ACTIVE_HIGH>; /* PI12 */
162+
default-state = "on";
163+
};
164+
};
165+
166+
reg_vcc5v: regulator-vcc5v { /* USB-C power input */
167+
compatible = "regulator-fixed";
168+
regulator-name = "vcc-5v";
169+
regulator-min-microvolt = <5000000>;
170+
regulator-max-microvolt = <5000000>;
171+
};
172+
};
173+
174+
&cpu0 {
175+
cpu-supply = <&reg_dcdc1>;
176+
};
177+
178+
&ehci0 {
179+
status = "okay";
180+
};
181+
182+
&mmc0 {
183+
vmmc-supply = <&reg_cldo3>;
184+
disable-wp;
185+
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
186+
bus-width = <4>;
187+
status = "okay";
188+
};
189+
190+
&ohci0 {
191+
status = "okay";
192+
};
193+
194+
&pio {
195+
vcc-pa-supply = <&reg_cldo3>;
196+
vcc-pc-supply = <&reg_cldo3>;
197+
vcc-pe-supply = <&reg_cldo3>;
198+
vcc-pf-supply = <&reg_cldo3>;
199+
vcc-pg-supply = <&reg_aldo4>;
200+
vcc-ph-supply = <&reg_cldo3>;
201+
vcc-pi-supply = <&reg_cldo3>;
202+
};
203+
204+
&r_rsb {
205+
status = "okay";
206+
207+
axp717: pmic@3a3 {
208+
compatible = "x-powers,axp717";
209+
reg = <0x3a3>;
210+
interrupt-controller;
211+
#interrupt-cells = <1>;
212+
interrupt-parent = <&nmi_intc>;
213+
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
214+
215+
vin1-supply = <&reg_vcc5v>;
216+
vin2-supply = <&reg_vcc5v>;
217+
vin3-supply = <&reg_vcc5v>;
218+
vin4-supply = <&reg_vcc5v>;
219+
220+
regulators {
221+
reg_dcdc1: dcdc1 {
222+
regulator-always-on;
223+
regulator-min-microvolt = <900000>;
224+
regulator-max-microvolt = <1100000>;
225+
regulator-name = "vdd-cpu";
226+
};
227+
228+
reg_dcdc2: dcdc2 {
229+
regulator-always-on;
230+
regulator-min-microvolt = <940000>;
231+
regulator-max-microvolt = <940000>;
232+
regulator-name = "vdd-gpu-sys";
233+
};
234+
235+
reg_dcdc3: dcdc3 {
236+
regulator-always-on;
237+
regulator-min-microvolt = <1100000>;
238+
regulator-max-microvolt = <1100000>;
239+
regulator-name = "vdd-dram";
240+
};
241+
242+
reg_aldo1: aldo1 {
243+
/* 1.8v - unused */
244+
};
245+
246+
reg_aldo2: aldo2 {
247+
/* 1.8v - unused */
248+
};
249+
250+
reg_aldo3: aldo3 {
251+
/* 1.8v - unused */
252+
};
253+
254+
reg_aldo4: aldo4 {
255+
regulator-min-microvolt = <1800000>;
256+
regulator-max-microvolt = <1800000>;
257+
regulator-name = "vcc-pg";
258+
};
259+
260+
reg_bldo1: bldo1 {
261+
/* 1.8v - unused */
262+
};
263+
264+
reg_bldo2: bldo2 {
265+
regulator-always-on;
266+
regulator-min-microvolt = <1800000>;
267+
regulator-max-microvolt = <1800000>;
268+
regulator-name = "vcc-pll";
269+
};
270+
271+
reg_bldo3: bldo3 {
272+
/* 2.8v - unused */
273+
};
274+
275+
reg_bldo4: bldo4 {
276+
/* 1.2v - unused */
277+
};
278+
279+
reg_cldo1: cldo1 {
280+
/* 3.3v - audio codec - not yet implemented */
281+
};
282+
283+
reg_cldo2: cldo2 {
284+
/* 3.3v - unused */
285+
};
286+
287+
reg_cldo3: cldo3 {
288+
regulator-always-on;
289+
regulator-min-microvolt = <3300000>;
290+
regulator-max-microvolt = <3300000>;
291+
regulator-name = "vcc-io";
292+
};
293+
294+
reg_cldo4: cldo4 {
295+
regulator-min-microvolt = <3300000>;
296+
regulator-max-microvolt = <3300000>;
297+
regulator-name = "vcc-wifi";
298+
};
299+
300+
reg_boost: boost {
301+
regulator-min-microvolt = <5000000>;
302+
regulator-max-microvolt = <5200000>;
303+
regulator-name = "boost";
304+
};
305+
306+
reg_cpusldo: cpusldo {
307+
/* unused */
308+
};
309+
};
310+
};
311+
};
312+
313+
&uart0 {
314+
pinctrl-names = "default";
315+
pinctrl-0 = <&uart0_ph_pins>;
316+
status = "okay";
317+
};
318+
319+
/* the AXP717 has USB type-C role switch functionality, not yet described by the binding */
320+
&usbotg {
321+
dr_mode = "peripheral"; /* USB type-C receptable */
322+
status = "okay";
323+
};
324+
325+
&usbphy {
326+
status = "okay";
327+
};
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
/*
3+
* Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
4+
* Copyright (C) 2024 Chris Morgan <macroalpha82@gmail.com>.
5+
*/
6+
7+
#include "sun50i-h700-anbernic-rg35xx-plus.dts"
8+
9+
/ {
10+
model = "Anbernic RG35XX H";
11+
compatible = "anbernic,rg35xx-h", "allwinner,sun50i-h700";
12+
};
13+
14+
&gpio_keys_gamepad {
15+
button-thumbl {
16+
label = "GPIO Thumb Left";
17+
gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
18+
linux,input-type = <EV_KEY>;
19+
linux,code = <BTN_THUMBL>;
20+
};
21+
22+
button-thumbr {
23+
label = "GPIO Thumb Right";
24+
gpios = <&pio 4 9 GPIO_ACTIVE_LOW>; /* PE9 */
25+
linux,input-type = <EV_KEY>;
26+
linux,code = <BTN_THUMBR>;
27+
};
28+
};
29+
30+
&ehci1 {
31+
status = "okay";
32+
};
33+
34+
&ohci1 {
35+
status = "okay";
36+
};

0 commit comments

Comments
 (0)