xref: /freebsd/sys/contrib/device-tree/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-h.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
17d0873ebSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
27d0873ebSEmmanuel Vadot/*
37d0873ebSEmmanuel Vadot * Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
47d0873ebSEmmanuel Vadot * Copyright (C) 2024 Chris Morgan <macroalpha82@gmail.com>.
57d0873ebSEmmanuel Vadot */
67d0873ebSEmmanuel Vadot
77d0873ebSEmmanuel Vadot#include "sun50i-h700-anbernic-rg35xx-plus.dts"
87d0873ebSEmmanuel Vadot
97d0873ebSEmmanuel Vadot/ {
107d0873ebSEmmanuel Vadot	model = "Anbernic RG35XX H";
117d0873ebSEmmanuel Vadot	compatible = "anbernic,rg35xx-h", "allwinner,sun50i-h700";
12*0e8011faSEmmanuel Vadot
13*0e8011faSEmmanuel Vadot	adc-joystick {
14*0e8011faSEmmanuel Vadot		compatible = "adc-joystick";
15*0e8011faSEmmanuel Vadot		io-channels = <&adc_mux 0>,
16*0e8011faSEmmanuel Vadot			      <&adc_mux 1>,
17*0e8011faSEmmanuel Vadot			      <&adc_mux 2>,
18*0e8011faSEmmanuel Vadot			      <&adc_mux 3>;
19*0e8011faSEmmanuel Vadot		pinctrl-0 = <&joy_mux_pin>;
20*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
21*0e8011faSEmmanuel Vadot		poll-interval = <60>;
22*0e8011faSEmmanuel Vadot		#address-cells = <1>;
23*0e8011faSEmmanuel Vadot		#size-cells = <0>;
24*0e8011faSEmmanuel Vadot
25*0e8011faSEmmanuel Vadot		axis@0 {
26*0e8011faSEmmanuel Vadot			reg = <0>;
27*0e8011faSEmmanuel Vadot			abs-flat = <32>;
28*0e8011faSEmmanuel Vadot			abs-fuzz = <32>;
29*0e8011faSEmmanuel Vadot			abs-range = <4096 0>;
30*0e8011faSEmmanuel Vadot			linux,code = <ABS_X>;
31*0e8011faSEmmanuel Vadot		};
32*0e8011faSEmmanuel Vadot
33*0e8011faSEmmanuel Vadot		axis@1 {
34*0e8011faSEmmanuel Vadot			reg = <1>;
35*0e8011faSEmmanuel Vadot			abs-flat = <32>;
36*0e8011faSEmmanuel Vadot			abs-fuzz = <32>;
37*0e8011faSEmmanuel Vadot			abs-range = <0 4096>;
38*0e8011faSEmmanuel Vadot			linux,code = <ABS_Y>;
39*0e8011faSEmmanuel Vadot		};
40*0e8011faSEmmanuel Vadot
41*0e8011faSEmmanuel Vadot		axis@2 {
42*0e8011faSEmmanuel Vadot			reg = <2>;
43*0e8011faSEmmanuel Vadot			abs-flat = <32>;
44*0e8011faSEmmanuel Vadot			abs-fuzz = <32>;
45*0e8011faSEmmanuel Vadot			abs-range = <0 4096>;
46*0e8011faSEmmanuel Vadot			linux,code = <ABS_RX>;
47*0e8011faSEmmanuel Vadot		};
48*0e8011faSEmmanuel Vadot
49*0e8011faSEmmanuel Vadot		axis@3 {
50*0e8011faSEmmanuel Vadot			reg = <3>;
51*0e8011faSEmmanuel Vadot			abs-flat = <32>;
52*0e8011faSEmmanuel Vadot			abs-fuzz = <32>;
53*0e8011faSEmmanuel Vadot			abs-range = <4096 0>;
54*0e8011faSEmmanuel Vadot			linux,code = <ABS_RY>;
55*0e8011faSEmmanuel Vadot		};
56*0e8011faSEmmanuel Vadot	};
57*0e8011faSEmmanuel Vadot
58*0e8011faSEmmanuel Vadot	adc_mux: adc-mux {
59*0e8011faSEmmanuel Vadot		compatible = "io-channel-mux";
60*0e8011faSEmmanuel Vadot		channels = "left_x", "left_y", "right_x", "right_y";
61*0e8011faSEmmanuel Vadot		#io-channel-cells = <1>;
62*0e8011faSEmmanuel Vadot		io-channels = <&gpadc 0>;
63*0e8011faSEmmanuel Vadot		io-channel-names = "parent";
64*0e8011faSEmmanuel Vadot		mux-controls = <&gpio_mux>;
65*0e8011faSEmmanuel Vadot		settle-time-us = <100>;
66*0e8011faSEmmanuel Vadot	};
67*0e8011faSEmmanuel Vadot
68*0e8011faSEmmanuel Vadot	gpio_mux: mux-controller {
69*0e8011faSEmmanuel Vadot		compatible = "gpio-mux";
70*0e8011faSEmmanuel Vadot		mux-gpios = <&pio 8 1 GPIO_ACTIVE_LOW>,
71*0e8011faSEmmanuel Vadot			    <&pio 8 2 GPIO_ACTIVE_LOW>;
72*0e8011faSEmmanuel Vadot		#mux-control-cells = <0>;
73*0e8011faSEmmanuel Vadot	};
74*0e8011faSEmmanuel Vadot};
75*0e8011faSEmmanuel Vadot
76*0e8011faSEmmanuel Vadot&gpadc {
77*0e8011faSEmmanuel Vadot	#address-cells = <1>;
78*0e8011faSEmmanuel Vadot	#size-cells = <0>;
79*0e8011faSEmmanuel Vadot	status = "okay";
80*0e8011faSEmmanuel Vadot
81*0e8011faSEmmanuel Vadot	channel@0 {
82*0e8011faSEmmanuel Vadot		reg = <0>;
83*0e8011faSEmmanuel Vadot	};
847d0873ebSEmmanuel Vadot};
857d0873ebSEmmanuel Vadot
867d0873ebSEmmanuel Vadot&gpio_keys_gamepad {
877d0873ebSEmmanuel Vadot	button-thumbl {
887d0873ebSEmmanuel Vadot		label = "GPIO Thumb Left";
897d0873ebSEmmanuel Vadot		gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
907d0873ebSEmmanuel Vadot		linux,input-type = <EV_KEY>;
917d0873ebSEmmanuel Vadot		linux,code = <BTN_THUMBL>;
927d0873ebSEmmanuel Vadot	};
937d0873ebSEmmanuel Vadot
947d0873ebSEmmanuel Vadot	button-thumbr {
957d0873ebSEmmanuel Vadot		label = "GPIO Thumb Right";
967d0873ebSEmmanuel Vadot		gpios = <&pio 4 9 GPIO_ACTIVE_LOW>; /* PE9 */
977d0873ebSEmmanuel Vadot		linux,input-type = <EV_KEY>;
987d0873ebSEmmanuel Vadot		linux,code = <BTN_THUMBR>;
997d0873ebSEmmanuel Vadot	};
1007d0873ebSEmmanuel Vadot};
1017d0873ebSEmmanuel Vadot
1027d0873ebSEmmanuel Vadot&ehci1 {
1037d0873ebSEmmanuel Vadot	status = "okay";
1047d0873ebSEmmanuel Vadot};
1057d0873ebSEmmanuel Vadot
1067d0873ebSEmmanuel Vadot&ohci1 {
1077d0873ebSEmmanuel Vadot	status = "okay";
1087d0873ebSEmmanuel Vadot};
109*0e8011faSEmmanuel Vadot
110*0e8011faSEmmanuel Vadot&pio {
111*0e8011faSEmmanuel Vadot	joy_mux_pin: joy-mux-pin {
112*0e8011faSEmmanuel Vadot		pins = "PI0";
113*0e8011faSEmmanuel Vadot		function = "gpio_out";
114*0e8011faSEmmanuel Vadot	};
115*0e8011faSEmmanuel Vadot};
116