Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM 64-bit DT updates from Olof Johansson:
"This is the first release where we split up the 64-bit contributions a
bit more, and in particular we are having a separate DT branch for
them.

Contents:

- New devices added to Broadcom NorthStar2
- Misc fixes for Exynos7 boards
- QCOM updates for MSM8916
- Rockchip tweaks for rk3368 SoC and eval board
- A series of fixes for APM X-Gene v1 and v2
- Renesas R8A7795 CPU/PSCI additions
- Marvell Berlin4CT PSCI, cpuidle, watchdog portions
- Freescale LS1043a SoC and dev board support

+ some treewide or other misc changes"

* tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (104 commits)
dts/ls2080a: Update DTSI to add support of SP805 WDT
Documentation: DT: Add entry for ARM SP805-WDT
arm64: dts: X-Gene v2: I2C1 clock is always on
arm64: dts: X-Gene v1: I2C0 clock is always on
arm64: dts: Fix to use standard DT node names for X-Gene 1 and X-Gene 2 platforms
arm64: dts: hikey: add label properties to UARTs
arm64: dts: apq8016-sbc: add label properties for UART, I2C, and SPI
arm64: dts: apq8016-sbc: enable UART0 on LS connector
arm64: dts: juno: Add idle-states to device tree
arm64: dts: Added syscon-reboot node for FSL's LS2080A SoC
arm64: dts: add LS1043a-RDB board support
arm64: dts: add Freescale LS1043a SoC support
Documentation: DT: Add entry for Freescale LS1043a-RDB board
arm64: dts: uniphier: add PH1-LD10 SoC/board support
arm64: renesas: r8a7795: fix SATA clock assignment
arm64: dts: salvator-x: Enable SATA controller
arm64: dts: r8a7795: Add SATA controller node
arm64: renesas: r8a7795: add internal delay for i2c IPs
arm64: renesas: salvator-x: Add board part number to DT bindings
arm64: dts: r8a7795: Add pmu device nodes
...

