Thomas Gleixner | a636cd6 | 2019-05-19 15:51:34 +0200 | [diff] [blame] | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 2 | /* |
| 3 | * ox820.dtsi - Device tree file for Oxford Semiconductor OX820 SoC |
| 4 | * |
| 5 | * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com> |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 6 | */ |
| 7 | |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 8 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
Neil Armstrong | 0c5987d | 2017-01-04 09:24:30 +0100 | [diff] [blame] | 9 | #include <dt-bindings/clock/oxsemi,ox820.h> |
| 10 | #include <dt-bindings/reset/oxsemi,ox820.h> |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 11 | |
| 12 | / { |
Rob Herring | abe60a3 | 2019-01-09 10:26:14 -0600 | [diff] [blame] | 13 | #address-cells = <1>; |
| 14 | #size-cells = <1>; |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 15 | compatible = "oxsemi,ox820"; |
| 16 | |
| 17 | cpus { |
| 18 | #address-cells = <1>; |
| 19 | #size-cells = <0>; |
| 20 | enable-method = "oxsemi,ox820-smp"; |
| 21 | |
| 22 | cpu@0 { |
| 23 | device_type = "cpu"; |
| 24 | compatible = "arm,arm11mpcore"; |
| 25 | clocks = <&armclk>; |
| 26 | reg = <0>; |
| 27 | }; |
| 28 | |
| 29 | cpu@1 { |
| 30 | device_type = "cpu"; |
| 31 | compatible = "arm,arm11mpcore"; |
| 32 | clocks = <&armclk>; |
| 33 | reg = <1>; |
| 34 | }; |
| 35 | }; |
| 36 | |
| 37 | memory { |
Rob Herring | abe60a3 | 2019-01-09 10:26:14 -0600 | [diff] [blame] | 38 | device_type = "memory"; |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 39 | /* Max 512MB @ 0x60000000 */ |
| 40 | reg = <0x60000000 0x20000000>; |
| 41 | }; |
| 42 | |
| 43 | clocks { |
| 44 | osc: oscillator { |
| 45 | compatible = "fixed-clock"; |
| 46 | #clock-cells = <0>; |
| 47 | clock-frequency = <25000000>; |
| 48 | }; |
| 49 | |
| 50 | gmacclk: gmacclk { |
| 51 | compatible = "fixed-clock"; |
| 52 | #clock-cells = <0>; |
| 53 | clock-frequency = <125000000>; |
| 54 | }; |
| 55 | |
| 56 | sysclk: sysclk { |
| 57 | compatible = "fixed-factor-clock"; |
| 58 | #clock-cells = <0>; |
| 59 | clock-div = <4>; |
| 60 | clock-mult = <1>; |
| 61 | clocks = <&osc>; |
| 62 | }; |
| 63 | |
| 64 | plla: plla { |
| 65 | compatible = "fixed-clock"; |
| 66 | #clock-cells = <0>; |
| 67 | clock-frequency = <850000000>; |
| 68 | }; |
| 69 | |
| 70 | armclk: armclk { |
| 71 | compatible = "fixed-factor-clock"; |
| 72 | #clock-cells = <0>; |
| 73 | clock-div = <2>; |
| 74 | clock-mult = <1>; |
| 75 | clocks = <&plla>; |
| 76 | }; |
| 77 | }; |
| 78 | |
| 79 | soc { |
| 80 | #address-cells = <1>; |
| 81 | #size-cells = <1>; |
| 82 | compatible = "simple-bus"; |
| 83 | ranges; |
| 84 | interrupt-parent = <&gic>; |
| 85 | |
| 86 | nandc: nand-controller@41000000 { |
| 87 | compatible = "oxsemi,ox820-nand"; |
| 88 | reg = <0x41000000 0x100000>; |
Neil Armstrong | 0c5987d | 2017-01-04 09:24:30 +0100 | [diff] [blame] | 89 | clocks = <&stdclk CLK_820_NAND>; |
| 90 | resets = <&reset RESET_NAND>; |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 91 | #address-cells = <1>; |
| 92 | #size-cells = <0>; |
| 93 | status = "disabled"; |
| 94 | }; |
| 95 | |
| 96 | etha: ethernet@40400000 { |
| 97 | compatible = "oxsemi,ox820-dwmac", "snps,dwmac"; |
| 98 | reg = <0x40400000 0x2000>; |
| 99 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, |
| 100 | <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; |
| 101 | interrupt-names = "macirq", "eth_wake_irq"; |
| 102 | mac-address = [000000000000]; /* Filled in by U-Boot */ |
| 103 | phy-mode = "rgmii"; |
| 104 | |
Neil Armstrong | 0c5987d | 2017-01-04 09:24:30 +0100 | [diff] [blame] | 105 | clocks = <&stdclk CLK_820_ETHA>, <&gmacclk>; |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 106 | clock-names = "gmac", "stmmaceth"; |
Neil Armstrong | 0c5987d | 2017-01-04 09:24:30 +0100 | [diff] [blame] | 107 | resets = <&reset RESET_MAC>; |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 108 | |
| 109 | /* Regmap for sys registers */ |
| 110 | oxsemi,sys-ctrl = <&sys>; |
| 111 | |
| 112 | status = "disabled"; |
| 113 | }; |
| 114 | |
| 115 | apb-bridge@44000000 { |
| 116 | #address-cells = <1>; |
| 117 | #size-cells = <1>; |
| 118 | compatible = "simple-bus"; |
| 119 | ranges = <0 0x44000000 0x1000000>; |
| 120 | |
| 121 | pinctrl: pinctrl { |
| 122 | compatible = "oxsemi,ox820-pinctrl"; |
| 123 | |
| 124 | /* Regmap for sys registers */ |
| 125 | oxsemi,sys-ctrl = <&sys>; |
| 126 | |
| 127 | pinctrl_uart0: uart0 { |
| 128 | uart0 { |
| 129 | pins = "gpio30", "gpio31"; |
| 130 | function = "fct5"; |
| 131 | }; |
| 132 | }; |
| 133 | |
| 134 | pinctrl_uart0_modem: uart0_modem { |
| 135 | uart0_modem_a { |
| 136 | pins = "gpio24", "gpio24", "gpio26", "gpio27"; |
| 137 | function = "fct4"; |
| 138 | }; |
| 139 | uart0_modem_b { |
| 140 | pins = "gpio28", "gpio29"; |
| 141 | function = "fct5"; |
| 142 | }; |
| 143 | }; |
| 144 | |
| 145 | pinctrl_uart1: uart1 { |
| 146 | uart1 { |
| 147 | pins = "gpio7", "gpio8"; |
| 148 | function = "fct4"; |
| 149 | }; |
| 150 | }; |
| 151 | |
| 152 | pinctrl_uart1_modem: uart1_modem { |
| 153 | uart1_modem { |
| 154 | pins = "gpio5", "gpio6", "gpio40", "gpio41", "gpio42", "gpio43"; |
| 155 | function = "fct4"; |
| 156 | }; |
| 157 | }; |
| 158 | |
| 159 | pinctrl_etha_mdio: etha_mdio { |
| 160 | etha_mdio { |
| 161 | pins = "gpio3", "gpio4"; |
| 162 | function = "fct1"; |
| 163 | }; |
| 164 | }; |
| 165 | |
| 166 | pinctrl_nand: nand { |
| 167 | nand { |
| 168 | pins = "gpio12", "gpio13", "gpio14", "gpio15", |
| 169 | "gpio16", "gpio17", "gpio18", "gpio19", |
| 170 | "gpio20", "gpio21", "gpio22", "gpio23", |
| 171 | "gpio24"; |
| 172 | function = "fct1"; |
| 173 | }; |
| 174 | }; |
| 175 | }; |
| 176 | |
Rob Herring | 8dccafa | 2017-10-13 12:54:51 -0500 | [diff] [blame] | 177 | gpio0: gpio@0 { |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 178 | compatible = "oxsemi,ox820-gpio"; |
| 179 | reg = <0x000000 0x100000>; |
| 180 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; |
| 181 | #gpio-cells = <2>; |
| 182 | gpio-controller; |
| 183 | interrupt-controller; |
| 184 | #interrupt-cells = <2>; |
| 185 | ngpios = <32>; |
| 186 | oxsemi,gpio-bank = <0>; |
| 187 | gpio-ranges = <&pinctrl 0 0 32>; |
| 188 | }; |
| 189 | |
| 190 | gpio1: gpio@100000 { |
| 191 | compatible = "oxsemi,ox820-gpio"; |
| 192 | reg = <0x100000 0x100000>; |
| 193 | interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; |
| 194 | #gpio-cells = <2>; |
| 195 | gpio-controller; |
| 196 | interrupt-controller; |
| 197 | #interrupt-cells = <2>; |
| 198 | ngpios = <18>; |
| 199 | oxsemi,gpio-bank = <1>; |
| 200 | gpio-ranges = <&pinctrl 0 32 18>; |
| 201 | }; |
| 202 | |
| 203 | uart0: serial@200000 { |
| 204 | compatible = "ns16550a"; |
| 205 | reg = <0x200000 0x100000>; |
| 206 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; |
| 207 | reg-shift = <0>; |
| 208 | fifo-size = <16>; |
| 209 | reg-io-width = <1>; |
| 210 | current-speed = <115200>; |
| 211 | no-loopback-test; |
| 212 | status = "disabled"; |
| 213 | clocks = <&sysclk>; |
Neil Armstrong | 0c5987d | 2017-01-04 09:24:30 +0100 | [diff] [blame] | 214 | resets = <&reset RESET_UART1>; |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 215 | }; |
| 216 | |
| 217 | uart1: serial@300000 { |
| 218 | compatible = "ns16550a"; |
| 219 | reg = <0x200000 0x100000>; |
| 220 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; |
| 221 | reg-shift = <0>; |
| 222 | fifo-size = <16>; |
| 223 | reg-io-width = <1>; |
| 224 | current-speed = <115200>; |
| 225 | no-loopback-test; |
| 226 | status = "disabled"; |
| 227 | clocks = <&sysclk>; |
Neil Armstrong | 0c5987d | 2017-01-04 09:24:30 +0100 | [diff] [blame] | 228 | resets = <&reset RESET_UART2>; |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 229 | }; |
| 230 | |
| 231 | rps@400000 { |
| 232 | #address-cells = <1>; |
| 233 | #size-cells = <1>; |
| 234 | compatible = "simple-bus"; |
| 235 | ranges = <0 0x400000 0x100000>; |
| 236 | |
| 237 | intc: interrupt-controller@0 { |
| 238 | compatible = "oxsemi,ox820-rps-irq", "oxsemi,ox810se-rps-irq"; |
| 239 | interrupt-controller; |
| 240 | reg = <0 0x200>; |
| 241 | interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; |
| 242 | #interrupt-cells = <1>; |
Sungbo Eo | deeabb4 | 2020-03-21 23:36:53 +0900 | [diff] [blame] | 243 | valid-mask = <0xffffffff>; |
| 244 | clear-mask = <0xffffffff>; |
Neil Armstrong | 38d4a53 | 2016-09-09 12:24:38 +0200 | [diff] [blame] | 245 | }; |
| 246 | |
| 247 | timer0: timer@200 { |
| 248 | compatible = "oxsemi,ox820-rps-timer"; |
| 249 | reg = <0x200 0x40>; |
| 250 | clocks = <&sysclk>; |
| 251 | interrupt-parent = <&intc>; |
| 252 | interrupts = <4>; |
| 253 | }; |
| 254 | }; |
| 255 | |
| 256 | sys: sys-ctrl@e00000 { |
| 257 | compatible = "oxsemi,ox820-sys-ctrl", "syscon", "simple-mfd"; |
| 258 | reg = <0xe00000 0x200000>; |
| 259 | |
| 260 | reset: reset-controller { |
| 261 | compatible = "oxsemi,ox820-reset", "oxsemi,ox810se-reset"; |
| 262 | #reset-cells = <1>; |
| 263 | }; |
| 264 | |
| 265 | stdclk: stdclk { |
| 266 | compatible = "oxsemi,ox820-stdclk", "oxsemi,ox810se-stdclk"; |
| 267 | #clock-cells = <1>; |
| 268 | }; |
| 269 | }; |
| 270 | }; |
| 271 | |
| 272 | apb-bridge@47000000 { |
| 273 | #address-cells = <1>; |
| 274 | #size-cells = <1>; |
| 275 | compatible = "simple-bus"; |
| 276 | ranges = <0 0x47000000 0x1000000>; |
| 277 | |
| 278 | scu: scu@0 { |
| 279 | compatible = "arm,arm11mp-scu"; |
| 280 | reg = <0x0 0x100>; |
| 281 | }; |
| 282 | |
| 283 | local-timer@600 { |
| 284 | compatible = "arm,arm11mp-twd-timer"; |
| 285 | reg = <0x600 0x20>; |
| 286 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3)|IRQ_TYPE_LEVEL_HIGH)>; |
| 287 | clocks = <&armclk>; |
| 288 | }; |
| 289 | |
| 290 | gic: gic@1000 { |
| 291 | compatible = "arm,arm11mp-gic"; |
| 292 | interrupt-controller; |
| 293 | #interrupt-cells = <3>; |
| 294 | reg = <0x1000 0x1000>, |
| 295 | <0x100 0x500>; |
| 296 | }; |
| 297 | }; |
| 298 | }; |
| 299 | }; |