blob: 63a18ff36ceaeff81e5ca80cc6fa3868f8b03b9d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/input/linux-event-codes.h>
7#include <dt-bindings/pinctrl/rockchip.h>
8#include "rk3566-anbernic-rgxx3.dtsi"
9
10/ {
Tom Rini6bb92fc2024-05-20 09:54:58 -060011 adc-joystick {
12 compatible = "adc-joystick";
13 io-channels = <&adc_mux 0>,
14 <&adc_mux 1>,
15 <&adc_mux 2>,
16 <&adc_mux 3>;
17 pinctrl-0 = <&joy_mux_en>;
18 pinctrl-names = "default";
19 poll-interval = <60>;
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 axis@0 {
24 reg = <0>;
25 abs-flat = <32>;
26 abs-fuzz = <32>;
27 abs-range = <1023 15>;
28 linux,code = <ABS_X>;
29 };
30
31 axis@1 {
32 reg = <1>;
33 abs-flat = <32>;
34 abs-fuzz = <32>;
35 abs-range = <15 1023>;
36 linux,code = <ABS_RX>;
37 };
38
39 axis@2 {
40 reg = <2>;
41 abs-flat = <32>;
42 abs-fuzz = <32>;
43 abs-range = <15 1023>;
44 linux,code = <ABS_Y>;
45 };
46
47 axis@3 {
48 reg = <3>;
49 abs-flat = <32>;
50 abs-fuzz = <32>;
51 abs-range = <1023 15>;
52 linux,code = <ABS_RY>;
53 };
54 };
55
56 adc_mux: adc-mux {
57 compatible = "io-channel-mux";
58 channels = "left_x", "right_x", "left_y", "right_y";
59 #io-channel-cells = <1>;
60 io-channels = <&saradc 3>;
61 io-channel-names = "parent";
62 mux-controls = <&gpio_mux>;
63 settle-time-us = <100>;
64 };
65
Tom Rini53633a82024-02-29 12:33:36 -050066 backlight: backlight {
67 compatible = "pwm-backlight";
68 power-supply = <&vcc_sys>;
69 pwms = <&pwm4 0 25000 0>;
70 };
Tom Rini6bb92fc2024-05-20 09:54:58 -060071
72 gpio_mux: mux-controller {
73 compatible = "gpio-mux";
74 mux-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>,
75 <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
76 #mux-control-cells = <0>;
77 };
Tom Rini53633a82024-02-29 12:33:36 -050078};
79
80&cru {
81 assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
82 <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
83 assigned-clock-rates = <32768>, <1200000000>,
84 <200000000>, <241500000>;
85};
86
87&dsi_dphy0 {
88 status = "okay";
89};
90
91&dsi0 {
92 status = "okay";
93 #address-cells = <1>;
94 #size-cells = <0>;
95
96 ports {
97 dsi0_in: port@0 {
98 reg = <0>;
99 dsi0_in_vp1: endpoint {
100 remote-endpoint = <&vp1_out_dsi0>;
101 };
102 };
103
104 dsi0_out: port@1 {
105 reg = <1>;
106 mipi_out_panel: endpoint {
107 remote-endpoint = <&mipi_in_panel>;
108 };
109 };
110 };
111
112 panel: panel@0 {
113 compatible = "anbernic,rg353p-panel", "newvision,nv3051d";
114 reg = <0>;
115 backlight = <&backlight>;
116 pinctrl-names = "default";
117 pinctrl-0 = <&lcd_rst>;
118 reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
119 vdd-supply = <&vcc3v3_lcd0_n>;
120
121 port {
122 mipi_in_panel: endpoint {
123 remote-endpoint = <&mipi_out_panel>;
124 };
125 };
126 };
127};
128
129&gpio_keys_control {
130 button-a {
131 gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
132 label = "EAST";
133 linux,code = <BTN_EAST>;
134 };
135
136 button-left {
137 gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
138 label = "DPAD-LEFT";
139 linux,code = <BTN_DPAD_LEFT>;
140 };
141
142 button-right {
143 gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
144 label = "DPAD-RIGHT";
145 linux,code = <BTN_DPAD_RIGHT>;
146 };
147
Tom Rini6bb92fc2024-05-20 09:54:58 -0600148 button-thumbl {
149 gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
150 label = "THUMBL";
151 linux,code = <BTN_THUMBL>;
152 };
153
154 button-thumbr {
155 gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
156 label = "THUMBR";
157 linux,code = <BTN_THUMBR>;
158 };
159
Tom Rini53633a82024-02-29 12:33:36 -0500160 button-y {
161 gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
162 label = "WEST";
163 linux,code = <BTN_WEST>;
164 };
165};
166
167&i2c0 {
168 /* This hardware is physically present but unused. */
169 power-monitor@62 {
170 compatible = "cellwise,cw2015";
171 reg = <0x62>;
172 status = "disabled";
173 };
174};
175
176&pinctrl {
177 gpio-lcd {
178 lcd_rst: lcd-rst {
179 rockchip,pins =
180 <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
181 };
182 };
183};
184
185&pwm4 {
186 status = "okay";
187};
188
189&vp1 {
190 vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
191 reg = <ROCKCHIP_VOP2_EP_MIPI0>;
192 remote-endpoint = <&dsi0_in_vp1>;
193 };
194};