arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / mips / boot / dts / ingenic / rs90.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /dts-v1/;
3
4 #include "jz4725b.dtsi"
5
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/iio/adc/ingenic,adc.h>
8 #include <dt-bindings/input/linux-event-codes.h>
9
10 / {
11         compatible = "ylm,rs90", "ingenic,jz4725b";
12         model = "RS-90";
13
14         memory {
15                 device_type = "memory";
16                 reg = <0x0 0x2000000>;
17         };
18
19         reserved-memory {
20                 #address-cells = <1>;
21                 #size-cells = <1>;
22                 ranges;
23
24                 vmem: video-memory@1f00000 {
25                         compatible = "shared-dma-pool";
26                         reg = <0x1f00000 0x100000>;
27                         reusable;
28                 };
29         };
30
31         vcc: regulator {
32                 compatible = "regulator-fixed";
33
34                 regulator-name = "vcc";
35                 regulaor-min-microvolt = <3300000>;
36                 regulaor-max-microvolt = <3300000>;
37                 regulator-always-on;
38         };
39
40         backlight: backlight {
41                 compatible = "pwm-backlight";
42                 pwms = <&pwm 3 40000 0>;
43
44                 brightness-levels = <0 16 32 48 64 80 112 144 192 255>;
45                 default-brightness-level = <8>;
46
47                 pinctrl-names = "default";
48                 pinctrl-0 = <&pins_pwm3>;
49
50                 power-supply = <&vcc>;
51         };
52
53         keys@0 {
54                 compatible = "gpio-keys";
55
56                 key-0 {
57                         label = "D-pad up";
58                         linux,code = <KEY_UP>;
59                         gpios = <&gpc 10 GPIO_ACTIVE_LOW>;
60                 };
61
62                 key-1 {
63                         label = "D-pad down";
64                         linux,code = <KEY_DOWN>;
65                         gpios = <&gpc 11 GPIO_ACTIVE_LOW>;
66                 };
67
68                 key-2 {
69                         label = "D-pad left";
70                         linux,code = <KEY_LEFT>;
71                         gpios = <&gpb 31 GPIO_ACTIVE_LOW>;
72                 };
73
74                 key-3 {
75                         label = "D-pad right";
76                         linux,code = <KEY_RIGHT>;
77                         gpios = <&gpd 21 GPIO_ACTIVE_LOW>;
78                 };
79
80                 key-4 {
81                         label = "Button A";
82                         linux,code = <KEY_LEFTCTRL>;
83                         gpios = <&gpc 31 GPIO_ACTIVE_LOW>;
84                 };
85
86                 key-5 {
87                         label = "Button B";
88                         linux,code = <KEY_LEFTALT>;
89                         gpios = <&gpc 30 GPIO_ACTIVE_LOW>;
90                 };
91
92                 key-6 {
93                         label = "Right shoulder button";
94                         linux,code = <KEY_BACKSPACE>;
95                         gpios = <&gpc 12 GPIO_ACTIVE_LOW>;
96                         debounce-interval = <10>;
97                 };
98
99                 key-7 {
100                         label = "Start button";
101                         linux,code = <KEY_ENTER>;
102                         gpios = <&gpd 17 GPIO_ACTIVE_LOW>;
103                 };
104         };
105
106         keys@1 {
107                 compatible = "adc-keys";
108                 io-channels = <&adc INGENIC_ADC_AUX>;
109                 io-channel-names = "buttons";
110                 keyup-threshold-microvolt = <1400000>;
111                 poll-interval = <30>;
112
113                 key@0 {
114                         label = "Left shoulder button";
115                         linux,code = <KEY_TAB>;
116                         press-threshold-microvolt = <800000>;
117                 };
118
119                 key@1 {
120                         label = "Select button";
121                         linux,code = <KEY_ESC>;
122                         press-threshold-microvolt = <1100000>;
123                 };
124         };
125
126         amp: analog-amplifier {
127                 compatible = "simple-audio-amplifier";
128                 enable-gpios = <&gpc 15 GPIO_ACTIVE_HIGH>;
129
130                 VCC-supply = <&vcc>;
131         };
132
133         sound {
134                 compatible = "simple-audio-card";
135
136                 simple-audio-card,name = "rs90-audio";
137                 simple-audio-card,format = "i2s";
138
139                 simple-audio-card,widgets =
140                         "Speaker", "Speaker",
141                         "Headphone", "Headphones";
142                 simple-audio-card,routing =
143                         "INL", "LHPOUT",
144                         "INR", "RHPOUT",
145                         "Headphones", "LHPOUT",
146                         "Headphones", "RHPOUT",
147                         "Speaker", "OUTL",
148                         "Speaker", "OUTR";
149                 simple-audio-card,pin-switches = "Speaker";
150
151                 simple-audio-card,hp-det-gpio = <&gpd 16 GPIO_ACTIVE_LOW>;
152                 simple-audio-card,aux-devs = <&amp>;
153
154                 simple-audio-card,bitclock-master = <&dai_codec>;
155                 simple-audio-card,frame-master = <&dai_codec>;
156
157                 dai_cpu: simple-audio-card,cpu {
158                         sound-dai = <&aic>;
159                 };
160
161                 dai_codec: simple-audio-card,codec {
162                         sound-dai = <&codec>;
163                 };
164
165         };
166
167         usb_phy: usb-phy {
168                 compatible = "usb-nop-xceiv";
169                 #phy-cells = <0>;
170
171                 clocks = <&cgu JZ4725B_CLK_UDC_PHY>;
172                 clock-names = "main_clk";
173                 vcc-supply = <&vcc>;
174         };
175
176         panel {
177                 compatible = "sharp,ls020b1dd01d";
178
179                 backlight = <&backlight>;
180                 power-supply = <&vcc>;
181
182                 port {
183                         panel_input: endpoint {
184                                 remote-endpoint = <&panel_output>;
185                         };
186                 };
187         };
188 };
189
190 &ext {
191         clock-frequency = <12000000>;
192 };
193
194 &rtc_dev {
195         system-power-controller;
196 };
197
198 &udc {
199         phys = <&usb_phy>;
200 };
201
202 &pinctrl {
203         pins_mmc1: mmc1 {
204                 function = "mmc1";
205                 groups = "mmc1-1bit";
206         };
207
208         pins_nemc: nemc {
209                 function = "nand";
210                 groups = "nand-cs1", "nand-cle-ale", "nand-fre-fwe";
211         };
212
213         pins_pwm3: pwm3 {
214                 function = "pwm3";
215                 groups = "pwm3";
216                 bias-disable;
217         };
218
219         pins_lcd: lcd {
220                 function = "lcd";
221                 groups = "lcd-8bit", "lcd-16bit", "lcd-special";
222         };
223 };
224
225 &mmc0 {
226         status = "disabled";
227 };
228
229 &mmc1 {
230         bus-width = <1>;
231         max-frequency = <48000000>;
232
233         pinctrl-names = "default";
234         pinctrl-0 = <&pins_mmc1>;
235
236         cd-gpios = <&gpc 20 GPIO_ACTIVE_LOW>;
237 };
238
239 &uart {
240         /*
241          * The pins for RX/TX are used for the right shoulder button and
242          * backlight PWM.
243          */
244         status = "disabled";
245 };
246
247 &nemc {
248         nandc: nand-controller@1 {
249                 compatible = "ingenic,jz4725b-nand";
250                 reg = <1 0 0x4000000>;
251
252                 #address-cells = <1>;
253                 #size-cells = <0>;
254
255                 ecc-engine = <&bch>;
256
257                 ingenic,nemc-tAS = <10>;
258                 ingenic,nemc-tAH = <5>;
259                 ingenic,nemc-tBP = <10>;
260                 ingenic,nemc-tAW = <15>;
261                 ingenic,nemc-tSTRV = <100>;
262
263                 pinctrl-names = "default";
264                 pinctrl-0 = <&pins_nemc>;
265
266                 rb-gpios = <&gpc 27 GPIO_ACTIVE_HIGH>;
267
268                 nand@1 {
269                         reg = <1>;
270
271                         nand-ecc-step-size = <512>;
272                         nand-ecc-strength = <8>;
273                         nand-ecc-mode = "hw";
274                         nand-is-boot-medium;
275                         nand-on-flash-bbt;
276
277                         partitions {
278                                 compatible = "fixed-partitions";
279                                 #address-cells = <1>;
280                                 #size-cells = <1>;
281
282                                 partition@0 {
283                                         label = "bootloader";
284                                         reg = <0x0 0x20000>;
285                                 };
286
287                                 partition@20000 {
288                                         label = "system";
289                                         reg = <0x20000 0x0>;
290                                 };
291                         };
292                 };
293         };
294 };
295
296 &cgu {
297         /* Use 32kHz oscillator as the parent of the RTC clock */
298         assigned-clocks = <&cgu JZ4725B_CLK_RTC>;
299         assigned-clock-parents = <&cgu JZ4725B_CLK_OSC32K>;
300 };
301
302 &tcu {
303         /*
304          * 750 kHz for the system timer and clocksource, and use RTC as the
305          * parent for the watchdog clock.
306          */
307         assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, <&tcu TCU_CLK_WDT>;
308         assigned-clock-parents = <0>, <0>, <&cgu JZ4725B_CLK_RTC>;
309         assigned-clock-rates = <750000>, <750000>;
310 };
311
312 &lcd {
313         memory-region = <&vmem>;
314
315         pinctrl-names = "default";
316         pinctrl-0 = <&pins_lcd>;
317 };
318
319 &lcd_ports {
320         port@0 {
321                 reg = <0>;
322
323                 panel_output: endpoint {
324                         remote-endpoint = <&panel_input>;
325                 };
326         };
327 };