1/* 2 * Device Tree Source for UniPhier LD11 SoC 3 * 4 * Copyright (C) 2016 Socionext Inc. 5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 * 7 * This file is dual-licensed: you can use it either under the terms 8 * of the GPL or the X11 license, at your option. Note that this dual 9 * licensing only applies to this file, and not this project as a 10 * whole. 11 * 12 * a) This file is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU General Public License as 14 * published by the Free Software Foundation; either version 2 of the 15 * License, or (at your option) any later version. 16 * 17 * This file is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * GNU General Public License for more details. 21 * 22 * Or, alternatively, 23 * 24 * b) Permission is hereby granted, free of charge, to any person 25 * obtaining a copy of this software and associated documentation 26 * files (the "Software"), to deal in the Software without 27 * restriction, including without limitation the rights to use, 28 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * sell copies of the Software, and to permit persons to whom the 30 * Software is furnished to do so, subject to the following 31 * conditions: 32 * 33 * The above copyright notice and this permission notice shall be 34 * included in all copies or substantial portions of the Software. 35 * 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * OTHER DEALINGS IN THE SOFTWARE. 44 */ 45 46/memreserve/ 0x80000000 0x00080000; 47 48/ { 49 compatible = "socionext,uniphier-ld11"; 50 #address-cells = <2>; 51 #size-cells = <2>; 52 interrupt-parent = <&gic>; 53 54 cpus { 55 #address-cells = <2>; 56 #size-cells = <0>; 57 58 cpu-map { 59 cluster0 { 60 core0 { 61 cpu = <&cpu0>; 62 }; 63 core1 { 64 cpu = <&cpu1>; 65 }; 66 }; 67 }; 68 69 cpu0: cpu@0 { 70 device_type = "cpu"; 71 compatible = "arm,cortex-a53", "arm,armv8"; 72 reg = <0 0x000>; 73 clocks = <&sys_clk 33>; 74 enable-method = "psci"; 75 operating-points-v2 = <&cluster0_opp>; 76 }; 77 78 cpu1: cpu@1 { 79 device_type = "cpu"; 80 compatible = "arm,cortex-a53", "arm,armv8"; 81 reg = <0 0x001>; 82 clocks = <&sys_clk 33>; 83 enable-method = "psci"; 84 operating-points-v2 = <&cluster0_opp>; 85 }; 86 }; 87 88 cluster0_opp: opp_table { 89 compatible = "operating-points-v2"; 90 opp-shared; 91 92 opp-245000000 { 93 opp-hz = /bits/ 64 <245000000>; 94 clock-latency-ns = <300>; 95 }; 96 opp-250000000 { 97 opp-hz = /bits/ 64 <250000000>; 98 clock-latency-ns = <300>; 99 }; 100 opp-490000000 { 101 opp-hz = /bits/ 64 <490000000>; 102 clock-latency-ns = <300>; 103 }; 104 opp-500000000 { 105 opp-hz = /bits/ 64 <500000000>; 106 clock-latency-ns = <300>; 107 }; 108 opp-653334000 { 109 opp-hz = /bits/ 64 <653334000>; 110 clock-latency-ns = <300>; 111 }; 112 opp-666667000 { 113 opp-hz = /bits/ 64 <666667000>; 114 clock-latency-ns = <300>; 115 }; 116 opp-980000000 { 117 opp-hz = /bits/ 64 <980000000>; 118 clock-latency-ns = <300>; 119 }; 120 }; 121 122 psci { 123 compatible = "arm,psci-1.0"; 124 method = "smc"; 125 }; 126 127 clocks { 128 refclk: ref { 129 compatible = "fixed-clock"; 130 #clock-cells = <0>; 131 clock-frequency = <25000000>; 132 }; 133 }; 134 135 timer { 136 compatible = "arm,armv8-timer"; 137 interrupts = <1 13 4>, 138 <1 14 4>, 139 <1 11 4>, 140 <1 10 4>; 141 }; 142 143 soc@0 { 144 compatible = "simple-bus"; 145 #address-cells = <1>; 146 #size-cells = <1>; 147 ranges = <0 0 0 0xffffffff>; 148 u-boot,dm-pre-reloc; 149 150 serial0: serial@54006800 { 151 compatible = "socionext,uniphier-uart"; 152 status = "disabled"; 153 reg = <0x54006800 0x40>; 154 interrupts = <0 33 4>; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&pinctrl_uart0>; 157 clocks = <&peri_clk 0>; 158 clock-frequency = <58820000>; 159 }; 160 161 serial1: serial@54006900 { 162 compatible = "socionext,uniphier-uart"; 163 status = "disabled"; 164 reg = <0x54006900 0x40>; 165 interrupts = <0 35 4>; 166 pinctrl-names = "default"; 167 pinctrl-0 = <&pinctrl_uart1>; 168 clocks = <&peri_clk 1>; 169 clock-frequency = <58820000>; 170 }; 171 172 serial2: serial@54006a00 { 173 compatible = "socionext,uniphier-uart"; 174 status = "disabled"; 175 reg = <0x54006a00 0x40>; 176 interrupts = <0 37 4>; 177 pinctrl-names = "default"; 178 pinctrl-0 = <&pinctrl_uart2>; 179 clocks = <&peri_clk 2>; 180 clock-frequency = <58820000>; 181 }; 182 183 serial3: serial@54006b00 { 184 compatible = "socionext,uniphier-uart"; 185 status = "disabled"; 186 reg = <0x54006b00 0x40>; 187 interrupts = <0 177 4>; 188 pinctrl-names = "default"; 189 pinctrl-0 = <&pinctrl_uart3>; 190 clocks = <&peri_clk 3>; 191 clock-frequency = <58820000>; 192 }; 193 194 i2c0: i2c@58780000 { 195 compatible = "socionext,uniphier-fi2c"; 196 status = "disabled"; 197 reg = <0x58780000 0x80>; 198 #address-cells = <1>; 199 #size-cells = <0>; 200 interrupts = <0 41 4>; 201 pinctrl-names = "default"; 202 pinctrl-0 = <&pinctrl_i2c0>; 203 clocks = <&peri_clk 4>; 204 clock-frequency = <100000>; 205 }; 206 207 i2c1: i2c@58781000 { 208 compatible = "socionext,uniphier-fi2c"; 209 status = "disabled"; 210 reg = <0x58781000 0x80>; 211 #address-cells = <1>; 212 #size-cells = <0>; 213 interrupts = <0 42 4>; 214 pinctrl-names = "default"; 215 pinctrl-0 = <&pinctrl_i2c1>; 216 clocks = <&peri_clk 5>; 217 clock-frequency = <100000>; 218 }; 219 220 i2c2: i2c@58782000 { 221 compatible = "socionext,uniphier-fi2c"; 222 reg = <0x58782000 0x80>; 223 #address-cells = <1>; 224 #size-cells = <0>; 225 interrupts = <0 43 4>; 226 clocks = <&peri_clk 6>; 227 clock-frequency = <400000>; 228 }; 229 230 i2c3: i2c@58783000 { 231 compatible = "socionext,uniphier-fi2c"; 232 status = "disabled"; 233 reg = <0x58783000 0x80>; 234 #address-cells = <1>; 235 #size-cells = <0>; 236 interrupts = <0 44 4>; 237 pinctrl-names = "default"; 238 pinctrl-0 = <&pinctrl_i2c3>; 239 clocks = <&peri_clk 7>; 240 clock-frequency = <100000>; 241 }; 242 243 i2c4: i2c@58784000 { 244 compatible = "socionext,uniphier-fi2c"; 245 status = "disabled"; 246 reg = <0x58784000 0x80>; 247 #address-cells = <1>; 248 #size-cells = <0>; 249 interrupts = <0 45 4>; 250 pinctrl-names = "default"; 251 pinctrl-0 = <&pinctrl_i2c4>; 252 clocks = <&peri_clk 8>; 253 clock-frequency = <100000>; 254 }; 255 256 i2c5: i2c@58785000 { 257 compatible = "socionext,uniphier-fi2c"; 258 reg = <0x58785000 0x80>; 259 #address-cells = <1>; 260 #size-cells = <0>; 261 interrupts = <0 25 4>; 262 clocks = <&peri_clk 9>; 263 clock-frequency = <400000>; 264 }; 265 266 system_bus: system-bus@58c00000 { 267 compatible = "socionext,uniphier-system-bus"; 268 status = "disabled"; 269 reg = <0x58c00000 0x400>; 270 #address-cells = <2>; 271 #size-cells = <1>; 272 pinctrl-names = "default"; 273 pinctrl-0 = <&pinctrl_system_bus>; 274 }; 275 276 smpctrl@59800000 { 277 compatible = "socionext,uniphier-smpctrl"; 278 reg = <0x59801000 0x400>; 279 }; 280 281 sdctrl@59810000 { 282 compatible = "socionext,uniphier-ld11-sdctrl", 283 "simple-mfd", "syscon"; 284 reg = <0x59810000 0x400>; 285 286 sd_rst: reset { 287 compatible = "socionext,uniphier-ld11-sd-reset"; 288 #reset-cells = <1>; 289 }; 290 }; 291 292 perictrl@59820000 { 293 compatible = "socionext,uniphier-ld11-perictrl", 294 "simple-mfd", "syscon"; 295 reg = <0x59820000 0x200>; 296 297 peri_clk: clock { 298 compatible = "socionext,uniphier-ld11-peri-clock"; 299 #clock-cells = <1>; 300 }; 301 302 peri_rst: reset { 303 compatible = "socionext,uniphier-ld11-peri-reset"; 304 #reset-cells = <1>; 305 }; 306 }; 307 308 emmc: sdhc@5a000000 { 309 compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc"; 310 reg = <0x5a000000 0x400>; 311 interrupts = <0 78 4>; 312 pinctrl-names = "default"; 313 pinctrl-0 = <&pinctrl_emmc_1v8>; 314 clocks = <&sys_clk 4>; 315 bus-width = <8>; 316 mmc-ddr-1_8v; 317 mmc-hs200-1_8v; 318 cdns,phy-input-delay-legacy = <4>; 319 cdns,phy-input-delay-mmc-highspeed = <2>; 320 cdns,phy-input-delay-mmc-ddr = <3>; 321 cdns,phy-dll-delay-sdclk = <21>; 322 cdns,phy-dll-delay-sdclk-hsmmc = <21>; 323 }; 324 325 usb0: usb@5a800100 { 326 compatible = "socionext,uniphier-ehci", "generic-ehci"; 327 status = "disabled"; 328 reg = <0x5a800100 0x100>; 329 interrupts = <0 243 4>; 330 pinctrl-names = "default"; 331 pinctrl-0 = <&pinctrl_usb0>; 332 clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>; 333 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>, 334 <&mio_rst 12>; 335 }; 336 337 usb1: usb@5a810100 { 338 compatible = "socionext,uniphier-ehci", "generic-ehci"; 339 status = "disabled"; 340 reg = <0x5a810100 0x100>; 341 interrupts = <0 244 4>; 342 pinctrl-names = "default"; 343 pinctrl-0 = <&pinctrl_usb1>; 344 clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>; 345 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>, 346 <&mio_rst 13>; 347 }; 348 349 usb2: usb@5a820100 { 350 compatible = "socionext,uniphier-ehci", "generic-ehci"; 351 status = "disabled"; 352 reg = <0x5a820100 0x100>; 353 interrupts = <0 245 4>; 354 pinctrl-names = "default"; 355 pinctrl-0 = <&pinctrl_usb2>; 356 clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>; 357 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>, 358 <&mio_rst 14>; 359 }; 360 361 mioctrl@5b3e0000 { 362 compatible = "socionext,uniphier-ld11-mioctrl", 363 "simple-mfd", "syscon"; 364 reg = <0x5b3e0000 0x800>; 365 366 mio_clk: clock { 367 compatible = "socionext,uniphier-ld11-mio-clock"; 368 #clock-cells = <1>; 369 }; 370 371 mio_rst: reset { 372 compatible = "socionext,uniphier-ld11-mio-reset"; 373 #reset-cells = <1>; 374 resets = <&sys_rst 7>; 375 }; 376 }; 377 378 soc-glue@5f800000 { 379 compatible = "socionext,uniphier-ld11-soc-glue", 380 "simple-mfd", "syscon"; 381 reg = <0x5f800000 0x2000>; 382 u-boot,dm-pre-reloc; 383 384 pinctrl: pinctrl { 385 compatible = "socionext,uniphier-ld11-pinctrl"; 386 u-boot,dm-pre-reloc; 387 }; 388 }; 389 390 aidet@5fc20000 { 391 compatible = "simple-mfd", "syscon"; 392 reg = <0x5fc20000 0x200>; 393 }; 394 395 gic: interrupt-controller@5fe00000 { 396 compatible = "arm,gic-v3"; 397 reg = <0x5fe00000 0x10000>, /* GICD */ 398 <0x5fe40000 0x80000>; /* GICR */ 399 interrupt-controller; 400 #interrupt-cells = <3>; 401 interrupts = <1 9 4>; 402 }; 403 404 sysctrl@61840000 { 405 compatible = "socionext,uniphier-ld11-sysctrl", 406 "simple-mfd", "syscon"; 407 reg = <0x61840000 0x10000>; 408 409 sys_clk: clock { 410 compatible = "socionext,uniphier-ld11-clock"; 411 #clock-cells = <1>; 412 }; 413 414 sys_rst: reset { 415 compatible = "socionext,uniphier-ld11-reset"; 416 #reset-cells = <1>; 417 }; 418 }; 419 420 nand: nand@68000000 { 421 compatible = "socionext,uniphier-denali-nand-v5b"; 422 status = "disabled"; 423 reg-names = "nand_data", "denali_reg"; 424 reg = <0x68000000 0x20>, <0x68100000 0x1000>; 425 interrupts = <0 65 4>; 426 pinctrl-names = "default"; 427 pinctrl-0 = <&pinctrl_nand>; 428 clocks = <&sys_clk 2>; 429 nand-ecc-strength = <8>; 430 }; 431 }; 432}; 433 434/include/ "uniphier-pinctrl.dtsi" 435