1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2019 Amlogic, Inc. All rights reserved. 4 */ 5 6#include <dt-bindings/interrupt-controller/irq.h> 7#include <dt-bindings/interrupt-controller/arm-gic.h> 8#include <dt-bindings/gpio/meson-a1-gpio.h> 9 10/ { 11 compatible = "amlogic,a1"; 12 13 interrupt-parent = <&gic>; 14 #address-cells = <2>; 15 #size-cells = <2>; 16 17 cpus { 18 #address-cells = <2>; 19 #size-cells = <0>; 20 21 cpu0: cpu@0 { 22 device_type = "cpu"; 23 compatible = "arm,cortex-a35"; 24 reg = <0x0 0x0>; 25 enable-method = "psci"; 26 next-level-cache = <&l2>; 27 }; 28 29 cpu1: cpu@1 { 30 device_type = "cpu"; 31 compatible = "arm,cortex-a35"; 32 reg = <0x0 0x1>; 33 enable-method = "psci"; 34 next-level-cache = <&l2>; 35 }; 36 37 l2: l2-cache0 { 38 compatible = "cache"; 39 cache-level = <2>; 40 }; 41 }; 42 43 psci { 44 compatible = "arm,psci-1.0"; 45 method = "smc"; 46 }; 47 48 reserved-memory { 49 #address-cells = <2>; 50 #size-cells = <2>; 51 ranges; 52 53 linux,cma { 54 compatible = "shared-dma-pool"; 55 reusable; 56 size = <0x0 0x800000>; 57 alignment = <0x0 0x400000>; 58 linux,cma-default; 59 }; 60 }; 61 62 sm: secure-monitor { 63 compatible = "amlogic,meson-gxbb-sm"; 64 65 pwrc: power-controller { 66 compatible = "amlogic,meson-a1-pwrc"; 67 #power-domain-cells = <1>; 68 status = "okay"; 69 }; 70 }; 71 72 soc { 73 compatible = "simple-bus"; 74 #address-cells = <2>; 75 #size-cells = <2>; 76 ranges; 77 78 apb: bus@fe000000 { 79 compatible = "simple-bus"; 80 reg = <0x0 0xfe000000 0x0 0x1000000>; 81 #address-cells = <2>; 82 #size-cells = <2>; 83 ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>; 84 85 86 reset: reset-controller@0 { 87 compatible = "amlogic,meson-a1-reset"; 88 reg = <0x0 0x0 0x0 0x8c>; 89 #reset-cells = <1>; 90 }; 91 92 periphs_pinctrl: pinctrl@400 { 93 compatible = "amlogic,meson-a1-periphs-pinctrl"; 94 #address-cells = <2>; 95 #size-cells = <2>; 96 ranges; 97 98 gpio: bank@400 { 99 reg = <0x0 0x0400 0x0 0x003c>, 100 <0x0 0x0480 0x0 0x0118>; 101 reg-names = "mux", "gpio"; 102 gpio-controller; 103 #gpio-cells = <2>; 104 gpio-ranges = <&periphs_pinctrl 0 0 62>; 105 }; 106 107 }; 108 109 uart_AO: serial@1c00 { 110 compatible = "amlogic,meson-gx-uart", 111 "amlogic,meson-ao-uart"; 112 reg = <0x0 0x1c00 0x0 0x18>; 113 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>; 114 clocks = <&xtal>, <&xtal>, <&xtal>; 115 clock-names = "xtal", "pclk", "baud"; 116 status = "disabled"; 117 }; 118 119 uart_AO_B: serial@2000 { 120 compatible = "amlogic,meson-gx-uart", 121 "amlogic,meson-ao-uart"; 122 reg = <0x0 0x2000 0x0 0x18>; 123 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; 124 clocks = <&xtal>, <&xtal>, <&xtal>; 125 clock-names = "xtal", "pclk", "baud"; 126 status = "disabled"; 127 }; 128 129 gpio_intc: interrupt-controller@0440 { 130 compatible = "amlogic,meson-a1-gpio-intc", 131 "amlogic,meson-gpio-intc"; 132 reg = <0x0 0x0440 0x0 0x14>; 133 interrupt-controller; 134 #interrupt-cells = <2>; 135 amlogic,channel-interrupts = 136 <49 50 51 52 53 54 55 56>; 137 }; 138 }; 139 140 gic: interrupt-controller@ff901000 { 141 compatible = "arm,gic-400"; 142 reg = <0x0 0xff901000 0x0 0x1000>, 143 <0x0 0xff902000 0x0 0x2000>, 144 <0x0 0xff904000 0x0 0x2000>, 145 <0x0 0xff906000 0x0 0x2000>; 146 interrupt-controller; 147 interrupts = <GIC_PPI 9 148 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 149 #interrupt-cells = <3>; 150 #address-cells = <0>; 151 }; 152 }; 153 154 timer { 155 compatible = "arm,armv8-timer"; 156 interrupts = <GIC_PPI 13 157 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 158 <GIC_PPI 14 159 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 160 <GIC_PPI 11 161 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 162 <GIC_PPI 10 163 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 164 }; 165 166 xtal: xtal-clk { 167 compatible = "fixed-clock"; 168 clock-frequency = <24000000>; 169 clock-output-names = "xtal"; 170 #clock-cells = <0>; 171 }; 172}; 173