ox810se.dtsi (7335B)
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * ox810se.dtsi - Device tree file for Oxford Semiconductor OX810SE SoC 4 * 5 * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com> 6 */ 7 8#include <dt-bindings/clock/oxsemi,ox810se.h> 9#include <dt-bindings/reset/oxsemi,ox810se.h> 10 11/ { 12 #address-cells = <1>; 13 #size-cells = <1>; 14 compatible = "oxsemi,ox810se"; 15 16 cpus { 17 #address-cells = <0>; 18 #size-cells = <0>; 19 20 cpu { 21 device_type = "cpu"; 22 compatible = "arm,arm926ej-s"; 23 clocks = <&armclk>; 24 }; 25 }; 26 27 memory { 28 device_type = "memory"; 29 /* Max 256MB @ 0x48000000 */ 30 reg = <0x48000000 0x10000000>; 31 }; 32 33 clocks { 34 osc: oscillator { 35 compatible = "fixed-clock"; 36 #clock-cells = <0>; 37 clock-frequency = <25000000>; 38 }; 39 40 gmacclk: gmacclk { 41 compatible = "fixed-clock"; 42 #clock-cells = <0>; 43 clock-frequency = <125000000>; 44 }; 45 46 rpsclk: rpsclk { 47 compatible = "fixed-factor-clock"; 48 #clock-cells = <0>; 49 clock-div = <1>; 50 clock-mult = <1>; 51 clocks = <&osc>; 52 }; 53 54 pll400: pll400 { 55 compatible = "fixed-clock"; 56 #clock-cells = <0>; 57 clock-frequency = <733333333>; 58 }; 59 60 sysclk: sysclk { 61 compatible = "fixed-factor-clock"; 62 #clock-cells = <0>; 63 clock-div = <4>; 64 clock-mult = <1>; 65 clocks = <&pll400>; 66 }; 67 68 armclk: armclk { 69 compatible = "fixed-factor-clock"; 70 #clock-cells = <0>; 71 clock-div = <2>; 72 clock-mult = <1>; 73 clocks = <&pll400>; 74 }; 75 }; 76 77 soc { 78 #address-cells = <1>; 79 #size-cells = <1>; 80 compatible = "simple-bus"; 81 ranges; 82 interrupt-parent = <&intc>; 83 84 etha: ethernet@40400000 { 85 compatible = "oxsemi,ox810se-dwmac", "snps,dwmac"; 86 reg = <0x40400000 0x2000>; 87 interrupts = <8>; 88 interrupt-names = "macirq"; 89 mac-address = [000000000000]; /* Filled in by U-Boot */ 90 phy-mode = "rgmii"; 91 92 clocks = <&stdclk 6>, <&gmacclk>; 93 clock-names = "gmac", "stmmaceth"; 94 resets = <&reset 6>; 95 96 /* Regmap for sys registers */ 97 oxsemi,sys-ctrl = <&sys>; 98 99 status = "disabled"; 100 }; 101 102 apb-bridge@44000000 { 103 #address-cells = <1>; 104 #size-cells = <1>; 105 compatible = "simple-bus"; 106 ranges = <0 0x44000000 0x1000000>; 107 108 pinctrl: pinctrl { 109 compatible = "oxsemi,ox810se-pinctrl"; 110 111 /* Regmap for sys registers */ 112 oxsemi,sys-ctrl = <&sys>; 113 114 pinctrl_uart0: uart0 { 115 uart0a { 116 pins = "gpio31"; 117 function = "fct3"; 118 }; 119 uart0b { 120 pins = "gpio32"; 121 function = "fct3"; 122 }; 123 }; 124 125 pinctrl_uart0_modem: uart0_modem { 126 uart0c { 127 pins = "gpio27"; 128 function = "fct3"; 129 }; 130 uart0d { 131 pins = "gpio28"; 132 function = "fct3"; 133 }; 134 uart0e { 135 pins = "gpio29"; 136 function = "fct3"; 137 }; 138 uart0f { 139 pins = "gpio30"; 140 function = "fct3"; 141 }; 142 uart0g { 143 pins = "gpio33"; 144 function = "fct3"; 145 }; 146 uart0h { 147 pins = "gpio34"; 148 function = "fct3"; 149 }; 150 }; 151 152 pinctrl_uart1: uart1 { 153 uart1a { 154 pins = "gpio20"; 155 function = "fct3"; 156 }; 157 uart1b { 158 pins = "gpio22"; 159 function = "fct3"; 160 }; 161 }; 162 163 pinctrl_uart1_modem: uart1_modem { 164 uart1c { 165 pins = "gpio8"; 166 function = "fct3"; 167 }; 168 uart1d { 169 pins = "gpio9"; 170 function = "fct3"; 171 }; 172 uart1e { 173 pins = "gpio23"; 174 function = "fct3"; 175 }; 176 uart1f { 177 pins = "gpio24"; 178 function = "fct3"; 179 }; 180 uart1g { 181 pins = "gpio25"; 182 function = "fct3"; 183 }; 184 uart1h { 185 pins = "gpio26"; 186 function = "fct3"; 187 }; 188 }; 189 190 pinctrl_uart2: uart2 { 191 uart2a { 192 pins = "gpio6"; 193 function = "fct3"; 194 }; 195 uart2b { 196 pins = "gpio7"; 197 function = "fct3"; 198 }; 199 }; 200 201 pinctrl_uart2_modem: uart2_modem { 202 uart2c { 203 pins = "gpio0"; 204 function = "fct3"; 205 }; 206 uart2d { 207 pins = "gpio1"; 208 function = "fct3"; 209 }; 210 uart2e { 211 pins = "gpio2"; 212 function = "fct3"; 213 }; 214 uart2f { 215 pins = "gpio3"; 216 function = "fct3"; 217 }; 218 uart2g { 219 pins = "gpio4"; 220 function = "fct3"; 221 }; 222 uart2h { 223 pins = "gpio5"; 224 function = "fct3"; 225 }; 226 }; 227 }; 228 229 gpio0: gpio@0 { 230 compatible = "oxsemi,ox810se-gpio"; 231 reg = <0x000000 0x100000>; 232 interrupts = <21>; 233 #gpio-cells = <2>; 234 gpio-controller; 235 interrupt-controller; 236 #interrupt-cells = <2>; 237 ngpios = <32>; 238 oxsemi,gpio-bank = <0>; 239 gpio-ranges = <&pinctrl 0 0 32>; 240 }; 241 242 gpio1: gpio@100000 { 243 compatible = "oxsemi,ox810se-gpio"; 244 reg = <0x100000 0x100000>; 245 interrupts = <22>; 246 #gpio-cells = <2>; 247 gpio-controller; 248 interrupt-controller; 249 #interrupt-cells = <2>; 250 ngpios = <3>; 251 oxsemi,gpio-bank = <1>; 252 gpio-ranges = <&pinctrl 0 32 3>; 253 }; 254 255 uart0: serial@200000 { 256 compatible = "ns16550a"; 257 reg = <0x200000 0x100000>; 258 clocks = <&sysclk>; 259 interrupts = <23>; 260 reg-shift = <0>; 261 fifo-size = <16>; 262 reg-io-width = <1>; 263 current-speed = <115200>; 264 no-loopback-test; 265 status = "disabled"; 266 resets = <&reset RESET_UART1>; 267 }; 268 269 uart1: serial@300000 { 270 compatible = "ns16550a"; 271 reg = <0x300000 0x100000>; 272 clocks = <&sysclk>; 273 interrupts = <24>; 274 reg-shift = <0>; 275 fifo-size = <16>; 276 reg-io-width = <1>; 277 current-speed = <115200>; 278 no-loopback-test; 279 status = "disabled"; 280 resets = <&reset RESET_UART2>; 281 }; 282 283 uart2: serial@900000 { 284 compatible = "ns16550a"; 285 reg = <0x900000 0x100000>; 286 clocks = <&sysclk>; 287 interrupts = <29>; 288 reg-shift = <0>; 289 fifo-size = <16>; 290 reg-io-width = <1>; 291 current-speed = <115200>; 292 no-loopback-test; 293 status = "disabled"; 294 resets = <&reset RESET_UART3>; 295 }; 296 297 uart3: serial@a00000 { 298 compatible = "ns16550a"; 299 reg = <0xa00000 0x100000>; 300 clocks = <&sysclk>; 301 interrupts = <30>; 302 reg-shift = <0>; 303 fifo-size = <16>; 304 reg-io-width = <1>; 305 current-speed = <115200>; 306 no-loopback-test; 307 status = "disabled"; 308 resets = <&reset RESET_UART4>; 309 }; 310 }; 311 312 apb-bridge@45000000 { 313 #address-cells = <1>; 314 #size-cells = <1>; 315 compatible = "simple-bus"; 316 ranges = <0 0x45000000 0x1000000>; 317 318 sys: sys-ctrl@0 { 319 compatible = "oxsemi,ox810se-sys-ctrl", "syscon", "simple-mfd"; 320 reg = <0x000000 0x100000>; 321 322 reset: reset-controller { 323 compatible = "oxsemi,ox810se-reset"; 324 #reset-cells = <1>; 325 }; 326 327 stdclk: stdclk { 328 compatible = "oxsemi,ox810se-stdclk"; 329 #clock-cells = <1>; 330 }; 331 }; 332 333 rps@300000 { 334 #address-cells = <1>; 335 #size-cells = <1>; 336 compatible = "simple-bus"; 337 ranges = <0 0x300000 0x100000>; 338 339 intc: interrupt-controller@0 { 340 compatible = "oxsemi,ox810se-rps-irq"; 341 interrupt-controller; 342 reg = <0 0x200>; 343 #interrupt-cells = <1>; 344 valid-mask = <0xffffffff>; 345 clear-mask = <0xffffffff>; 346 }; 347 348 timer0: timer@200 { 349 compatible = "oxsemi,ox810se-rps-timer"; 350 reg = <0x200 0x40>; 351 clocks = <&rpsclk>; 352 interrupts = <4 5>; 353 }; 354 }; 355 }; 356 }; 357};