Linux 6.9-rc1
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / rockchip / rk3326-odroid-go3.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2019 Hardkernel Co., Ltd
4  * Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH
5  * Copyright (c) 2022 Maya Matuszczyk <maccraft123mc@gmail.com>
6  */
7
8 /dts-v1/;
9 #include "rk3326-odroid-go.dtsi"
10
11 / {
12         model = "ODROID-GO Super";
13         compatible = "hardkernel,rk3326-odroid-go3", "rockchip,rk3326";
14
15         joystick_mux_controller: mux-controller {
16                 compatible = "gpio-mux";
17                 pinctrl = <&mux_en_pins>;
18                 #mux-control-cells = <0>;
19
20                 mux-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>,
21                             <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
22         };
23
24         joystick_mux: adc-mux {
25                 compatible = "io-channel-mux";
26                 io-channels = <&saradc 1>;
27                 io-channel-names = "parent";
28                 #io-channel-cells = <1>;
29
30                 mux-controls = <&joystick_mux_controller>;
31                 channels = "0", "1", "2", "3";
32         };
33
34         analog_sticks: adc-joystick {
35                 compatible = "adc-joystick";
36                 io-channels = <&joystick_mux 0>,
37                               <&joystick_mux 1>,
38                               <&joystick_mux 2>,
39                               <&joystick_mux 3>;
40                 poll-interval = <60>;
41                 #address-cells = <1>;
42                 #size-cells = <0>;
43
44                 axis@0 {
45                         reg = <0>;
46                         abs-flat = <10>;
47                         abs-fuzz = <10>;
48                         abs-range = <180 800>;
49                         linux,code = <ABS_X>;
50                 };
51
52                 axis@1 {
53                         reg = <1>;
54                         abs-flat = <10>;
55                         abs-fuzz = <10>;
56                         abs-range = <180 800>;
57                         linux,code = <ABS_RX>;
58                 };
59
60                 axis@2 {
61                         reg = <2>;
62                         abs-flat = <10>;
63                         abs-fuzz = <10>;
64                         abs-range = <180 800>;
65                         linux,code = <ABS_Y>;
66                 };
67
68                 axis@3 {
69                         reg = <3>;
70                         abs-flat = <10>;
71                         abs-fuzz = <10>;
72                         abs-range = <180 800>;
73                         linux,code = <ABS_RY>;
74                 };
75         };
76
77         battery: battery {
78                 compatible = "simple-battery";
79                 charge-full-design-microamp-hours = <4000000>;
80                 charge-term-current-microamp = <300000>;
81                 constant-charge-current-max-microamp = <2000000>;
82                 constant-charge-voltage-max-microvolt = <4200000>;
83                 factory-internal-resistance-micro-ohms = <180000>;
84                 voltage-max-design-microvolt = <4100000>;
85                 voltage-min-design-microvolt = <3500000>;
86
87                 ocv-capacity-celsius = <20>;
88                 ocv-capacity-table-0 =  <4046950 100>, <4001920 95>, <3967900 90>, <3919950 85>,
89                                         <3888450 80>, <3861850 75>, <3831540 70>, <3799130 65>,
90                                         <3768190 60>, <3745650 55>, <3726610 50>, <3711630 45>,
91                                         <3696720 40>, <3685660 35>, <3674950 30>, <3663050 25>,
92                                         <3649470 20>, <3635260 15>, <3616920 10>, <3592440 5>,
93                                         <3574170 0>;
94         };
95
96         gpio-keys-vol {
97                 compatible = "gpio-keys";
98                 autorepeat;
99                 pinctrl-0 = <&btn_pins_vol>;
100                 pinctrl-names = "default";
101
102                 button-vol-down {
103                         gpios = <&gpio2 RK_PA1 GPIO_ACTIVE_LOW>;
104                         label = "VOLUMEDOWN";
105                         linux,code = <KEY_VOLUMEDOWN>;
106                 };
107
108                 button-volume-up {
109                         gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
110                         label = "VOLUMEUP";
111                         linux,code = <KEY_VOLUMEUP>;
112                 };
113         };
114 };
115
116 /* f1 and f2 conflict with volume buttons */
117 /delete-node/ &btn_f1;
118 /delete-node/ &btn_f2;
119
120 &builtin_gamepad {
121         button-sw19 {
122                 gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
123                 label = "SELECT";
124                 linux,code = <BTN_SELECT>;
125         };
126         /* note that TR2 and TL2 are swapped */
127         button-sw20 {
128                 gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
129                 label = "TOP-RIGHT 2";
130                 linux,code = <BTN_TR2>;
131         };
132         button-sw21 {
133                 gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
134                 label = "TOP-LEFT 2";
135                 linux,code = <BTN_TL2>;
136         };
137         button-sw22 {
138                 gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
139                 label = "START";
140                 linux,code = <BTN_START>;
141         };
142 };
143
144 &internal_display {
145         compatible = "elida,kd50t048a", "sitronix,st7701";
146         reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
147         IOVCC-supply = <&vcc_lcd>;
148         VCC-supply = <&vcc_lcd>;
149 };
150
151 &rk817_charger {
152         monitored-battery = <&battery>;
153 };
154
155 &pinctrl {
156         btns {
157                 btn_pins: btn-pins {
158                         rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
159                                         <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
160                                         <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
161                                         <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
162                                         <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
163                                         <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
164                                         <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
165                                         <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
166                                         <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
167                                         <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
168                                         <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
169                                         <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
170                                         <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
171                                         <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
172                                         <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
173                                         <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
174                                         <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
175                                         <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>;
176                 };
177                 btn_pins_vol: btn-pins-vol {
178                         rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
179                                         <2 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
180                 };
181         };
182
183         joystick {
184                 mux_en_pins: mux-pins {
185                         rockchip,pins = <3 RK_PB5 RK_FUNC_GPIO &pcfg_output_low>;
186                 };
187         };
188 };