+4215 -26
+4
Documentation/devicetree/bindings/arm/fsl.txt
··· 131 131 Freescale ARMv8 based Layerscape SoC family Device Tree Bindings 132 132 ---------------------------------------------------------------- 133 133 134 + LS1043A ARMv8 based RDB Board 135 + Required root node properties: 136 + - compatible = "fsl,ls1043a-rdb", "fsl,ls1043a"; 137 + 134 138 LS2080A ARMv8 based Simulator model 135 139 Required root node properties: 136 140 - compatible = "fsl,ls2080a-simu", "fsl,ls2080a";
+4
Documentation/devicetree/bindings/arm/rockchip.txt
··· 87 87 "google,veyron-speedy-rev3", "google,veyron-speedy-rev2", 88 88 "google,veyron-speedy", "google,veyron", "rockchip,rk3288"; 89 89 90 + - Rockchip RK3368 evb: 91 + Required root node properties: 92 + - compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368"; 93 + 90 94 - Rockchip R88 board: 91 95 Required root node properties: 92 96 - compatible = "rockchip,r88", "rockchip,rk3368";
+4
Documentation/devicetree/bindings/arm/shmobile.txt
··· 27 27 compatible = "renesas,r8a7793" 28 28 - R-Car E2 (R8A77940) 29 29 compatible = "renesas,r8a7794" 30 + - R-Car H3 (R8A77950) 31 + compatible = "renesas,r8a7795" 30 32 31 33 32 34 Boards: ··· 59 57 compatible = "renesas,marzen", "renesas,r8a7779" 60 58 - Porter (M2-LCDP) 61 59 compatible = "renesas,porter", "renesas,r8a7791" 60 + - Salvator-X (RTP0RC7795SIPB0010S) 61 + compatible = "renesas,salvator-x", "renesas,r8a7795"; 62 62 - SILK (RTP0RC7794LCB00011S) 63 63 compatible = "renesas,silk", "renesas,r8a7794"
+31
Documentation/devicetree/bindings/watchdog/sp805-wdt.txt
··· 1 + * ARM SP805 Watchdog Timer (WDT) Controller 2 + 3 + SP805 WDT is a ARM Primecell Peripheral and has a standard-id register that 4 + can be used to identify the peripheral type, vendor, and revision. 5 + This value can be used for driver matching. 6 + 7 + As SP805 WDT is a primecell IP, it follows the base bindings specified in 8 + 'arm/primecell.txt' 9 + 10 + Required properties: 11 + - compatible : Should be "arm,sp805-wdt", "arm,primecell" 12 + - reg : Base address and size of the watchdog timer registers. 13 + - clocks : From common clock binding. 14 + First clock is PCLK and the second is WDOGCLK. 15 + WDOGCLK can be equal to or be a sub-multiple of the PCLK frequency. 16 + - clock-names : From common clock binding. 17 + Shall be "apb_pclk" for first clock and "wdog_clk" for the 18 + second one. 19 + 20 + Optional properties: 21 + - interrupts : Should specify WDT interrupt number. 22 + 23 + Examples: 24 + 25 + cluster1_core0_watchdog: wdt@c000000 { 26 + compatible = "arm,sp805-wdt", "arm,primecell"; 27 + reg = <0x0 0xc000000 0x0 0x1000>; 28 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 29 + clock-names = "apb_pclk", "wdog_clk"; 30 + }; 31 +
+10
MAINTAINERS
··· 1435 1435 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 1436 1436 S: Maintained 1437 1437 1438 + ARM/RENESAS ARM64 ARCHITECTURE 1439 + M: Simon Horman <horms@verge.net.au> 1440 + M: Magnus Damm <magnus.damm@gmail.com> 1441 + L: linux-sh@vger.kernel.org 1442 + Q: http://patchwork.kernel.org/project/linux-sh/list/ 1443 + T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next 1444 + S: Supported 1445 + F: arch/arm64/boot/dts/renesas/ 1446 + 1438 1447 ARM/RISCPC ARCHITECTURE 1439 1448 M: Russell King <linux@arm.linux.org.uk> 1440 1449 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) ··· 1672 1663 F: arch/arm/include/asm/hardware/cache-uniphier.h 1673 1664 F: arch/arm/mach-uniphier/ 1674 1665 F: arch/arm/mm/cache-uniphier.c 1666 + F: arch/arm64/boot/dts/socionext/ 1675 1667 F: drivers/i2c/busses/i2c-uniphier* 1676 1668 F: drivers/pinctrl/uniphier/ 1677 1669 F: drivers/tty/serial/8250/8250_uniphier.c
+17
arch/arm64/Kconfig.platforms
··· 67 67 help 68 68 This enables support for AMD Seattle SOC Family 69 69 70 + config ARCH_SHMOBILE 71 + bool 72 + 73 + config ARCH_RENESAS 74 + bool "Renesas SoC Platforms" 75 + select ARCH_SHMOBILE 76 + select PINCTRL 77 + select PM_GENERIC_DOMAINS if PM 78 + help 79 + This enables support for the ARMv8 based Renesas SoCs. 80 + 81 + config ARCH_R8A7795 82 + bool "Renesas R-Car H3 SoC Platform" 83 + depends on ARCH_RENESAS 84 + help 85 + This enables support for the Renesas R-Car H3 SoC. 86 + 70 87 config ARCH_STRATIX10 71 88 bool "Altera's Stratix 10 SoCFPGA Family" 72 89 help
+2
arch/arm64/boot/dts/Makefile
··· 10 10 dts-dirs += marvell 11 11 dts-dirs += mediatek 12 12 dts-dirs += qcom 13 + dts-dirs += renesas 13 14 dts-dirs += rockchip 15 + dts-dirs += socionext 14 16 dts-dirs += sprd 15 17 dts-dirs += xilinx 16 18
+12
arch/arm64/boot/dts/apm/apm-merlin.dts
··· 70 70 &xgenet1 { 71 71 status = "ok"; 72 72 }; 73 + 74 + &mmc0 { 75 + status = "ok"; 76 + }; 77 + 78 + &i2c4 { 79 + rtc68: rtc@68 { 80 + compatible = "dallas,ds1337"; 81 + reg = <0x68>; 82 + status = "ok"; 83 + }; 84 + };
+4
arch/arm64/boot/dts/apm/apm-mustang.dts
··· 74 74 &xgenet { 75 75 status = "ok"; 76 76 }; 77 + 78 + &mmc0 { 79 + status = "ok"; 80 + };
+390 -1
arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
··· 25 25 reg = <0x0 0x000>; 26 26 enable-method = "spin-table"; 27 27 cpu-release-addr = <0x1 0x0000fff8>; 28 + next-level-cache = <&xgene_L2_0>; 28 29 }; 29 30 cpu@001 { 30 31 device_type = "cpu"; ··· 33 32 reg = <0x0 0x001>; 34 33 enable-method = "spin-table"; 35 34 cpu-release-addr = <0x1 0x0000fff8>; 35 + next-level-cache = <&xgene_L2_0>; 36 36 }; 37 37 cpu@100 { 38 38 device_type = "cpu"; ··· 41 39 reg = <0x0 0x100>; 42 40 enable-method = "spin-table"; 43 41 cpu-release-addr = <0x1 0x0000fff8>; 42 + next-level-cache = <&xgene_L2_1>; 44 43 }; 45 44 cpu@101 { 46 45 device_type = "cpu"; ··· 49 46 reg = <0x0 0x101>; 50 47 enable-method = "spin-table"; 51 48 cpu-release-addr = <0x1 0x0000fff8>; 49 + next-level-cache = <&xgene_L2_1>; 52 50 }; 53 51 cpu@200 { 54 52 device_type = "cpu"; ··· 57 53 reg = <0x0 0x200>; 58 54 enable-method = "spin-table"; 59 55 cpu-release-addr = <0x1 0x0000fff8>; 56 + next-level-cache = <&xgene_L2_2>; 60 57 }; 61 58 cpu@201 { 62 59 device_type = "cpu"; ··· 65 60 reg = <0x0 0x201>; 66 61 enable-method = "spin-table"; 67 62 cpu-release-addr = <0x1 0x0000fff8>; 63 + next-level-cache = <&xgene_L2_2>; 68 64 }; 69 65 cpu@300 { 70 66 device_type = "cpu"; ··· 73 67 reg = <0x0 0x300>; 74 68 enable-method = "spin-table"; 75 69 cpu-release-addr = <0x1 0x0000fff8>; 70 + next-level-cache = <&xgene_L2_3>; 76 71 }; 77 72 cpu@301 { 78 73 device_type = "cpu"; ··· 81 74 reg = <0x0 0x301>; 82 75 enable-method = "spin-table"; 83 76 cpu-release-addr = <0x1 0x0000fff8>; 77 + next-level-cache = <&xgene_L2_3>; 78 + }; 79 + xgene_L2_0: l2-cache-0 { 80 + compatible = "cache"; 81 + }; 82 + xgene_L2_1: l2-cache-1 { 83 + compatible = "cache"; 84 + }; 85 + xgene_L2_2: l2-cache-2 { 86 + compatible = "cache"; 87 + }; 88 + xgene_L2_3: l2-cache-3 { 89 + compatible = "cache"; 84 90 }; 85 91 }; 86 92 ··· 109 89 <0x0 0x780A0000 0x0 0x20000>, /* GIC CPU */ 110 90 <0x0 0x780C0000 0x0 0x10000>, /* GIC VCPU Control */ 111 91 <0x0 0x780E0000 0x0 0x20000>; /* GIC VCPU */ 92 + v2m0: v2m@0x00000 { 93 + compatible = "arm,gic-v2m-frame"; 94 + msi-controller; 95 + reg = <0x0 0x0 0x0 0x1000>; 96 + }; 97 + v2m1: v2m@0x10000 { 98 + compatible = "arm,gic-v2m-frame"; 99 + msi-controller; 100 + reg = <0x0 0x10000 0x0 0x1000>; 101 + }; 102 + v2m2: v2m@0x20000 { 103 + compatible = "arm,gic-v2m-frame"; 104 + msi-controller; 105 + reg = <0x0 0x20000 0x0 0x1000>; 106 + }; 107 + v2m3: v2m@0x30000 { 108 + compatible = "arm,gic-v2m-frame"; 109 + msi-controller; 110 + reg = <0x0 0x30000 0x0 0x1000>; 111 + }; 112 + v2m4: v2m@0x40000 { 113 + compatible = "arm,gic-v2m-frame"; 114 + msi-controller; 115 + reg = <0x0 0x40000 0x0 0x1000>; 116 + }; 117 + v2m5: v2m@0x50000 { 118 + compatible = "arm,gic-v2m-frame"; 119 + msi-controller; 120 + reg = <0x0 0x50000 0x0 0x1000>; 121 + }; 122 + v2m6: v2m@0x60000 { 123 + compatible = "arm,gic-v2m-frame"; 124 + msi-controller; 125 + reg = <0x0 0x60000 0x0 0x1000>; 126 + }; 127 + v2m7: v2m@0x70000 { 128 + compatible = "arm,gic-v2m-frame"; 129 + msi-controller; 130 + reg = <0x0 0x70000 0x0 0x1000>; 131 + }; 132 + v2m8: v2m@0x80000 { 133 + compatible = "arm,gic-v2m-frame"; 134 + msi-controller; 135 + reg = <0x0 0x80000 0x0 0x1000>; 136 + }; 137 + v2m9: v2m@0x90000 { 138 + compatible = "arm,gic-v2m-frame"; 139 + msi-controller; 140 + reg = <0x0 0x90000 0x0 0x1000>; 141 + }; 142 + v2m10: v2m@0xA0000 { 143 + compatible = "arm,gic-v2m-frame"; 144 + msi-controller; 145 + reg = <0x0 0xA0000 0x0 0x1000>; 146 + }; 147 + v2m11: v2m@0xB0000 { 148 + compatible = "arm,gic-v2m-frame"; 149 + msi-controller; 150 + reg = <0x0 0xB0000 0x0 0x1000>; 151 + }; 152 + v2m12: v2m@0xC0000 { 153 + compatible = "arm,gic-v2m-frame"; 154 + msi-controller; 155 + reg = <0x0 0xC0000 0x0 0x1000>; 156 + }; 157 + v2m13: v2m@0xD0000 { 158 + compatible = "arm,gic-v2m-frame"; 159 + msi-controller; 160 + reg = <0x0 0xD0000 0x0 0x1000>; 161 + }; 162 + v2m14: v2m@0xE0000 { 163 + compatible = "arm,gic-v2m-frame"; 164 + msi-controller; 165 + reg = <0x0 0xE0000 0x0 0x1000>; 166 + }; 167 + v2m15: v2m@0xF0000 { 168 + compatible = "arm,gic-v2m-frame"; 169 + msi-controller; 170 + reg = <0x0 0xF0000 0x0 0x1000>; 171 + }; 112 172 }; 113 173 114 174 pmu { ··· 240 140 clock-output-names = "socplldiv2"; 241 141 }; 242 142 143 + ahbclk: ahbclk@17000000 { 144 + compatible = "apm,xgene-device-clock"; 145 + #clock-cells = <1>; 146 + clocks = <&socplldiv2 0>; 147 + reg = <0x0 0x17000000 0x0 0x2000>; 148 + reg-names = "div-reg"; 149 + divider-offset = <0x164>; 150 + divider-width = <0x5>; 151 + divider-shift = <0x0>; 152 + clock-output-names = "ahbclk"; 153 + }; 154 + 155 + sbapbclk: sbapbclk@1704c000 { 156 + compatible = "apm,xgene-device-clock"; 157 + #clock-cells = <1>; 158 + clocks = <&ahbclk 0>; 159 + reg = <0x0 0x1704c000 0x0 0x2000>; 160 + reg-names = "div-reg"; 161 + divider-offset = <0x10>; 162 + divider-width = <0x2>; 163 + divider-shift = <0x0>; 164 + clock-output-names = "sbapbclk"; 165 + }; 166 + 167 + sdioclk: sdioclk@1f2ac000 { 168 + compatible = "apm,xgene-device-clock"; 169 + #clock-cells = <1>; 170 + clocks = <&socplldiv2 0>; 171 + reg = <0x0 0x1f2ac000 0x0 0x1000 172 + 0x0 0x17000000 0x0 0x2000>; 173 + reg-names = "csr-reg", "div-reg"; 174 + csr-offset = <0x0>; 175 + csr-mask = <0x2>; 176 + enable-offset = <0x8>; 177 + enable-mask = <0x2>; 178 + divider-offset = <0x178>; 179 + divider-width = <0x8>; 180 + divider-shift = <0x0>; 181 + clock-output-names = "sdioclk"; 182 + }; 183 + 243 184 pcie0clk: pcie0clk@1f2bc000 { 244 185 compatible = "apm,xgene-device-clock"; 245 186 #clock-cells = <1>; ··· 288 147 reg = <0x0 0x1f2bc000 0x0 0x1000>; 289 148 reg-names = "csr-reg"; 290 149 clock-output-names = "pcie0clk"; 150 + }; 151 + 152 + pcie1clk: pcie1clk@1f2cc000 { 153 + compatible = "apm,xgene-device-clock"; 154 + #clock-cells = <1>; 155 + clocks = <&socplldiv2 0>; 156 + reg = <0x0 0x1f2cc000 0x0 0x1000>; 157 + reg-names = "csr-reg"; 158 + clock-output-names = "pcie1clk"; 291 159 }; 292 160 293 161 xge0clk: xge0clk@1f61c000 { ··· 320 170 csr-mask = <0x3>; 321 171 clock-output-names = "xge1clk"; 322 172 }; 173 + 174 + rngpkaclk: rngpkaclk@17000000 { 175 + compatible = "apm,xgene-device-clock"; 176 + #clock-cells = <1>; 177 + clocks = <&socplldiv2 0>; 178 + reg = <0x0 0x17000000 0x0 0x2000>; 179 + reg-names = "csr-reg"; 180 + csr-offset = <0xc>; 181 + csr-mask = <0x10>; 182 + enable-offset = <0x10>; 183 + enable-mask = <0x10>; 184 + clock-output-names = "rngpkaclk"; 185 + }; 186 + 187 + i2c4clk: i2c4clk@1704c000 { 188 + compatible = "apm,xgene-device-clock"; 189 + #clock-cells = <1>; 190 + clocks = <&sbapbclk 0>; 191 + reg = <0x0 0x1704c000 0x0 0x1000>; 192 + reg-names = "csr-reg"; 193 + csr-offset = <0x0>; 194 + csr-mask = <0x40>; 195 + enable-offset = <0x8>; 196 + enable-mask = <0x40>; 197 + clock-output-names = "i2c4clk"; 198 + }; 323 199 }; 324 200 325 201 scu: system-clk-controller@17000000 { ··· 360 184 mask = <0x1>; 361 185 }; 362 186 187 + csw: csw@7e200000 { 188 + compatible = "apm,xgene-csw", "syscon"; 189 + reg = <0x0 0x7e200000 0x0 0x1000>; 190 + }; 191 + 192 + mcba: mcba@7e700000 { 193 + compatible = "apm,xgene-mcb", "syscon"; 194 + reg = <0x0 0x7e700000 0x0 0x1000>; 195 + }; 196 + 197 + mcbb: mcbb@7e720000 { 198 + compatible = "apm,xgene-mcb", "syscon"; 199 + reg = <0x0 0x7e720000 0x0 0x1000>; 200 + }; 201 + 202 + efuse: efuse@1054a000 { 203 + compatible = "apm,xgene-efuse", "syscon"; 204 + reg = <0x0 0x1054a000 0x0 0x20>; 205 + }; 206 + 207 + edac@78800000 { 208 + compatible = "apm,xgene-edac"; 209 + #address-cells = <2>; 210 + #size-cells = <2>; 211 + ranges; 212 + regmap-csw = <&csw>; 213 + regmap-mcba = <&mcba>; 214 + regmap-mcbb = <&mcbb>; 215 + regmap-efuse = <&efuse>; 216 + reg = <0x0 0x78800000 0x0 0x100>; 217 + interrupts = <0x0 0x20 0x4>, 218 + <0x0 0x21 0x4>, 219 + <0x0 0x27 0x4>; 220 + 221 + edacmc@7e800000 { 222 + compatible = "apm,xgene-edac-mc"; 223 + reg = <0x0 0x7e800000 0x0 0x1000>; 224 + memory-controller = <0>; 225 + }; 226 + 227 + edacmc@7e840000 { 228 + compatible = "apm,xgene-edac-mc"; 229 + reg = <0x0 0x7e840000 0x0 0x1000>; 230 + memory-controller = <1>; 231 + }; 232 + 233 + edacmc@7e880000 { 234 + compatible = "apm,xgene-edac-mc"; 235 + reg = <0x0 0x7e880000 0x0 0x1000>; 236 + memory-controller = <2>; 237 + }; 238 + 239 + edacmc@7e8c0000 { 240 + compatible = "apm,xgene-edac-mc"; 241 + reg = <0x0 0x7e8c0000 0x0 0x1000>; 242 + memory-controller = <3>; 243 + }; 244 + 245 + edacpmd@7c000000 { 246 + compatible = "apm,xgene-edac-pmd"; 247 + reg = <0x0 0x7c000000 0x0 0x200000>; 248 + pmd-controller = <0>; 249 + }; 250 + 251 + edacpmd@7c200000 { 252 + compatible = "apm,xgene-edac-pmd"; 253 + reg = <0x0 0x7c200000 0x0 0x200000>; 254 + pmd-controller = <1>; 255 + }; 256 + 257 + edacpmd@7c400000 { 258 + compatible = "apm,xgene-edac-pmd"; 259 + reg = <0x0 0x7c400000 0x0 0x200000>; 260 + pmd-controller = <2>; 261 + }; 262 + 263 + edacpmd@7c600000 { 264 + compatible = "apm,xgene-edac-pmd"; 265 + reg = <0x0 0x7c600000 0x0 0x200000>; 266 + pmd-controller = <3>; 267 + }; 268 + 269 + edacl3@7e600000 { 270 + compatible = "apm,xgene-edac-l3-v2"; 271 + reg = <0x0 0x7e600000 0x0 0x1000>; 272 + }; 273 + 274 + edacsoc@7e930000 { 275 + compatible = "apm,xgene-edac-soc"; 276 + reg = <0x0 0x7e930000 0x0 0x1000>; 277 + }; 278 + }; 279 + 363 280 serial0: serial@10600000 { 364 281 device_type = "serial"; 365 282 compatible = "ns16550"; ··· 461 192 clock-frequency = <10000000>; 462 193 interrupt-parent = <&gic>; 463 194 interrupts = <0x0 0x4c 0x4>; 195 + }; 196 + 197 + /* Do not change dwusb name, coded for backward compatibility */ 198 + usb0: dwusb@19000000 { 199 + status = "disabled"; 200 + compatible = "snps,dwc3"; 201 + reg = <0x0 0x19000000 0x0 0x100000>; 202 + interrupts = <0x0 0x5d 0x4>; 203 + dma-coherent; 204 + dr_mode = "host"; 205 + }; 206 + 207 + pcie0: pcie@1f2b0000 { 208 + status = "disabled"; 209 + device_type = "pci"; 210 + compatible = "apm,xgene-pcie", "apm,xgene2-pcie"; 211 + #interrupt-cells = <1>; 212 + #size-cells = <2>; 213 + #address-cells = <3>; 214 + reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */ 215 + 0xc0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 216 + reg-names = "csr", "cfg"; 217 + ranges = <0x01000000 0x00 0x00000000 0xc0 0x10000000 0x00 0x00010000 /* io */ 218 + 0x02000000 0x00 0x20000000 0xc1 0x20000000 0x00 0x20000000 /* mem */ 219 + 0x43000000 0xe0 0x00000000 0xe0 0x00000000 0x20 0x00000000>; /* mem */ 220 + dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 221 + 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 222 + interrupt-map-mask = <0x0 0x0 0x0 0x7>; 223 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x10 0x1 224 + 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x11 0x1 225 + 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x12 0x1 226 + 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x13 0x1>; 227 + dma-coherent; 228 + clocks = <&pcie0clk 0>; 229 + msi-parent = <&v2m0>; 230 + }; 231 + 232 + pcie1: pcie@1f2c0000 { 233 + status = "disabled"; 234 + device_type = "pci"; 235 + compatible = "apm,xgene-pcie", "apm,xgene2-pcie"; 236 + #interrupt-cells = <1>; 237 + #size-cells = <2>; 238 + #address-cells = <3>; 239 + reg = < 0x00 0x1f2c0000 0x0 0x00010000 /* Controller registers */ 240 + 0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 241 + reg-names = "csr", "cfg"; 242 + ranges = <0x01000000 0x00 0x00000000 0xa0 0x10000000 0x00 0x00010000 /* io */ 243 + 0x02000000 0x00 0x20000000 0xa1 0x20000000 0x00 0x20000000 /* mem */ 244 + 0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */ 245 + dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 246 + 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 247 + interrupt-map-mask = <0x0 0x0 0x0 0x7>; 248 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x16 0x1 249 + 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x17 0x1 250 + 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x18 0x1 251 + 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x19 0x1>; 252 + dma-coherent; 253 + clocks = <&pcie1clk 0>; 254 + msi-parent = <&v2m0>; 464 255 }; 465 256 466 257 sata1: sata@1a000000 { ··· 553 224 dma-coherent; 554 225 }; 555 226 556 - sbgpio: sbgpio@17001000{ 227 + mmc0: mmc@1c000000 { 228 + compatible = "arasan,sdhci-4.9a"; 229 + reg = <0x0 0x1c000000 0x0 0x100>; 230 + interrupts = <0x0 0x49 0x4>; 231 + dma-coherent; 232 + no-1-8-v; 233 + clock-names = "clk_xin", "clk_ahb"; 234 + clocks = <&sdioclk 0>, <&ahbclk 0>; 235 + }; 236 + 237 + gfcgpio: gpio@1f63c000 { 238 + compatible = "apm,xgene-gpio"; 239 + reg = <0x0 0x1f63c000 0x0 0x40>; 240 + gpio-controller; 241 + #gpio-cells = <2>; 242 + }; 243 + 244 + dwgpio: gpio@1c024000 { 245 + compatible = "snps,dw-apb-gpio"; 246 + reg = <0x0 0x1c024000 0x0 0x1000>; 247 + reg-io-width = <4>; 248 + #address-cells = <1>; 249 + #size-cells = <0>; 250 + 251 + porta: gpio-controller@0 { 252 + compatible = "snps,dw-apb-gpio-port"; 253 + gpio-controller; 254 + snps,nr-gpios = <32>; 255 + reg = <0>; 256 + }; 257 + }; 258 + 259 + sbgpio: gpio@17001000{ 557 260 compatible = "apm,xgene-gpio-sb"; 558 261 reg = <0x0 0x17001000 0x0 0x400>; 559 262 #gpio-cells = <2>; ··· 627 266 clocks = <&xge1clk 0>; 628 267 local-mac-address = [00 01 73 00 00 02]; 629 268 phy-connection-type = "xgmii"; 269 + }; 270 + 271 + rng: rng@10520000 { 272 + compatible = "apm,xgene-rng"; 273 + reg = <0x0 0x10520000 0x0 0x100>; 274 + interrupts = <0x0 0x41 0x4>; 275 + clocks = <&rngpkaclk 0>; 276 + }; 277 + 278 + i2c1: i2c@10511000 { 279 + #address-cells = <1>; 280 + #size-cells = <0>; 281 + compatible = "snps,designware-i2c"; 282 + reg = <0x0 0x10511000 0x0 0x1000>; 283 + interrupts = <0 0x45 0x4>; 284 + #clock-cells = <1>; 285 + clocks = <&sbapbclk 0>; 286 + bus_num = <1>; 287 + }; 288 + 289 + i2c4: i2c@10640000 { 290 + #address-cells = <1>; 291 + #size-cells = <0>; 292 + compatible = "snps,designware-i2c"; 293 + reg = <0x0 0x10640000 0x0 0x1000>; 294 + interrupts = <0 0x3A 0x4>; 295 + clocks = <&i2c4clk 0>; 296 + bus_num = <4>; 630 297 }; 631 298 }; 632 299 };
+113 -1
arch/arm64/boot/dts/apm/apm-storm.dtsi
··· 25 25 reg = <0x0 0x000>; 26 26 enable-method = "spin-table"; 27 27 cpu-release-addr = <0x1 0x0000fff8>; 28 + next-level-cache = <&xgene_L2_0>; 28 29 }; 29 30 cpu@001 { 30 31 device_type = "cpu"; ··· 33 32 reg = <0x0 0x001>; 34 33 enable-method = "spin-table"; 35 34 cpu-release-addr = <0x1 0x0000fff8>; 35 + next-level-cache = <&xgene_L2_0>; 36 36 }; 37 37 cpu@100 { 38 38 device_type = "cpu"; ··· 41 39 reg = <0x0 0x100>; 42 40 enable-method = "spin-table"; 43 41 cpu-release-addr = <0x1 0x0000fff8>; 42 + next-level-cache = <&xgene_L2_1>; 44 43 }; 45 44 cpu@101 { 46 45 device_type = "cpu"; ··· 49 46 reg = <0x0 0x101>; 50 47 enable-method = "spin-table"; 51 48 cpu-release-addr = <0x1 0x0000fff8>; 49 + next-level-cache = <&xgene_L2_1>; 52 50 }; 53 51 cpu@200 { 54 52 device_type = "cpu"; ··· 57 53 reg = <0x0 0x200>; 58 54 enable-method = "spin-table"; 59 55 cpu-release-addr = <0x1 0x0000fff8>; 56 + next-level-cache = <&xgene_L2_2>; 60 57 }; 61 58 cpu@201 { 62 59 device_type = "cpu"; ··· 65 60 reg = <0x0 0x201>; 66 61 enable-method = "spin-table"; 67 62 cpu-release-addr = <0x1 0x0000fff8>; 63 + next-level-cache = <&xgene_L2_2>; 68 64 }; 69 65 cpu@300 { 70 66 device_type = "cpu"; ··· 73 67 reg = <0x0 0x300>; 74 68 enable-method = "spin-table"; 75 69 cpu-release-addr = <0x1 0x0000fff8>; 70 + next-level-cache = <&xgene_L2_3>; 76 71 }; 77 72 cpu@301 { 78 73 device_type = "cpu"; ··· 81 74 reg = <0x0 0x301>; 82 75 enable-method = "spin-table"; 83 76 cpu-release-addr = <0x1 0x0000fff8>; 77 + next-level-cache = <&xgene_L2_3>; 78 + }; 79 + xgene_L2_0: l2-cache-0 { 80 + compatible = "cache"; 81 + }; 82 + xgene_L2_1: l2-cache-1 { 83 + compatible = "cache"; 84 + }; 85 + xgene_L2_2: l2-cache-2 { 86 + compatible = "cache"; 87 + }; 88 + xgene_L2_3: l2-cache-3 { 89 + compatible = "cache"; 84 90 }; 85 91 }; 86 92 ··· 168 148 clock-mult = <1>; 169 149 clock-div = <2>; 170 150 clock-output-names = "socplldiv2"; 151 + }; 152 + 153 + ahbclk: ahbclk@17000000 { 154 + compatible = "apm,xgene-device-clock"; 155 + #clock-cells = <1>; 156 + clocks = <&socplldiv2 0>; 157 + reg = <0x0 0x17000000 0x0 0x2000>; 158 + reg-names = "div-reg"; 159 + divider-offset = <0x164>; 160 + divider-width = <0x5>; 161 + divider-shift = <0x0>; 162 + clock-output-names = "ahbclk"; 163 + }; 164 + 165 + sdioclk: sdioclk@1f2ac000 { 166 + compatible = "apm,xgene-device-clock"; 167 + #clock-cells = <1>; 168 + clocks = <&socplldiv2 0>; 169 + reg = <0x0 0x1f2ac000 0x0 0x1000 170 + 0x0 0x17000000 0x0 0x2000>; 171 + reg-names = "csr-reg", "div-reg"; 172 + csr-offset = <0x0>; 173 + csr-mask = <0x2>; 174 + enable-offset = <0x8>; 175 + enable-mask = <0x2>; 176 + divider-offset = <0x178>; 177 + divider-width = <0x8>; 178 + divider-shift = <0x0>; 179 + clock-output-names = "sdioclk"; 171 180 }; 172 181 173 182 qmlclk: qmlclk { ··· 735 686 interrupts = <0x0 0x4f 0x4>; 736 687 }; 737 688 689 + mmc0: mmc@1c000000 { 690 + compatible = "arasan,sdhci-4.9a"; 691 + reg = <0x0 0x1c000000 0x0 0x100>; 692 + interrupts = <0x0 0x49 0x4>; 693 + dma-coherent; 694 + no-1-8-v; 695 + clock-names = "clk_xin", "clk_ahb"; 696 + clocks = <&sdioclk 0>, <&ahbclk 0>; 697 + }; 698 + 699 + gfcgpio: gpio0@1701c000 { 700 + compatible = "apm,xgene-gpio"; 701 + reg = <0x0 0x1701c000 0x0 0x40>; 702 + gpio-controller; 703 + #gpio-cells = <2>; 704 + }; 705 + 706 + dwgpio: gpio@1c024000 { 707 + compatible = "snps,dw-apb-gpio"; 708 + reg = <0x0 0x1c024000 0x0 0x1000>; 709 + reg-io-width = <4>; 710 + #address-cells = <1>; 711 + #size-cells = <0>; 712 + 713 + porta: gpio-controller@0 { 714 + compatible = "snps,dw-apb-gpio-port"; 715 + gpio-controller; 716 + snps,nr-gpios = <32>; 717 + reg = <0>; 718 + }; 719 + }; 720 + 721 + i2c0: i2c@10512000 { 722 + status = "disabled"; 723 + #address-cells = <1>; 724 + #size-cells = <0>; 725 + compatible = "snps,designware-i2c"; 726 + reg = <0x0 0x10512000 0x0 0x1000>; 727 + interrupts = <0 0x44 0x4>; 728 + #clock-cells = <1>; 729 + clocks = <&ahbclk 0>; 730 + bus_num = <0>; 731 + }; 732 + 738 733 phy1: phy@1f21a000 { 739 734 compatible = "apm,xgene-phy"; 740 735 reg = <0x0 0x1f21a000 0x0 0x100>; ··· 853 760 phy-names = "sata-phy"; 854 761 }; 855 762 856 - sbgpio: sbgpio@17001000{ 763 + /* Do not change dwusb name, coded for backward compatibility */ 764 + usb0: dwusb@19000000 { 765 + status = "disabled"; 766 + compatible = "snps,dwc3"; 767 + reg = <0x0 0x19000000 0x0 0x100000>; 768 + interrupts = <0x0 0x89 0x4>; 769 + dma-coherent; 770 + dr_mode = "host"; 771 + }; 772 + 773 + usb1: dwusb@19800000 { 774 + status = "disabled"; 775 + compatible = "snps,dwc3"; 776 + reg = <0x0 0x19800000 0x0 0x100000>; 777 + interrupts = <0x0 0x8a 0x4>; 778 + dma-coherent; 779 + dr_mode = "host"; 780 + }; 781 + 782 + sbgpio: gpio@17001000{ 857 783 compatible = "apm,xgene-gpio-sb"; 858 784 reg = <0x0 0x17001000 0x0 0x400>; 859 785 #gpio-cells = <2>;
+28
arch/arm64/boot/dts/arm/juno-r1.dts
··· 60 60 }; 61 61 }; 62 62 63 + idle-states { 64 + entry-method = "arm,psci"; 65 + 66 + CPU_SLEEP_0: cpu-sleep-0 { 67 + compatible = "arm,idle-state"; 68 + arm,psci-suspend-param = <0x0010000>; 69 + local-timer-stop; 70 + entry-latency-us = <300>; 71 + exit-latency-us = <1200>; 72 + min-residency-us = <2000>; 73 + }; 74 + 75 + CLUSTER_SLEEP_0: cluster-sleep-0 { 76 + compatible = "arm,idle-state"; 77 + arm,psci-suspend-param = <0x1010000>; 78 + local-timer-stop; 79 + entry-latency-us = <300>; 80 + exit-latency-us = <1200>; 81 + min-residency-us = <2500>; 82 + }; 83 + }; 84 + 63 85 A57_0: cpu@0 { 64 86 compatible = "arm,cortex-a57","arm,armv8"; 65 87 reg = <0x0 0x0>; ··· 89 67 enable-method = "psci"; 90 68 next-level-cache = <&A57_L2>; 91 69 clocks = <&scpi_dvfs 0>; 70 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 92 71 }; 93 72 94 73 A57_1: cpu@1 { ··· 99 76 enable-method = "psci"; 100 77 next-level-cache = <&A57_L2>; 101 78 clocks = <&scpi_dvfs 0>; 79 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 102 80 }; 103 81 104 82 A53_0: cpu@100 { ··· 109 85 enable-method = "psci"; 110 86 next-level-cache = <&A53_L2>; 111 87 clocks = <&scpi_dvfs 1>; 88 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 112 89 }; 113 90 114 91 A53_1: cpu@101 { ··· 119 94 enable-method = "psci"; 120 95 next-level-cache = <&A53_L2>; 121 96 clocks = <&scpi_dvfs 1>; 97 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 122 98 }; 123 99 124 100 A53_2: cpu@102 { ··· 129 103 enable-method = "psci"; 130 104 next-level-cache = <&A53_L2>; 131 105 clocks = <&scpi_dvfs 1>; 106 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 132 107 }; 133 108 134 109 A53_3: cpu@103 { ··· 139 112 enable-method = "psci"; 140 113 next-level-cache = <&A53_L2>; 141 114 clocks = <&scpi_dvfs 1>; 115 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 142 116 }; 143 117 144 118 A57_L2: l2-cache0 {
+28
arch/arm64/boot/dts/arm/juno.dts
··· 60 60 }; 61 61 }; 62 62 63 + idle-states { 64 + entry-method = "arm,psci"; 65 + 66 + CPU_SLEEP_0: cpu-sleep-0 { 67 + compatible = "arm,idle-state"; 68 + arm,psci-suspend-param = <0x0010000>; 69 + local-timer-stop; 70 + entry-latency-us = <300>; 71 + exit-latency-us = <1200>; 72 + min-residency-us = <2000>; 73 + }; 74 + 75 + CLUSTER_SLEEP_0: cluster-sleep-0 { 76 + compatible = "arm,idle-state"; 77 + arm,psci-suspend-param = <0x1010000>; 78 + local-timer-stop; 79 + entry-latency-us = <300>; 80 + exit-latency-us = <1200>; 81 + min-residency-us = <2500>; 82 + }; 83 + }; 84 + 63 85 A57_0: cpu@0 { 64 86 compatible = "arm,cortex-a57","arm,armv8"; 65 87 reg = <0x0 0x0>; ··· 89 67 enable-method = "psci"; 90 68 next-level-cache = <&A57_L2>; 91 69 clocks = <&scpi_dvfs 0>; 70 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 92 71 }; 93 72 94 73 A57_1: cpu@1 { ··· 99 76 enable-method = "psci"; 100 77 next-level-cache = <&A57_L2>; 101 78 clocks = <&scpi_dvfs 0>; 79 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 102 80 }; 103 81 104 82 A53_0: cpu@100 { ··· 109 85 enable-method = "psci"; 110 86 next-level-cache = <&A53_L2>; 111 87 clocks = <&scpi_dvfs 1>; 88 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 112 89 }; 113 90 114 91 A53_1: cpu@101 { ··· 119 94 enable-method = "psci"; 120 95 next-level-cache = <&A53_L2>; 121 96 clocks = <&scpi_dvfs 1>; 97 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 122 98 }; 123 99 124 100 A53_2: cpu@102 { ··· 129 103 enable-method = "psci"; 130 104 next-level-cache = <&A53_L2>; 131 105 clocks = <&scpi_dvfs 1>; 106 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 132 107 }; 133 108 134 109 A53_3: cpu@103 { ··· 139 112 enable-method = "psci"; 140 113 next-level-cache = <&A53_L2>; 141 114 clocks = <&scpi_dvfs 1>; 115 + cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 142 116 }; 143 117 144 118 A57_L2: l2-cache0 {
+22 -4
arch/arm64/boot/dts/broadcom/ns2-svk.dts
··· 50 50 device_type = "memory"; 51 51 reg = <0x000000000 0x80000000 0x00000000 0x40000000>; 52 52 }; 53 + }; 53 54 54 - soc: soc { 55 - uart3: serial@66130000 { 56 - status = "ok"; 57 - }; 55 + &i2c0 { 56 + status = "ok"; 57 + }; 58 + 59 + &i2c1 { 60 + status = "ok"; 61 + }; 62 + 63 + &uart3 { 64 + status = "ok"; 65 + }; 66 + 67 + &nand { 68 + nandcs@0 { 69 + compatible = "brcm,nandcs"; 70 + reg = <0>; 71 + nand-ecc-mode = "hw"; 72 + nand-ecc-strength = <8>; 73 + nand-ecc-step-size = <512>; 74 + #address-cells = <1>; 75 + #size-cells = <1>; 58 76 }; 59 77 };
+195 -5
arch/arm64/boot/dts/broadcom/ns2.dtsi
··· 31 31 */ 32 32 33 33 #include <dt-bindings/interrupt-controller/arm-gic.h> 34 + #include <dt-bindings/clock/bcm-ns2.h> 34 35 35 36 /memreserve/ 0x84b00000 0x00000008; 36 37 ··· 45 44 #address-cells = <2>; 46 45 #size-cells = <0>; 47 46 48 - cpu@0 { 47 + A57_0: cpu@0 { 49 48 device_type = "cpu"; 50 49 compatible = "arm,cortex-a57", "arm,armv8"; 51 50 reg = <0 0>; 52 51 enable-method = "spin-table"; 53 52 cpu-release-addr = <0 0x84b00000>; 53 + next-level-cache = <&CLUSTER0_L2>; 54 54 }; 55 55 56 - cpu@1 { 56 + A57_1: cpu@1 { 57 57 device_type = "cpu"; 58 58 compatible = "arm,cortex-a57", "arm,armv8"; 59 59 reg = <0 1>; 60 60 enable-method = "spin-table"; 61 61 cpu-release-addr = <0 0x84b00000>; 62 + next-level-cache = <&CLUSTER0_L2>; 62 63 }; 63 64 64 - cpu@2 { 65 + A57_2: cpu@2 { 65 66 device_type = "cpu"; 66 67 compatible = "arm,cortex-a57", "arm,armv8"; 67 68 reg = <0 2>; 68 69 enable-method = "spin-table"; 69 70 cpu-release-addr = <0 0x84b00000>; 71 + next-level-cache = <&CLUSTER0_L2>; 70 72 }; 71 73 72 - cpu@3 { 74 + A57_3: cpu@3 { 73 75 device_type = "cpu"; 74 76 compatible = "arm,cortex-a57", "arm,armv8"; 75 77 reg = <0 3>; 76 78 enable-method = "spin-table"; 77 79 cpu-release-addr = <0 0x84b00000>; 80 + next-level-cache = <&CLUSTER0_L2>; 81 + }; 82 + 83 + CLUSTER0_L2: l2-cache@000 { 84 + compatible = "cache"; 78 85 }; 79 86 }; 80 87 ··· 98 89 IRQ_TYPE_EDGE_RISING)>; 99 90 }; 100 91 92 + pmu { 93 + compatible = "arm,armv8-pmuv3"; 94 + interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 95 + <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, 96 + <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>, 97 + <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>; 98 + interrupt-affinity = <&A57_0>, 99 + <&A57_1>, 100 + <&A57_2>, 101 + <&A57_3>; 102 + }; 103 + 104 + clocks { 105 + #address-cells = <1>; 106 + #size-cells = <1>; 107 + 108 + osc: oscillator { 109 + #clock-cells = <0>; 110 + compatible = "fixed-clock"; 111 + clock-frequency = <25000000>; 112 + }; 113 + 114 + iprocmed: iprocmed { 115 + #clock-cells = <0>; 116 + compatible = "fixed-factor-clock"; 117 + clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>; 118 + clock-div = <2>; 119 + clock-mult = <1>; 120 + }; 121 + 122 + iprocslow: iprocslow { 123 + #clock-cells = <0>; 124 + compatible = "fixed-factor-clock"; 125 + clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>; 126 + clock-div = <4>; 127 + clock-mult = <1>; 128 + }; 129 + }; 130 + 101 131 soc: soc { 102 132 compatible = "simple-bus"; 103 133 #address-cells = <1>; 104 134 #size-cells = <1>; 105 135 ranges = <0 0 0 0xffffffff>; 136 + 137 + smmu: mmu@64000000 { 138 + compatible = "arm,mmu-500"; 139 + reg = <0x64000000 0x40000>; 140 + #global-interrupts = <2>; 141 + interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>, 142 + <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>, 143 + <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>, 144 + <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>, 145 + <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>, 146 + <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>, 147 + <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>, 148 + <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>, 149 + <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>, 150 + <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>, 151 + <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>, 152 + <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>, 153 + <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>, 154 + <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>, 155 + <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>, 156 + <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>, 157 + <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>, 158 + <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>, 159 + <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>, 160 + <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>, 161 + <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>, 162 + <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>, 163 + <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>, 164 + <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>, 165 + <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>, 166 + <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>, 167 + <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>, 168 + <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 169 + <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>, 170 + <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>, 171 + <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>, 172 + <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>, 173 + <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>, 174 + <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; 175 + mmu-masters; 176 + }; 177 + 178 + lcpll_ddr: lcpll_ddr@6501d058 { 179 + #clock-cells = <1>; 180 + compatible = "brcm,ns2-lcpll-ddr"; 181 + reg = <0x6501d058 0x20>, 182 + <0x6501c020 0x4>, 183 + <0x6501d04c 0x4>; 184 + clocks = <&osc>; 185 + clock-output-names = "lcpll_ddr", "pcie_sata_usb", 186 + "ddr", "ddr_ch2_unused", 187 + "ddr_ch3_unused", "ddr_ch4_unused", 188 + "ddr_ch5_unused"; 189 + }; 190 + 191 + lcpll_ports: lcpll_ports@6501d078 { 192 + #clock-cells = <1>; 193 + compatible = "brcm,ns2-lcpll-ports"; 194 + reg = <0x6501d078 0x20>, 195 + <0x6501c020 0x4>, 196 + <0x6501d054 0x4>; 197 + clocks = <&osc>; 198 + clock-output-names = "lcpll_ports", "wan", "rgmii", 199 + "ports_ch2_unused", 200 + "ports_ch3_unused", 201 + "ports_ch4_unused", 202 + "ports_ch5_unused"; 203 + }; 204 + 205 + genpll_scr: genpll_scr@6501d098 { 206 + #clock-cells = <1>; 207 + compatible = "brcm,ns2-genpll-scr"; 208 + reg = <0x6501d098 0x32>, 209 + <0x6501c020 0x4>, 210 + <0x6501d044 0x4>; 211 + clocks = <&osc>; 212 + clock-output-names = "genpll_scr", "scr", "fs", 213 + "audio_ref", "scr_ch3_unused", 214 + "scr_ch4_unused", "scr_ch5_unused"; 215 + }; 216 + 217 + genpll_sw: genpll_sw@6501d0c4 { 218 + #clock-cells = <1>; 219 + compatible = "brcm,ns2-genpll-sw"; 220 + reg = <0x6501d0c4 0x32>, 221 + <0x6501c020 0x4>, 222 + <0x6501d044 0x4>; 223 + clocks = <&osc>; 224 + clock-output-names = "genpll_sw", "rpe", "250", "nic", 225 + "chimp", "port", "sdio"; 226 + }; 227 + 228 + crmu: crmu@65024000 { 229 + compatible = "syscon"; 230 + reg = <0x65024000 0x100>; 231 + }; 232 + 233 + reboot@65024000 { 234 + compatible ="syscon-reboot"; 235 + regmap = <&crmu>; 236 + offset = <0x90>; 237 + mask = <0xfffffffd>; 238 + }; 106 239 107 240 gic: interrupt-controller@65210000 { 108 241 compatible = "arm,gic-400"; ··· 256 105 <0x65260000 0x1000>; 257 106 }; 258 107 108 + i2c0: i2c@66080000 { 109 + compatible = "brcm,iproc-i2c"; 110 + reg = <0x66080000 0x100>; 111 + #address-cells = <1>; 112 + #size-cells = <0>; 113 + interrupts = <GIC_SPI 394 IRQ_TYPE_NONE>; 114 + clock-frequency = <100000>; 115 + status = "disabled"; 116 + }; 117 + 118 + i2c1: i2c@660b0000 { 119 + compatible = "brcm,iproc-i2c"; 120 + reg = <0x660b0000 0x100>; 121 + #address-cells = <1>; 122 + #size-cells = <0>; 123 + interrupts = <GIC_SPI 395 IRQ_TYPE_NONE>; 124 + clock-frequency = <100000>; 125 + status = "disabled"; 126 + }; 127 + 259 128 uart3: serial@66130000 { 260 129 compatible = "snps,dw-apb-uart"; 261 130 reg = <0x66130000 0x100>; 262 131 interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>; 263 132 reg-shift = <2>; 264 133 reg-io-width = <4>; 265 - clock-frequency = <23961600>; 134 + clocks = <&osc>; 266 135 status = "disabled"; 136 + }; 137 + 138 + hwrng: hwrng@66220000 { 139 + compatible = "brcm,iproc-rng200"; 140 + reg = <0x66220000 0x28>; 141 + }; 142 + 143 + nand: nand@66460000 { 144 + compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; 145 + reg = <0x66460000 0x600>, 146 + <0x67015408 0x600>, 147 + <0x66460f00 0x20>; 148 + reg-names = "nand", "iproc-idm", "iproc-ext"; 149 + interrupts = <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>; 150 + 151 + #address-cells = <1>; 152 + #size-cells = <0>; 153 + 154 + brcm,nand-has-wp; 267 155 }; 268 156 }; 269 157 };
+281 -1
arch/arm64/boot/dts/exynos/exynos7-espresso.dts
··· 11 11 12 12 /dts-v1/; 13 13 #include "exynos7.dtsi" 14 + #include <dt-bindings/interrupt-controller/irq.h> 14 15 15 16 / { 16 17 model = "Samsung Exynos7 Espresso board based on EXYNOS7"; ··· 53 52 status = "okay"; 54 53 }; 55 54 55 + &hsi2c_4 { 56 + samsung,i2c-sda-delay = <100>; 57 + samsung,i2c-max-bus-freq = <200000>; 58 + status = "okay"; 59 + 60 + s2mps15_pmic@66 { 61 + compatible = "samsung,s2mps15-pmic"; 62 + reg = <0x66>; 63 + interrupts = <2 IRQ_TYPE_NONE>; 64 + interrupt-parent = <&gpa0>; 65 + pinctrl-names = "default"; 66 + pinctrl-0 = <&pmic_irq>; 67 + wakeup-source; 68 + 69 + s2mps15_osc: clocks { 70 + compatible = "samsung,s2mps13-clk"; 71 + #clock-cells = <1>; 72 + clock-output-names = "s2mps13_ap", "s2mps13_cp", 73 + "s2mps13_bt"; 74 + }; 75 + 76 + regulators { 77 + ldo1_reg: LDO1 { 78 + regulator-name = "vdd_ldo1"; 79 + regulator-min-microvolt = <500000>; 80 + regulator-max-microvolt = <900000>; 81 + regulator-always-on; 82 + regulator-enable-ramp-delay = <125>; 83 + }; 84 + 85 + ldo2_reg: LDO2 { 86 + regulator-name = "vqmmc-sdcard"; 87 + regulator-min-microvolt = <1620000>; 88 + regulator-max-microvolt = <3300000>; 89 + regulator-always-on; 90 + regulator-enable-ramp-delay = <125>; 91 + }; 92 + 93 + ldo3_reg: LDO3 { 94 + regulator-name = "vdd_ldo3"; 95 + regulator-min-microvolt = <1620000>; 96 + regulator-max-microvolt = <1980000>; 97 + regulator-always-on; 98 + regulator-boot-on; 99 + regulator-enable-ramp-delay = <125>; 100 + }; 101 + 102 + ldo4_reg: LDO4 { 103 + regulator-name = "vdd_ldo4"; 104 + regulator-min-microvolt = <800000>; 105 + regulator-max-microvolt = <1110000>; 106 + regulator-always-on; 107 + regulator-enable-ramp-delay = <125>; 108 + }; 109 + 110 + ldo5_reg: LDO5 { 111 + regulator-name = "vdd_ldo5"; 112 + regulator-min-microvolt = <1620000>; 113 + regulator-max-microvolt = <1980000>; 114 + regulator-always-on; 115 + regulator-enable-ramp-delay = <125>; 116 + }; 117 + 118 + ldo6_reg: LDO6 { 119 + regulator-name = "vdd_ldo6"; 120 + regulator-min-microvolt = <2250000>; 121 + regulator-max-microvolt = <3300000>; 122 + regulator-enable-ramp-delay = <125>; 123 + }; 124 + 125 + ldo7_reg: LDO7 { 126 + regulator-name = "vdd_ldo7"; 127 + regulator-min-microvolt = <700000>; 128 + regulator-max-microvolt = <1150000>; 129 + regulator-enable-ramp-delay = <125>; 130 + }; 131 + 132 + ldo8_reg: LDO8 { 133 + regulator-name = "vdd_ldo8"; 134 + regulator-min-microvolt = <700000>; 135 + regulator-max-microvolt = <1000000>; 136 + regulator-enable-ramp-delay = <125>; 137 + }; 138 + 139 + ldo9_reg: LDO9 { 140 + regulator-name = "vdd_ldo9"; 141 + regulator-min-microvolt = <700000>; 142 + regulator-max-microvolt = <1000000>; 143 + regulator-enable-ramp-delay = <125>; 144 + }; 145 + 146 + ldo10_reg: LDO10 { 147 + regulator-name = "vdd_ldo10"; 148 + regulator-min-microvolt = <700000>; 149 + regulator-max-microvolt = <1000000>; 150 + regulator-enable-ramp-delay = <125>; 151 + }; 152 + 153 + ldo11_reg: LDO11 { 154 + regulator-name = "vdd_ldo11"; 155 + regulator-min-microvolt = <1000000>; 156 + regulator-max-microvolt = <1300000>; 157 + regulator-always-on; 158 + regulator-enable-ramp-delay = <125>; 159 + }; 160 + 161 + ldo12_reg: LDO12 { 162 + regulator-name = "vdd_ldo12"; 163 + regulator-min-microvolt = <1000000>; 164 + regulator-max-microvolt = <1300000>; 165 + regulator-enable-ramp-delay = <125>; 166 + }; 167 + 168 + ldo13_reg: LDO13 { 169 + regulator-name = "vdd_ldo13"; 170 + regulator-min-microvolt = <1000000>; 171 + regulator-max-microvolt = <1300000>; 172 + regulator-always-on; 173 + regulator-enable-ramp-delay = <125>; 174 + }; 175 + 176 + ldo14_reg: LDO14 { 177 + regulator-name = "vdd_ldo14"; 178 + regulator-min-microvolt = <1800000>; 179 + regulator-max-microvolt = <3375000>; 180 + regulator-enable-ramp-delay = <125>; 181 + }; 182 + 183 + ldo17_reg: LDO17 { 184 + regulator-name = "vmmc-sdcard"; 185 + regulator-min-microvolt = <1800000>; 186 + regulator-max-microvolt = <3375000>; 187 + regulator-enable-ramp-delay = <125>; 188 + }; 189 + 190 + ldo18_reg: LDO18 { 191 + regulator-name = "vdd_ldo18"; 192 + regulator-min-microvolt = <1500000>; 193 + regulator-max-microvolt = <2275000>; 194 + regulator-enable-ramp-delay = <125>; 195 + }; 196 + 197 + ldo19_reg: LDO19 { 198 + regulator-name = "vdd_ldo19"; 199 + regulator-min-microvolt = <1800000>; 200 + regulator-max-microvolt = <3375000>; 201 + regulator-enable-ramp-delay = <125>; 202 + }; 203 + 204 + ldo21_reg: LDO21 { 205 + regulator-name = "vdd_ldo21"; 206 + regulator-min-microvolt = <1800000>; 207 + regulator-max-microvolt = <3375000>; 208 + regulator-enable-ramp-delay = <125>; 209 + }; 210 + 211 + ldo23_reg: LDO23 { 212 + regulator-name = "vdd_ldo23"; 213 + regulator-min-microvolt = <1500000>; 214 + regulator-max-microvolt = <2275000>; 215 + regulator-enable-ramp-delay = <125>; 216 + }; 217 + 218 + ldo25_reg: LDO25 { 219 + regulator-name = "vdd_ldo25"; 220 + regulator-min-microvolt = <1800000>; 221 + regulator-max-microvolt = <3375000>; 222 + regulator-enable-ramp-delay = <125>; 223 + }; 224 + 225 + ldo26_reg: LDO26 { 226 + regulator-name = "vdd_ldo26"; 227 + regulator-min-microvolt = <700000>; 228 + regulator-max-microvolt = <1470000>; 229 + regulator-enable-ramp-delay = <125>; 230 + }; 231 + 232 + ldo27_reg: LDO27 { 233 + regulator-name = "vdd_ldo27"; 234 + regulator-min-microvolt = <1500000>; 235 + regulator-max-microvolt = <2275000>; 236 + regulator-enable-ramp-delay = <125>; 237 + }; 238 + 239 + buck1_reg: BUCK1 { 240 + regulator-name = "vdd_mif"; 241 + regulator-min-microvolt = <500000>; 242 + regulator-max-microvolt = <1200000>; 243 + regulator-always-on; 244 + regulator-boot-on; 245 + regulator-ramp-delay = <25000>; 246 + regulator-enable-ramp-delay = <250>; 247 + }; 248 + 249 + buck2_reg: BUCK2 { 250 + regulator-name = "vdd_atlas"; 251 + regulator-min-microvolt = <1200000>; 252 + regulator-max-microvolt = <1200000>; 253 + regulator-always-on; 254 + regulator-boot-on; 255 + regulator-ramp-delay = <12500>; 256 + regulator-enable-ramp-delay = <250>; 257 + }; 258 + 259 + buck4_reg: BUCK4 { 260 + regulator-name = "vdd_int"; 261 + regulator-min-microvolt = <500000>; 262 + regulator-max-microvolt = <1200000>; 263 + regulator-always-on; 264 + regulator-boot-on; 265 + regulator-ramp-delay = <12500>; 266 + regulator-enable-ramp-delay = <250>; 267 + }; 268 + 269 + buck5_reg: BUCK5 { 270 + regulator-name = "vdd_buck5"; 271 + regulator-min-microvolt = <500000>; 272 + regulator-max-microvolt = <1300000>; 273 + regulator-ramp-delay = <25000>; 274 + regulator-enable-ramp-delay = <250>; 275 + }; 276 + 277 + buck6_reg: BUCK6 { 278 + regulator-name = "vdd_g3d"; 279 + regulator-min-microvolt = <500000>; 280 + regulator-max-microvolt = <1400000>; 281 + regulator-ramp-delay = <12500>; 282 + regulator-enable-ramp-delay = <250>; 283 + }; 284 + 285 + buck7_reg: BUCK7 { 286 + regulator-name = "vdd_buck7"; 287 + regulator-min-microvolt = <1000000>; 288 + regulator-max-microvolt = <1500000>; 289 + regulator-always-on; 290 + regulator-ramp-delay = <25000>; 291 + regulator-enable-ramp-delay = <250>; 292 + }; 293 + 294 + buck8_reg: BUCK8 { 295 + regulator-name = "vdd_buck8"; 296 + regulator-min-microvolt = <1000000>; 297 + regulator-max-microvolt = <1500000>; 298 + regulator-always-on; 299 + regulator-ramp-delay = <25000>; 300 + regulator-enable-ramp-delay = <250>; 301 + }; 302 + 303 + buck9_reg: BUCK9 { 304 + regulator-name = "vdd_buck9"; 305 + regulator-min-microvolt = <1800000>; 306 + regulator-max-microvolt = <2100000>; 307 + regulator-always-on; 308 + regulator-ramp-delay = <25000>; 309 + regulator-enable-ramp-delay = <250>; 310 + }; 311 + 312 + buck10_reg: BUCK10 { 313 + regulator-name = "vdd_buck10"; 314 + regulator-min-microvolt = <1000000>; 315 + regulator-max-microvolt = <3000000>; 316 + regulator-always-on; 317 + regulator-ramp-delay = <25000>; 318 + regulator-enable-ramp-delay = <250>; 319 + }; 320 + }; 321 + }; 322 + }; 323 + 324 + &pinctrl_alive { 325 + pmic_irq: pmic-irq { 326 + samsung,pins = "gpa0-2"; 327 + samsung,pin-pud = <3>; 328 + samsung,pin-drv = <3>; 329 + }; 330 + }; 331 + 56 332 &mmc_0 { 57 333 status = "okay"; 58 334 num-slots = <1>; 59 - broken-cd; 60 335 cap-mmc-highspeed; 336 + mmc-hs200-1_8v; 61 337 non-removable; 62 338 card-detect-delay = <200>; 63 339 clock-frequency = <800000000>; ··· 358 80 pinctrl-names = "default"; 359 81 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; 360 82 bus-width = <4>; 83 + vmmc-supply = <&ldo17_reg>; 84 + vqmmc-supply = <&ldo2_reg>; 361 85 disable-wp; 362 86 };
+7
arch/arm64/boot/dts/exynos/exynos7.dtsi
··· 454 454 reg = <0x105c0000 0x5000>; 455 455 }; 456 456 457 + reboot: syscon-reboot { 458 + compatible = "syscon-reboot"; 459 + regmap = <&pmu_system_controller>; 460 + offset = <0x0400>; 461 + mask = <0x1>; 462 + }; 463 + 457 464 rtc: rtc@10590000 { 458 465 compatible = "samsung,s3c6410-rtc"; 459 466 reg = <0x10590000 0x100>;
+1
arch/arm64/boot/dts/freescale/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb 2 2 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb 3 3 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb 4 + dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb 4 5 5 6 always := $(dtb-y) 6 7 subdir-y := $(dts-dirs)
+116
arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
··· 1 + /* 2 + * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 + * 4 + * Copyright 2014-2015, Freescale Semiconductor 5 + * 6 + * Mingkai Hu <Mingkai.hu@freescale.com> 7 + * 8 + * This file is dual-licensed: you can use it either under the terms 9 + * of the GPLv2 or the X11 license, at your option. Note that this dual 10 + * licensing only applies to this file, and not this project as a 11 + * whole. 12 + * 13 + * a) This library is free software; you can redistribute it and/or 14 + * modify it under the terms of the GNU General Public License as 15 + * published by the Free Software Foundation; either version 2 of the 16 + * License, or (at your option) any later version. 17 + * 18 + * This library is distributed in the hope that it will be useful, 19 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 + * GNU General Public License for more details. 22 + * 23 + * Or, alternatively, 24 + * 25 + * b) Permission is hereby granted, free of charge, to any person 26 + * obtaining a copy of this software and associated documentation 27 + * files (the "Software"), to deal in the Software without 28 + * restriction, including without limitation the rights to use, 29 + * copy, modify, merge, publish, distribute, sublicense, and/or 30 + * sell copies of the Software, and to permit persons to whom the 31 + * Software is furnished to do so, subject to the following 32 + * conditions: 33 + * 34 + * The above copyright notice and this permission notice shall be 35 + * included in all copies or substantial portions of the Software. 36 + * 37 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 38 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 39 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 40 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 41 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 42 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 43 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 44 + * OTHER DEALINGS IN THE SOFTWARE. 45 + */ 46 + 47 + /dts-v1/; 48 + /include/ "fsl-ls1043a.dtsi" 49 + 50 + / { 51 + model = "LS1043A RDB Board"; 52 + }; 53 + 54 + &i2c0 { 55 + status = "okay"; 56 + ina220@40 { 57 + compatible = "ti,ina220"; 58 + reg = <0x40>; 59 + shunt-resistor = <1000>; 60 + }; 61 + adt7461a@4c { 62 + compatible = "adi,adt7461"; 63 + reg = <0x4c>; 64 + }; 65 + eeprom@52 { 66 + compatible = "at24,24c512"; 67 + reg = <0x52>; 68 + }; 69 + eeprom@53 { 70 + compatible = "at24,24c512"; 71 + reg = <0x53>; 72 + }; 73 + rtc@68 { 74 + compatible = "pericom,pt7c4338"; 75 + reg = <0x68>; 76 + }; 77 + }; 78 + 79 + &ifc { 80 + status = "okay"; 81 + #address-cells = <2>; 82 + #size-cells = <1>; 83 + /* NOR, NAND Flashes and FPGA on board */ 84 + ranges = <0x0 0x0 0x0 0x60000000 0x08000000 85 + 0x1 0x0 0x0 0x7e800000 0x00010000 86 + 0x2 0x0 0x0 0x7fb00000 0x00000100>; 87 + 88 + nor@0,0 { 89 + compatible = "cfi-flash"; 90 + #address-cells = <1>; 91 + #size-cells = <1>; 92 + reg = <0x0 0x0 0x8000000>; 93 + bank-width = <2>; 94 + device-width = <1>; 95 + }; 96 + 97 + nand@1,0 { 98 + compatible = "fsl,ifc-nand"; 99 + #address-cells = <1>; 100 + #size-cells = <1>; 101 + reg = <0x1 0x0 0x10000>; 102 + }; 103 + 104 + cpld: board-control@2,0 { 105 + compatible = "fsl,ls1043ardb-cpld"; 106 + reg = <0x2 0x0 0x0000100>; 107 + }; 108 + }; 109 + 110 + &duart0 { 111 + status = "okay"; 112 + }; 113 + 114 + &duart1 { 115 + status = "okay"; 116 + };
+527
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
··· 1 + /* 2 + * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 + * 4 + * Copyright 2014-2015, Freescale Semiconductor 5 + * 6 + * Mingkai Hu <Mingkai.hu@freescale.com> 7 + * 8 + * This file is dual-licensed: you can use it either under the terms 9 + * of the GPLv2 or the X11 license, at your option. Note that this dual 10 + * licensing only applies to this file, and not this project as a 11 + * whole. 12 + * 13 + * a) This library is free software; you can redistribute it and/or 14 + * modify it under the terms of the GNU General Public License as 15 + * published by the Free Software Foundation; either version 2 of the 16 + * License, or (at your option) any later version. 17 + * 18 + * This library is distributed in the hope that it will be useful, 19 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 + * GNU General Public License for more details. 22 + * 23 + * Or, alternatively, 24 + * 25 + * b) Permission is hereby granted, free of charge, to any person 26 + * obtaining a copy of this software and associated documentation 27 + * files (the "Software"), to deal in the Software without 28 + * restriction, including without limitation the rights to use, 29 + * copy, modify, merge, publish, distribute, sublicense, and/or 30 + * sell copies of the Software, and to permit persons to whom the 31 + * Software is furnished to do so, subject to the following 32 + * conditions: 33 + * 34 + * The above copyright notice and this permission notice shall be 35 + * included in all copies or substantial portions of the Software. 36 + * 37 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 38 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 39 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 40 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 41 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 42 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 43 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 44 + * OTHER DEALINGS IN THE SOFTWARE. 45 + */ 46 + 47 + / { 48 + compatible = "fsl,ls1043a"; 49 + interrupt-parent = <&gic>; 50 + #address-cells = <2>; 51 + #size-cells = <2>; 52 + 53 + cpus { 54 + #address-cells = <2>; 55 + #size-cells = <0>; 56 + 57 + /* 58 + * We expect the enable-method for cpu's to be "psci", but this 59 + * is dependent on the SoC FW, which will fill this in. 60 + * 61 + * Currently supported enable-method is psci v0.2 62 + */ 63 + cpu0: cpu@0 { 64 + device_type = "cpu"; 65 + compatible = "arm,cortex-a53"; 66 + reg = <0x0 0x0>; 67 + clocks = <&clockgen 1 0>; 68 + }; 69 + 70 + cpu1: cpu@1 { 71 + device_type = "cpu"; 72 + compatible = "arm,cortex-a53"; 73 + reg = <0x0 0x1>; 74 + clocks = <&clockgen 1 0>; 75 + }; 76 + 77 + cpu2: cpu@2 { 78 + device_type = "cpu"; 79 + compatible = "arm,cortex-a53"; 80 + reg = <0x0 0x2>; 81 + clocks = <&clockgen 1 0>; 82 + }; 83 + 84 + cpu3: cpu@3 { 85 + device_type = "cpu"; 86 + compatible = "arm,cortex-a53"; 87 + reg = <0x0 0x3>; 88 + clocks = <&clockgen 1 0>; 89 + }; 90 + }; 91 + 92 + memory@80000000 { 93 + device_type = "memory"; 94 + reg = <0x0 0x80000000 0 0x80000000>; 95 + /* DRAM space 1, size: 2GiB DRAM */ 96 + }; 97 + 98 + sysclk: sysclk { 99 + compatible = "fixed-clock"; 100 + #clock-cells = <0>; 101 + clock-frequency = <100000000>; 102 + clock-output-names = "sysclk"; 103 + }; 104 + 105 + reboot { 106 + compatible ="syscon-reboot"; 107 + regmap = <&dcfg>; 108 + offset = <0xb0>; 109 + mask = <0x02>; 110 + }; 111 + 112 + timer { 113 + compatible = "arm,armv8-timer"; 114 + interrupts = <1 13 0x1>, /* Physical Secure PPI */ 115 + <1 14 0x1>, /* Physical Non-Secure PPI */ 116 + <1 11 0x1>, /* Virtual PPI */ 117 + <1 10 0x1>; /* Hypervisor PPI */ 118 + }; 119 + 120 + pmu { 121 + compatible = "arm,armv8-pmuv3"; 122 + interrupts = <0 106 0x4>, 123 + <0 107 0x4>, 124 + <0 95 0x4>, 125 + <0 97 0x4>; 126 + interrupt-affinity = <&cpu0>, 127 + <&cpu1>, 128 + <&cpu2>, 129 + <&cpu3>; 130 + }; 131 + 132 + gic: interrupt-controller@1400000 { 133 + compatible = "arm,gic-400"; 134 + #interrupt-cells = <3>; 135 + interrupt-controller; 136 + reg = <0x0 0x1401000 0 0x1000>, /* GICD */ 137 + <0x0 0x1402000 0 0x2000>, /* GICC */ 138 + <0x0 0x1404000 0 0x2000>, /* GICH */ 139 + <0x0 0x1406000 0 0x2000>; /* GICV */ 140 + interrupts = <1 9 0xf08>; 141 + }; 142 + 143 + soc { 144 + compatible = "simple-bus"; 145 + #address-cells = <2>; 146 + #size-cells = <2>; 147 + ranges; 148 + 149 + clockgen: clocking@1ee1000 { 150 + compatible = "fsl,ls1043a-clockgen"; 151 + reg = <0x0 0x1ee1000 0x0 0x1000>; 152 + #clock-cells = <2>; 153 + clocks = <&sysclk>; 154 + }; 155 + 156 + scfg: scfg@1570000 { 157 + compatible = "fsl,ls1043a-scfg", "syscon"; 158 + reg = <0x0 0x1570000 0x0 0x10000>; 159 + big-endian; 160 + }; 161 + 162 + dcfg: dcfg@1ee0000 { 163 + compatible = "fsl,ls1043a-dcfg", "syscon"; 164 + reg = <0x0 0x1ee0000 0x0 0x10000>; 165 + big-endian; 166 + }; 167 + 168 + ifc: ifc@1530000 { 169 + compatible = "fsl,ifc", "simple-bus"; 170 + reg = <0x0 0x1530000 0x0 0x10000>; 171 + interrupts = <0 43 0x4>; 172 + }; 173 + 174 + esdhc: esdhc@1560000 { 175 + compatible = "fsl,ls1043a-esdhc", "fsl,esdhc"; 176 + reg = <0x0 0x1560000 0x0 0x10000>; 177 + interrupts = <0 62 0x4>; 178 + clock-frequency = <0>; 179 + voltage-ranges = <1800 1800 3300 3300>; 180 + sdhci,auto-cmd12; 181 + big-endian; 182 + bus-width = <4>; 183 + }; 184 + 185 + dspi0: dspi@2100000 { 186 + compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi"; 187 + #address-cells = <1>; 188 + #size-cells = <0>; 189 + reg = <0x0 0x2100000 0x0 0x10000>; 190 + interrupts = <0 64 0x4>; 191 + clock-names = "dspi"; 192 + clocks = <&clockgen 4 0>; 193 + spi-num-chipselects = <5>; 194 + big-endian; 195 + status = "disabled"; 196 + }; 197 + 198 + dspi1: dspi@2110000 { 199 + compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi"; 200 + #address-cells = <1>; 201 + #size-cells = <0>; 202 + reg = <0x0 0x2110000 0x0 0x10000>; 203 + interrupts = <0 65 0x4>; 204 + clock-names = "dspi"; 205 + clocks = <&clockgen 4 0>; 206 + spi-num-chipselects = <5>; 207 + big-endian; 208 + status = "disabled"; 209 + }; 210 + 211 + i2c0: i2c@2180000 { 212 + compatible = "fsl,vf610-i2c"; 213 + #address-cells = <1>; 214 + #size-cells = <0>; 215 + reg = <0x0 0x2180000 0x0 0x10000>; 216 + interrupts = <0 56 0x4>; 217 + clock-names = "i2c"; 218 + clocks = <&clockgen 4 0>; 219 + dmas = <&edma0 1 39>, 220 + <&edma0 1 38>; 221 + dma-names = "tx", "rx"; 222 + status = "disabled"; 223 + }; 224 + 225 + i2c1: i2c@2190000 { 226 + compatible = "fsl,vf610-i2c"; 227 + #address-cells = <1>; 228 + #size-cells = <0>; 229 + reg = <0x0 0x2190000 0x0 0x10000>; 230 + interrupts = <0 57 0x4>; 231 + clock-names = "i2c"; 232 + clocks = <&clockgen 4 0>; 233 + status = "disabled"; 234 + }; 235 + 236 + i2c2: i2c@21a0000 { 237 + compatible = "fsl,vf610-i2c"; 238 + #address-cells = <1>; 239 + #size-cells = <0>; 240 + reg = <0x0 0x21a0000 0x0 0x10000>; 241 + interrupts = <0 58 0x4>; 242 + clock-names = "i2c"; 243 + clocks = <&clockgen 4 0>; 244 + status = "disabled"; 245 + }; 246 + 247 + i2c3: i2c@21b0000 { 248 + compatible = "fsl,vf610-i2c"; 249 + #address-cells = <1>; 250 + #size-cells = <0>; 251 + reg = <0x0 0x21b0000 0x0 0x10000>; 252 + interrupts = <0 59 0x4>; 253 + clock-names = "i2c"; 254 + clocks = <&clockgen 4 0>; 255 + status = "disabled"; 256 + }; 257 + 258 + duart0: serial@21c0500 { 259 + compatible = "fsl,ns16550", "ns16550a"; 260 + reg = <0x00 0x21c0500 0x0 0x100>; 261 + interrupts = <0 54 0x4>; 262 + clocks = <&clockgen 4 0>; 263 + }; 264 + 265 + duart1: serial@21c0600 { 266 + compatible = "fsl,ns16550", "ns16550a"; 267 + reg = <0x00 0x21c0600 0x0 0x100>; 268 + interrupts = <0 54 0x4>; 269 + clocks = <&clockgen 4 0>; 270 + }; 271 + 272 + duart2: serial@21d0500 { 273 + compatible = "fsl,ns16550", "ns16550a"; 274 + reg = <0x0 0x21d0500 0x0 0x100>; 275 + interrupts = <0 55 0x4>; 276 + clocks = <&clockgen 4 0>; 277 + }; 278 + 279 + duart3: serial@21d0600 { 280 + compatible = "fsl,ns16550", "ns16550a"; 281 + reg = <0x0 0x21d0600 0x0 0x100>; 282 + interrupts = <0 55 0x4>; 283 + clocks = <&clockgen 4 0>; 284 + }; 285 + 286 + gpio1: gpio@2300000 { 287 + compatible = "fsl,ls1043a-gpio"; 288 + reg = <0x0 0x2300000 0x0 0x10000>; 289 + interrupts = <0 66 0x4>; 290 + gpio-controller; 291 + #gpio-cells = <2>; 292 + interrupt-controller; 293 + #interrupt-cells = <2>; 294 + }; 295 + 296 + gpio2: gpio@2310000 { 297 + compatible = "fsl,ls1043a-gpio"; 298 + reg = <0x0 0x2310000 0x0 0x10000>; 299 + interrupts = <0 67 0x4>; 300 + gpio-controller; 301 + #gpio-cells = <2>; 302 + interrupt-controller; 303 + #interrupt-cells = <2>; 304 + }; 305 + 306 + gpio3: gpio@2320000 { 307 + compatible = "fsl,ls1043a-gpio"; 308 + reg = <0x0 0x2320000 0x0 0x10000>; 309 + interrupts = <0 68 0x4>; 310 + gpio-controller; 311 + #gpio-cells = <2>; 312 + interrupt-controller; 313 + #interrupt-cells = <2>; 314 + }; 315 + 316 + gpio4: gpio@2330000 { 317 + compatible = "fsl,ls1043a-gpio"; 318 + reg = <0x0 0x2330000 0x0 0x10000>; 319 + interrupts = <0 134 0x4>; 320 + gpio-controller; 321 + #gpio-cells = <2>; 322 + interrupt-controller; 323 + #interrupt-cells = <2>; 324 + }; 325 + 326 + lpuart0: serial@2950000 { 327 + compatible = "fsl,ls1021a-lpuart"; 328 + reg = <0x0 0x2950000 0x0 0x1000>; 329 + interrupts = <0 48 0x4>; 330 + clocks = <&clockgen 0 0>; 331 + clock-names = "ipg"; 332 + status = "disabled"; 333 + }; 334 + 335 + lpuart1: serial@2960000 { 336 + compatible = "fsl,ls1021a-lpuart"; 337 + reg = <0x0 0x2960000 0x0 0x1000>; 338 + interrupts = <0 49 0x4>; 339 + clocks = <&clockgen 4 0>; 340 + clock-names = "ipg"; 341 + status = "disabled"; 342 + }; 343 + 344 + lpuart2: serial@2970000 { 345 + compatible = "fsl,ls1021a-lpuart"; 346 + reg = <0x0 0x2970000 0x0 0x1000>; 347 + interrupts = <0 50 0x4>; 348 + clocks = <&clockgen 4 0>; 349 + clock-names = "ipg"; 350 + status = "disabled"; 351 + }; 352 + 353 + lpuart3: serial@2980000 { 354 + compatible = "fsl,ls1021a-lpuart"; 355 + reg = <0x0 0x2980000 0x0 0x1000>; 356 + interrupts = <0 51 0x4>; 357 + clocks = <&clockgen 4 0>; 358 + clock-names = "ipg"; 359 + status = "disabled"; 360 + }; 361 + 362 + lpuart4: serial@2990000 { 363 + compatible = "fsl,ls1021a-lpuart"; 364 + reg = <0x0 0x2990000 0x0 0x1000>; 365 + interrupts = <0 52 0x4>; 366 + clocks = <&clockgen 4 0>; 367 + clock-names = "ipg"; 368 + status = "disabled"; 369 + }; 370 + 371 + lpuart5: serial@29a0000 { 372 + compatible = "fsl,ls1021a-lpuart"; 373 + reg = <0x0 0x29a0000 0x0 0x1000>; 374 + interrupts = <0 53 0x4>; 375 + clocks = <&clockgen 4 0>; 376 + clock-names = "ipg"; 377 + status = "disabled"; 378 + }; 379 + 380 + wdog0: wdog@2ad0000 { 381 + compatible = "fsl,ls1043a-wdt", "fsl,imx21-wdt"; 382 + reg = <0x0 0x2ad0000 0x0 0x10000>; 383 + interrupts = <0 83 0x4>; 384 + clocks = <&clockgen 4 0>; 385 + clock-names = "wdog"; 386 + big-endian; 387 + }; 388 + 389 + edma0: edma@2c00000 { 390 + #dma-cells = <2>; 391 + compatible = "fsl,vf610-edma"; 392 + reg = <0x0 0x2c00000 0x0 0x10000>, 393 + <0x0 0x2c10000 0x0 0x10000>, 394 + <0x0 0x2c20000 0x0 0x10000>; 395 + interrupts = <0 103 0x4>, 396 + <0 103 0x4>; 397 + interrupt-names = "edma-tx", "edma-err"; 398 + dma-channels = <32>; 399 + big-endian; 400 + clock-names = "dmamux0", "dmamux1"; 401 + clocks = <&clockgen 4 0>, 402 + <&clockgen 4 0>; 403 + }; 404 + 405 + usb0: usb3@2f00000 { 406 + compatible = "snps,dwc3"; 407 + reg = <0x0 0x2f00000 0x0 0x10000>; 408 + interrupts = <0 60 0x4>; 409 + dr_mode = "host"; 410 + }; 411 + 412 + usb1: usb3@3000000 { 413 + compatible = "snps,dwc3"; 414 + reg = <0x0 0x3000000 0x0 0x10000>; 415 + interrupts = <0 61 0x4>; 416 + dr_mode = "host"; 417 + }; 418 + 419 + usb2: usb3@3100000 { 420 + compatible = "snps,dwc3"; 421 + reg = <0x0 0x3100000 0x0 0x10000>; 422 + interrupts = <0 63 0x4>; 423 + dr_mode = "host"; 424 + }; 425 + 426 + sata: sata@3200000 { 427 + compatible = "fsl,ls1043a-ahci", "fsl,ls1021a-ahci"; 428 + reg = <0x0 0x3200000 0x0 0x10000>; 429 + interrupts = <0 69 0x4>; 430 + clocks = <&clockgen 4 0>; 431 + }; 432 + 433 + msi1: msi-controller1@1571000 { 434 + compatible = "fsl,1s1043a-msi"; 435 + reg = <0x0 0x1571000 0x0 0x8>; 436 + msi-controller; 437 + interrupts = <0 116 0x4>; 438 + }; 439 + 440 + msi2: msi-controller2@1572000 { 441 + compatible = "fsl,1s1043a-msi"; 442 + reg = <0x0 0x1572000 0x0 0x8>; 443 + msi-controller; 444 + interrupts = <0 126 0x4>; 445 + }; 446 + 447 + msi3: msi-controller3@1573000 { 448 + compatible = "fsl,1s1043a-msi"; 449 + reg = <0x0 0x1573000 0x0 0x8>; 450 + msi-controller; 451 + interrupts = <0 160 0x4>; 452 + }; 453 + 454 + pcie@3400000 { 455 + compatible = "fsl,ls1043a-pcie", "snps,dw-pcie"; 456 + reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */ 457 + 0x40 0x00000000 0x0 0x00002000>; /* configuration space */ 458 + reg-names = "regs", "config"; 459 + interrupts = <0 118 0x4>, /* controller interrupt */ 460 + <0 117 0x4>; /* PME interrupt */ 461 + interrupt-names = "intr", "pme"; 462 + #address-cells = <3>; 463 + #size-cells = <2>; 464 + device_type = "pci"; 465 + num-lanes = <4>; 466 + bus-range = <0x0 0xff>; 467 + ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */ 468 + 0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ 469 + msi-parent = <&msi1>; 470 + #interrupt-cells = <1>; 471 + interrupt-map-mask = <0 0 0 7>; 472 + interrupt-map = <0000 0 0 1 &gic 0 110 0x4>, 473 + <0000 0 0 2 &gic 0 111 0x4>, 474 + <0000 0 0 3 &gic 0 112 0x4>, 475 + <0000 0 0 4 &gic 0 113 0x4>; 476 + }; 477 + 478 + pcie@3500000 { 479 + compatible = "fsl,ls1043a-pcie", "snps,dw-pcie"; 480 + reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */ 481 + 0x48 0x00000000 0x0 0x00002000>; /* configuration space */ 482 + reg-names = "regs", "config"; 483 + interrupts = <0 128 0x4>, 484 + <0 127 0x4>; 485 + interrupt-names = "intr", "pme"; 486 + #address-cells = <3>; 487 + #size-cells = <2>; 488 + device_type = "pci"; 489 + num-lanes = <2>; 490 + bus-range = <0x0 0xff>; 491 + ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */ 492 + 0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ 493 + msi-parent = <&msi2>; 494 + #interrupt-cells = <1>; 495 + interrupt-map-mask = <0 0 0 7>; 496 + interrupt-map = <0000 0 0 1 &gic 0 120 0x4>, 497 + <0000 0 0 2 &gic 0 121 0x4>, 498 + <0000 0 0 3 &gic 0 122 0x4>, 499 + <0000 0 0 4 &gic 0 123 0x4>; 500 + }; 501 + 502 + pcie@3600000 { 503 + compatible = "fsl,ls1043a-pcie", "snps,dw-pcie"; 504 + reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */ 505 + 0x50 0x00000000 0x0 0x00002000>; /* configuration space */ 506 + reg-names = "regs", "config"; 507 + interrupts = <0 162 0x4>, 508 + <0 161 0x4>; 509 + interrupt-names = "intr", "pme"; 510 + #address-cells = <3>; 511 + #size-cells = <2>; 512 + device_type = "pci"; 513 + num-lanes = <2>; 514 + bus-range = <0x0 0xff>; 515 + ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000 /* downstream I/O */ 516 + 0x82000000 0x0 0x40000000 0x50 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ 517 + msi-parent = <&msi3>; 518 + #interrupt-cells = <1>; 519 + interrupt-map-mask = <0 0 0 7>; 520 + interrupt-map = <0000 0 0 1 &gic 0 154 0x4>, 521 + <0000 0 0 2 &gic 0 155 0x4>, 522 + <0000 0 0 3 &gic 0 156 0x4>, 523 + <0000 0 0 4 &gic 0 157 0x4>; 524 + }; 525 + }; 526 + 527 + };
+68
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
··· 153 153 }; 154 154 }; 155 155 156 + rstcr: syscon@1e60000 { 157 + compatible = "fsl,ls2080a-rstcr", "syscon"; 158 + reg = <0x0 0x1e60000 0x0 0x4>; 159 + }; 160 + 161 + reboot { 162 + compatible ="syscon-reboot"; 163 + regmap = <&rstcr>; 164 + offset = <0x0>; 165 + mask = <0x2>; 166 + }; 167 + 156 168 timer { 157 169 compatible = "arm,armv8-timer"; 158 170 interrupts = <1 13 0x8>, /* Physical Secure PPI, active-low */ ··· 203 191 reg = <0x0 0x21c0600 0x0 0x100>; 204 192 clocks = <&clockgen 4 3>; 205 193 interrupts = <0 32 0x4>; /* Level high type */ 194 + }; 195 + 196 + cluster1_core0_watchdog: wdt@c000000 { 197 + compatible = "arm,sp805-wdt", "arm,primecell"; 198 + reg = <0x0 0xc000000 0x0 0x1000>; 199 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 200 + clock-names = "apb_pclk", "wdog_clk"; 201 + }; 202 + 203 + cluster1_core1_watchdog: wdt@c010000 { 204 + compatible = "arm,sp805-wdt", "arm,primecell"; 205 + reg = <0x0 0xc010000 0x0 0x1000>; 206 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 207 + clock-names = "apb_pclk", "wdog_clk"; 208 + }; 209 + 210 + cluster2_core0_watchdog: wdt@c100000 { 211 + compatible = "arm,sp805-wdt", "arm,primecell"; 212 + reg = <0x0 0xc100000 0x0 0x1000>; 213 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 214 + clock-names = "apb_pclk", "wdog_clk"; 215 + }; 216 + 217 + cluster2_core1_watchdog: wdt@c110000 { 218 + compatible = "arm,sp805-wdt", "arm,primecell"; 219 + reg = <0x0 0xc110000 0x0 0x1000>; 220 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 221 + clock-names = "apb_pclk", "wdog_clk"; 222 + }; 223 + 224 + cluster3_core0_watchdog: wdt@c200000 { 225 + compatible = "arm,sp805-wdt", "arm,primecell"; 226 + reg = <0x0 0xc200000 0x0 0x1000>; 227 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 228 + clock-names = "apb_pclk", "wdog_clk"; 229 + }; 230 + 231 + cluster3_core1_watchdog: wdt@c210000 { 232 + compatible = "arm,sp805-wdt", "arm,primecell"; 233 + reg = <0x0 0xc210000 0x0 0x1000>; 234 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 235 + clock-names = "apb_pclk", "wdog_clk"; 236 + }; 237 + 238 + cluster4_core0_watchdog: wdt@c300000 { 239 + compatible = "arm,sp805-wdt", "arm,primecell"; 240 + reg = <0x0 0xc300000 0x0 0x1000>; 241 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 242 + clock-names = "apb_pclk", "wdog_clk"; 243 + }; 244 + 245 + cluster4_core1_watchdog: wdt@c310000 { 246 + compatible = "arm,sp805-wdt", "arm,primecell"; 247 + reg = <0x0 0xc310000 0x0 0x1000>; 248 + clocks = <&clockgen 4 3>, <&clockgen 4 3>; 249 + clock-names = "apb_pclk", "wdog_clk"; 206 250 }; 207 251 208 252 fsl_mc: fsl-mc@80c000000 {
+7
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
··· 32 32 reg = <0x0 0x0 0x0 0x40000000>; 33 33 }; 34 34 }; 35 + 36 + &uart2 { 37 + label = "LS-UART0"; 38 + }; 39 + &uart3 { 40 + label = "LS-UART1"; 41 + };
+62 -1
arch/arm64/boot/dts/marvell/berlin4ct.dtsi
··· 55 55 }; 56 56 57 57 psci { 58 - compatible = "arm,psci-0.2"; 58 + compatible = "arm,psci-1.0", "arm,psci-0.2"; 59 59 method = "smc"; 60 60 }; 61 61 ··· 68 68 device_type = "cpu"; 69 69 reg = <0x0>; 70 70 enable-method = "psci"; 71 + cpu-idle-states = <&CPU_SLEEP_0>; 71 72 }; 72 73 73 74 cpu1: cpu@1 { ··· 76 75 device_type = "cpu"; 77 76 reg = <0x1>; 78 77 enable-method = "psci"; 78 + cpu-idle-states = <&CPU_SLEEP_0>; 79 79 }; 80 80 81 81 cpu2: cpu@2 { ··· 84 82 device_type = "cpu"; 85 83 reg = <0x2>; 86 84 enable-method = "psci"; 85 + cpu-idle-states = <&CPU_SLEEP_0>; 87 86 }; 88 87 89 88 cpu3: cpu@3 { ··· 92 89 device_type = "cpu"; 93 90 reg = <0x3>; 94 91 enable-method = "psci"; 92 + cpu-idle-states = <&CPU_SLEEP_0>; 93 + }; 94 + 95 + idle-states { 96 + entry-method = "psci"; 97 + CPU_SLEEP_0: cpu-sleep-0 { 98 + compatible = "arm,idle-state"; 99 + local-timer-stop; 100 + arm,psci-suspend-param = <0x0010000>; 101 + entry-latency-us = <75>; 102 + exit-latency-us = <155>; 103 + min-residency-us = <1000>; 104 + }; 95 105 }; 96 106 }; 97 107 ··· 241 225 }; 242 226 }; 243 227 228 + soc_pinctrl: pin-controller@ea8000 { 229 + compatible = "marvell,berlin4ct-soc-pinctrl"; 230 + reg = <0xea8000 0x14>; 231 + }; 232 + 233 + avio_pinctrl: pin-controller@ea8400 { 234 + compatible = "marvell,berlin4ct-avio-pinctrl"; 235 + reg = <0xea8400 0x8>; 236 + }; 237 + 244 238 apb@fc0000 { 245 239 compatible = "simple-bus"; 246 240 #address-cells = <1>; ··· 265 239 #interrupt-cells = <1>; 266 240 interrupt-parent = <&gic>; 267 241 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 242 + }; 243 + 244 + wdt0: watchdog@3000 { 245 + compatible = "snps,dw-wdt"; 246 + reg = <0x3000 0x100>; 247 + clocks = <&osc>; 248 + interrupts = <0>; 249 + }; 250 + 251 + wdt1: watchdog@4000 { 252 + compatible = "snps,dw-wdt"; 253 + reg = <0x4000 0x100>; 254 + clocks = <&osc>; 255 + interrupts = <1>; 256 + status = "disabled"; 257 + }; 258 + 259 + wdt2: watchdog@5000 { 260 + compatible = "snps,dw-wdt"; 261 + reg = <0x5000 0x100>; 262 + clocks = <&osc>; 263 + interrupts = <2>; 264 + status = "disabled"; 268 265 }; 269 266 270 267 sm_gpio0: gpio@8000 { ··· 327 278 clocks = <&osc>; 328 279 reg-shift = <2>; 329 280 status = "disabled"; 281 + pinctrl-0 = <&uart0_pmux>; 282 + pinctrl-names = "default"; 283 + }; 284 + }; 285 + 286 + system_pinctrl: pin-controller@fe2200 { 287 + compatible = "marvell,berlin4ct-system-pinctrl"; 288 + reg = <0xfe2200 0xc>; 289 + 290 + uart0_pmux: uart0-pmux { 291 + groups = "SM_URT0_TXD", "SM_URT0_RXD"; 292 + function = "uart0"; 330 293 }; 331 294 }; 332 295 };
+13
arch/arm64/boot/dts/mediatek/mt8173-evb.dts
··· 102 102 }; 103 103 104 104 &pio { 105 + disp_pwm0_pins: disp_pwm0_pins { 106 + pins1 { 107 + pinmux = <MT8173_PIN_87_DISP_PWM0__FUNC_DISP_PWM0>; 108 + output-low; 109 + }; 110 + }; 111 + 105 112 mmc0_pins_default: mmc0default { 106 113 pins_cmd_dat { 107 114 pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>, ··· 205 198 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 206 199 }; 207 200 }; 201 + }; 202 + 203 + &pwm0 { 204 + pinctrl-names = "default"; 205 + pinctrl-0 = <&disp_pwm0_pins>; 206 + status = "okay"; 208 207 }; 209 208 210 209 &pwrap {
+32 -1
arch/arm64/boot/dts/mediatek/mt8173.dtsi
··· 96 96 }; 97 97 98 98 psci { 99 - compatible = "arm,psci"; 99 + compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci"; 100 100 method = "smc"; 101 101 cpu_suspend = <0x84000001>; 102 102 cpu_off = <0x84000002>; ··· 246 246 compatible = "mediatek,mt8173-wdt", 247 247 "mediatek,mt6589-wdt"; 248 248 reg = <0 0x10007000 0 0x100>; 249 + }; 250 + 251 + timer: timer@10008000 { 252 + compatible = "mediatek,mt8173-timer", 253 + "mediatek,mt6577-timer"; 254 + reg = <0 0x10008000 0 0x1000>; 255 + interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_LOW>; 256 + clocks = <&infracfg CLK_INFRA_CLK_13M>, 257 + <&topckgen CLK_TOP_RTC_SEL>; 249 258 }; 250 259 251 260 pwrap: pwrap@1000d000 { ··· 565 556 compatible = "mediatek,mt8173-mmsys", "syscon"; 566 557 reg = <0 0x14000000 0 0x1000>; 567 558 #clock-cells = <1>; 559 + }; 560 + 561 + pwm0: pwm@1401e000 { 562 + compatible = "mediatek,mt8173-disp-pwm", 563 + "mediatek,mt6595-disp-pwm"; 564 + reg = <0 0x1401e000 0 0x1000>; 565 + #pwm-cells = <2>; 566 + clocks = <&mmsys CLK_MM_DISP_PWM026M>, 567 + <&mmsys CLK_MM_DISP_PWM0MM>; 568 + clock-names = "main", "mm"; 569 + status = "disabled"; 570 + }; 571 + 572 + pwm1: pwm@1401f000 { 573 + compatible = "mediatek,mt8173-disp-pwm", 574 + "mediatek,mt6595-disp-pwm"; 575 + reg = <0 0x1401f000 0 0x1000>; 576 + #pwm-cells = <2>; 577 + clocks = <&mmsys CLK_MM_DISP_PWM126M>, 578 + <&mmsys CLK_MM_DISP_PWM1MM>; 579 + clock-names = "main", "mm"; 580 + status = "disabled"; 568 581 }; 569 582 570 583 imgsys: clock-controller@15000000 {
+18
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
··· 20 20 aliases { 21 21 serial0 = &blsp1_uart2; 22 22 serial1 = &blsp1_uart1; 23 + usid0 = &pm8916_0; 24 + i2c0 = &blsp_i2c2; 25 + i2c1 = &blsp_i2c6; 26 + i2c3 = &blsp_i2c4; 23 27 }; 24 28 25 29 chosen { ··· 31 27 }; 32 28 33 29 soc { 30 + serial@78af000 { 31 + label = "LS-UART0"; 32 + status = "okay"; 33 + pinctrl-names = "default", "sleep"; 34 + pinctrl-0 = <&blsp1_uart1_default>; 35 + pinctrl-1 = <&blsp1_uart1_sleep>; 36 + }; 37 + 34 38 serial@78b0000 { 39 + label = "LS-UART1"; 35 40 status = "okay"; 36 41 pinctrl-names = "default", "sleep"; 37 42 pinctrl-0 = <&blsp1_uart2_default>; ··· 49 36 50 37 i2c@78b6000 { 51 38 /* On Low speed expansion */ 39 + label = "LS-I2C0"; 52 40 status = "okay"; 53 41 }; 54 42 55 43 i2c@78b8000 { 56 44 /* On High speed expansion */ 45 + label = "HS-I2C2"; 57 46 status = "okay"; 58 47 }; 59 48 60 49 i2c@78ba000 { 61 50 /* On Low speed expansion */ 51 + label = "LS-I2C1"; 62 52 status = "okay"; 63 53 }; 64 54 65 55 spi@78b7000 { 66 56 /* On High speed expansion */ 57 + label = "HS-SPI1"; 67 58 status = "okay"; 68 59 }; 69 60 70 61 spi@78b9000 { 71 62 /* On Low speed expansion */ 63 + label = "LS-SPI0"; 72 64 status = "okay"; 73 65 }; 74 66
+1 -1
arch/arm64/boot/dts/qcom/msm8916-mtp.dts
··· 17 17 18 18 / { 19 19 model = "Qualcomm Technologies, Inc. MSM 8916 MTP"; 20 - compatible = "qcom,msm8916-mtp", "qcom,msm8916-mtp-smb1360", 20 + compatible = "qcom,msm8916-mtp", "qcom,msm8916-mtp/1", 21 21 "qcom,msm8916", "qcom,mtp"; 22 22 };
+1
arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi
··· 17 17 / { 18 18 aliases { 19 19 serial0 = &blsp1_uart2; 20 + usid0 = &pm8916_0; 20 21 }; 21 22 22 23 chosen {
+12 -7
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
··· 16 16 blsp1_uart1_default: blsp1_uart1_default { 17 17 pinmux { 18 18 function = "blsp_uart1"; 19 - pins = "gpio0", "gpio1"; 19 + // TX, RX, CTS_N, RTS_N 20 + pins = "gpio0", "gpio1", 21 + "gpio2", "gpio3"; 20 22 }; 21 23 pinconf { 22 - pins = "gpio0", "gpio1"; 24 + pins = "gpio0", "gpio1", 25 + "gpio2", "gpio3"; 23 26 drive-strength = <16>; 24 27 bias-disable; 25 28 }; ··· 31 28 blsp1_uart1_sleep: blsp1_uart1_sleep { 32 29 pinmux { 33 30 function = "gpio"; 34 - pins = "gpio0", "gpio1"; 31 + pins = "gpio0", "gpio1", 32 + "gpio2", "gpio3"; 35 33 }; 36 34 pinconf { 37 - pins = "gpio0", "gpio1"; 35 + pins = "gpio0", "gpio1", 36 + "gpio2", "gpio3"; 38 37 drive-strength = <2>; 39 38 bias-pull-down; 40 39 }; ··· 277 272 }; 278 273 pinconf { 279 274 pins = "gpio6", "gpio7"; 280 - drive-strength = <2>; 275 + drive-strength = <16>; 281 276 bias-disable = <0>; 282 277 }; 283 278 }; ··· 301 296 }; 302 297 pinconf { 303 298 pins = "gpio14", "gpio15"; 304 - drive-strength = <2>; 299 + drive-strength = <16>; 305 300 bias-disable = <0>; 306 301 }; 307 302 }; ··· 325 320 }; 326 321 pinconf { 327 322 pins = "gpio22", "gpio23"; 328 - drive-strength = <2>; 323 + drive-strength = <16>; 329 324 bias-disable = <0>; 330 325 }; 331 326 };
+107
arch/arm64/boot/dts/qcom/msm8916.dtsi
··· 37 37 reg = <0 0 0 0>; 38 38 }; 39 39 40 + reserved-memory { 41 + #address-cells = <2>; 42 + #size-cells = <2>; 43 + ranges; 44 + 45 + reserve_aligned@86000000 { 46 + reg = <0x0 0x86000000 0x0 0x0300000>; 47 + no-map; 48 + }; 49 + 50 + smem_mem: smem_region@86300000 { 51 + reg = <0x0 0x86300000 0x0 0x0100000>; 52 + no-map; 53 + }; 54 + }; 55 + 40 56 cpus { 41 57 #address-cells = <1>; 42 58 #size-cells = <0>; ··· 90 74 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 91 75 }; 92 76 77 + clocks { 78 + xo_board: xo_board { 79 + compatible = "fixed-clock"; 80 + #clock-cells = <0>; 81 + clock-frequency = <19200000>; 82 + }; 83 + 84 + sleep_clk: sleep_clk { 85 + compatible = "fixed-clock"; 86 + #clock-cells = <0>; 87 + clock-frequency = <32768>; 88 + }; 89 + }; 90 + 91 + smem { 92 + compatible = "qcom,smem"; 93 + 94 + memory-region = <&smem_mem>; 95 + qcom,rpm-msg-ram = <&rpm_msg_ram>; 96 + 97 + hwlocks = <&tcsr_mutex 3>; 98 + }; 99 + 93 100 soc: soc { 94 101 #address-cells = <1>; 95 102 #size-cells = <1>; ··· 142 103 reg = <0x1800000 0x80000>; 143 104 }; 144 105 106 + tcsr_mutex_regs: syscon@1905000 { 107 + compatible = "syscon"; 108 + reg = <0x1905000 0x20000>; 109 + }; 110 + 111 + tcsr_mutex: hwlock { 112 + compatible = "qcom,tcsr-mutex"; 113 + syscon = <&tcsr_mutex_regs 0 0x1000>; 114 + #hwlock-cells = <1>; 115 + }; 116 + 117 + rpm_msg_ram: memory@60000 { 118 + compatible = "qcom,rpm-msg-ram"; 119 + reg = <0x60000 0x8000>; 120 + }; 121 + 145 122 blsp1_uart1: serial@78af000 { 146 123 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 147 124 reg = <0x78af000 0x200>; 148 125 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 149 126 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 150 127 clock-names = "core", "iface"; 128 + dmas = <&blsp_dma 1>, <&blsp_dma 0>; 129 + dma-names = "rx", "tx"; 151 130 status = "disabled"; 131 + }; 132 + 133 + apcs: syscon@b011000 { 134 + compatible = "syscon"; 135 + reg = <0x0b011000 0x1000>; 152 136 }; 153 137 154 138 blsp1_uart2: serial@78b0000 { ··· 180 118 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 181 119 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 182 120 clock-names = "core", "iface"; 121 + dmas = <&blsp_dma 3>, <&blsp_dma 2>; 122 + dma-names = "rx", "tx"; 183 123 status = "disabled"; 184 124 }; 185 125 ··· 500 436 reg = <0x00022000 0x200>; 501 437 clocks = <&gcc GCC_PRNG_AHB_CLK>; 502 438 clock-names = "core"; 439 + }; 440 + }; 441 + 442 + smd { 443 + compatible = "qcom,smd"; 444 + 445 + rpm { 446 + interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 447 + qcom,ipc = <&apcs 8 0>; 448 + qcom,smd-edge = <15>; 449 + 450 + rpm_requests { 451 + compatible = "qcom,rpm-msm8916"; 452 + qcom,smd-channels = "rpm_requests"; 453 + 454 + pm8916-regulators { 455 + compatible = "qcom,rpm-pm8916-regulators"; 456 + 457 + pm8916_s1: s1 {}; 458 + pm8916_s2: s2 {}; 459 + pm8916_s3: s3 {}; 460 + pm8916_s4: s4 {}; 461 + 462 + pm8916_l1: l1 {}; 463 + pm8916_l2: l2 {}; 464 + pm8916_l3: l3 {}; 465 + pm8916_l4: l4 {}; 466 + pm8916_l5: l5 {}; 467 + pm8916_l6: l6 {}; 468 + pm8916_l7: l7 {}; 469 + pm8916_l8: l8 {}; 470 + pm8916_l9: l9 {}; 471 + pm8916_l10: l10 {}; 472 + pm8916_l11: l11 {}; 473 + pm8916_l12: l12 {}; 474 + pm8916_l13: l13 {}; 475 + pm8916_l14: l14 {}; 476 + pm8916_l15: l15 {}; 477 + pm8916_l16: l16 {}; 478 + pm8916_l17: l17 {}; 479 + pm8916_l18: l18 {}; 480 + }; 481 + }; 503 482 }; 504 483 }; 505 484 };
+3 -3
arch/arm64/boot/dts/qcom/pm8916.dtsi
··· 4 4 5 5 &spmi_bus { 6 6 7 - usid0: pm8916@0 { 8 - compatible = "qcom,spmi-pmic"; 7 + pm8916_0: pm8916@0 { 8 + compatible = "qcom,pm8916", "qcom,spmi-pmic"; 9 9 reg = <0x0 SPMI_USID>; 10 10 #address-cells = <1>; 11 11 #size-cells = <0>; ··· 90 90 }; 91 91 }; 92 92 93 - usid1: pm8916@1 { 93 + pm8916_1: pm8916@1 { 94 94 compatible = "qcom,spmi-pmic"; 95 95 reg = <0x1 SPMI_USID>; 96 96 #address-cells = <1>;
+4
arch/arm64/boot/dts/renesas/Makefile
··· 1 + dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb 2 + 3 + always := $(dtb-y) 4 + clean-files := *.dtb
+251
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
··· 1 + /* 2 + * Device Tree Source for the Salvator-X board 3 + * 4 + * Copyright (C) 2015 Renesas Electronics Corp. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + /* 12 + * SSI-AK4613 13 + * 14 + * This command is required when Playback/Capture 15 + * 16 + * amixer set "DVC Out" 100% 17 + * amixer set "DVC In" 100% 18 + * 19 + * You can use Mute 20 + * 21 + * amixer set "DVC Out Mute" on 22 + * amixer set "DVC In Mute" on 23 + * 24 + * You can use Volume Ramp 25 + * 26 + * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 27 + * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 28 + * amixer set "DVC Out Ramp" on 29 + * aplay xxx.wav & 30 + * amixer set "DVC Out" 80% // Volume Down 31 + * amixer set "DVC Out" 100% // Volume Up 32 + */ 33 + 34 + /dts-v1/; 35 + #include "r8a7795.dtsi" 36 + 37 + / { 38 + model = "Renesas Salvator-X board based on r8a7795"; 39 + compatible = "renesas,salvator-x", "renesas,r8a7795"; 40 + 41 + aliases { 42 + serial0 = &scif2; 43 + serial1 = &scif1; 44 + ethernet0 = &avb; 45 + }; 46 + 47 + chosen { 48 + bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 49 + stdout-path = "serial0:115200n8"; 50 + }; 51 + 52 + memory@48000000 { 53 + device_type = "memory"; 54 + /* first 128MB is reserved for secure area. */ 55 + reg = <0x0 0x48000000 0x0 0x38000000>; 56 + }; 57 + 58 + x12_clk: x12_clk { 59 + compatible = "fixed-clock"; 60 + #clock-cells = <0>; 61 + clock-frequency = <24576000>; 62 + }; 63 + 64 + audio_clkout: audio_clkout { 65 + /* 66 + * This is same as <&rcar_sound 0> 67 + * but needed to avoid cs2000/rcar_sound probe dead-lock 68 + */ 69 + compatible = "fixed-clock"; 70 + #clock-cells = <0>; 71 + clock-frequency = <11289600>; 72 + }; 73 + 74 + rsnd_ak4613: sound { 75 + compatible = "simple-audio-card"; 76 + 77 + simple-audio-card,format = "left_j"; 78 + simple-audio-card,bitclock-master = <&sndcpu>; 79 + simple-audio-card,frame-master = <&sndcpu>; 80 + 81 + sndcpu: simple-audio-card,cpu { 82 + sound-dai = <&rcar_sound>; 83 + }; 84 + 85 + sndcodec: simple-audio-card,codec { 86 + sound-dai = <&ak4613>; 87 + }; 88 + }; 89 + }; 90 + 91 + &extal_clk { 92 + clock-frequency = <16666666>; 93 + }; 94 + 95 + &pfc { 96 + scif1_pins: scif1 { 97 + renesas,groups = "scif1_data_a", "scif1_ctrl"; 98 + renesas,function = "scif1"; 99 + }; 100 + scif2_pins: scif2 { 101 + renesas,groups = "scif2_data_a"; 102 + renesas,function = "scif2"; 103 + }; 104 + 105 + i2c2_pins: i2c2 { 106 + renesas,groups = "i2c2_a"; 107 + renesas,function = "i2c2"; 108 + }; 109 + 110 + avb_pins: avb { 111 + renesas,groups = "avb_mdc"; 112 + renesas,function = "avb"; 113 + }; 114 + 115 + sound_pins: sound { 116 + renesas,groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 117 + renesas,function = "ssi"; 118 + }; 119 + 120 + sound_clk_pins: sound_clk { 121 + renesas,groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 122 + "audio_clkout_a", "audio_clkout3_a"; 123 + renesas,function = "audio_clk"; 124 + }; 125 + }; 126 + 127 + &scif1 { 128 + pinctrl-0 = <&scif1_pins>; 129 + pinctrl-names = "default"; 130 + 131 + status = "okay"; 132 + }; 133 + 134 + &scif2 { 135 + pinctrl-0 = <&scif2_pins>; 136 + pinctrl-names = "default"; 137 + 138 + status = "okay"; 139 + }; 140 + 141 + &i2c2 { 142 + pinctrl-0 = <&i2c2_pins>; 143 + pinctrl-names = "default"; 144 + 145 + status = "okay"; 146 + 147 + clock-frequency = <100000>; 148 + 149 + ak4613: codec@10 { 150 + compatible = "asahi-kasei,ak4613"; 151 + #sound-dai-cells = <0>; 152 + reg = <0x10>; 153 + clocks = <&rcar_sound 3>; 154 + 155 + asahi-kasei,in1-single-end; 156 + asahi-kasei,in2-single-end; 157 + asahi-kasei,out1-single-end; 158 + asahi-kasei,out2-single-end; 159 + asahi-kasei,out3-single-end; 160 + asahi-kasei,out4-single-end; 161 + asahi-kasei,out5-single-end; 162 + asahi-kasei,out6-single-end; 163 + }; 164 + 165 + cs2000: clk_multiplier@4f { 166 + #clock-cells = <0>; 167 + compatible = "cirrus,cs2000-cp"; 168 + reg = <0x4f>; 169 + clocks = <&audio_clkout>, <&x12_clk>; 170 + clock-names = "clk_in", "ref_clk"; 171 + 172 + assigned-clocks = <&cs2000>; 173 + assigned-clock-rates = <24576000>; /* 1/1 divide */ 174 + }; 175 + }; 176 + 177 + &rcar_sound { 178 + pinctrl-0 = <&sound_pins &sound_clk_pins>; 179 + pinctrl-names = "default"; 180 + 181 + /* Single DAI */ 182 + #sound-dai-cells = <0>; 183 + 184 + /* audio_clkout0/1/2/3 */ 185 + #clock-cells = <1>; 186 + clock-frequency = <11289600>; 187 + 188 + status = "okay"; 189 + 190 + /* update <audio_clk_b> to <cs2000> */ 191 + clocks = <&cpg CPG_MOD 1005>, 192 + <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 193 + <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 194 + <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 195 + <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 196 + <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 197 + <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 198 + <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 199 + <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 200 + <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 201 + <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 202 + <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 203 + <&audio_clk_a>, <&cs2000>, 204 + <&audio_clk_c>, 205 + <&cpg CPG_CORE R8A7795_CLK_S0D4>; 206 + 207 + rcar_sound,dai { 208 + dai0 { 209 + playback = <&ssi0 &src0 &dvc0>; 210 + capture = <&ssi1 &src1 &dvc1>; 211 + }; 212 + }; 213 + }; 214 + 215 + &sata { 216 + status = "okay"; 217 + }; 218 + 219 + &ssi1 { 220 + shared-pin; 221 + }; 222 + 223 + &audio_clk_a { 224 + clock-frequency = <22579200>; 225 + }; 226 + 227 + &avb { 228 + pinctrl-0 = <&avb_pins>; 229 + pinctrl-names = "default"; 230 + renesas,no-ether-link; 231 + phy-handle = <&phy0>; 232 + status = "okay"; 233 + 234 + phy0: ethernet-phy@0 { 235 + rxc-skew-ps = <900>; 236 + rxdv-skew-ps = <0>; 237 + rxd0-skew-ps = <0>; 238 + rxd1-skew-ps = <0>; 239 + rxd2-skew-ps = <0>; 240 + rxd3-skew-ps = <0>; 241 + txc-skew-ps = <900>; 242 + txen-skew-ps = <0>; 243 + txd0-skew-ps = <0>; 244 + txd1-skew-ps = <0>; 245 + txd2-skew-ps = <0>; 246 + txd3-skew-ps = <0>; 247 + reg = <0>; 248 + interrupt-parent = <&gpio2>; 249 + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 250 + }; 251 + };
+779
arch/arm64/boot/dts/renesas/r8a7795.dtsi
··· 1 + /* 2 + * Device Tree Source for the r8a7795 SoC 3 + * 4 + * Copyright (C) 2015 Renesas Electronics Corp. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + #include <dt-bindings/clock/r8a7795-cpg-mssr.h> 12 + #include <dt-bindings/interrupt-controller/arm-gic.h> 13 + 14 + / { 15 + compatible = "renesas,r8a7795"; 16 + #address-cells = <2>; 17 + #size-cells = <2>; 18 + 19 + aliases { 20 + i2c0 = &i2c0; 21 + i2c1 = &i2c1; 22 + i2c2 = &i2c2; 23 + i2c3 = &i2c3; 24 + i2c4 = &i2c4; 25 + i2c5 = &i2c5; 26 + i2c6 = &i2c6; 27 + }; 28 + 29 + psci { 30 + compatible = "arm,psci-0.2"; 31 + method = "smc"; 32 + }; 33 + 34 + cpus { 35 + #address-cells = <1>; 36 + #size-cells = <0>; 37 + 38 + a57_0: cpu@0 { 39 + compatible = "arm,cortex-a57", "arm,armv8"; 40 + reg = <0x0>; 41 + device_type = "cpu"; 42 + enable-method = "psci"; 43 + }; 44 + 45 + a57_1: cpu@1 { 46 + compatible = "arm,cortex-a57","arm,armv8"; 47 + reg = <0x1>; 48 + device_type = "cpu"; 49 + enable-method = "psci"; 50 + }; 51 + a57_2: cpu@2 { 52 + compatible = "arm,cortex-a57","arm,armv8"; 53 + reg = <0x2>; 54 + device_type = "cpu"; 55 + enable-method = "psci"; 56 + }; 57 + a57_3: cpu@3 { 58 + compatible = "arm,cortex-a57","arm,armv8"; 59 + reg = <0x3>; 60 + device_type = "cpu"; 61 + enable-method = "psci"; 62 + }; 63 + }; 64 + 65 + extal_clk: extal { 66 + compatible = "fixed-clock"; 67 + #clock-cells = <0>; 68 + /* This value must be overridden by the board */ 69 + clock-frequency = <0>; 70 + }; 71 + 72 + extalr_clk: extalr { 73 + compatible = "fixed-clock"; 74 + #clock-cells = <0>; 75 + /* This value must be overridden by the board */ 76 + clock-frequency = <0>; 77 + }; 78 + 79 + /* 80 + * The external audio clocks are configured as 0 Hz fixed frequency 81 + * clocks by default. 82 + * Boards that provide audio clocks should override them. 83 + */ 84 + audio_clk_a: audio_clk_a { 85 + compatible = "fixed-clock"; 86 + #clock-cells = <0>; 87 + clock-frequency = <0>; 88 + }; 89 + 90 + audio_clk_b: audio_clk_b { 91 + compatible = "fixed-clock"; 92 + #clock-cells = <0>; 93 + clock-frequency = <0>; 94 + }; 95 + 96 + audio_clk_c: audio_clk_c { 97 + compatible = "fixed-clock"; 98 + #clock-cells = <0>; 99 + clock-frequency = <0>; 100 + }; 101 + 102 + soc { 103 + compatible = "simple-bus"; 104 + interrupt-parent = <&gic>; 105 + 106 + #address-cells = <2>; 107 + #size-cells = <2>; 108 + ranges; 109 + 110 + gic: interrupt-controller@0xf1010000 { 111 + compatible = "arm,gic-400"; 112 + #interrupt-cells = <3>; 113 + #address-cells = <0>; 114 + interrupt-controller; 115 + reg = <0x0 0xf1010000 0 0x1000>, 116 + <0x0 0xf1020000 0 0x2000>; 117 + interrupts = <GIC_PPI 9 118 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 119 + }; 120 + 121 + gpio0: gpio@e6050000 { 122 + compatible = "renesas,gpio-r8a7795", 123 + "renesas,gpio-rcar"; 124 + reg = <0 0xe6050000 0 0x50>; 125 + interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 126 + #gpio-cells = <2>; 127 + gpio-controller; 128 + gpio-ranges = <&pfc 0 0 16>; 129 + #interrupt-cells = <2>; 130 + interrupt-controller; 131 + clocks = <&cpg CPG_MOD 912>; 132 + power-domains = <&cpg>; 133 + }; 134 + 135 + gpio1: gpio@e6051000 { 136 + compatible = "renesas,gpio-r8a7795", 137 + "renesas,gpio-rcar"; 138 + reg = <0 0xe6051000 0 0x50>; 139 + interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 140 + #gpio-cells = <2>; 141 + gpio-controller; 142 + gpio-ranges = <&pfc 0 32 28>; 143 + #interrupt-cells = <2>; 144 + interrupt-controller; 145 + clocks = <&cpg CPG_MOD 911>; 146 + power-domains = <&cpg>; 147 + }; 148 + 149 + gpio2: gpio@e6052000 { 150 + compatible = "renesas,gpio-r8a7795", 151 + "renesas,gpio-rcar"; 152 + reg = <0 0xe6052000 0 0x50>; 153 + interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 154 + #gpio-cells = <2>; 155 + gpio-controller; 156 + gpio-ranges = <&pfc 0 64 15>; 157 + #interrupt-cells = <2>; 158 + interrupt-controller; 159 + clocks = <&cpg CPG_MOD 910>; 160 + power-domains = <&cpg>; 161 + }; 162 + 163 + gpio3: gpio@e6053000 { 164 + compatible = "renesas,gpio-r8a7795", 165 + "renesas,gpio-rcar"; 166 + reg = <0 0xe6053000 0 0x50>; 167 + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 168 + #gpio-cells = <2>; 169 + gpio-controller; 170 + gpio-ranges = <&pfc 0 96 16>; 171 + #interrupt-cells = <2>; 172 + interrupt-controller; 173 + clocks = <&cpg CPG_MOD 909>; 174 + power-domains = <&cpg>; 175 + }; 176 + 177 + gpio4: gpio@e6054000 { 178 + compatible = "renesas,gpio-r8a7795", 179 + "renesas,gpio-rcar"; 180 + reg = <0 0xe6054000 0 0x50>; 181 + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 182 + #gpio-cells = <2>; 183 + gpio-controller; 184 + gpio-ranges = <&pfc 0 128 18>; 185 + #interrupt-cells = <2>; 186 + interrupt-controller; 187 + clocks = <&cpg CPG_MOD 908>; 188 + power-domains = <&cpg>; 189 + }; 190 + 191 + gpio5: gpio@e6055000 { 192 + compatible = "renesas,gpio-r8a7795", 193 + "renesas,gpio-rcar"; 194 + reg = <0 0xe6055000 0 0x50>; 195 + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 196 + #gpio-cells = <2>; 197 + gpio-controller; 198 + gpio-ranges = <&pfc 0 160 26>; 199 + #interrupt-cells = <2>; 200 + interrupt-controller; 201 + clocks = <&cpg CPG_MOD 907>; 202 + power-domains = <&cpg>; 203 + }; 204 + 205 + gpio6: gpio@e6055400 { 206 + compatible = "renesas,gpio-r8a7795", 207 + "renesas,gpio-rcar"; 208 + reg = <0 0xe6055400 0 0x50>; 209 + interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 210 + #gpio-cells = <2>; 211 + gpio-controller; 212 + gpio-ranges = <&pfc 0 192 32>; 213 + #interrupt-cells = <2>; 214 + interrupt-controller; 215 + clocks = <&cpg CPG_MOD 906>; 216 + power-domains = <&cpg>; 217 + }; 218 + 219 + gpio7: gpio@e6055800 { 220 + compatible = "renesas,gpio-r8a7795", 221 + "renesas,gpio-rcar"; 222 + reg = <0 0xe6055800 0 0x50>; 223 + interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 224 + #gpio-cells = <2>; 225 + gpio-controller; 226 + gpio-ranges = <&pfc 0 224 4>; 227 + #interrupt-cells = <2>; 228 + interrupt-controller; 229 + clocks = <&cpg CPG_MOD 905>; 230 + power-domains = <&cpg>; 231 + }; 232 + 233 + pmu { 234 + compatible = "arm,armv8-pmuv3"; 235 + interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 236 + <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 237 + <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 238 + <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 239 + interrupt-affinity = <&a57_0>, 240 + <&a57_1>, 241 + <&a57_2>, 242 + <&a57_3>; 243 + }; 244 + 245 + timer { 246 + compatible = "arm,armv8-timer"; 247 + interrupts = <GIC_PPI 13 248 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 249 + <GIC_PPI 14 250 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 251 + <GIC_PPI 11 252 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 253 + <GIC_PPI 10 254 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 255 + }; 256 + 257 + cpg: clock-controller@e6150000 { 258 + compatible = "renesas,r8a7795-cpg-mssr"; 259 + reg = <0 0xe6150000 0 0x1000>; 260 + clocks = <&extal_clk>, <&extalr_clk>; 261 + clock-names = "extal", "extalr"; 262 + #clock-cells = <2>; 263 + #power-domain-cells = <0>; 264 + }; 265 + 266 + audma0: dma-controller@ec700000 { 267 + compatible = "renesas,rcar-dmac"; 268 + reg = <0 0xec700000 0 0x10000>; 269 + interrupts = <0 350 IRQ_TYPE_LEVEL_HIGH 270 + 0 320 IRQ_TYPE_LEVEL_HIGH 271 + 0 321 IRQ_TYPE_LEVEL_HIGH 272 + 0 322 IRQ_TYPE_LEVEL_HIGH 273 + 0 323 IRQ_TYPE_LEVEL_HIGH 274 + 0 324 IRQ_TYPE_LEVEL_HIGH 275 + 0 325 IRQ_TYPE_LEVEL_HIGH 276 + 0 326 IRQ_TYPE_LEVEL_HIGH 277 + 0 327 IRQ_TYPE_LEVEL_HIGH 278 + 0 328 IRQ_TYPE_LEVEL_HIGH 279 + 0 329 IRQ_TYPE_LEVEL_HIGH 280 + 0 330 IRQ_TYPE_LEVEL_HIGH 281 + 0 331 IRQ_TYPE_LEVEL_HIGH 282 + 0 332 IRQ_TYPE_LEVEL_HIGH 283 + 0 333 IRQ_TYPE_LEVEL_HIGH 284 + 0 334 IRQ_TYPE_LEVEL_HIGH 285 + 0 335 IRQ_TYPE_LEVEL_HIGH>; 286 + interrupt-names = "error", 287 + "ch0", "ch1", "ch2", "ch3", 288 + "ch4", "ch5", "ch6", "ch7", 289 + "ch8", "ch9", "ch10", "ch11", 290 + "ch12", "ch13", "ch14", "ch15"; 291 + clocks = <&cpg CPG_MOD 502>; 292 + clock-names = "fck"; 293 + power-domains = <&cpg>; 294 + #dma-cells = <1>; 295 + dma-channels = <16>; 296 + }; 297 + 298 + audma1: dma-controller@ec720000 { 299 + compatible = "renesas,rcar-dmac"; 300 + reg = <0 0xec720000 0 0x10000>; 301 + interrupts = <0 351 IRQ_TYPE_LEVEL_HIGH 302 + 0 336 IRQ_TYPE_LEVEL_HIGH 303 + 0 337 IRQ_TYPE_LEVEL_HIGH 304 + 0 338 IRQ_TYPE_LEVEL_HIGH 305 + 0 339 IRQ_TYPE_LEVEL_HIGH 306 + 0 340 IRQ_TYPE_LEVEL_HIGH 307 + 0 341 IRQ_TYPE_LEVEL_HIGH 308 + 0 342 IRQ_TYPE_LEVEL_HIGH 309 + 0 343 IRQ_TYPE_LEVEL_HIGH 310 + 0 344 IRQ_TYPE_LEVEL_HIGH 311 + 0 345 IRQ_TYPE_LEVEL_HIGH 312 + 0 346 IRQ_TYPE_LEVEL_HIGH 313 + 0 347 IRQ_TYPE_LEVEL_HIGH 314 + 0 348 IRQ_TYPE_LEVEL_HIGH 315 + 0 349 IRQ_TYPE_LEVEL_HIGH 316 + 0 382 IRQ_TYPE_LEVEL_HIGH 317 + 0 383 IRQ_TYPE_LEVEL_HIGH>; 318 + interrupt-names = "error", 319 + "ch0", "ch1", "ch2", "ch3", 320 + "ch4", "ch5", "ch6", "ch7", 321 + "ch8", "ch9", "ch10", "ch11", 322 + "ch12", "ch13", "ch14", "ch15"; 323 + clocks = <&cpg CPG_MOD 501>; 324 + clock-names = "fck"; 325 + power-domains = <&cpg>; 326 + #dma-cells = <1>; 327 + dma-channels = <16>; 328 + }; 329 + 330 + pfc: pfc@e6060000 { 331 + compatible = "renesas,pfc-r8a7795"; 332 + reg = <0 0xe6060000 0 0x50c>; 333 + }; 334 + 335 + dmac0: dma-controller@e6700000 { 336 + /* Empty node for now */ 337 + }; 338 + 339 + dmac1: dma-controller@e7300000 { 340 + /* Empty node for now */ 341 + }; 342 + 343 + dmac2: dma-controller@e7310000 { 344 + /* Empty node for now */ 345 + }; 346 + 347 + avb: ethernet@e6800000 { 348 + compatible = "renesas,etheravb-r8a7795"; 349 + reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>; 350 + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 351 + <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 352 + <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 353 + <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 354 + <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 355 + <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 356 + <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 357 + <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 358 + <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 359 + <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 360 + <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 361 + <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 362 + <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 363 + <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 364 + <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 365 + <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 366 + <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 367 + <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 368 + <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 369 + <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 370 + <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 371 + <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 372 + <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 373 + <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 374 + <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 375 + interrupt-names = "ch0", "ch1", "ch2", "ch3", 376 + "ch4", "ch5", "ch6", "ch7", 377 + "ch8", "ch9", "ch10", "ch11", 378 + "ch12", "ch13", "ch14", "ch15", 379 + "ch16", "ch17", "ch18", "ch19", 380 + "ch20", "ch21", "ch22", "ch23", 381 + "ch24"; 382 + clocks = <&cpg CPG_MOD 812>; 383 + power-domains = <&cpg>; 384 + phy-mode = "rgmii-id"; 385 + #address-cells = <1>; 386 + #size-cells = <0>; 387 + }; 388 + 389 + hscif0: serial@e6540000 { 390 + compatible = "renesas,hscif-r8a7795", "renesas,hscif"; 391 + reg = <0 0xe6540000 0 96>; 392 + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 393 + clocks = <&cpg CPG_MOD 520>; 394 + clock-names = "sci_ick"; 395 + dmas = <&dmac1 0x31>, <&dmac1 0x30>; 396 + dma-names = "tx", "rx"; 397 + power-domains = <&cpg>; 398 + status = "disabled"; 399 + }; 400 + 401 + hscif1: serial@e6550000 { 402 + compatible = "renesas,hscif-r8a7795", "renesas,hscif"; 403 + reg = <0 0xe6550000 0 96>; 404 + interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 405 + clocks = <&cpg CPG_MOD 519>; 406 + clock-names = "sci_ick"; 407 + dmas = <&dmac1 0x33>, <&dmac1 0x32>; 408 + dma-names = "tx", "rx"; 409 + power-domains = <&cpg>; 410 + status = "disabled"; 411 + }; 412 + 413 + hscif2: serial@e6560000 { 414 + compatible = "renesas,hscif-r8a7795", "renesas,hscif"; 415 + reg = <0 0xe6560000 0 96>; 416 + interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 417 + clocks = <&cpg CPG_MOD 518>; 418 + clock-names = "sci_ick"; 419 + dmas = <&dmac1 0x35>, <&dmac1 0x34>; 420 + dma-names = "tx", "rx"; 421 + power-domains = <&cpg>; 422 + status = "disabled"; 423 + }; 424 + 425 + hscif3: serial@e66a0000 { 426 + compatible = "renesas,hscif-r8a7795", "renesas,hscif"; 427 + reg = <0 0xe66a0000 0 96>; 428 + interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 429 + clocks = <&cpg CPG_MOD 517>; 430 + clock-names = "sci_ick"; 431 + dmas = <&dmac0 0x37>, <&dmac0 0x36>; 432 + dma-names = "tx", "rx"; 433 + power-domains = <&cpg>; 434 + status = "disabled"; 435 + }; 436 + 437 + hscif4: serial@e66b0000 { 438 + compatible = "renesas,hscif-r8a7795", "renesas,hscif"; 439 + reg = <0 0xe66b0000 0 96>; 440 + interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 441 + clocks = <&cpg CPG_MOD 516>; 442 + clock-names = "sci_ick"; 443 + dmas = <&dmac0 0x39>, <&dmac0 0x38>; 444 + dma-names = "tx", "rx"; 445 + power-domains = <&cpg>; 446 + status = "disabled"; 447 + }; 448 + 449 + scif0: serial@e6e60000 { 450 + compatible = "renesas,scif-r8a7795", "renesas,scif"; 451 + reg = <0 0xe6e60000 0 64>; 452 + interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 453 + clocks = <&cpg CPG_MOD 207>; 454 + clock-names = "sci_ick"; 455 + dmas = <&dmac1 0x51>, <&dmac1 0x50>; 456 + dma-names = "tx", "rx"; 457 + power-domains = <&cpg>; 458 + status = "disabled"; 459 + }; 460 + 461 + scif1: serial@e6e68000 { 462 + compatible = "renesas,scif-r8a7795", "renesas,scif"; 463 + reg = <0 0xe6e68000 0 64>; 464 + interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 465 + clocks = <&cpg CPG_MOD 206>; 466 + clock-names = "sci_ick"; 467 + dmas = <&dmac1 0x53>, <&dmac1 0x52>; 468 + dma-names = "tx", "rx"; 469 + power-domains = <&cpg>; 470 + status = "disabled"; 471 + }; 472 + 473 + scif2: serial@e6e88000 { 474 + compatible = "renesas,scif-r8a7795", "renesas,scif"; 475 + reg = <0 0xe6e88000 0 64>; 476 + interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 477 + clocks = <&cpg CPG_MOD 310>; 478 + clock-names = "sci_ick"; 479 + dmas = <&dmac1 0x13>, <&dmac1 0x12>; 480 + dma-names = "tx", "rx"; 481 + power-domains = <&cpg>; 482 + status = "disabled"; 483 + }; 484 + 485 + scif3: serial@e6c50000 { 486 + compatible = "renesas,scif-r8a7795", "renesas,scif"; 487 + reg = <0 0xe6c50000 0 64>; 488 + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 489 + clocks = <&cpg CPG_MOD 204>; 490 + clock-names = "sci_ick"; 491 + dmas = <&dmac0 0x57>, <&dmac0 0x56>; 492 + dma-names = "tx", "rx"; 493 + power-domains = <&cpg>; 494 + status = "disabled"; 495 + }; 496 + 497 + scif4: serial@e6c40000 { 498 + compatible = "renesas,scif-r8a7795", "renesas,scif"; 499 + reg = <0 0xe6c40000 0 64>; 500 + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 501 + clocks = <&cpg CPG_MOD 203>; 502 + clock-names = "sci_ick"; 503 + dmas = <&dmac0 0x59>, <&dmac0 0x58>; 504 + dma-names = "tx", "rx"; 505 + power-domains = <&cpg>; 506 + status = "disabled"; 507 + }; 508 + 509 + scif5: serial@e6f30000 { 510 + compatible = "renesas,scif-r8a7795", "renesas,scif"; 511 + reg = <0 0xe6f30000 0 64>; 512 + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 513 + clocks = <&cpg CPG_MOD 202>; 514 + clock-names = "sci_ick"; 515 + dmas = <&dmac1 0x5b>, <&dmac1 0x5a>; 516 + dma-names = "tx", "rx"; 517 + power-domains = <&cpg>; 518 + status = "disabled"; 519 + }; 520 + 521 + i2c0: i2c@e6500000 { 522 + #address-cells = <1>; 523 + #size-cells = <0>; 524 + compatible = "renesas,i2c-r8a7795"; 525 + reg = <0 0xe6500000 0 0x40>; 526 + interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 527 + clocks = <&cpg CPG_MOD 931>; 528 + power-domains = <&cpg>; 529 + i2c-scl-internal-delay-ns = <110>; 530 + status = "disabled"; 531 + }; 532 + 533 + i2c1: i2c@e6508000 { 534 + #address-cells = <1>; 535 + #size-cells = <0>; 536 + compatible = "renesas,i2c-r8a7795"; 537 + reg = <0 0xe6508000 0 0x40>; 538 + interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 539 + clocks = <&cpg CPG_MOD 930>; 540 + power-domains = <&cpg>; 541 + i2c-scl-internal-delay-ns = <6>; 542 + status = "disabled"; 543 + }; 544 + 545 + i2c2: i2c@e6510000 { 546 + #address-cells = <1>; 547 + #size-cells = <0>; 548 + compatible = "renesas,i2c-r8a7795"; 549 + reg = <0 0xe6510000 0 0x40>; 550 + interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 551 + clocks = <&cpg CPG_MOD 929>; 552 + power-domains = <&cpg>; 553 + i2c-scl-internal-delay-ns = <6>; 554 + status = "disabled"; 555 + }; 556 + 557 + i2c3: i2c@e66d0000 { 558 + #address-cells = <1>; 559 + #size-cells = <0>; 560 + compatible = "renesas,i2c-r8a7795"; 561 + reg = <0 0xe66d0000 0 0x40>; 562 + interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 563 + clocks = <&cpg CPG_MOD 928>; 564 + power-domains = <&cpg>; 565 + i2c-scl-internal-delay-ns = <110>; 566 + status = "disabled"; 567 + }; 568 + 569 + i2c4: i2c@e66d8000 { 570 + #address-cells = <1>; 571 + #size-cells = <0>; 572 + compatible = "renesas,i2c-r8a7795"; 573 + reg = <0 0xe66d8000 0 0x40>; 574 + interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 575 + clocks = <&cpg CPG_MOD 927>; 576 + power-domains = <&cpg>; 577 + i2c-scl-internal-delay-ns = <110>; 578 + status = "disabled"; 579 + }; 580 + 581 + i2c5: i2c@e66e0000 { 582 + #address-cells = <1>; 583 + #size-cells = <0>; 584 + compatible = "renesas,i2c-r8a7795"; 585 + reg = <0 0xe66e0000 0 0x40>; 586 + interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 587 + clocks = <&cpg CPG_MOD 919>; 588 + power-domains = <&cpg>; 589 + i2c-scl-internal-delay-ns = <110>; 590 + status = "disabled"; 591 + }; 592 + 593 + i2c6: i2c@e66e8000 { 594 + #address-cells = <1>; 595 + #size-cells = <0>; 596 + compatible = "renesas,i2c-r8a7795"; 597 + reg = <0 0xe66e8000 0 0x40>; 598 + interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 599 + clocks = <&cpg CPG_MOD 918>; 600 + power-domains = <&cpg>; 601 + i2c-scl-internal-delay-ns = <6>; 602 + status = "disabled"; 603 + }; 604 + 605 + rcar_sound: sound@ec500000 { 606 + /* 607 + * #sound-dai-cells is required 608 + * 609 + * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>; 610 + * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>; 611 + */ 612 + /* 613 + * #clock-cells is required for audio_clkout0/1/2/3 614 + * 615 + * clkout : #clock-cells = <0>; <&rcar_sound>; 616 + * clkout0/1/2/3: #clock-cells = <1>; <&rcar_sound N>; 617 + */ 618 + compatible = "renesas,rcar_sound-r8a7795", "renesas,rcar_sound-gen3"; 619 + reg = <0 0xec500000 0 0x1000>, /* SCU */ 620 + <0 0xec5a0000 0 0x100>, /* ADG */ 621 + <0 0xec540000 0 0x1000>, /* SSIU */ 622 + <0 0xec541000 0 0x280>, /* SSI */ 623 + <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 624 + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 625 + 626 + clocks = <&cpg CPG_MOD 1005>, 627 + <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 628 + <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 629 + <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 630 + <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 631 + <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 632 + <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 633 + <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 634 + <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 635 + <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 636 + <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 637 + <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 638 + <&audio_clk_a>, <&audio_clk_b>, 639 + <&audio_clk_c>, 640 + <&cpg CPG_CORE R8A7795_CLK_S0D4>; 641 + clock-names = "ssi-all", 642 + "ssi.9", "ssi.8", "ssi.7", "ssi.6", 643 + "ssi.5", "ssi.4", "ssi.3", "ssi.2", 644 + "ssi.1", "ssi.0", 645 + "src.9", "src.8", "src.7", "src.6", 646 + "src.5", "src.4", "src.3", "src.2", 647 + "src.1", "src.0", 648 + "dvc.0", "dvc.1", 649 + "clk_a", "clk_b", "clk_c", "clk_i"; 650 + power-domains = <&cpg>; 651 + status = "disabled"; 652 + 653 + rcar_sound,dvc { 654 + dvc0: dvc@0 { 655 + dmas = <&audma0 0xbc>; 656 + dma-names = "tx"; 657 + }; 658 + dvc1: dvc@1 { 659 + dmas = <&audma0 0xbe>; 660 + dma-names = "tx"; 661 + }; 662 + }; 663 + 664 + rcar_sound,src { 665 + src0: src@0 { 666 + interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; 667 + dmas = <&audma0 0x85>, <&audma1 0x9a>; 668 + dma-names = "rx", "tx"; 669 + }; 670 + src1: src@1 { 671 + interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>; 672 + dmas = <&audma0 0x87>, <&audma1 0x9c>; 673 + dma-names = "rx", "tx"; 674 + }; 675 + src2: src@2 { 676 + interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>; 677 + dmas = <&audma0 0x89>, <&audma1 0x9e>; 678 + dma-names = "rx", "tx"; 679 + }; 680 + src3: src@3 { 681 + interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>; 682 + dmas = <&audma0 0x8b>, <&audma1 0xa0>; 683 + dma-names = "rx", "tx"; 684 + }; 685 + src4: src@4 { 686 + interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>; 687 + dmas = <&audma0 0x8d>, <&audma1 0xb0>; 688 + dma-names = "rx", "tx"; 689 + }; 690 + src5: src@5 { 691 + interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>; 692 + dmas = <&audma0 0x8f>, <&audma1 0xb2>; 693 + dma-names = "rx", "tx"; 694 + }; 695 + src6: src@6 { 696 + interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>; 697 + dmas = <&audma0 0x91>, <&audma1 0xb4>; 698 + dma-names = "rx", "tx"; 699 + }; 700 + src7: src@7 { 701 + interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>; 702 + dmas = <&audma0 0x93>, <&audma1 0xb6>; 703 + dma-names = "rx", "tx"; 704 + }; 705 + src8: src@8 { 706 + interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>; 707 + dmas = <&audma0 0x95>, <&audma1 0xb8>; 708 + dma-names = "rx", "tx"; 709 + }; 710 + src9: src@9 { 711 + interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>; 712 + dmas = <&audma0 0x97>, <&audma1 0xba>; 713 + dma-names = "rx", "tx"; 714 + }; 715 + }; 716 + 717 + rcar_sound,ssi { 718 + ssi0: ssi@0 { 719 + interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; 720 + dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 721 + dma-names = "rx", "tx", "rxu", "txu"; 722 + }; 723 + ssi1: ssi@1 { 724 + interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; 725 + dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 726 + dma-names = "rx", "tx", "rxu", "txu"; 727 + }; 728 + ssi2: ssi@2 { 729 + interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; 730 + dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 731 + dma-names = "rx", "tx", "rxu", "txu"; 732 + }; 733 + ssi3: ssi@3 { 734 + interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; 735 + dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 736 + dma-names = "rx", "tx", "rxu", "txu"; 737 + }; 738 + ssi4: ssi@4 { 739 + interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; 740 + dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 741 + dma-names = "rx", "tx", "rxu", "txu"; 742 + }; 743 + ssi5: ssi@5 { 744 + interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; 745 + dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 746 + dma-names = "rx", "tx", "rxu", "txu"; 747 + }; 748 + ssi6: ssi@6 { 749 + interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; 750 + dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 751 + dma-names = "rx", "tx", "rxu", "txu"; 752 + }; 753 + ssi7: ssi@7 { 754 + interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; 755 + dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 756 + dma-names = "rx", "tx", "rxu", "txu"; 757 + }; 758 + ssi8: ssi@8 { 759 + interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; 760 + dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 761 + dma-names = "rx", "tx", "rxu", "txu"; 762 + }; 763 + ssi9: ssi@9 { 764 + interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; 765 + dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 766 + dma-names = "rx", "tx", "rxu", "txu"; 767 + }; 768 + }; 769 + }; 770 + 771 + sata: sata@ee300000 { 772 + compatible = "renesas,sata-r8a7795"; 773 + reg = <0 0xee300000 0 0x1fff>; 774 + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 775 + clocks = <&cpg CPG_MOD 815>; 776 + status = "disabled"; 777 + }; 778 + }; 779 + };
+1
arch/arm64/boot/dts/rockchip/Makefile
··· 1 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb 1 2 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb 2 3 3 4 always := $(dtb-y)
+176
arch/arm64/boot/dts/rockchip/rk3368-evb-act8846.dts
··· 1 + /* 2 + * Copyright (c) 2015 Caesar Wang <wxt@rock-chips.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + #include "rk3368-evb.dtsi" 45 + 46 + / { 47 + model = "Rockchip RK3368 EVB with ACT8846 pmic"; 48 + compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368"; 49 + }; 50 + 51 + &i2c0 { 52 + clock-frequency = <400000>; 53 + 54 + vdd_cpu: syr827@40 { 55 + compatible = "silergy,syr827"; 56 + reg = <0x40>; 57 + fcs,suspend-voltage-selector = <1>; 58 + regulator-name = "vdd_cpu"; 59 + regulator-min-microvolt = <850000>; 60 + regulator-max-microvolt = <1350000>; 61 + regulator-always-on; 62 + regulator-boot-on; 63 + vin-supply = <&vcc_sys>; 64 + }; 65 + 66 + vdd_gpu: syr828@41 { 67 + compatible = "silergy,syr828"; 68 + reg = <0x41>; 69 + fcs,suspend-voltage-selector = <1>; 70 + regulator-name = "vdd_gpu"; 71 + regulator-min-microvolt = <850000>; 72 + regulator-max-microvolt = <1350000>; 73 + regulator-always-on; 74 + vin-supply = <&vcc_sys>; 75 + }; 76 + 77 + act8846: act8846@5a { 78 + compatible = "active-semi,act8846"; 79 + reg = <0x5a>; 80 + status = "okay"; 81 + 82 + vp1-supply = <&vcc_sys>; 83 + vp2-supply = <&vcc_sys>; 84 + vp3-supply = <&vcc_sys>; 85 + vp4-supply = <&vcc_sys>; 86 + inl1-supply = <&vcc_io>; 87 + inl2-supply = <&vcc_sys>; 88 + inl3-supply = <&vcc_20>; 89 + 90 + regulators { 91 + vcc_ddr: REG1 { 92 + regulator-name = "VCC_DDR"; 93 + regulator-min-microvolt = <1200000>; 94 + regulator-max-microvolt = <1200000>; 95 + regulator-always-on; 96 + }; 97 + 98 + vcc_io: REG2 { 99 + regulator-name = "VCC_IO"; 100 + regulator-min-microvolt = <3300000>; 101 + regulator-max-microvolt = <3300000>; 102 + regulator-always-on; 103 + }; 104 + 105 + vdd_log: REG3 { 106 + regulator-name = "VDD_LOG"; 107 + regulator-min-microvolt = <700000>; 108 + regulator-max-microvolt = <1500000>; 109 + regulator-always-on; 110 + }; 111 + 112 + vcc_20: REG4 { 113 + regulator-name = "VCC_20"; 114 + regulator-min-microvolt = <2000000>; 115 + regulator-max-microvolt = <2000000>; 116 + regulator-always-on; 117 + }; 118 + 119 + vccio_sd: REG5 { 120 + regulator-name = "VCCIO_SD"; 121 + regulator-min-microvolt = <1800000>; 122 + regulator-max-microvolt = <3300000>; 123 + regulator-always-on; 124 + }; 125 + 126 + vdd10_lcd: REG6 { 127 + regulator-name = "VDD10_LCD"; 128 + regulator-min-microvolt = <1000000>; 129 + regulator-max-microvolt = <1000000>; 130 + regulator-always-on; 131 + }; 132 + 133 + vcca_codec: REG7 { 134 + regulator-name = "VCCA_CODEC"; 135 + regulator-min-microvolt = <3300000>; 136 + regulator-max-microvolt = <3300000>; 137 + regulator-always-on; 138 + }; 139 + 140 + vcca_tp: REG8 { 141 + regulator-name = "VCCA_TP"; 142 + regulator-min-microvolt = <3300000>; 143 + regulator-max-microvolt = <3300000>; 144 + regulator-always-on; 145 + }; 146 + 147 + vccio_pmu: REG9 { 148 + regulator-name = "VCCIO_PMU"; 149 + regulator-min-microvolt = <3300000>; 150 + regulator-max-microvolt = <3300000>; 151 + regulator-always-on; 152 + }; 153 + 154 + vdd_10: REG10 { 155 + regulator-name = "VDD_10"; 156 + regulator-min-microvolt = <1000000>; 157 + regulator-max-microvolt = <1000000>; 158 + regulator-always-on; 159 + }; 160 + 161 + vcc_18: REG11 { 162 + regulator-name = "VCC_18"; 163 + regulator-min-microvolt = <1800000>; 164 + regulator-max-microvolt = <1800000>; 165 + regulator-always-on; 166 + }; 167 + 168 + vcc18_lcd: REG12 { 169 + regulator-name = "VCC18_LCD"; 170 + regulator-min-microvolt = <1800000>; 171 + regulator-max-microvolt = <1800000>; 172 + regulator-always-on; 173 + }; 174 + }; 175 + }; 176 + };
+281
arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
··· 1 + /* 2 + * Copyright (c) 2015 Caesar Wang <wxt@rock-chips.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + #include <dt-bindings/pwm/pwm.h> 44 + #include "rk3368.dtsi" 45 + 46 + / { 47 + chosen { 48 + stdout-path = "serial2:115200n8"; 49 + }; 50 + 51 + memory { 52 + device_type = "memory"; 53 + reg = <0x0 0x0 0x0 0x40000000>; 54 + }; 55 + 56 + backlight: backlight { 57 + compatible = "pwm-backlight"; 58 + brightness-levels = < 59 + 0 1 2 3 4 5 6 7 60 + 8 9 10 11 12 13 14 15 61 + 16 17 18 19 20 21 22 23 62 + 24 25 26 27 28 29 30 31 63 + 32 33 34 35 36 37 38 39 64 + 40 41 42 43 44 45 46 47 65 + 48 49 50 51 52 53 54 55 66 + 56 57 58 59 60 61 62 63 67 + 64 65 66 67 68 69 70 71 68 + 72 73 74 75 76 77 78 79 69 + 80 81 82 83 84 85 86 87 70 + 88 89 90 91 92 93 94 95 71 + 96 97 98 99 100 101 102 103 72 + 104 105 106 107 108 109 110 111 73 + 112 113 114 115 116 117 118 119 74 + 120 121 122 123 124 125 126 127 75 + 128 129 130 131 132 133 134 135 76 + 136 137 138 139 140 141 142 143 77 + 144 145 146 147 148 149 150 151 78 + 152 153 154 155 156 157 158 159 79 + 160 161 162 163 164 165 166 167 80 + 168 169 170 171 172 173 174 175 81 + 176 177 178 179 180 181 182 183 82 + 184 185 186 187 188 189 190 191 83 + 192 193 194 195 196 197 198 199 84 + 200 201 202 203 204 205 206 207 85 + 208 209 210 211 212 213 214 215 86 + 216 217 218 219 220 221 222 223 87 + 224 225 226 227 228 229 230 231 88 + 232 233 234 235 236 237 238 239 89 + 240 241 242 243 244 245 246 247 90 + 248 249 250 251 252 253 254 255>; 91 + default-brightness-level = <128>; 92 + enable-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>; 93 + pinctrl-names = "default"; 94 + pinctrl-0 = <&bl_en>; 95 + pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>; 96 + pwm-delay-us = <10000>; 97 + }; 98 + 99 + emmc_pwrseq: emmc-pwrseq { 100 + compatible = "mmc-pwrseq-emmc"; 101 + pinctrl-0 = <&emmc_reset>; 102 + pinctrl-names = "default"; 103 + reset-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; 104 + }; 105 + 106 + keys: gpio-keys { 107 + compatible = "gpio-keys"; 108 + #address-cells = <1>; 109 + #size-cells = <0>; 110 + pinctrl-names = "default"; 111 + pinctrl-0 = <&pwr_key>; 112 + 113 + button@0 { 114 + gpio-key,wakeup = <1>; 115 + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 116 + label = "GPIO Power"; 117 + linux,code = <116>; 118 + }; 119 + }; 120 + 121 + /* supplies both host and otg */ 122 + vcc_host: vcc-host-regulator { 123 + compatible = "regulator-fixed"; 124 + enable-active-high; 125 + gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 126 + pinctrl-names = "default"; 127 + pinctrl-0 = <&host_vbus_drv>; 128 + regulator-name = "vcc_host"; 129 + regulator-always-on; 130 + regulator-boot-on; 131 + vin-supply = <&vcc_sys>; 132 + }; 133 + 134 + vcc_lan: vcc-lan-regulator { 135 + compatible = "regulator-fixed"; 136 + regulator-name = "vcc_lan"; 137 + regulator-min-microvolt = <3300000>; 138 + regulator-max-microvolt = <3300000>; 139 + regulator-always-on; 140 + regulator-boot-on; 141 + vin-supply = <&vcc_io>; 142 + }; 143 + 144 + vcc_sys: vcc-sys-regulator { 145 + compatible = "regulator-fixed"; 146 + regulator-name = "vcc_sys"; 147 + regulator-min-microvolt = <5000000>; 148 + regulator-max-microvolt = <5000000>; 149 + regulator-always-on; 150 + regulator-boot-on; 151 + }; 152 + }; 153 + 154 + &emmc { 155 + broken-cd; 156 + bus-width = <8>; 157 + cap-mmc-highspeed; 158 + disable-wp; 159 + mmc-pwrseq = <&emmc_pwrseq>; 160 + non-removable; 161 + num-slots = <1>; 162 + pinctrl-names = "default"; 163 + pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 164 + status = "okay"; 165 + }; 166 + 167 + &gmac { 168 + phy-supply = <&vcc_lan>; 169 + phy-mode = "rmii"; 170 + clock_in_out = "output"; 171 + snps,reset-gpio = <&gpio3 12 0>; 172 + snps,reset-active-low; 173 + snps,reset-delays-us = <0 10000 1000000>; 174 + pinctrl-names = "default"; 175 + pinctrl-0 = <&rmii_pins>; 176 + tx_delay = <0x30>; 177 + rx_delay = <0x10>; 178 + status = "ok"; 179 + }; 180 + 181 + &i2c0 { 182 + status = "okay"; 183 + }; 184 + 185 + &pinctrl { 186 + pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 187 + bias-disable; 188 + drive-strength = <8>; 189 + }; 190 + 191 + pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 192 + bias-pull-up; 193 + drive-strength = <8>; 194 + }; 195 + 196 + backlight { 197 + bl_en: bl-en { 198 + rockchip,pins = <0 20 RK_FUNC_GPIO &pcfg_pull_none>; 199 + }; 200 + }; 201 + 202 + emmc { 203 + emmc_bus8: emmc-bus8 { 204 + rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 205 + <1 19 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 206 + <1 20 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 207 + <1 21 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 208 + <1 22 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 209 + <1 23 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 210 + <1 24 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 211 + <1 25 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; 212 + }; 213 + 214 + emmc-clk { 215 + rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>; 216 + }; 217 + 218 + emmc-cmd { 219 + rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; 220 + }; 221 + 222 + emmc_reset: emmc-reset { 223 + rockchip,pins = <2 3 RK_FUNC_GPIO &pcfg_pull_none>; 224 + }; 225 + }; 226 + 227 + keys { 228 + pwr_key: pwr-key { 229 + rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>; 230 + }; 231 + }; 232 + 233 + pmic { 234 + pmic_int: pmic-int { 235 + rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_pull_up>; 236 + }; 237 + }; 238 + 239 + sdio { 240 + wifi_reg_on: wifi-reg-on { 241 + rockchip,pins = <3 4 RK_FUNC_GPIO &pcfg_pull_none>; 242 + }; 243 + 244 + bt_rst: bt-rst { 245 + rockchip,pins = <3 5 RK_FUNC_GPIO &pcfg_pull_none>; 246 + }; 247 + }; 248 + 249 + usb { 250 + host_vbus_drv: host-vbus-drv { 251 + rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_none>; 252 + }; 253 + }; 254 + }; 255 + 256 + &pwm0 { 257 + status = "okay"; 258 + }; 259 + 260 + &tsadc { 261 + rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 262 + rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 263 + status = "okay"; 264 + }; 265 + 266 + &uart2 { 267 + status = "okay"; 268 + }; 269 + 270 + &usb_host0_ehci { 271 + status = "okay"; 272 + }; 273 + 274 + &usb_otg { 275 + dr_mode = "host"; 276 + status = "okay"; 277 + }; 278 + 279 + &wdt { 280 + status = "okay"; 281 + };
+6
arch/arm64/boot/dts/rockchip/rk3368-r88.dts
··· 336 336 status = "okay"; 337 337 }; 338 338 339 + &tsadc { 340 + rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 341 + rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 342 + status = "okay"; 343 + }; 344 + 339 345 &uart2 { 340 346 status = "okay"; 341 347 };
+112
arch/arm64/boot/dts/rockchip/rk3368-thermal.dtsi
··· 1 + /* 2 + * Device Tree Source for RK3368 SoC thermal 3 + * 4 + * Copyright (c) 2015, Fuzhou Rockchip Electronics Co., Ltd 5 + * Caesar Wang <wxt@rock-chips.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 + #include <dt-bindings/thermal/thermal.h> 47 + 48 + cpu_thermal: cpu_thermal { 49 + polling-delay-passive = <100>; /* milliseconds */ 50 + polling-delay = <5000>; /* milliseconds */ 51 + 52 + thermal-sensors = <&tsadc 0>; 53 + 54 + trips { 55 + cpu_alert0: cpu_alert0 { 56 + temperature = <75000>; /* millicelsius */ 57 + hysteresis = <2000>; /* millicelsius */ 58 + type = "passive"; 59 + }; 60 + cpu_alert1: cpu_alert1 { 61 + temperature = <80000>; /* millicelsius */ 62 + hysteresis = <2000>; /* millicelsius */ 63 + type = "passive"; 64 + }; 65 + cpu_crit: cpu_crit { 66 + temperature = <95000>; /* millicelsius */ 67 + hysteresis = <2000>; /* millicelsius */ 68 + type = "critical"; 69 + }; 70 + }; 71 + 72 + cooling-maps { 73 + map0 { 74 + trip = <&cpu_alert0>; 75 + cooling-device = 76 + <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 77 + }; 78 + map1 { 79 + trip = <&cpu_alert1>; 80 + cooling-device = 81 + <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 82 + }; 83 + }; 84 + }; 85 + 86 + gpu_thermal: gpu_thermal { 87 + polling-delay-passive = <100>; /* milliseconds */ 88 + polling-delay = <5000>; /* milliseconds */ 89 + 90 + thermal-sensors = <&tsadc 1>; 91 + 92 + trips { 93 + gpu_alert0: gpu_alert0 { 94 + temperature = <80000>; /* millicelsius */ 95 + hysteresis = <2000>; /* millicelsius */ 96 + type = "passive"; 97 + }; 98 + gpu_crit: gpu_crit { 99 + temperature = <1150000>; /* millicelsius */ 100 + hysteresis = <2000>; /* millicelsius */ 101 + type = "critical"; 102 + }; 103 + }; 104 + 105 + cooling-maps { 106 + map0 { 107 + trip = <&gpu_alert0>; 108 + cooling-device = 109 + <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 110 + }; 111 + }; 112 + };
+104 -1
arch/arm64/boot/dts/rockchip/rk3368.dtsi
··· 45 45 #include <dt-bindings/interrupt-controller/irq.h> 46 46 #include <dt-bindings/interrupt-controller/arm-gic.h> 47 47 #include <dt-bindings/pinctrl/rockchip.h> 48 + #include <dt-bindings/thermal/thermal.h> 48 49 49 50 / { 50 51 compatible = "rockchip,rk3368"; ··· 54 53 #size-cells = <2>; 55 54 56 55 aliases { 56 + ethernet0 = &gmac; 57 57 i2c0 = &i2c0; 58 58 i2c1 = &i2c1; 59 59 i2c2 = &i2c2; ··· 125 123 reg = <0x0 0x0>; 126 124 cpu-idle-states = <&cpu_sleep>; 127 125 enable-method = "psci"; 126 + 127 + #cooling-cells = <2>; /* min followed by max */ 128 128 }; 129 129 130 130 cpu_l1: cpu@1 { ··· 159 155 reg = <0x0 0x100>; 160 156 cpu-idle-states = <&cpu_sleep>; 161 157 enable-method = "psci"; 158 + 159 + #cooling-cells = <2>; /* min followed by max */ 162 160 }; 163 161 164 162 cpu_b1: cpu@101 { ··· 410 404 status = "disabled"; 411 405 }; 412 406 407 + thermal-zones { 408 + #include "rk3368-thermal.dtsi" 409 + }; 410 + 411 + tsadc: tsadc@ff280000 { 412 + compatible = "rockchip,rk3368-tsadc"; 413 + reg = <0x0 0xff280000 0x0 0x100>; 414 + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 415 + clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>; 416 + clock-names = "tsadc", "apb_pclk"; 417 + resets = <&cru SRST_TSADC>; 418 + reset-names = "tsadc-apb"; 419 + pinctrl-names = "init", "default", "sleep"; 420 + pinctrl-0 = <&otp_gpio>; 421 + pinctrl-1 = <&otp_out>; 422 + pinctrl-2 = <&otp_gpio>; 423 + #thermal-sensor-cells = <1>; 424 + rockchip,hw-tshut-temp = <95000>; 425 + status = "disabled"; 426 + }; 427 + 413 428 gmac: ethernet@ff290000 { 414 429 compatible = "rockchip,rk3368-gmac"; 415 430 reg = <0x0 0xff290000 0x0 0x10000>; ··· 498 471 status = "disabled"; 499 472 }; 500 473 474 + pwm0: pwm@ff680000 { 475 + compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm"; 476 + reg = <0x0 0xff680000 0x0 0x10>; 477 + #pwm-cells = <3>; 478 + pinctrl-names = "default"; 479 + pinctrl-0 = <&pwm0_pin>; 480 + clocks = <&cru PCLK_PWM1>; 481 + clock-names = "pwm"; 482 + status = "disabled"; 483 + }; 484 + 485 + pwm1: pwm@ff680010 { 486 + compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm"; 487 + reg = <0x0 0xff680010 0x0 0x10>; 488 + #pwm-cells = <3>; 489 + pinctrl-names = "default"; 490 + pinctrl-0 = <&pwm1_pin>; 491 + clocks = <&cru PCLK_PWM1>; 492 + clock-names = "pwm"; 493 + status = "disabled"; 494 + }; 495 + 496 + pwm2: pwm@ff680020 { 497 + compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm"; 498 + reg = <0x0 0xff680020 0x0 0x10>; 499 + #pwm-cells = <3>; 500 + clocks = <&cru PCLK_PWM1>; 501 + clock-names = "pwm"; 502 + status = "disabled"; 503 + }; 504 + 505 + pwm3: pwm@ff680030 { 506 + compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm"; 507 + reg = <0x0 0xff680030 0x0 0x10>; 508 + #pwm-cells = <3>; 509 + pinctrl-names = "default"; 510 + pinctrl-0 = <&pwm3_pin>; 511 + clocks = <&cru PCLK_PWM1>; 512 + clock-names = "pwm"; 513 + status = "disabled"; 514 + }; 515 + 501 516 uart2: serial@ff690000 { 502 517 compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart"; 503 518 reg = <0x0 0xff690000 0x0 0x100>; ··· 577 508 clocks = <&cru PCLK_WDT>; 578 509 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 579 510 status = "disabled"; 511 + }; 512 + 513 + timer@ff810000 { 514 + compatible = "rockchip,rk3368-timer", "rockchip,rk3288-timer"; 515 + reg = <0x0 0xff810000 0x0 0x20>; 516 + interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 580 517 }; 581 518 582 519 gic: interrupt-controller@ffb71000 { ··· 787 712 }; 788 713 }; 789 714 715 + pwm0 { 716 + pwm0_pin: pwm0-pin { 717 + rockchip,pins = <3 8 RK_FUNC_2 &pcfg_pull_none>; 718 + }; 719 + }; 720 + 721 + pwm1 { 722 + pwm1_pin: pwm1-pin { 723 + rockchip,pins = <0 8 RK_FUNC_2 &pcfg_pull_none>; 724 + }; 725 + }; 726 + 727 + pwm3 { 728 + pwm3_pin: pwm3-pin { 729 + rockchip,pins = <3 29 RK_FUNC_3 &pcfg_pull_none>; 730 + }; 731 + }; 732 + 790 733 sdio0 { 791 734 sdio0_bus1: sdio0-bus1 { 792 735 rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>; ··· 855 762 rockchip,pins = <2 10 RK_FUNC_1 &pcfg_pull_up>; 856 763 }; 857 764 858 - sdmmc_cd: sdmcc-cd { 765 + sdmmc_cd: sdmmc-cd { 859 766 rockchip,pins = <2 11 RK_FUNC_1 &pcfg_pull_up>; 860 767 }; 861 768 ··· 919 826 }; 920 827 spi2_tx: spi2-tx { 921 828 rockchip,pins = <0 11 RK_FUNC_2 &pcfg_pull_up>; 829 + }; 830 + }; 831 + 832 + tsadc { 833 + otp_gpio: otp-gpio { 834 + rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>; 835 + }; 836 + 837 + otp_out: otp-out { 838 + rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>; 922 839 }; 923 840 }; 924 841
+4
arch/arm64/boot/dts/socionext/Makefile
··· 1 + dtb-$(CONFIG_ARCH_UNIPHIER) += uniphier-ph1-ld10-ref.dtb 2 + 3 + always := $(dtb-y) 4 + clean-files := *.dtb
+95
arch/arm64/boot/dts/socionext/uniphier-ph1-ld10-ref.dts
··· 1 + /* 2 + * Device Tree Source for UniPhier PH1-LD10 Reference Board 3 + * 4 + * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 5 + * 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 10 + * 11 + * a) This file is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License as 13 + * published by the Free Software Foundation; either version 2 of the 14 + * License, or (at your option) any later version. 15 + * 16 + * This file is distributed in the hope that it will be useful, 17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 + * GNU General Public License for more details. 20 + * 21 + * Or, alternatively, 22 + * 23 + * b) Permission is hereby granted, free of charge, to any person 24 + * obtaining a copy of this software and associated documentation 25 + * files (the "Software"), to deal in the Software without 26 + * restriction, including without limitation the rights to use, 27 + * copy, modify, merge, publish, distribute, sublicense, and/or 28 + * sell copies of the Software, and to permit persons to whom the 29 + * Software is furnished to do so, subject to the following 30 + * conditions: 31 + * 32 + * The above copyright notice and this permission notice shall be 33 + * included in all copies or substantial portions of the Software. 34 + * 35 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 + * OTHER DEALINGS IN THE SOFTWARE. 43 + */ 44 + 45 + /dts-v1/; 46 + /include/ "uniphier-ph1-ld10.dtsi" 47 + /include/ "uniphier-support-card.dtsi" 48 + 49 + / { 50 + model = "UniPhier PH1-LD10 Reference Board"; 51 + compatible = "socionext,ph1-ld10-ref", "socionext,ph1-ld10"; 52 + 53 + memory { 54 + device_type = "memory"; 55 + reg = <0 0x80000000 0 0xc0000000>; 56 + }; 57 + 58 + chosen { 59 + stdout-path = "serial0:115200n8"; 60 + }; 61 + 62 + aliases { 63 + serial0 = &serial0; 64 + serial1 = &serial1; 65 + serial2 = &serial2; 66 + serial3 = &serial3; 67 + i2c0 = &i2c0; 68 + i2c1 = &i2c1; 69 + i2c2 = &i2c2; 70 + i2c3 = &i2c3; 71 + i2c4 = &i2c4; 72 + i2c5 = &i2c5; 73 + i2c6 = &i2c6; 74 + }; 75 + }; 76 + 77 + &extbus { 78 + ranges = <1 0x00000000 0x42000000 0x02000000>; 79 + }; 80 + 81 + &support_card { 82 + ranges = <0x00000000 1 0x01f00000 0x00100000>; 83 + }; 84 + 85 + &ethsc { 86 + interrupts = <0 48 4>; 87 + }; 88 + 89 + &serial0 { 90 + status = "okay"; 91 + }; 92 + 93 + &i2c0 { 94 + status = "okay"; 95 + };
+280
arch/arm64/boot/dts/socionext/uniphier-ph1-ld10.dtsi
··· 1 + /* 2 + * Device Tree Source for UniPhier PH1-LD10 SoC 3 + * 4 + * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 5 + * 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 10 + * 11 + * a) This file is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License as 13 + * published by the Free Software Foundation; either version 2 of the 14 + * License, or (at your option) any later version. 15 + * 16 + * This file is distributed in the hope that it will be useful, 17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 + * GNU General Public License for more details. 20 + * 21 + * Or, alternatively, 22 + * 23 + * b) Permission is hereby granted, free of charge, to any person 24 + * obtaining a copy of this software and associated documentation 25 + * files (the "Software"), to deal in the Software without 26 + * restriction, including without limitation the rights to use, 27 + * copy, modify, merge, publish, distribute, sublicense, and/or 28 + * sell copies of the Software, and to permit persons to whom the 29 + * Software is furnished to do so, subject to the following 30 + * conditions: 31 + * 32 + * The above copyright notice and this permission notice shall be 33 + * included in all copies or substantial portions of the Software. 34 + * 35 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 + * OTHER DEALINGS IN THE SOFTWARE. 43 + */ 44 + 45 + / { 46 + compatible = "socionext,ph1-ld10"; 47 + #address-cells = <2>; 48 + #size-cells = <2>; 49 + interrupt-parent = <&gic>; 50 + 51 + cpus { 52 + #address-cells = <2>; 53 + #size-cells = <0>; 54 + 55 + cpu-map { 56 + cluster0 { 57 + core0 { 58 + cpu = <&cpu0>; 59 + }; 60 + core1 { 61 + cpu = <&cpu1>; 62 + }; 63 + }; 64 + 65 + cluster1 { 66 + core0 { 67 + cpu = <&cpu2>; 68 + }; 69 + core1 { 70 + cpu = <&cpu3>; 71 + }; 72 + }; 73 + }; 74 + 75 + cpu0: cpu@0 { 76 + device_type = "cpu"; 77 + compatible = "arm,cortex-a72", "arm,armv8"; 78 + reg = <0 0x000>; 79 + enable-method = "spin-table"; 80 + cpu-release-addr = <0 0x80000100>; 81 + }; 82 + 83 + cpu1: cpu@1 { 84 + device_type = "cpu"; 85 + compatible = "arm,cortex-a72", "arm,armv8"; 86 + reg = <0 0x001>; 87 + enable-method = "spin-table"; 88 + cpu-release-addr = <0 0x80000100>; 89 + }; 90 + 91 + cpu2: cpu@100 { 92 + device_type = "cpu"; 93 + compatible = "arm,cortex-a53", "arm,armv8"; 94 + reg = <0 0x100>; 95 + enable-method = "spin-table"; 96 + cpu-release-addr = <0 0x80000100>; 97 + }; 98 + 99 + cpu3: cpu@101 { 100 + device_type = "cpu"; 101 + compatible = "arm,cortex-a53", "arm,armv8"; 102 + reg = <0 0x101>; 103 + enable-method = "spin-table"; 104 + cpu-release-addr = <0 0x80000100>; 105 + }; 106 + }; 107 + 108 + clocks { 109 + uart_clk: uart_clk { 110 + #clock-cells = <0>; 111 + compatible = "fixed-clock"; 112 + clock-frequency = <58820000>; 113 + }; 114 + 115 + i2c_clk: i2c_clk { 116 + #clock-cells = <0>; 117 + compatible = "fixed-clock"; 118 + clock-frequency = <50000000>; 119 + }; 120 + }; 121 + 122 + timer { 123 + compatible = "arm,armv8-timer"; 124 + interrupts = <1 13 0xf01>, 125 + <1 14 0xf01>, 126 + <1 11 0xf01>, 127 + <1 10 0xf01>; 128 + }; 129 + 130 + soc { 131 + compatible = "simple-bus"; 132 + #address-cells = <1>; 133 + #size-cells = <1>; 134 + ranges = <0 0 0 0xffffffff>; 135 + 136 + extbus: extbus { 137 + compatible = "simple-bus"; 138 + #address-cells = <2>; 139 + #size-cells = <1>; 140 + }; 141 + 142 + serial0: serial@54006800 { 143 + compatible = "socionext,uniphier-uart"; 144 + status = "disabled"; 145 + reg = <0x54006800 0x40>; 146 + interrupts = <0 33 4>; 147 + pinctrl-names = "default"; 148 + pinctrl-0 = <&pinctrl_uart0>; 149 + clocks = <&uart_clk>; 150 + }; 151 + 152 + serial1: serial@54006900 { 153 + compatible = "socionext,uniphier-uart"; 154 + status = "disabled"; 155 + reg = <0x54006900 0x40>; 156 + interrupts = <0 35 4>; 157 + pinctrl-names = "default"; 158 + pinctrl-0 = <&pinctrl_uart1>; 159 + clocks = <&uart_clk>; 160 + }; 161 + 162 + serial2: serial@54006a00 { 163 + compatible = "socionext,uniphier-uart"; 164 + status = "disabled"; 165 + reg = <0x54006a00 0x40>; 166 + interrupts = <0 37 4>; 167 + pinctrl-names = "default"; 168 + pinctrl-0 = <&pinctrl_uart2>; 169 + clocks = <&uart_clk>; 170 + }; 171 + 172 + serial3: serial@54006b00 { 173 + compatible = "socionext,uniphier-uart"; 174 + status = "disabled"; 175 + reg = <0x54006b00 0x40>; 176 + interrupts = <0 177 4>; 177 + pinctrl-names = "default"; 178 + pinctrl-0 = <&pinctrl_uart3>; 179 + clocks = <&uart_clk>; 180 + }; 181 + 182 + i2c0: i2c@58780000 { 183 + compatible = "socionext,uniphier-fi2c"; 184 + status = "disabled"; 185 + reg = <0x58780000 0x80>; 186 + #address-cells = <1>; 187 + #size-cells = <0>; 188 + interrupts = <0 41 4>; 189 + pinctrl-names = "default"; 190 + pinctrl-0 = <&pinctrl_i2c0>; 191 + clocks = <&i2c_clk>; 192 + clock-frequency = <100000>; 193 + }; 194 + 195 + i2c1: i2c@58781000 { 196 + compatible = "socionext,uniphier-fi2c"; 197 + status = "disabled"; 198 + reg = <0x58781000 0x80>; 199 + #address-cells = <1>; 200 + #size-cells = <0>; 201 + interrupts = <0 42 4>; 202 + pinctrl-names = "default"; 203 + pinctrl-0 = <&pinctrl_i2c1>; 204 + clocks = <&i2c_clk>; 205 + clock-frequency = <100000>; 206 + }; 207 + 208 + i2c2: i2c@58782000 { 209 + compatible = "socionext,uniphier-fi2c"; 210 + status = "disabled"; 211 + reg = <0x58782000 0x80>; 212 + #address-cells = <1>; 213 + #size-cells = <0>; 214 + interrupts = <0 43 4>; 215 + pinctrl-names = "default"; 216 + pinctrl-0 = <&pinctrl_i2c2>; 217 + clocks = <&i2c_clk>; 218 + clock-frequency = <100000>; 219 + }; 220 + 221 + i2c3: i2c@58783000 { 222 + compatible = "socionext,uniphier-fi2c"; 223 + status = "disabled"; 224 + reg = <0x58783000 0x80>; 225 + #address-cells = <1>; 226 + #size-cells = <0>; 227 + interrupts = <0 44 4>; 228 + pinctrl-names = "default"; 229 + pinctrl-0 = <&pinctrl_i2c3>; 230 + clocks = <&i2c_clk>; 231 + clock-frequency = <100000>; 232 + }; 233 + 234 + i2c4: i2c@58784000 { 235 + compatible = "socionext,uniphier-fi2c"; 236 + reg = <0x58784000 0x80>; 237 + #address-cells = <1>; 238 + #size-cells = <0>; 239 + interrupts = <0 45 4>; 240 + clocks = <&i2c_clk>; 241 + clock-frequency = <400000>; 242 + }; 243 + 244 + i2c5: i2c@58785000 { 245 + compatible = "socionext,uniphier-fi2c"; 246 + reg = <0x58785000 0x80>; 247 + #address-cells = <1>; 248 + #size-cells = <0>; 249 + interrupts = <0 25 4>; 250 + clocks = <&i2c_clk>; 251 + clock-frequency = <400000>; 252 + }; 253 + 254 + i2c6: i2c@58786000 { 255 + compatible = "socionext,uniphier-fi2c"; 256 + reg = <0x58786000 0x80>; 257 + #address-cells = <1>; 258 + #size-cells = <0>; 259 + interrupts = <0 26 4>; 260 + clocks = <&i2c_clk>; 261 + clock-frequency = <400000>; 262 + }; 263 + 264 + pinctrl: pinctrl@5f801000 { 265 + compatible = "socionext,ph1-ld10-pinctrl", "syscon"; 266 + reg = <0x5f801000 0xe00>; 267 + }; 268 + 269 + gic: interrupt-controller@5fe00000 { 270 + compatible = "arm,gic-v3"; 271 + reg = <0x5fe00000 0x10000>, /* GICD */ 272 + <0x5fe80000 0x80000>; /* GICR */ 273 + interrupt-controller; 274 + #interrupt-cells = <3>; 275 + interrupts = <1 9 4>; 276 + }; 277 + }; 278 + }; 279 + 280 + /include/ "uniphier-pinctrl.dtsi"
+2
arch/arm64/boot/dts/xilinx/zynqmp.dtsi
··· 133 133 clocks = <&misc_clk>; 134 134 interrupt-parent = <&gic>; 135 135 interrupts = <0 16 4>; 136 + interrupt-controller; 137 + #interrupt-cells = <2>; 136 138 reg = <0x0 0xff0a0000 0x1000>; 137 139 }; 138 140