~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2 // Copyright (C) 2016 ARM Ltd.
  3 // based on the Allwinner H3 dtsi:
  4 //    Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
  5 
  6 #include <dt-bindings/clock/sun50i-a64-ccu.h>
  7 #include <dt-bindings/clock/sun6i-rtc.h>
  8 #include <dt-bindings/clock/sun8i-de2.h>
  9 #include <dt-bindings/clock/sun8i-r-ccu.h>
 10 #include <dt-bindings/interrupt-controller/arm-gic.h>
 11 #include <dt-bindings/reset/sun50i-a64-ccu.h>
 12 #include <dt-bindings/reset/sun8i-de2.h>
 13 #include <dt-bindings/reset/sun8i-r-ccu.h>
 14 #include <dt-bindings/thermal/thermal.h>
 15 
 16 / {
 17         interrupt-parent = <&gic>;
 18         #address-cells = <1>;
 19         #size-cells = <1>;
 20 
 21         chosen {
 22                 #address-cells = <1>;
 23                 #size-cells = <1>;
 24                 ranges;
 25 
 26                 simplefb_lcd: framebuffer-lcd {
 27                         compatible = "allwinner,simple-framebuffer",
 28                                      "simple-framebuffer";
 29                         allwinner,pipeline = "mixer0-lcd0";
 30                         clocks = <&ccu CLK_TCON0>,
 31                                  <&display_clocks CLK_MIXER0>;
 32                         status = "disabled";
 33                 };
 34 
 35                 simplefb_hdmi: framebuffer-hdmi {
 36                         compatible = "allwinner,simple-framebuffer",
 37                                      "simple-framebuffer";
 38                         allwinner,pipeline = "mixer1-lcd1-hdmi";
 39                         clocks = <&display_clocks CLK_MIXER1>,
 40                                  <&ccu CLK_TCON1>, <&ccu CLK_HDMI>;
 41                         status = "disabled";
 42                 };
 43         };
 44 
 45         cpus {
 46                 #address-cells = <1>;
 47                 #size-cells = <0>;
 48 
 49                 cpu0: cpu@0 {
 50                         compatible = "arm,cortex-a53";
 51                         device_type = "cpu";
 52                         reg = <0>;
 53                         enable-method = "psci";
 54                         clocks = <&ccu CLK_CPUX>;
 55                         clock-names = "cpu";
 56                         #cooling-cells = <2>;
 57                         i-cache-size = <0x8000>;
 58                         i-cache-line-size = <64>;
 59                         i-cache-sets = <256>;
 60                         d-cache-size = <0x8000>;
 61                         d-cache-line-size = <64>;
 62                         d-cache-sets = <128>;
 63                         next-level-cache = <&l2_cache>;
 64                 };
 65 
 66                 cpu1: cpu@1 {
 67                         compatible = "arm,cortex-a53";
 68                         device_type = "cpu";
 69                         reg = <1>;
 70                         enable-method = "psci";
 71                         clocks = <&ccu CLK_CPUX>;
 72                         clock-names = "cpu";
 73                         #cooling-cells = <2>;
 74                         i-cache-size = <0x8000>;
 75                         i-cache-line-size = <64>;
 76                         i-cache-sets = <256>;
 77                         d-cache-size = <0x8000>;
 78                         d-cache-line-size = <64>;
 79                         d-cache-sets = <128>;
 80                         next-level-cache = <&l2_cache>;
 81                 };
 82 
 83                 cpu2: cpu@2 {
 84                         compatible = "arm,cortex-a53";
 85                         device_type = "cpu";
 86                         reg = <2>;
 87                         enable-method = "psci";
 88                         clocks = <&ccu CLK_CPUX>;
 89                         clock-names = "cpu";
 90                         #cooling-cells = <2>;
 91                         i-cache-size = <0x8000>;
 92                         i-cache-line-size = <64>;
 93                         i-cache-sets = <256>;
 94                         d-cache-size = <0x8000>;
 95                         d-cache-line-size = <64>;
 96                         d-cache-sets = <128>;
 97                         next-level-cache = <&l2_cache>;
 98                 };
 99 
100                 cpu3: cpu@3 {
101                         compatible = "arm,cortex-a53";
102                         device_type = "cpu";
103                         reg = <3>;
104                         enable-method = "psci";
105                         clocks = <&ccu CLK_CPUX>;
106                         clock-names = "cpu";
107                         #cooling-cells = <2>;
108                         i-cache-size = <0x8000>;
109                         i-cache-line-size = <64>;
110                         i-cache-sets = <256>;
111                         d-cache-size = <0x8000>;
112                         d-cache-line-size = <64>;
113                         d-cache-sets = <128>;
114                         next-level-cache = <&l2_cache>;
115                 };
116 
117                 l2_cache: l2-cache {
118                         compatible = "cache";
119                         cache-level = <2>;
120                         cache-unified;
121                         cache-size = <0x80000>;
122                         cache-line-size = <64>;
123                         cache-sets = <512>;
124                 };
125         };
126 
127         de: display-engine {
128                 compatible = "allwinner,sun50i-a64-display-engine";
129                 allwinner,pipelines = <&mixer0>,
130                                       <&mixer1>;
131                 status = "disabled";
132         };
133 
134         gpu_opp_table: opp-table-gpu {
135                 compatible = "operating-points-v2";
136 
137                 opp-432000000 {
138                         opp-hz = /bits/ 64 <432000000>;
139                 };
140         };
141 
142         osc24M: osc24M-clk {
143                 #clock-cells = <0>;
144                 compatible = "fixed-clock";
145                 clock-frequency = <24000000>;
146                 clock-output-names = "osc24M";
147         };
148 
149         osc32k: osc32k-clk {
150                 #clock-cells = <0>;
151                 compatible = "fixed-clock";
152                 clock-frequency = <32768>;
153                 clock-output-names = "ext-osc32k";
154         };
155 
156         pmu {
157                 compatible = "arm,cortex-a53-pmu";
158                 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
159                              <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
160                              <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
161                              <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
162                 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
163         };
164 
165         psci {
166                 compatible = "arm,psci-0.2";
167                 method = "smc";
168         };
169 
170         sound: sound {
171                 #address-cells = <1>;
172                 #size-cells = <0>;
173                 compatible = "simple-audio-card";
174                 simple-audio-card,name = "sun50i-a64-audio";
175                 simple-audio-card,aux-devs = <&codec_analog>;
176                 simple-audio-card,routing =
177                                 "Left DAC", "DACL",
178                                 "Right DAC", "DACR",
179                                 "ADCL", "Left ADC",
180                                 "ADCR", "Right ADC";
181                 status = "disabled";
182 
183                 simple-audio-card,dai-link@0 {
184                         format = "i2s";
185                         frame-master = <&link0_cpu>;
186                         bitclock-master = <&link0_cpu>;
187                         mclk-fs = <128>;
188 
189                         link0_cpu: cpu {
190                                 sound-dai = <&dai>;
191                         };
192 
193                         link0_codec: codec {
194                                 sound-dai = <&codec 0>;
195                         };
196                 };
197         };
198 
199         timer {
200                 compatible = "arm,armv8-timer";
201                 allwinner,erratum-unknown1;
202                 arm,no-tick-in-suspend;
203                 interrupts = <GIC_PPI 13
204                         (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
205                              <GIC_PPI 14
206                         (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
207                              <GIC_PPI 11
208                         (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
209                              <GIC_PPI 10
210                         (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
211         };
212 
213         thermal-zones {
214                 cpu_thermal: cpu0-thermal {
215                         /* milliseconds */
216                         polling-delay-passive = <0>;
217                         polling-delay = <0>;
218                         thermal-sensors = <&ths 0>;
219 
220                         cooling-maps {
221                                 map0 {
222                                         trip = <&cpu_alert0>;
223                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
224                                                          <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
225                                                          <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
226                                                          <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
227                                 };
228                                 map1 {
229                                         trip = <&cpu_alert1>;
230                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
231                                                          <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
232                                                          <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
233                                                          <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
234                                 };
235                         };
236 
237                         trips {
238                                 cpu_alert0: cpu-alert0 {
239                                         /* milliCelsius */
240                                         temperature = <75000>;
241                                         hysteresis = <2000>;
242                                         type = "passive";
243                                 };
244 
245                                 cpu_alert1: cpu-alert1 {
246                                         /* milliCelsius */
247                                         temperature = <90000>;
248                                         hysteresis = <2000>;
249                                         type = "hot";
250                                 };
251 
252                                 cpu_crit: cpu-crit {
253                                         /* milliCelsius */
254                                         temperature = <110000>;
255                                         hysteresis = <2000>;
256                                         type = "critical";
257                                 };
258                         };
259                 };
260 
261                 gpu0_thermal: gpu0-thermal {
262                         /* milliseconds */
263                         polling-delay-passive = <0>;
264                         polling-delay = <0>;
265                         thermal-sensors = <&ths 1>;
266                 };
267 
268                 gpu1_thermal: gpu1-thermal {
269                         /* milliseconds */
270                         polling-delay-passive = <0>;
271                         polling-delay = <0>;
272                         thermal-sensors = <&ths 2>;
273                 };
274         };
275 
276         soc {
277                 compatible = "simple-bus";
278                 #address-cells = <1>;
279                 #size-cells = <1>;
280                 ranges;
281 
282                 bus@1000000 {
283                         compatible = "allwinner,sun50i-a64-de2";
284                         reg = <0x1000000 0x400000>;
285                         allwinner,sram = <&de2_sram 1>;
286                         #address-cells = <1>;
287                         #size-cells = <1>;
288                         ranges = <0 0x1000000 0x400000>;
289 
290                         display_clocks: clock@0 {
291                                 compatible = "allwinner,sun50i-a64-de2-clk";
292                                 reg = <0x0 0x10000>;
293                                 clocks = <&ccu CLK_BUS_DE>,
294                                          <&ccu CLK_DE>;
295                                 clock-names = "bus",
296                                               "mod";
297                                 resets = <&ccu RST_BUS_DE>;
298                                 #clock-cells = <1>;
299                                 #reset-cells = <1>;
300                         };
301 
302                         rotate: rotate@20000 {
303                                 compatible = "allwinner,sun50i-a64-de2-rotate",
304                                              "allwinner,sun8i-a83t-de2-rotate";
305                                 reg = <0x20000 0x10000>;
306                                 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
307                                 clocks = <&display_clocks CLK_BUS_ROT>,
308                                          <&display_clocks CLK_ROT>;
309                                 clock-names = "bus",
310                                               "mod";
311                                 resets = <&display_clocks RST_ROT>;
312                         };
313 
314                         mixer0: mixer@100000 {
315                                 compatible = "allwinner,sun50i-a64-de2-mixer-0";
316                                 reg = <0x100000 0x100000>;
317                                 clocks = <&display_clocks CLK_BUS_MIXER0>,
318                                          <&display_clocks CLK_MIXER0>;
319                                 clock-names = "bus",
320                                               "mod";
321                                 resets = <&display_clocks RST_MIXER0>;
322 
323                                 ports {
324                                         #address-cells = <1>;
325                                         #size-cells = <0>;
326 
327                                         mixer0_out: port@1 {
328                                                 #address-cells = <1>;
329                                                 #size-cells = <0>;
330                                                 reg = <1>;
331 
332                                                 mixer0_out_tcon0: endpoint@0 {
333                                                         reg = <0>;
334                                                         remote-endpoint = <&tcon0_in_mixer0>;
335                                                 };
336 
337                                                 mixer0_out_tcon1: endpoint@1 {
338                                                         reg = <1>;
339                                                         remote-endpoint = <&tcon1_in_mixer0>;
340                                                 };
341                                         };
342                                 };
343                         };
344 
345                         mixer1: mixer@200000 {
346                                 compatible = "allwinner,sun50i-a64-de2-mixer-1";
347                                 reg = <0x200000 0x100000>;
348                                 clocks = <&display_clocks CLK_BUS_MIXER1>,
349                                          <&display_clocks CLK_MIXER1>;
350                                 clock-names = "bus",
351                                               "mod";
352                                 resets = <&display_clocks RST_MIXER1>;
353 
354                                 ports {
355                                         #address-cells = <1>;
356                                         #size-cells = <0>;
357 
358                                         mixer1_out: port@1 {
359                                                 #address-cells = <1>;
360                                                 #size-cells = <0>;
361                                                 reg = <1>;
362 
363                                                 mixer1_out_tcon0: endpoint@0 {
364                                                         reg = <0>;
365                                                         remote-endpoint = <&tcon0_in_mixer1>;
366                                                 };
367 
368                                                 mixer1_out_tcon1: endpoint@1 {
369                                                         reg = <1>;
370                                                         remote-endpoint = <&tcon1_in_mixer1>;
371                                                 };
372                                         };
373                                 };
374                         };
375                 };
376 
377                 syscon: syscon@1c00000 {
378                         compatible = "allwinner,sun50i-a64-system-control";
379                         reg = <0x01c00000 0x1000>;
380                         #address-cells = <1>;
381                         #size-cells = <1>;
382                         ranges;
383 
384                         sram_c: sram@18000 {
385                                 compatible = "mmio-sram";
386                                 reg = <0x00018000 0x28000>;
387                                 #address-cells = <1>;
388                                 #size-cells = <1>;
389                                 ranges = <0 0x00018000 0x28000>;
390 
391                                 de2_sram: sram-section@0 {
392                                         compatible = "allwinner,sun50i-a64-sram-c";
393                                         reg = <0x0000 0x28000>;
394                                 };
395                         };
396 
397                         sram_c1: sram@1d00000 {
398                                 compatible = "mmio-sram";
399                                 reg = <0x01d00000 0x40000>;
400                                 #address-cells = <1>;
401                                 #size-cells = <1>;
402                                 ranges = <0 0x01d00000 0x40000>;
403 
404                                 ve_sram: sram-section@0 {
405                                         compatible = "allwinner,sun50i-a64-sram-c1",
406                                                      "allwinner,sun4i-a10-sram-c1";
407                                         reg = <0x000000 0x40000>;
408                                 };
409                         };
410                 };
411 
412                 dma: dma-controller@1c02000 {
413                         compatible = "allwinner,sun50i-a64-dma";
414                         reg = <0x01c02000 0x1000>;
415                         interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
416                         clocks = <&ccu CLK_BUS_DMA>;
417                         dma-channels = <8>;
418                         dma-requests = <27>;
419                         resets = <&ccu RST_BUS_DMA>;
420                         #dma-cells = <1>;
421                 };
422 
423                 tcon0: lcd-controller@1c0c000 {
424                         compatible = "allwinner,sun50i-a64-tcon-lcd",
425                                      "allwinner,sun8i-a83t-tcon-lcd";
426                         reg = <0x01c0c000 0x1000>;
427                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
428                         clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>;
429                         clock-names = "ahb", "tcon-ch0";
430                         clock-output-names = "tcon-data-clock";
431                         #clock-cells = <0>;
432                         resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>;
433                         reset-names = "lcd", "lvds";
434 
435                         ports {
436                                 #address-cells = <1>;
437                                 #size-cells = <0>;
438 
439                                 tcon0_in: port@0 {
440                                         #address-cells = <1>;
441                                         #size-cells = <0>;
442                                         reg = <0>;
443 
444                                         tcon0_in_mixer0: endpoint@0 {
445                                                 reg = <0>;
446                                                 remote-endpoint = <&mixer0_out_tcon0>;
447                                         };
448 
449                                         tcon0_in_mixer1: endpoint@1 {
450                                                 reg = <1>;
451                                                 remote-endpoint = <&mixer1_out_tcon0>;
452                                         };
453                                 };
454 
455                                 tcon0_out: port@1 {
456                                         #address-cells = <1>;
457                                         #size-cells = <0>;
458                                         reg = <1>;
459 
460                                         tcon0_out_dsi: endpoint@1 {
461                                                 reg = <1>;
462                                                 remote-endpoint = <&dsi_in_tcon0>;
463                                                 allwinner,tcon-channel = <1>;
464                                         };
465                                 };
466                         };
467                 };
468 
469                 tcon1: lcd-controller@1c0d000 {
470                         compatible = "allwinner,sun50i-a64-tcon-tv",
471                                      "allwinner,sun8i-a83t-tcon-tv";
472                         reg = <0x01c0d000 0x1000>;
473                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
474                         clocks = <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>;
475                         clock-names = "ahb", "tcon-ch1";
476                         resets = <&ccu RST_BUS_TCON1>;
477                         reset-names = "lcd";
478 
479                         ports {
480                                 #address-cells = <1>;
481                                 #size-cells = <0>;
482 
483                                 tcon1_in: port@0 {
484                                         #address-cells = <1>;
485                                         #size-cells = <0>;
486                                         reg = <0>;
487 
488                                         tcon1_in_mixer0: endpoint@0 {
489                                                 reg = <0>;
490                                                 remote-endpoint = <&mixer0_out_tcon1>;
491                                         };
492 
493                                         tcon1_in_mixer1: endpoint@1 {
494                                                 reg = <1>;
495                                                 remote-endpoint = <&mixer1_out_tcon1>;
496                                         };
497                                 };
498 
499                                 tcon1_out: port@1 {
500                                         #address-cells = <1>;
501                                         #size-cells = <0>;
502                                         reg = <1>;
503 
504                                         tcon1_out_hdmi: endpoint@1 {
505                                                 reg = <1>;
506                                                 remote-endpoint = <&hdmi_in_tcon1>;
507                                         };
508                                 };
509                         };
510                 };
511 
512                 video-codec@1c0e000 {
513                         compatible = "allwinner,sun50i-a64-video-engine";
514                         reg = <0x01c0e000 0x1000>;
515                         clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
516                                  <&ccu CLK_DRAM_VE>;
517                         clock-names = "ahb", "mod", "ram";
518                         resets = <&ccu RST_BUS_VE>;
519                         interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
520                         allwinner,sram = <&ve_sram 1>;
521                 };
522 
523                 mmc0: mmc@1c0f000 {
524                         compatible = "allwinner,sun50i-a64-mmc";
525                         reg = <0x01c0f000 0x1000>;
526                         clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
527                         clock-names = "ahb", "mmc";
528                         resets = <&ccu RST_BUS_MMC0>;
529                         reset-names = "ahb";
530                         interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
531                         max-frequency = <150000000>;
532                         status = "disabled";
533                         #address-cells = <1>;
534                         #size-cells = <0>;
535                 };
536 
537                 mmc1: mmc@1c10000 {
538                         compatible = "allwinner,sun50i-a64-mmc";
539                         reg = <0x01c10000 0x1000>;
540                         clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
541                         clock-names = "ahb", "mmc";
542                         resets = <&ccu RST_BUS_MMC1>;
543                         reset-names = "ahb";
544                         interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
545                         max-frequency = <150000000>;
546                         status = "disabled";
547                         #address-cells = <1>;
548                         #size-cells = <0>;
549                 };
550 
551                 mmc2: mmc@1c11000 {
552                         compatible = "allwinner,sun50i-a64-emmc";
553                         reg = <0x01c11000 0x1000>;
554                         clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
555                         clock-names = "ahb", "mmc";
556                         resets = <&ccu RST_BUS_MMC2>;
557                         reset-names = "ahb";
558                         interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
559                         max-frequency = <150000000>;
560                         status = "disabled";
561                         #address-cells = <1>;
562                         #size-cells = <0>;
563                 };
564 
565                 sid: eeprom@1c14000 {
566                         compatible = "allwinner,sun50i-a64-sid";
567                         reg = <0x1c14000 0x400>;
568                         #address-cells = <1>;
569                         #size-cells = <1>;
570 
571                         ths_calibration: thermal-sensor-calibration@34 {
572                                 reg = <0x34 0x8>;
573                         };
574                 };
575 
576                 crypto: crypto@1c15000 {
577                         compatible = "allwinner,sun50i-a64-crypto";
578                         reg = <0x01c15000 0x1000>;
579                         interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
580                         clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
581                         clock-names = "bus", "mod";
582                         resets = <&ccu RST_BUS_CE>;
583                 };
584 
585                 msgbox: mailbox@1c17000 {
586                         compatible = "allwinner,sun50i-a64-msgbox",
587                                      "allwinner,sun6i-a31-msgbox";
588                         reg = <0x01c17000 0x1000>;
589                         clocks = <&ccu CLK_BUS_MSGBOX>;
590                         resets = <&ccu RST_BUS_MSGBOX>;
591                         interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
592                         #mbox-cells = <1>;
593                 };
594 
595                 usb_otg: usb@1c19000 {
596                         compatible = "allwinner,sun8i-a33-musb";
597                         reg = <0x01c19000 0x0400>;
598                         clocks = <&ccu CLK_BUS_OTG>;
599                         resets = <&ccu RST_BUS_OTG>;
600                         interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
601                         interrupt-names = "mc";
602                         phys = <&usbphy 0>;
603                         phy-names = "usb";
604                         extcon = <&usbphy 0>;
605                         dr_mode = "otg";
606                         status = "disabled";
607                 };
608 
609                 usbphy: phy@1c19400 {
610                         compatible = "allwinner,sun50i-a64-usb-phy";
611                         reg = <0x01c19400 0x14>,
612                               <0x01c1a800 0x4>,
613                               <0x01c1b800 0x4>;
614                         reg-names = "phy_ctrl",
615                                     "pmu0",
616                                     "pmu1";
617                         clocks = <&ccu CLK_USB_PHY0>,
618                                  <&ccu CLK_USB_PHY1>;
619                         clock-names = "usb0_phy",
620                                       "usb1_phy";
621                         resets = <&ccu RST_USB_PHY0>,
622                                  <&ccu RST_USB_PHY1>;
623                         reset-names = "usb0_reset",
624                                       "usb1_reset";
625                         status = "disabled";
626                         #phy-cells = <1>;
627                 };
628 
629                 ehci0: usb@1c1a000 {
630                         compatible = "allwinner,sun50i-a64-ehci", "generic-ehci";
631                         reg = <0x01c1a000 0x100>;
632                         interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
633                         clocks = <&ccu CLK_BUS_OHCI0>,
634                                  <&ccu CLK_BUS_EHCI0>,
635                                  <&ccu CLK_USB_OHCI0>;
636                         resets = <&ccu RST_BUS_OHCI0>,
637                                  <&ccu RST_BUS_EHCI0>;
638                         phys = <&usbphy 0>;
639                         phy-names = "usb";
640                         status = "disabled";
641                 };
642 
643                 ohci0: usb@1c1a400 {
644                         compatible = "allwinner,sun50i-a64-ohci", "generic-ohci";
645                         reg = <0x01c1a400 0x100>;
646                         interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
647                         clocks = <&ccu CLK_BUS_OHCI0>,
648                                  <&ccu CLK_USB_OHCI0>;
649                         resets = <&ccu RST_BUS_OHCI0>;
650                         phys = <&usbphy 0>;
651                         phy-names = "usb";
652                         status = "disabled";
653                 };
654 
655                 ehci1: usb@1c1b000 {
656                         compatible = "allwinner,sun50i-a64-ehci", "generic-ehci";
657                         reg = <0x01c1b000 0x100>;
658                         interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
659                         clocks = <&ccu CLK_BUS_OHCI1>,
660                                  <&ccu CLK_BUS_EHCI1>,
661                                  <&ccu CLK_USB_OHCI1>;
662                         resets = <&ccu RST_BUS_OHCI1>,
663                                  <&ccu RST_BUS_EHCI1>;
664                         phys = <&usbphy 1>;
665                         phy-names = "usb";
666                         status = "disabled";
667                 };
668 
669                 ohci1: usb@1c1b400 {
670                         compatible = "allwinner,sun50i-a64-ohci", "generic-ohci";
671                         reg = <0x01c1b400 0x100>;
672                         interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
673                         clocks = <&ccu CLK_BUS_OHCI1>,
674                                  <&ccu CLK_USB_OHCI1>;
675                         resets = <&ccu RST_BUS_OHCI1>;
676                         phys = <&usbphy 1>;
677                         phy-names = "usb";
678                         status = "disabled";
679                 };
680 
681                 ccu: clock@1c20000 {
682                         compatible = "allwinner,sun50i-a64-ccu";
683                         reg = <0x01c20000 0x400>;
684                         clocks = <&osc24M>, <&rtc CLK_OSC32K>;
685                         clock-names = "hosc", "losc";
686                         #clock-cells = <1>;
687                         #reset-cells = <1>;
688                 };
689 
690                 pio: pinctrl@1c20800 {
691                         compatible = "allwinner,sun50i-a64-pinctrl";
692                         reg = <0x01c20800 0x400>;
693                         interrupt-parent = <&r_intc>;
694                         interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
695                                      <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
696                                      <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
697                         clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
698                                  <&rtc CLK_OSC32K>;
699                         clock-names = "apb", "hosc", "losc";
700                         gpio-controller;
701                         #gpio-cells = <3>;
702                         interrupt-controller;
703                         #interrupt-cells = <3>;
704 
705                         /omit-if-no-ref/
706                         aif2_pins: aif2-pins {
707                                 pins = "PB4", "PB5", "PB6", "PB7";
708                                 function = "aif2";
709                         };
710 
711                         /omit-if-no-ref/
712                         aif3_pins: aif3-pins {
713                                 pins = "PG10", "PG11", "PG12", "PG13";
714                                 function = "aif3";
715                         };
716 
717                         csi_pins: csi-pins {
718                                 pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6",
719                                        "PE7", "PE8", "PE9", "PE10", "PE11";
720                                 function = "csi";
721                         };
722 
723                         /omit-if-no-ref/
724                         csi_mclk_pin: csi-mclk-pin {
725                                 pins = "PE1";
726                                 function = "csi";
727                         };
728 
729                         i2c0_pins: i2c0-pins {
730                                 pins = "PH0", "PH1";
731                                 function = "i2c0";
732                         };
733 
734                         i2c1_pins: i2c1-pins {
735                                 pins = "PH2", "PH3";
736                                 function = "i2c1";
737                         };
738 
739                         i2c2_pins: i2c2-pins {
740                                 pins = "PE14", "PE15";
741                                 function = "i2c2";
742                         };
743 
744                         /omit-if-no-ref/
745                         lcd_rgb666_pins: lcd-rgb666-pins {
746                                 pins = "PD0", "PD1", "PD2", "PD3", "PD4",
747                                        "PD5", "PD6", "PD7", "PD8", "PD9",
748                                        "PD10", "PD11", "PD12", "PD13",
749                                        "PD14", "PD15", "PD16", "PD17",
750                                        "PD18", "PD19", "PD20", "PD21";
751                                 function = "lcd0";
752                         };
753 
754                         mmc0_pins: mmc0-pins {
755                                 pins = "PF0", "PF1", "PF2", "PF3",
756                                        "PF4", "PF5";
757                                 function = "mmc0";
758                                 drive-strength = <30>;
759                                 bias-pull-up;
760                         };
761 
762                         mmc1_pins: mmc1-pins {
763                                 pins = "PG0", "PG1", "PG2", "PG3",
764                                        "PG4", "PG5";
765                                 function = "mmc1";
766                                 drive-strength = <30>;
767                                 bias-pull-up;
768                         };
769 
770                         mmc2_pins: mmc2-pins {
771                                 pins = "PC5", "PC6", "PC8", "PC9",
772                                        "PC10","PC11", "PC12", "PC13",
773                                        "PC14", "PC15", "PC16";
774                                 function = "mmc2";
775                                 drive-strength = <30>;
776                                 bias-pull-up;
777                         };
778 
779                         mmc2_ds_pin: mmc2-ds-pin {
780                                 pins = "PC1";
781                                 function = "mmc2";
782                                 drive-strength = <30>;
783                                 bias-pull-up;
784                         };
785 
786                         pwm_pin: pwm-pin {
787                                 pins = "PD22";
788                                 function = "pwm";
789                         };
790 
791                         rmii_pins: rmii-pins {
792                                 pins = "PD10", "PD11", "PD13", "PD14", "PD17",
793                                        "PD18", "PD19", "PD20", "PD22", "PD23";
794                                 function = "emac";
795                                 drive-strength = <40>;
796                         };
797 
798                         rgmii_pins: rgmii-pins {
799                                 pins = "PD8", "PD9", "PD10", "PD11", "PD12",
800                                        "PD13", "PD15", "PD16", "PD17", "PD18",
801                                        "PD19", "PD20", "PD21", "PD22", "PD23";
802                                 function = "emac";
803                                 drive-strength = <40>;
804                         };
805 
806                         spdif_tx_pin: spdif-tx-pin {
807                                 pins = "PH8";
808                                 function = "spdif";
809                         };
810 
811                         spi0_pins: spi0-pins {
812                                 pins = "PC0", "PC1", "PC2", "PC3";
813                                 function = "spi0";
814                         };
815 
816                         spi1_pins: spi1-pins {
817                                 pins = "PD0", "PD1", "PD2", "PD3";
818                                 function = "spi1";
819                         };
820 
821                         uart0_pb_pins: uart0-pb-pins {
822                                 pins = "PB8", "PB9";
823                                 function = "uart0";
824                         };
825 
826                         uart1_pins: uart1-pins {
827                                 pins = "PG6", "PG7";
828                                 function = "uart1";
829                         };
830 
831                         uart1_rts_cts_pins: uart1-rts-cts-pins {
832                                 pins = "PG8", "PG9";
833                                 function = "uart1";
834                         };
835 
836                         uart2_pins: uart2-pins {
837                                 pins = "PB0", "PB1";
838                                 function = "uart2";
839                         };
840 
841                         uart3_pins: uart3-pins {
842                                 pins = "PD0", "PD1";
843                                 function = "uart3";
844                         };
845 
846                         uart4_pins: uart4-pins {
847                                 pins = "PD2", "PD3";
848                                 function = "uart4";
849                         };
850 
851                         uart4_rts_cts_pins: uart4-rts-cts-pins {
852                                 pins = "PD4", "PD5";
853                                 function = "uart4";
854                         };
855                 };
856 
857                 timer@1c20c00 {
858                         compatible = "allwinner,sun50i-a64-timer",
859                                      "allwinner,sun8i-a23-timer";
860                         reg = <0x01c20c00 0xa0>;
861                         interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
862                                      <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
863                         clocks = <&osc24M>;
864                 };
865 
866                 wdt0: watchdog@1c20ca0 {
867                         compatible = "allwinner,sun50i-a64-wdt",
868                                      "allwinner,sun6i-a31-wdt";
869                         reg = <0x01c20ca0 0x20>;
870                         interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
871                         clocks = <&osc24M>;
872                 };
873 
874                 spdif: spdif@1c21000 {
875                         #sound-dai-cells = <0>;
876                         compatible = "allwinner,sun50i-a64-spdif",
877                                      "allwinner,sun8i-h3-spdif";
878                         reg = <0x01c21000 0x400>;
879                         interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
880                         clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
881                         resets = <&ccu RST_BUS_SPDIF>;
882                         clock-names = "apb", "spdif";
883                         dmas = <&dma 2>;
884                         dma-names = "tx";
885                         pinctrl-names = "default";
886                         pinctrl-0 = <&spdif_tx_pin>;
887                         status = "disabled";
888                 };
889 
890                 lradc: lradc@1c21800 {
891                         compatible = "allwinner,sun50i-a64-lradc",
892                                      "allwinner,sun8i-a83t-r-lradc";
893                         reg = <0x01c21800 0x400>;
894                         interrupt-parent = <&r_intc>;
895                         interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
896                         status = "disabled";
897                 };
898 
899                 i2s0: i2s@1c22000 {
900                         #sound-dai-cells = <0>;
901                         compatible = "allwinner,sun50i-a64-i2s",
902                                      "allwinner,sun8i-h3-i2s";
903                         reg = <0x01c22000 0x400>;
904                         interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
905                         clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>;
906                         clock-names = "apb", "mod";
907                         resets = <&ccu RST_BUS_I2S0>;
908                         dma-names = "rx", "tx";
909                         dmas = <&dma 3>, <&dma 3>;
910                         status = "disabled";
911                 };
912 
913                 i2s1: i2s@1c22400 {
914                         #sound-dai-cells = <0>;
915                         compatible = "allwinner,sun50i-a64-i2s",
916                                      "allwinner,sun8i-h3-i2s";
917                         reg = <0x01c22400 0x400>;
918                         interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
919                         clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;
920                         clock-names = "apb", "mod";
921                         resets = <&ccu RST_BUS_I2S1>;
922                         dma-names = "rx", "tx";
923                         dmas = <&dma 4>, <&dma 4>;
924                         status = "disabled";
925                 };
926 
927                 i2s2: i2s@1c22800 {
928                         #sound-dai-cells = <0>;
929                         compatible = "allwinner,sun50i-a64-i2s",
930                                      "allwinner,sun8i-h3-i2s";
931                         reg = <0x01c22800 0x400>;
932                         interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
933                         clocks = <&ccu CLK_BUS_I2S2>, <&ccu CLK_I2S2>;
934                         clock-names = "apb", "mod";
935                         resets = <&ccu RST_BUS_I2S2>;
936                         dma-names = "rx", "tx";
937                         dmas = <&dma 27>, <&dma 27>;
938                         status = "disabled";
939                 };
940 
941                 dai: dai@1c22c00 {
942                         #sound-dai-cells = <0>;
943                         compatible = "allwinner,sun50i-a64-codec-i2s";
944                         reg = <0x01c22c00 0x200>;
945                         interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
946                         clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
947                         clock-names = "apb", "mod";
948                         resets = <&ccu RST_BUS_CODEC>;
949                         dmas = <&dma 15>, <&dma 15>;
950                         dma-names = "rx", "tx";
951                         status = "disabled";
952                 };
953 
954                 codec: codec@1c22e00 {
955                         #sound-dai-cells = <1>;
956                         compatible = "allwinner,sun50i-a64-codec",
957                                      "allwinner,sun8i-a33-codec";
958                         reg = <0x01c22e00 0x600>;
959                         interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
960                         clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
961                         clock-names = "bus", "mod";
962                         status = "disabled";
963                 };
964 
965                 ths: thermal-sensor@1c25000 {
966                         compatible = "allwinner,sun50i-a64-ths";
967                         reg = <0x01c25000 0x100>;
968                         clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
969                         clock-names = "bus", "mod";
970                         interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
971                         resets = <&ccu RST_BUS_THS>;
972                         nvmem-cells = <&ths_calibration>;
973                         nvmem-cell-names = "calibration";
974                         #thermal-sensor-cells = <1>;
975                 };
976 
977                 uart0: serial@1c28000 {
978                         compatible = "snps,dw-apb-uart";
979                         reg = <0x01c28000 0x400>;
980                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
981                         reg-shift = <2>;
982                         reg-io-width = <4>;
983                         clocks = <&ccu CLK_BUS_UART0>;
984                         resets = <&ccu RST_BUS_UART0>;
985                         status = "disabled";
986                 };
987 
988                 uart1: serial@1c28400 {
989                         compatible = "snps,dw-apb-uart";
990                         reg = <0x01c28400 0x400>;
991                         interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
992                         reg-shift = <2>;
993                         reg-io-width = <4>;
994                         clocks = <&ccu CLK_BUS_UART1>;
995                         resets = <&ccu RST_BUS_UART1>;
996                         status = "disabled";
997                 };
998 
999                 uart2: serial@1c28800 {
1000                         compatible = "snps,dw-apb-uart";
1001                         reg = <0x01c28800 0x400>;
1002                         interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
1003                         reg-shift = <2>;
1004                         reg-io-width = <4>;
1005                         clocks = <&ccu CLK_BUS_UART2>;
1006                         resets = <&ccu RST_BUS_UART2>;
1007                         status = "disabled";
1008                 };
1009 
1010                 uart3: serial@1c28c00 {
1011                         compatible = "snps,dw-apb-uart";
1012                         reg = <0x01c28c00 0x400>;
1013                         interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1014                         reg-shift = <2>;
1015                         reg-io-width = <4>;
1016                         clocks = <&ccu CLK_BUS_UART3>;
1017                         resets = <&ccu RST_BUS_UART3>;
1018                         status = "disabled";
1019                 };
1020 
1021                 uart4: serial@1c29000 {
1022                         compatible = "snps,dw-apb-uart";
1023                         reg = <0x01c29000 0x400>;
1024                         interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
1025                         reg-shift = <2>;
1026                         reg-io-width = <4>;
1027                         clocks = <&ccu CLK_BUS_UART4>;
1028                         resets = <&ccu RST_BUS_UART4>;
1029                         status = "disabled";
1030                 };
1031 
1032                 i2c0: i2c@1c2ac00 {
1033                         compatible = "allwinner,sun6i-a31-i2c";
1034                         reg = <0x01c2ac00 0x400>;
1035                         interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1036                         clocks = <&ccu CLK_BUS_I2C0>;
1037                         resets = <&ccu RST_BUS_I2C0>;
1038                         pinctrl-names = "default";
1039                         pinctrl-0 = <&i2c0_pins>;
1040                         status = "disabled";
1041                         #address-cells = <1>;
1042                         #size-cells = <0>;
1043                 };
1044 
1045                 i2c1: i2c@1c2b000 {
1046                         compatible = "allwinner,sun6i-a31-i2c";
1047                         reg = <0x01c2b000 0x400>;
1048                         interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1049                         clocks = <&ccu CLK_BUS_I2C1>;
1050                         resets = <&ccu RST_BUS_I2C1>;
1051                         pinctrl-names = "default";
1052                         pinctrl-0 = <&i2c1_pins>;
1053                         status = "disabled";
1054                         #address-cells = <1>;
1055                         #size-cells = <0>;
1056                 };
1057 
1058                 i2c2: i2c@1c2b400 {
1059                         compatible = "allwinner,sun6i-a31-i2c";
1060                         reg = <0x01c2b400 0x400>;
1061                         interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1062                         clocks = <&ccu CLK_BUS_I2C2>;
1063                         resets = <&ccu RST_BUS_I2C2>;
1064                         pinctrl-names = "default";
1065                         pinctrl-0 = <&i2c2_pins>;
1066                         status = "disabled";
1067                         #address-cells = <1>;
1068                         #size-cells = <0>;
1069                 };
1070 
1071                 spi0: spi@1c68000 {
1072                         compatible = "allwinner,sun8i-h3-spi";
1073                         reg = <0x01c68000 0x1000>;
1074                         interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
1075                         clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
1076                         clock-names = "ahb", "mod";
1077                         dmas = <&dma 23>, <&dma 23>;
1078                         dma-names = "rx", "tx";
1079                         pinctrl-names = "default";
1080                         pinctrl-0 = <&spi0_pins>;
1081                         resets = <&ccu RST_BUS_SPI0>;
1082                         status = "disabled";
1083                         num-cs = <1>;
1084                         #address-cells = <1>;
1085                         #size-cells = <0>;
1086                 };
1087 
1088                 spi1: spi@1c69000 {
1089                         compatible = "allwinner,sun8i-h3-spi";
1090                         reg = <0x01c69000 0x1000>;
1091                         interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
1092                         clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
1093                         clock-names = "ahb", "mod";
1094                         dmas = <&dma 24>, <&dma 24>;
1095                         dma-names = "rx", "tx";
1096                         pinctrl-names = "default";
1097                         pinctrl-0 = <&spi1_pins>;
1098                         resets = <&ccu RST_BUS_SPI1>;
1099                         status = "disabled";
1100                         num-cs = <1>;
1101                         #address-cells = <1>;
1102                         #size-cells = <0>;
1103                 };
1104 
1105                 emac: ethernet@1c30000 {
1106                         compatible = "allwinner,sun50i-a64-emac";
1107                         syscon = <&syscon>;
1108                         reg = <0x01c30000 0x10000>;
1109                         interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1110                         interrupt-names = "macirq";
1111                         resets = <&ccu RST_BUS_EMAC>;
1112                         reset-names = "stmmaceth";
1113                         clocks = <&ccu CLK_BUS_EMAC>;
1114                         clock-names = "stmmaceth";
1115                         status = "disabled";
1116 
1117                         mdio: mdio {
1118                                 compatible = "snps,dwmac-mdio";
1119                                 #address-cells = <1>;
1120                                 #size-cells = <0>;
1121                         };
1122                 };
1123 
1124                 mali: gpu@1c40000 {
1125                         compatible = "allwinner,sun50i-a64-mali", "arm,mali-400";
1126                         reg = <0x01c40000 0x10000>;
1127                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1128                                      <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1129                                      <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1130                                      <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1131                                      <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1132                                      <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1133                                      <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1134                         interrupt-names = "gp",
1135                                           "gpmmu",
1136                                           "pp0",
1137                                           "ppmmu0",
1138                                           "pp1",
1139                                           "ppmmu1",
1140                                           "pmu";
1141                         clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
1142                         clock-names = "bus", "core";
1143                         resets = <&ccu RST_BUS_GPU>;
1144                         operating-points-v2 = <&gpu_opp_table>;
1145                 };
1146 
1147                 gic: interrupt-controller@1c81000 {
1148                         compatible = "arm,gic-400";
1149                         reg = <0x01c81000 0x1000>,
1150                               <0x01c82000 0x2000>,
1151                               <0x01c84000 0x2000>,
1152                               <0x01c86000 0x2000>;
1153                         interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1154                         interrupt-controller;
1155                         #interrupt-cells = <3>;
1156                 };
1157 
1158                 pwm: pwm@1c21400 {
1159                         compatible = "allwinner,sun50i-a64-pwm",
1160                                      "allwinner,sun5i-a13-pwm";
1161                         reg = <0x01c21400 0x400>;
1162                         clocks = <&osc24M>;
1163                         pinctrl-names = "default";
1164                         pinctrl-0 = <&pwm_pin>;
1165                         #pwm-cells = <3>;
1166                         status = "disabled";
1167                 };
1168 
1169                 mbus: dram-controller@1c62000 {
1170                         compatible = "allwinner,sun50i-a64-mbus";
1171                         reg = <0x01c62000 0x1000>,
1172                               <0x01c63000 0x1000>;
1173                         reg-names = "mbus", "dram";
1174                         clocks = <&ccu CLK_MBUS>,
1175                                  <&ccu CLK_DRAM>,
1176                                  <&ccu CLK_BUS_DRAM>;
1177                         clock-names = "mbus", "dram", "bus";
1178                         interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
1179                         #address-cells = <1>;
1180                         #size-cells = <1>;
1181                         dma-ranges = <0x00000000 0x40000000 0xc0000000>;
1182                         #interconnect-cells = <1>;
1183                 };
1184 
1185                 csi: csi@1cb0000 {
1186                         compatible = "allwinner,sun50i-a64-csi";
1187                         reg = <0x01cb0000 0x1000>;
1188                         interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1189                         clocks = <&ccu CLK_BUS_CSI>,
1190                                  <&ccu CLK_CSI_SCLK>,
1191                                  <&ccu CLK_DRAM_CSI>;
1192                         clock-names = "bus", "mod", "ram";
1193                         resets = <&ccu RST_BUS_CSI>;
1194                         pinctrl-names = "default";
1195                         pinctrl-0 = <&csi_pins>;
1196                         status = "disabled";
1197                 };
1198 
1199                 dsi: dsi@1ca0000 {
1200                         compatible = "allwinner,sun50i-a64-mipi-dsi";
1201                         reg = <0x01ca0000 0x1000>;
1202                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1203                         clocks = <&ccu CLK_BUS_MIPI_DSI>;
1204                         resets = <&ccu RST_BUS_MIPI_DSI>;
1205                         phys = <&dphy>;
1206                         phy-names = "dphy";
1207                         status = "disabled";
1208                         #address-cells = <1>;
1209                         #size-cells = <0>;
1210 
1211                         port {
1212                                 dsi_in_tcon0: endpoint {
1213                                         remote-endpoint = <&tcon0_out_dsi>;
1214                                 };
1215                         };
1216                 };
1217 
1218                 dphy: d-phy@1ca1000 {
1219                         compatible = "allwinner,sun50i-a64-mipi-dphy",
1220                                      "allwinner,sun6i-a31-mipi-dphy";
1221                         reg = <0x01ca1000 0x1000>;
1222                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1223                         clocks = <&ccu CLK_BUS_MIPI_DSI>,
1224                                  <&ccu CLK_DSI_DPHY>;
1225                         clock-names = "bus", "mod";
1226                         resets = <&ccu RST_BUS_MIPI_DSI>;
1227                         status = "disabled";
1228                         #phy-cells = <0>;
1229                 };
1230 
1231                 deinterlace: deinterlace@1e00000 {
1232                         compatible = "allwinner,sun50i-a64-deinterlace",
1233                                      "allwinner,sun8i-h3-deinterlace";
1234                         reg = <0x01e00000 0x20000>;
1235                         clocks = <&ccu CLK_BUS_DEINTERLACE>,
1236                                  <&ccu CLK_DEINTERLACE>,
1237                                  <&ccu CLK_DRAM_DEINTERLACE>;
1238                         clock-names = "bus", "mod", "ram";
1239                         resets = <&ccu RST_BUS_DEINTERLACE>;
1240                         interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
1241                         interconnects = <&mbus 9>;
1242                         interconnect-names = "dma-mem";
1243                 };
1244 
1245                 hdmi: hdmi@1ee0000 {
1246                         compatible = "allwinner,sun50i-a64-dw-hdmi",
1247                                      "allwinner,sun8i-a83t-dw-hdmi";
1248                         reg = <0x01ee0000 0x10000>;
1249                         reg-io-width = <1>;
1250                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1251                         clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
1252                                  <&ccu CLK_HDMI>, <&rtc CLK_OSC32K>;
1253                         clock-names = "iahb", "isfr", "tmds", "cec";
1254                         resets = <&ccu RST_BUS_HDMI1>;
1255                         reset-names = "ctrl";
1256                         phys = <&hdmi_phy>;
1257                         phy-names = "phy";
1258                         status = "disabled";
1259 
1260                         ports {
1261                                 #address-cells = <1>;
1262                                 #size-cells = <0>;
1263 
1264                                 hdmi_in: port@0 {
1265                                         reg = <0>;
1266 
1267                                         hdmi_in_tcon1: endpoint {
1268                                                 remote-endpoint = <&tcon1_out_hdmi>;
1269                                         };
1270                                 };
1271 
1272                                 hdmi_out: port@1 {
1273                                         reg = <1>;
1274                                 };
1275                         };
1276                 };
1277 
1278                 hdmi_phy: hdmi-phy@1ef0000 {
1279                         compatible = "allwinner,sun50i-a64-hdmi-phy";
1280                         reg = <0x01ef0000 0x10000>;
1281                         clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
1282                                  <&ccu CLK_PLL_VIDEO0>;
1283                         clock-names = "bus", "mod", "pll-0";
1284                         resets = <&ccu RST_BUS_HDMI0>;
1285                         reset-names = "phy";
1286                         #phy-cells = <0>;
1287                 };
1288 
1289                 rtc: rtc@1f00000 {
1290                         compatible = "allwinner,sun50i-a64-rtc",
1291                                      "allwinner,sun8i-h3-rtc";
1292                         reg = <0x01f00000 0x400>;
1293                         interrupt-parent = <&r_intc>;
1294                         interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
1295                                      <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
1296                         clock-output-names = "osc32k", "osc32k-out", "iosc";
1297                         clocks = <&osc32k>;
1298                         #clock-cells = <1>;
1299                 };
1300 
1301                 r_intc: interrupt-controller@1f00c00 {
1302                         compatible = "allwinner,sun50i-a64-r-intc",
1303                                      "allwinner,sun6i-a31-r-intc";
1304                         interrupt-controller;
1305                         #interrupt-cells = <3>;
1306                         reg = <0x01f00c00 0x400>;
1307                         interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1308                 };
1309 
1310                 r_ccu: clock@1f01400 {
1311                         compatible = "allwinner,sun50i-a64-r-ccu";
1312                         reg = <0x01f01400 0x100>;
1313                         clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
1314                                  <&ccu CLK_PLL_PERIPH0>;
1315                         clock-names = "hosc", "losc", "iosc", "pll-periph";
1316                         #clock-cells = <1>;
1317                         #reset-cells = <1>;
1318                 };
1319 
1320                 codec_analog: codec-analog@1f015c0 {
1321                         compatible = "allwinner,sun50i-a64-codec-analog";
1322                         reg = <0x01f015c0 0x4>;
1323                         status = "disabled";
1324                 };
1325 
1326                 r_i2c: i2c@1f02400 {
1327                         compatible = "allwinner,sun50i-a64-i2c",
1328                                      "allwinner,sun6i-a31-i2c";
1329                         reg = <0x01f02400 0x400>;
1330                         interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1331                         clocks = <&r_ccu CLK_APB0_I2C>;
1332                         resets = <&r_ccu RST_APB0_I2C>;
1333                         status = "disabled";
1334                         #address-cells = <1>;
1335                         #size-cells = <0>;
1336                 };
1337 
1338                 r_ir: ir@1f02000 {
1339                         compatible = "allwinner,sun50i-a64-ir",
1340                                      "allwinner,sun6i-a31-ir";
1341                         reg = <0x01f02000 0x400>;
1342                         clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>;
1343                         clock-names = "apb", "ir";
1344                         resets = <&r_ccu RST_APB0_IR>;
1345                         interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1346                         pinctrl-names = "default";
1347                         pinctrl-0 = <&r_ir_rx_pin>;
1348                         status = "disabled";
1349                 };
1350 
1351                 r_pwm: pwm@1f03800 {
1352                         compatible = "allwinner,sun50i-a64-pwm",
1353                                      "allwinner,sun5i-a13-pwm";
1354                         reg = <0x01f03800 0x400>;
1355                         clocks = <&osc24M>;
1356                         pinctrl-names = "default";
1357                         pinctrl-0 = <&r_pwm_pin>;
1358                         #pwm-cells = <3>;
1359                         status = "disabled";
1360                 };
1361 
1362                 r_pio: pinctrl@1f02c00 {
1363                         compatible = "allwinner,sun50i-a64-r-pinctrl";
1364                         reg = <0x01f02c00 0x400>;
1365                         interrupt-parent = <&r_intc>;
1366                         interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
1367                         clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;
1368                         clock-names = "apb", "hosc", "losc";
1369                         gpio-controller;
1370                         #gpio-cells = <3>;
1371                         interrupt-controller;
1372                         #interrupt-cells = <3>;
1373 
1374                         r_i2c_pl89_pins: r-i2c-pl89-pins {
1375                                 pins = "PL8", "PL9";
1376                                 function = "s_i2c";
1377                         };
1378 
1379                         r_ir_rx_pin: r-ir-rx-pin {
1380                                 pins = "PL11";
1381                                 function = "s_cir_rx";
1382                         };
1383 
1384                         r_pwm_pin: r-pwm-pin {
1385                                 pins = "PL10";
1386                                 function = "s_pwm";
1387                         };
1388 
1389                         r_rsb_pins: r-rsb-pins {
1390                                 pins = "PL0", "PL1";
1391                                 function = "s_rsb";
1392                         };
1393                 };
1394 
1395                 r_rsb: rsb@1f03400 {
1396                         compatible = "allwinner,sun8i-a23-rsb";
1397                         reg = <0x01f03400 0x400>;
1398                         interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
1399                         clocks = <&r_ccu 6>;
1400                         clock-frequency = <3000000>;
1401                         resets = <&r_ccu 2>;
1402                         pinctrl-names = "default";
1403                         pinctrl-0 = <&r_rsb_pins>;
1404                         status = "disabled";
1405                         #address-cells = <1>;
1406                         #size-cells = <0>;
1407                 };
1408         };
1409 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php