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