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

ARM: dts: Add Calxeda ECX-2000 support

Separate out common dts pieces from highbank dts and add support for
Calxeda ECX-2000 (Midway) SOC.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>

+356 -220
+10 -3
Documentation/devicetree/bindings/arm/calxeda.txt
··· 1 - Calxeda Highbank Platforms Device Tree Bindings 1 + Calxeda Platforms Device Tree Bindings 2 2 ----------------------------------------------- 3 3 4 - Boards with Calxeda Cortex-A9 based Highbank SOC shall have the following 5 - properties. 4 + Boards with Calxeda Cortex-A9 based ECX-1000 (Highbank) SOC shall have the 5 + following properties. 6 6 7 7 Required root node properties: 8 8 - compatible = "calxeda,highbank"; 9 + 10 + 11 + Boards with Calxeda Cortex-A15 based ECX-2000 SOC shall have the following 12 + properties. 13 + 14 + Required root node properties: 15 + - compatible = "calxeda,ecx-2000";
+2 -1
arch/arm/boot/dts/Makefile
··· 24 24 exynos4210-smdkv310.dtb \ 25 25 exynos4210-trats.dtb \ 26 26 exynos5250-smdk5250.dtb 27 - dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb 27 + dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \ 28 + ecx-2000.dtb 28 29 dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ 29 30 integratorcp.dtb 30 31 dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
+104
arch/arm/boot/dts/ecx-2000.dts
··· 1 + /* 2 + * Copyright 2011-2012 Calxeda, Inc. 3 + * 4 + * This program is free software; you can redistribute it and/or modify it 5 + * under the terms and conditions of the GNU General Public License, 6 + * version 2, as published by the Free Software Foundation. 7 + * 8 + * This program is distributed in the hope it will be useful, but WITHOUT 9 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 10 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 11 + * more details. 12 + * 13 + * You should have received a copy of the GNU General Public License along with 14 + * this program. If not, see <http://www.gnu.org/licenses/>. 15 + */ 16 + 17 + /dts-v1/; 18 + 19 + /* First 4KB has pen for secondary cores. */ 20 + /memreserve/ 0x00000000 0x0001000; 21 + 22 + / { 23 + model = "Calxeda ECX-2000"; 24 + compatible = "calxeda,ecx-2000"; 25 + #address-cells = <2>; 26 + #size-cells = <2>; 27 + clock-ranges; 28 + 29 + cpus { 30 + #address-cells = <1>; 31 + #size-cells = <0>; 32 + 33 + cpu@0 { 34 + compatible = "arm,cortex-a15"; 35 + reg = <0>; 36 + clocks = <&a9pll>; 37 + clock-names = "cpu"; 38 + }; 39 + 40 + cpu@1 { 41 + compatible = "arm,cortex-a15"; 42 + reg = <1>; 43 + clocks = <&a9pll>; 44 + clock-names = "cpu"; 45 + }; 46 + 47 + cpu@2 { 48 + compatible = "arm,cortex-a15"; 49 + reg = <2>; 50 + clocks = <&a9pll>; 51 + clock-names = "cpu"; 52 + }; 53 + 54 + cpu@3 { 55 + compatible = "arm,cortex-a15"; 56 + reg = <3>; 57 + clocks = <&a9pll>; 58 + clock-names = "cpu"; 59 + }; 60 + }; 61 + 62 + memory@0 { 63 + name = "memory"; 64 + device_type = "memory"; 65 + reg = <0x00000000 0x00000000 0x00000000 0xff800000>; 66 + }; 67 + 68 + memory@200000000 { 69 + name = "memory"; 70 + device_type = "memory"; 71 + reg = <0x00000002 0x00000000 0x00000003 0x00000000>; 72 + }; 73 + 74 + soc { 75 + ranges = <0x00000000 0x00000000 0x00000000 0xffffffff>; 76 + 77 + timer { 78 + compatible = "arm,cortex-a15-timer", "arm,armv7-timer"; interrupts = <1 13 0xf08>, 79 + <1 14 0xf08>, 80 + <1 11 0xf08>, 81 + <1 10 0xf08>; 82 + }; 83 + 84 + intc: interrupt-controller@fff11000 { 85 + compatible = "arm,cortex-a15-gic"; 86 + #interrupt-cells = <3>; 87 + #size-cells = <0>; 88 + #address-cells = <1>; 89 + interrupt-controller; 90 + interrupts = <1 9 0xf04>; 91 + reg = <0xfff11000 0x1000>, 92 + <0xfff12000 0x1000>, 93 + <0xfff14000 0x2000>, 94 + <0xfff16000 0x2000>; 95 + }; 96 + 97 + pmu { 98 + compatible = "arm,cortex-a9-pmu"; 99 + interrupts = <0 76 4 0 75 4 0 74 4 0 73 4>; 100 + }; 101 + }; 102 + }; 103 + 104 + /include/ "ecx-common.dtsi"
+237
arch/arm/boot/dts/ecx-common.dtsi
··· 1 + /* 2 + * Copyright 2011-2012 Calxeda, Inc. 3 + * 4 + * This program is free software; you can redistribute it and/or modify it 5 + * under the terms and conditions of the GNU General Public License, 6 + * version 2, as published by the Free Software Foundation. 7 + * 8 + * This program is distributed in the hope it will be useful, but WITHOUT 9 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 10 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 11 + * more details. 12 + * 13 + * You should have received a copy of the GNU General Public License along with 14 + * this program. If not, see <http://www.gnu.org/licenses/>. 15 + */ 16 + 17 + / { 18 + chosen { 19 + bootargs = "console=ttyAMA0"; 20 + }; 21 + 22 + soc { 23 + #address-cells = <1>; 24 + #size-cells = <1>; 25 + compatible = "simple-bus"; 26 + interrupt-parent = <&intc>; 27 + 28 + sata@ffe08000 { 29 + compatible = "calxeda,hb-ahci"; 30 + reg = <0xffe08000 0x10000>; 31 + interrupts = <0 83 4>; 32 + dma-coherent; 33 + calxeda,port-phys = <&combophy5 0 &combophy0 0 34 + &combophy0 1 &combophy0 2 35 + &combophy0 3>; 36 + }; 37 + 38 + sdhci@ffe0e000 { 39 + compatible = "calxeda,hb-sdhci"; 40 + reg = <0xffe0e000 0x1000>; 41 + interrupts = <0 90 4>; 42 + clocks = <&eclk>; 43 + status = "disabled"; 44 + }; 45 + 46 + memory-controller@fff00000 { 47 + compatible = "calxeda,hb-ddr-ctrl"; 48 + reg = <0xfff00000 0x1000>; 49 + interrupts = <0 91 4>; 50 + }; 51 + 52 + ipc@fff20000 { 53 + compatible = "arm,pl320", "arm,primecell"; 54 + reg = <0xfff20000 0x1000>; 55 + interrupts = <0 7 4>; 56 + clocks = <&pclk>; 57 + clock-names = "apb_pclk"; 58 + }; 59 + 60 + gpioe: gpio@fff30000 { 61 + #gpio-cells = <2>; 62 + compatible = "arm,pl061", "arm,primecell"; 63 + gpio-controller; 64 + reg = <0xfff30000 0x1000>; 65 + interrupts = <0 14 4>; 66 + clocks = <&pclk>; 67 + clock-names = "apb_pclk"; 68 + status = "disabled"; 69 + }; 70 + 71 + gpiof: gpio@fff31000 { 72 + #gpio-cells = <2>; 73 + compatible = "arm,pl061", "arm,primecell"; 74 + gpio-controller; 75 + reg = <0xfff31000 0x1000>; 76 + interrupts = <0 15 4>; 77 + clocks = <&pclk>; 78 + clock-names = "apb_pclk"; 79 + status = "disabled"; 80 + }; 81 + 82 + gpiog: gpio@fff32000 { 83 + #gpio-cells = <2>; 84 + compatible = "arm,pl061", "arm,primecell"; 85 + gpio-controller; 86 + reg = <0xfff32000 0x1000>; 87 + interrupts = <0 16 4>; 88 + clocks = <&pclk>; 89 + clock-names = "apb_pclk"; 90 + status = "disabled"; 91 + }; 92 + 93 + gpioh: gpio@fff33000 { 94 + #gpio-cells = <2>; 95 + compatible = "arm,pl061", "arm,primecell"; 96 + gpio-controller; 97 + reg = <0xfff33000 0x1000>; 98 + interrupts = <0 17 4>; 99 + clocks = <&pclk>; 100 + clock-names = "apb_pclk"; 101 + status = "disabled"; 102 + }; 103 + 104 + timer@fff34000 { 105 + compatible = "arm,sp804", "arm,primecell"; 106 + reg = <0xfff34000 0x1000>; 107 + interrupts = <0 18 4>; 108 + clocks = <&pclk>; 109 + clock-names = "apb_pclk"; 110 + }; 111 + 112 + rtc@fff35000 { 113 + compatible = "arm,pl031", "arm,primecell"; 114 + reg = <0xfff35000 0x1000>; 115 + interrupts = <0 19 4>; 116 + clocks = <&pclk>; 117 + clock-names = "apb_pclk"; 118 + }; 119 + 120 + serial@fff36000 { 121 + compatible = "arm,pl011", "arm,primecell"; 122 + reg = <0xfff36000 0x1000>; 123 + interrupts = <0 20 4>; 124 + clocks = <&pclk>; 125 + clock-names = "apb_pclk"; 126 + }; 127 + 128 + smic@fff3a000 { 129 + compatible = "ipmi-smic"; 130 + device_type = "ipmi"; 131 + reg = <0xfff3a000 0x1000>; 132 + interrupts = <0 24 4>; 133 + reg-size = <4>; 134 + reg-spacing = <4>; 135 + }; 136 + 137 + sregs@fff3c000 { 138 + compatible = "calxeda,hb-sregs"; 139 + reg = <0xfff3c000 0x1000>; 140 + 141 + clocks { 142 + #address-cells = <1>; 143 + #size-cells = <0>; 144 + 145 + osc: oscillator { 146 + #clock-cells = <0>; 147 + compatible = "fixed-clock"; 148 + clock-frequency = <33333000>; 149 + }; 150 + 151 + ddrpll: ddrpll { 152 + #clock-cells = <0>; 153 + compatible = "calxeda,hb-pll-clock"; 154 + clocks = <&osc>; 155 + reg = <0x108>; 156 + }; 157 + 158 + a9pll: a9pll { 159 + #clock-cells = <0>; 160 + compatible = "calxeda,hb-pll-clock"; 161 + clocks = <&osc>; 162 + reg = <0x100>; 163 + }; 164 + 165 + a9periphclk: a9periphclk { 166 + #clock-cells = <0>; 167 + compatible = "calxeda,hb-a9periph-clock"; 168 + clocks = <&a9pll>; 169 + reg = <0x104>; 170 + }; 171 + 172 + a9bclk: a9bclk { 173 + #clock-cells = <0>; 174 + compatible = "calxeda,hb-a9bus-clock"; 175 + clocks = <&a9pll>; 176 + reg = <0x104>; 177 + }; 178 + 179 + emmcpll: emmcpll { 180 + #clock-cells = <0>; 181 + compatible = "calxeda,hb-pll-clock"; 182 + clocks = <&osc>; 183 + reg = <0x10C>; 184 + }; 185 + 186 + eclk: eclk { 187 + #clock-cells = <0>; 188 + compatible = "calxeda,hb-emmc-clock"; 189 + clocks = <&emmcpll>; 190 + reg = <0x114>; 191 + }; 192 + 193 + pclk: pclk { 194 + #clock-cells = <0>; 195 + compatible = "fixed-clock"; 196 + clock-frequency = <150000000>; 197 + }; 198 + }; 199 + }; 200 + 201 + dma@fff3d000 { 202 + compatible = "arm,pl330", "arm,primecell"; 203 + reg = <0xfff3d000 0x1000>; 204 + interrupts = <0 92 4>; 205 + clocks = <&pclk>; 206 + clock-names = "apb_pclk"; 207 + }; 208 + 209 + ethernet@fff50000 { 210 + compatible = "calxeda,hb-xgmac"; 211 + reg = <0xfff50000 0x1000>; 212 + interrupts = <0 77 4 0 78 4 0 79 4>; 213 + dma-coherent; 214 + }; 215 + 216 + ethernet@fff51000 { 217 + compatible = "calxeda,hb-xgmac"; 218 + reg = <0xfff51000 0x1000>; 219 + interrupts = <0 80 4 0 81 4 0 82 4>; 220 + dma-coherent; 221 + }; 222 + 223 + combophy0: combo-phy@fff58000 { 224 + compatible = "calxeda,hb-combophy"; 225 + #phy-cells = <1>; 226 + reg = <0xfff58000 0x1000>; 227 + phydev = <5>; 228 + }; 229 + 230 + combophy5: combo-phy@fff5d000 { 231 + compatible = "calxeda,hb-combophy"; 232 + #phy-cells = <1>; 233 + reg = <0xfff5d000 0x1000>; 234 + phydev = <31>; 235 + }; 236 + }; 237 + };
+3 -216
arch/arm/boot/dts/highbank.dts
··· 69 69 reg = <0x00000000 0xff900000>; 70 70 }; 71 71 72 - chosen { 73 - bootargs = "console=ttyAMA0"; 74 - }; 75 - 76 72 soc { 77 - #address-cells = <1>; 78 - #size-cells = <1>; 79 - compatible = "simple-bus"; 80 - interrupt-parent = <&intc>; 81 - ranges; 73 + ranges = <0x00000000 0x00000000 0xffffffff>; 82 74 83 75 timer@fff10600 { 84 76 compatible = "arm,cortex-a9-twd-timer"; ··· 109 117 interrupts = <0 76 4 0 75 4 0 74 4 0 73 4>; 110 118 }; 111 119 112 - sata@ffe08000 { 113 - compatible = "calxeda,hb-ahci"; 114 - reg = <0xffe08000 0x10000>; 115 - interrupts = <0 83 4>; 116 - calxeda,port-phys = <&combophy5 0 &combophy0 0 117 - &combophy0 1 &combophy0 2 118 - &combophy0 3>; 119 - dma-coherent; 120 - }; 121 - 122 - sdhci@ffe0e000 { 123 - compatible = "calxeda,hb-sdhci"; 124 - reg = <0xffe0e000 0x1000>; 125 - interrupts = <0 90 4>; 126 - clocks = <&eclk>; 127 - status = "disabled"; 128 - }; 129 - 130 - memory-controller@fff00000 { 131 - compatible = "calxeda,hb-ddr-ctrl"; 132 - reg = <0xfff00000 0x1000>; 133 - interrupts = <0 91 4>; 134 - }; 135 - 136 - ipc@fff20000 { 137 - compatible = "arm,pl320", "arm,primecell"; 138 - reg = <0xfff20000 0x1000>; 139 - interrupts = <0 7 4>; 140 - clocks = <&pclk>; 141 - clock-names = "apb_pclk"; 142 - }; 143 - 144 - gpioe: gpio@fff30000 { 145 - #gpio-cells = <2>; 146 - compatible = "arm,pl061", "arm,primecell"; 147 - gpio-controller; 148 - reg = <0xfff30000 0x1000>; 149 - interrupts = <0 14 4>; 150 - clocks = <&pclk>; 151 - clock-names = "apb_pclk"; 152 - status = "disabled"; 153 - }; 154 - 155 - gpiof: gpio@fff31000 { 156 - #gpio-cells = <2>; 157 - compatible = "arm,pl061", "arm,primecell"; 158 - gpio-controller; 159 - reg = <0xfff31000 0x1000>; 160 - interrupts = <0 15 4>; 161 - clocks = <&pclk>; 162 - clock-names = "apb_pclk"; 163 - status = "disabled"; 164 - }; 165 - 166 - gpiog: gpio@fff32000 { 167 - #gpio-cells = <2>; 168 - compatible = "arm,pl061", "arm,primecell"; 169 - gpio-controller; 170 - reg = <0xfff32000 0x1000>; 171 - interrupts = <0 16 4>; 172 - clocks = <&pclk>; 173 - clock-names = "apb_pclk"; 174 - status = "disabled"; 175 - }; 176 - 177 - gpioh: gpio@fff33000 { 178 - #gpio-cells = <2>; 179 - compatible = "arm,pl061", "arm,primecell"; 180 - gpio-controller; 181 - reg = <0xfff33000 0x1000>; 182 - interrupts = <0 17 4>; 183 - clocks = <&pclk>; 184 - clock-names = "apb_pclk"; 185 - status = "disabled"; 186 - }; 187 - 188 - timer { 189 - compatible = "arm,sp804", "arm,primecell"; 190 - reg = <0xfff34000 0x1000>; 191 - interrupts = <0 18 4>; 192 - clocks = <&pclk>; 193 - clock-names = "apb_pclk"; 194 - }; 195 - 196 - rtc@fff35000 { 197 - compatible = "arm,pl031", "arm,primecell"; 198 - reg = <0xfff35000 0x1000>; 199 - interrupts = <0 19 4>; 200 - clocks = <&pclk>; 201 - clock-names = "apb_pclk"; 202 - }; 203 - 204 - serial@fff36000 { 205 - compatible = "arm,pl011", "arm,primecell"; 206 - reg = <0xfff36000 0x1000>; 207 - interrupts = <0 20 4>; 208 - clocks = <&pclk>; 209 - clock-names = "apb_pclk"; 210 - }; 211 - 212 - smic@fff3a000 { 213 - compatible = "ipmi-smic"; 214 - device_type = "ipmi"; 215 - reg = <0xfff3a000 0x1000>; 216 - interrupts = <0 24 4>; 217 - reg-size = <4>; 218 - reg-spacing = <4>; 219 - }; 220 - 221 - sregs@fff3c000 { 222 - compatible = "calxeda,hb-sregs"; 223 - reg = <0xfff3c000 0x1000>; 224 - 225 - clocks { 226 - #address-cells = <1>; 227 - #size-cells = <0>; 228 - 229 - osc: oscillator { 230 - #clock-cells = <0>; 231 - compatible = "fixed-clock"; 232 - clock-frequency = <33333000>; 233 - }; 234 - 235 - ddrpll: ddrpll { 236 - #clock-cells = <0>; 237 - compatible = "calxeda,hb-pll-clock"; 238 - clocks = <&osc>; 239 - reg = <0x108>; 240 - }; 241 - 242 - a9pll: a9pll { 243 - #clock-cells = <0>; 244 - compatible = "calxeda,hb-pll-clock"; 245 - clocks = <&osc>; 246 - reg = <0x100>; 247 - }; 248 - 249 - a9periphclk: a9periphclk { 250 - #clock-cells = <0>; 251 - compatible = "calxeda,hb-a9periph-clock"; 252 - clocks = <&a9pll>; 253 - reg = <0x104>; 254 - }; 255 - 256 - a9bclk: a9bclk { 257 - #clock-cells = <0>; 258 - compatible = "calxeda,hb-a9bus-clock"; 259 - clocks = <&a9pll>; 260 - reg = <0x104>; 261 - }; 262 - 263 - emmcpll: emmcpll { 264 - #clock-cells = <0>; 265 - compatible = "calxeda,hb-pll-clock"; 266 - clocks = <&osc>; 267 - reg = <0x10C>; 268 - }; 269 - 270 - eclk: eclk { 271 - #clock-cells = <0>; 272 - compatible = "calxeda,hb-emmc-clock"; 273 - clocks = <&emmcpll>; 274 - reg = <0x114>; 275 - }; 276 - 277 - pclk: pclk { 278 - #clock-cells = <0>; 279 - compatible = "fixed-clock"; 280 - clock-frequency = <150000000>; 281 - }; 282 - }; 283 - }; 284 120 285 121 sregs@fff3c200 { 286 122 compatible = "calxeda,hb-sregs-l2-ecc"; ··· 116 296 interrupts = <0 71 4 0 72 4>; 117 297 }; 118 298 119 - dma@fff3d000 { 120 - compatible = "arm,pl330", "arm,primecell"; 121 - reg = <0xfff3d000 0x1000>; 122 - interrupts = <0 92 4>; 123 - clocks = <&pclk>; 124 - clock-names = "apb_pclk"; 125 - }; 126 - 127 - ethernet@fff50000 { 128 - compatible = "calxeda,hb-xgmac"; 129 - reg = <0xfff50000 0x1000>; 130 - interrupts = <0 77 4 0 78 4 0 79 4>; 131 - dma-coherent; 132 - }; 133 - 134 - ethernet@fff51000 { 135 - compatible = "calxeda,hb-xgmac"; 136 - reg = <0xfff51000 0x1000>; 137 - interrupts = <0 80 4 0 81 4 0 82 4>; 138 - dma-coherent; 139 - }; 140 - 141 - combophy0: combo-phy@fff58000 { 142 - compatible = "calxeda,hb-combophy"; 143 - #phy-cells = <1>; 144 - reg = <0xfff58000 0x1000>; 145 - phydev = <5>; 146 - }; 147 - 148 - combophy5: combo-phy@fff5d000 { 149 - compatible = "calxeda,hb-combophy"; 150 - #phy-cells = <1>; 151 - reg = <0xfff5d000 0x1000>; 152 - phydev = <31>; 153 - }; 154 299 }; 155 300 }; 301 + 302 + /include/ "ecx-common.dtsi"