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

Merge tag 'socfpga_dts_for_v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt

Merge "SoCFPGA DTS updates for v4.4" from Dinh Nguyen:
- Add base arm64 dts for Statrix 10
- Peripheral updates for Arria10(USB,I2C,UART)

* tag 'socfpga_dts_for_v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
arm64: dts: Add base stratix 10 dtsi
ARM: socfpga: dts: enable USB and I2C on Arria10 SoCDK
ARM: socfpga: dts: add clock fields for I2C, UART and USB on Arria10

+444
+8
arch/arm/boot/dts/socfpga_arria10.dtsi
··· 519 519 compatible = "snps,designware-i2c"; 520 520 reg = <0xffc02200 0x100>; 521 521 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; 522 + clocks = <&l4_sp_clk>; 522 523 status = "disabled"; 523 524 }; 524 525 ··· 529 528 compatible = "snps,designware-i2c"; 530 529 reg = <0xffc02300 0x100>; 531 530 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>; 531 + clocks = <&l4_sp_clk>; 532 532 status = "disabled"; 533 533 }; 534 534 ··· 539 537 compatible = "snps,designware-i2c"; 540 538 reg = <0xffc02400 0x100>; 541 539 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; 540 + clocks = <&l4_sp_clk>; 542 541 status = "disabled"; 543 542 }; 544 543 ··· 549 546 compatible = "snps,designware-i2c"; 550 547 reg = <0xffc02500 0x100>; 551 548 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; 549 + clocks = <&l4_sp_clk>; 552 550 status = "disabled"; 553 551 }; 554 552 ··· 559 555 compatible = "snps,designware-i2c"; 560 556 reg = <0xffc02600 0x100>; 561 557 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>; 558 + clocks = <&l4_sp_clk>; 562 559 status = "disabled"; 563 560 }; 564 561 ··· 663 658 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>; 664 659 reg-shift = <2>; 665 660 reg-io-width = <4>; 661 + clocks = <&l4_sp_clk>; 666 662 status = "disabled"; 667 663 }; 668 664 ··· 698 692 compatible = "snps,dwc2"; 699 693 reg = <0xffb40000 0xffff>; 700 694 interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>; 695 + clocks = <&usb_clk>; 696 + clock-names = "otg"; 701 697 phys = <&usbphy0>; 702 698 phy-names = "usb2-phy"; 703 699 status = "disabled";
+27
arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
··· 70 70 status = "okay"; 71 71 }; 72 72 73 + &i2c1 { 74 + speed-mode = <0>; 75 + status = "okay"; 76 + 77 + /* 78 + * adjust the falling times to decrease the i2c frequency to 50Khz 79 + * because the LCD module does not work at the standard 100Khz 80 + */ 81 + i2c-sda-falling-time-ns = <6000>; 82 + i2c-scl-falling-time-ns = <6000>; 83 + 84 + eeprom@51 { 85 + compatible = "atmel,24c32"; 86 + reg = <0x51>; 87 + pagesize = <32>; 88 + }; 89 + 90 + rtc@68 { 91 + compatible = "dallas,ds1339"; 92 + reg = <0x68>; 93 + }; 94 + }; 95 + 73 96 &uart1 { 97 + status = "okay"; 98 + }; 99 + 100 + &usb0 { 74 101 status = "okay"; 75 102 };
+5
arch/arm64/Kconfig.platforms
··· 66 66 help 67 67 This enables support for AMD Seattle SOC Family 68 68 69 + config ARCH_STRATIX10 70 + bool "Altera's Stratix 10 SoCFPGA Family" 71 + help 72 + This enables support for Altera's Stratix 10 SoCFPGA Family. 73 + 69 74 config ARCH_TEGRA 70 75 bool "NVIDIA Tegra SoC Family" 71 76 select ARCH_HAS_RESET_CONTROLLER
+1
arch/arm64/boot/dts/Makefile
··· 1 + dts-dirs += altera 1 2 dts-dirs += amd 2 3 dts-dirs += apm 3 4 dts-dirs += arm
+5
arch/arm64/boot/dts/altera/Makefile
··· 1 + dtb-$(CONFIG_ARCH_STRATIX10) += socfpga_stratix10_socdk.dtb 2 + 3 + always := $(dtb-y) 4 + subdir-y := $(dts-dirs) 5 + clean-files := *.dtb
+358
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
··· 1 + /* 2 + * Copyright Altera Corporation (C) 2015. All rights reserved. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it 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 + / { 20 + compatible = "altr,socfpga-stratix10"; 21 + #address-cells = <2>; 22 + #size-cells = <2>; 23 + 24 + cpus { 25 + #address-cells = <1>; 26 + #size-cells = <0>; 27 + 28 + cpu0: cpu@0 { 29 + compatible = "arm,cortex-a53", "arm,armv8"; 30 + device_type = "cpu"; 31 + enable-method = "psci"; 32 + reg = <0x0>; 33 + }; 34 + 35 + cpu1: cpu@1 { 36 + compatible = "arm,cortex-a53", "arm,armv8"; 37 + device_type = "cpu"; 38 + enable-method = "psci"; 39 + reg = <0x1>; 40 + }; 41 + 42 + cpu2: cpu@2 { 43 + compatible = "arm,cortex-a53", "arm,armv8"; 44 + device_type = "cpu"; 45 + enable-method = "psci"; 46 + reg = <0x2>; 47 + }; 48 + 49 + cpu3: cpu@3 { 50 + compatible = "arm,cortex-a53", "arm,armv8"; 51 + device_type = "cpu"; 52 + enable-method = "psci"; 53 + reg = <0x3>; 54 + }; 55 + }; 56 + 57 + pmu { 58 + compatible = "arm,armv8-pmuv3"; 59 + interrupts = <0 120 8>, 60 + <0 121 8>, 61 + <0 122 8>, 62 + <0 123 8>; 63 + interrupt-affinity = <&cpu0>, 64 + <&cpu1>, 65 + <&cpu2>, 66 + <&cpu3>; 67 + }; 68 + 69 + psci { 70 + compatible = "arm,psci-0.2"; 71 + method = "smc"; 72 + }; 73 + 74 + intc: intc@fffc1000 { 75 + compatible = "arm,gic-400", "arm,cortex-a15-gic"; 76 + #interrupt-cells = <3>; 77 + interrupt-controller; 78 + reg = <0x0 0xfffc1000 0x1000>, 79 + <0x0 0xfffc2000 0x2000>, 80 + <0x0 0xfffc4000 0x2000>, 81 + <0x0 0xfffc6000 0x2000>; 82 + }; 83 + 84 + soc { 85 + #address-cells = <1>; 86 + #size-cells = <1>; 87 + compatible = "simple-bus"; 88 + device_type = "soc"; 89 + interrupt-parent = <&intc>; 90 + ranges = <0 0 0 0xffffffff>; 91 + 92 + clkmgr@ffd1000 { 93 + compatible = "altr,clk-mgr"; 94 + reg = <0xffd10000 0x1000>; 95 + }; 96 + 97 + gmac0: ethernet@ff800000 { 98 + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac"; 99 + reg = <0xff800000 0x2000>; 100 + interrupts = <0 90 4>; 101 + interrupt-names = "macirq"; 102 + mac-address = [00 00 00 00 00 00]; 103 + status = "disabled"; 104 + }; 105 + 106 + gmac1: ethernet@ff802000 { 107 + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac"; 108 + reg = <0xff802000 0x2000>; 109 + interrupts = <0 91 4>; 110 + interrupt-names = "macirq"; 111 + mac-address = [00 00 00 00 00 00]; 112 + status = "disabled"; 113 + }; 114 + 115 + gmac2: ethernet@ff804000 { 116 + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac"; 117 + reg = <0xff804000 0x2000>; 118 + interrupts = <0 92 4>; 119 + interrupt-names = "macirq"; 120 + mac-address = [00 00 00 00 00 00]; 121 + status = "disabled"; 122 + }; 123 + 124 + gpio0: gpio@ffc03200 { 125 + #address-cells = <1>; 126 + #size-cells = <0>; 127 + compatible = "snps,dw-apb-gpio"; 128 + reg = <0xffc03200 0x100>; 129 + status = "disabled"; 130 + 131 + porta: gpio-controller@0 { 132 + compatible = "snps,dw-apb-gpio-port"; 133 + gpio-controller; 134 + #gpio-cells = <2>; 135 + snps,nr-gpios = <24>; 136 + reg = <0>; 137 + interrupt-controller; 138 + #interrupt-cells = <2>; 139 + interrupts = <0 110 4>; 140 + }; 141 + }; 142 + 143 + gpio1: gpio@ffc03300 { 144 + #address-cells = <1>; 145 + #size-cells = <0>; 146 + compatible = "snps,dw-apb-gpio"; 147 + reg = <0xffc03300 0x100>; 148 + status = "disabled"; 149 + 150 + portb: gpio-controller@0 { 151 + compatible = "snps,dw-apb-gpio-port"; 152 + gpio-controller; 153 + #gpio-cells = <2>; 154 + snps,nr-gpios = <24>; 155 + reg = <0>; 156 + interrupt-controller; 157 + #interrupt-cells = <2>; 158 + interrupts = <0 110 4>; 159 + }; 160 + }; 161 + 162 + i2c0: i2c@ffc02800 { 163 + #address-cells = <1>; 164 + #size-cells = <0>; 165 + compatible = "snps,designware-i2c"; 166 + reg = <0xffc02800 0x100>; 167 + interrupts = <0 103 4>; 168 + status = "disabled"; 169 + }; 170 + 171 + i2c1: i2c@ffc02900 { 172 + #address-cells = <1>; 173 + #size-cells = <0>; 174 + compatible = "snps,designware-i2c"; 175 + reg = <0xffc02900 0x100>; 176 + interrupts = <0 104 4>; 177 + status = "disabled"; 178 + }; 179 + 180 + i2c2: i2c@ffc02a00 { 181 + #address-cells = <1>; 182 + #size-cells = <0>; 183 + compatible = "snps,designware-i2c"; 184 + reg = <0xffc02a00 0x100>; 185 + interrupts = <0 105 4>; 186 + status = "disabled"; 187 + }; 188 + 189 + i2c3: i2c@ffc02b00 { 190 + #address-cells = <1>; 191 + #size-cells = <0>; 192 + compatible = "snps,designware-i2c"; 193 + reg = <0xffc02b00 0x100>; 194 + interrupts = <0 106 4>; 195 + status = "disabled"; 196 + }; 197 + 198 + i2c4: i2c@ffc02c00 { 199 + #address-cells = <1>; 200 + #size-cells = <0>; 201 + compatible = "snps,designware-i2c"; 202 + reg = <0xffc02c00 0x100>; 203 + interrupts = <0 107 4>; 204 + status = "disabled"; 205 + }; 206 + 207 + mmc: dwmmc0@ff808000 { 208 + #address-cells = <1>; 209 + #size-cells = <0>; 210 + compatible = "altr,socfpga-dw-mshc"; 211 + reg = <0xff808000 0x1000>; 212 + interrupts = <0 96 4>; 213 + fifo-depth = <0x400>; 214 + status = "disabled"; 215 + }; 216 + 217 + ocram: sram@ffe00000 { 218 + compatible = "mmio-sram"; 219 + reg = <0xffe00000 0x100000>; 220 + }; 221 + 222 + rst: rstmgr@ffd11000 { 223 + #reset-cells = <1>; 224 + compatible = "altr,rst-mgr"; 225 + reg = <0xffd11000 0x1000>; 226 + }; 227 + 228 + spi0: spi@ffda4000 { 229 + compatible = "snps,dw-apb-ssi"; 230 + #address-cells = <1>; 231 + #size-cells = <0>; 232 + reg = <0xffda4000 0x1000>; 233 + interrupts = <0 101 4>; 234 + num-chipselect = <4>; 235 + bus-num = <0>; 236 + status = "disabled"; 237 + }; 238 + 239 + spi1: spi@ffda5000 { 240 + compatible = "snps,dw-apb-ssi"; 241 + #address-cells = <1>; 242 + #size-cells = <0>; 243 + reg = <0xffda5000 0x1000>; 244 + interrupts = <0 102 4>; 245 + num-chipselect = <4>; 246 + bus-num = <0>; 247 + status = "disabled"; 248 + }; 249 + 250 + sysmgr: sysmgr@ffd12000 { 251 + compatible = "altr,sys-mgr", "syscon"; 252 + reg = <0xffd12000 0x1000>; 253 + }; 254 + 255 + /* Local timer */ 256 + timer { 257 + compatible = "arm,armv8-timer"; 258 + interrupts = <1 13 0xf01>, 259 + <1 14 0xf01>, 260 + <1 11 0xf01>, 261 + <1 10 0xf01>; 262 + }; 263 + 264 + timer0: timer0@ffc03000 { 265 + compatible = "snps,dw-apb-timer"; 266 + interrupts = <0 113 4>; 267 + reg = <0xffc03000 0x100>; 268 + }; 269 + 270 + timer1: timer1@ffc03100 { 271 + compatible = "snps,dw-apb-timer"; 272 + interrupts = <0 114 4>; 273 + reg = <0xffc03100 0x100>; 274 + }; 275 + 276 + timer2: timer2@ffd00000 { 277 + compatible = "snps,dw-apb-timer"; 278 + interrupts = <0 115 4>; 279 + reg = <0xffd00000 0x100>; 280 + }; 281 + 282 + timer3: timer3@ffd00100 { 283 + compatible = "snps,dw-apb-timer"; 284 + interrupts = <0 116 4>; 285 + reg = <0xffd00100 0x100>; 286 + }; 287 + 288 + uart0: serial0@ffc02000 { 289 + compatible = "snps,dw-apb-uart"; 290 + reg = <0xffc02000 0x100>; 291 + interrupts = <0 108 4>; 292 + reg-shift = <2>; 293 + reg-io-width = <4>; 294 + status = "disabled"; 295 + }; 296 + 297 + uart1: serial1@ffc02100 { 298 + compatible = "snps,dw-apb-uart"; 299 + reg = <0xffc02100 0x100>; 300 + interrupts = <0 109 4>; 301 + reg-shift = <2>; 302 + reg-io-width = <4>; 303 + status = "disabled"; 304 + }; 305 + 306 + usbphy0: usbphy@0 { 307 + #phy-cells = <0>; 308 + compatible = "usb-nop-xceiv"; 309 + status = "okay"; 310 + }; 311 + 312 + usb0: usb@ffb00000 { 313 + compatible = "snps,dwc2"; 314 + reg = <0xffb00000 0x40000>; 315 + interrupts = <0 93 4>; 316 + phys = <&usbphy0>; 317 + phy-names = "usb2-phy"; 318 + status = "disabled"; 319 + }; 320 + 321 + usb1: usb@ffb40000 { 322 + compatible = "snps,dwc2"; 323 + reg = <0xffb40000 0x40000>; 324 + interrupts = <0 94 4>; 325 + phys = <&usbphy0>; 326 + phy-names = "usb2-phy"; 327 + status = "disabled"; 328 + }; 329 + 330 + watchdog0: watchdog@ffd00200 { 331 + compatible = "snps,dw-wdt"; 332 + reg = <0xffd00200 0x100>; 333 + interrupts = <0 117 4>; 334 + status = "disabled"; 335 + }; 336 + 337 + watchdog1: watchdog@ffd00300 { 338 + compatible = "snps,dw-wdt"; 339 + reg = <0xffd00300 0x100>; 340 + interrupts = <0 118 4>; 341 + status = "disabled"; 342 + }; 343 + 344 + watchdog2: watchdog@ffd00400 { 345 + compatible = "snps,dw-wdt"; 346 + reg = <0xffd00400 0x100>; 347 + interrupts = <0 125 4>; 348 + status = "disabled"; 349 + }; 350 + 351 + watchdog3: watchdog@ffd00500 { 352 + compatible = "snps,dw-wdt"; 353 + reg = <0xffd00500 0x100>; 354 + interrupts = <0 126 4>; 355 + status = "disabled"; 356 + }; 357 + }; 358 + };
+39
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
··· 1 + /* 2 + * Copyright Altera Corporation (C) 2015. All rights reserved. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it 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 + /include/ "socfpga_stratix10.dtsi" 18 + 19 + / { 20 + model = "SoCFPGA Stratix 10 SoCDK"; 21 + 22 + aliases { 23 + serial0 = &uart0; 24 + }; 25 + 26 + chosen { 27 + stdout-path = "serial0:115200n8"; 28 + }; 29 + 30 + memory { 31 + device_type = "memory"; 32 + /* We expect the bootloader to fill in the reg */ 33 + reg = <0 0 0 0>; 34 + }; 35 + }; 36 + 37 + &uart0 { 38 + status = "okay"; 39 + };
+1
arch/arm64/configs/defconfig
··· 39 39 CONFIG_ARCH_MEDIATEK=y 40 40 CONFIG_ARCH_ROCKCHIP=y 41 41 CONFIG_ARCH_SEATTLE=y 42 + CONFIG_ARCH_STRATIX10=y 42 43 CONFIG_ARCH_TEGRA=y 43 44 CONFIG_ARCH_TEGRA_132_SOC=y 44 45 CONFIG_ARCH_QCOM=y