1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2017 Andreas Färber 4 */ 5 6#include <dt-bindings/clock/actions,s700-cmu.h> 7#include <dt-bindings/interrupt-controller/arm-gic.h> 8#include <dt-bindings/power/owl-s700-powergate.h> 9#include <dt-bindings/reset/actions,s700-reset.h> 10 11/ { 12 compatible = "actions,s700"; 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-a53"; 24 reg = <0x0 0x0>; 25 enable-method = "psci"; 26 }; 27 28 cpu1: cpu@1 { 29 device_type = "cpu"; 30 compatible = "arm,cortex-a53"; 31 reg = <0x0 0x1>; 32 enable-method = "psci"; 33 }; 34 35 cpu2: cpu@2 { 36 device_type = "cpu"; 37 compatible = "arm,cortex-a53"; 38 reg = <0x0 0x2>; 39 enable-method = "psci"; 40 }; 41 42 cpu3: cpu@3 { 43 device_type = "cpu"; 44 compatible = "arm,cortex-a53"; 45 reg = <0x0 0x3>; 46 enable-method = "psci"; 47 }; 48 }; 49 50 reserved-memory { 51 #address-cells = <2>; 52 #size-cells = <2>; 53 ranges; 54 55 secmon@1f000000 { 56 reg = <0x0 0x1f000000 0x0 0x1000000>; 57 no-map; 58 }; 59 }; 60 61 psci { 62 compatible = "arm,psci-0.2"; 63 method = "smc"; 64 }; 65 66 arm-pmu { 67 compatible = "arm,cortex-a53-pmu"; 68 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 69 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 70 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 71 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 72 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 73 }; 74 75 timer { 76 compatible = "arm,armv8-timer"; 77 interrupts = <GIC_PPI 13 78 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 79 <GIC_PPI 14 80 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 81 <GIC_PPI 11 82 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 83 <GIC_PPI 10 84 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 85 }; 86 87 hosc: hosc { 88 compatible = "fixed-clock"; 89 clock-frequency = <24000000>; 90 #clock-cells = <0>; 91 }; 92 93 losc: losc { 94 compatible = "fixed-clock"; 95 clock-frequency = <32768>; 96 #clock-cells = <0>; 97 }; 98 99 soc { 100 compatible = "simple-bus"; 101 #address-cells = <2>; 102 #size-cells = <2>; 103 ranges; 104 105 gic: interrupt-controller@e00f1000 { 106 compatible = "arm,gic-400"; 107 reg = <0x0 0xe00f1000 0x0 0x1000>, 108 <0x0 0xe00f2000 0x0 0x2000>, 109 <0x0 0xe00f4000 0x0 0x2000>, 110 <0x0 0xe00f6000 0x0 0x2000>; 111 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 112 interrupt-controller; 113 #interrupt-cells = <3>; 114 }; 115 116 uart0: serial@e0120000 { 117 compatible = "actions,s900-uart", "actions,owl-uart"; 118 reg = <0x0 0xe0120000 0x0 0x2000>; 119 clocks = <&cmu CLK_UART0>; 120 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 121 status = "disabled"; 122 }; 123 124 uart1: serial@e0122000 { 125 compatible = "actions,s900-uart", "actions,owl-uart"; 126 reg = <0x0 0xe0122000 0x0 0x2000>; 127 clocks = <&cmu CLK_UART1>; 128 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 129 status = "disabled"; 130 }; 131 132 uart2: serial@e0124000 { 133 compatible = "actions,s900-uart", "actions,owl-uart"; 134 reg = <0x0 0xe0124000 0x0 0x2000>; 135 clocks = <&cmu CLK_UART2>; 136 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 137 status = "disabled"; 138 }; 139 140 uart3: serial@e0126000 { 141 compatible = "actions,s900-uart", "actions,owl-uart"; 142 reg = <0x0 0xe0126000 0x0 0x2000>; 143 clocks = <&cmu CLK_UART3>; 144 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 145 status = "disabled"; 146 }; 147 148 uart4: serial@e0128000 { 149 compatible = "actions,s900-uart", "actions,owl-uart"; 150 reg = <0x0 0xe0128000 0x0 0x2000>; 151 clocks = <&cmu CLK_UART4>; 152 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 153 status = "disabled"; 154 }; 155 156 uart5: serial@e012a000 { 157 compatible = "actions,s900-uart", "actions,owl-uart"; 158 reg = <0x0 0xe012a000 0x0 0x2000>; 159 clocks = <&cmu CLK_UART5>; 160 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 161 status = "disabled"; 162 }; 163 164 uart6: serial@e012c000 { 165 compatible = "actions,s900-uart", "actions,owl-uart"; 166 reg = <0x0 0xe012c000 0x0 0x2000>; 167 clocks = <&cmu CLK_UART6>; 168 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 169 status = "disabled"; 170 }; 171 172 cmu: clock-controller@e0168000 { 173 compatible = "actions,s700-cmu"; 174 reg = <0x0 0xe0168000 0x0 0x1000>; 175 clocks = <&hosc>, <&losc>; 176 #clock-cells = <1>; 177 #reset-cells = <1>; 178 }; 179 180 i2c0: i2c@e0170000 { 181 compatible = "actions,s700-i2c"; 182 reg = <0 0xe0170000 0 0x1000>; 183 clocks = <&cmu CLK_I2C0>; 184 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 185 #address-cells = <1>; 186 #size-cells = <0>; 187 status = "disabled"; 188 }; 189 190 i2c1: i2c@e0174000 { 191 compatible = "actions,s700-i2c"; 192 reg = <0 0xe0174000 0 0x1000>; 193 clocks = <&cmu CLK_I2C1>; 194 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 195 #address-cells = <1>; 196 #size-cells = <0>; 197 status = "disabled"; 198 }; 199 200 i2c2: i2c@e0178000 { 201 compatible = "actions,s700-i2c"; 202 reg = <0 0xe0178000 0 0x1000>; 203 clocks = <&cmu CLK_I2C2>; 204 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 205 #address-cells = <1>; 206 #size-cells = <0>; 207 status = "disabled"; 208 }; 209 210 i2c3: i2c@e017c000 { 211 compatible = "actions,s700-i2c"; 212 reg = <0 0xe017c000 0 0x1000>; 213 clocks = <&cmu CLK_I2C3>; 214 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 215 #address-cells = <1>; 216 #size-cells = <0>; 217 status = "disabled"; 218 }; 219 220 sps: power-controller@e01b0100 { 221 compatible = "actions,s700-sps"; 222 reg = <0x0 0xe01b0100 0x0 0x100>; 223 #power-domain-cells = <1>; 224 }; 225 226 timer: timer@e024c000 { 227 compatible = "actions,s700-timer"; 228 reg = <0x0 0xe024c000 0x0 0x4000>; 229 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 230 interrupt-names = "timer1"; 231 }; 232 233 pinctrl: pinctrl@e01b0000 { 234 compatible = "actions,s700-pinctrl"; 235 reg = <0x0 0xe01b0000 0x0 0x100>; 236 clocks = <&cmu CLK_GPIO>; 237 gpio-controller; 238 gpio-ranges = <&pinctrl 0 0 136>; 239 #gpio-cells = <2>; 240 interrupt-controller; 241 #interrupt-cells = <2>; 242 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, 243 <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, 244 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, 245 <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 246 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 247 }; 248 249 dma: dma-controller@e0230000 { 250 compatible = "actions,s700-dma"; 251 reg = <0x0 0xe0230000 0x0 0x1000>; 252 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 253 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 254 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 255 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 256 #dma-cells = <1>; 257 dma-channels = <10>; 258 dma-requests = <44>; 259 clocks = <&cmu CLK_DMAC>; 260 power-domains = <&sps S700_PD_DMA>; 261 }; 262 }; 263}; 264