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

Merge tag 'imx-dt64-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt64

Merge "The Freescale/NXP arm64 device tree updates for 4.7" from Shawn Guo:

- New board support of LS1043a-QDS from Freescale/NXP
- Add new compatible for LS1043A and LS2080A GPIO devices
- Update device tree bindings and sources for LS2080A fsl-mc device
- Update QSPI and DSPI support on LS1043A and LS2080A

* tag 'imx-dt64-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
arm64: dts: ls2080a: fsl-mc dt node updates
Documentation: fsl-mc: binding updates for MSIs, ranges, PHYs
arm64: dts: ls1043a: add the DTS node for QSPI support
Documentation: fsl-quadspi: Add fsl,ls1043a-qspi compatible string
arm64: dts: ls2080a: Add compatible "fsl,ls2080a-gpio" for ls2080a gpio nodes
arm64: dts: ls1043a: Add compatible "fsl,qoriq-gpio" for ls1043a gpio nodes
arm64: dts: ls2080a: update the DTS for QSPI and DSPI support
Documentation: fsl: dspi: Add fsl,ls2080a-dspi compatible string
arm64: dts: ls1043a-rdb: add the DTS for DSPI support
arm64: dts: add LS1043a-QDS board support
Documentation: DT: Add entry for Freescale LS1043a-QDS board

+416 -15
+4
Documentation/devicetree/bindings/arm/fsl.txt
··· 135 135 Required root node properties: 136 136 - compatible = "fsl,ls1043a-rdb", "fsl,ls1043a"; 137 137 138 + LS1043A ARMv8 based QDS Board 139 + Required root node properties: 140 + - compatible = "fsl,ls1043a-qds", "fsl,ls1043a"; 141 + 138 142 LS2080A ARMv8 based Simulator model 139 143 Required root node properties: 140 144 - compatible = "fsl,ls2080a-simu", "fsl,ls2080a";
+80 -1
Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
··· 30 30 region may not be present in some scenarios, such 31 31 as in the device tree presented to a virtual machine. 32 32 33 + - msi-parent 34 + Value type: <phandle> 35 + Definition: Must be present and point to the MSI controller node 36 + handling message interrupts for the MC. 37 + 38 + - ranges 39 + Value type: <prop-encoded-array> 40 + Definition: A standard property. Defines the mapping between the child 41 + MC address space and the parent system address space. 42 + 43 + The MC address space is defined by 3 components: 44 + <region type> <offset hi> <offset lo> 45 + 46 + Valid values for region type are 47 + 0x0 - MC portals 48 + 0x1 - QBMAN portals 49 + 50 + - #address-cells 51 + Value type: <u32> 52 + Definition: Must be 3. (see definition in 'ranges' property) 53 + 54 + - #size-cells 55 + Value type: <u32> 56 + Definition: Must be 1. 57 + 58 + Sub-nodes: 59 + 60 + The fsl-mc node may optionally have dpmac sub-nodes that describe 61 + the relationship between the Ethernet MACs which belong to the MC 62 + and the Ethernet PHYs on the system board. 63 + 64 + The dpmac nodes must be under a node named "dpmacs" which contains 65 + the following properties: 66 + 67 + - #address-cells 68 + Value type: <u32> 69 + Definition: Must be present if dpmac sub-nodes are defined and must 70 + have a value of 1. 71 + 72 + - #size-cells 73 + Value type: <u32> 74 + Definition: Must be present if dpmac sub-nodes are defined and must 75 + have a value of 0. 76 + 77 + These nodes must have the following properties: 78 + 79 + - compatible 80 + Value type: <string> 81 + Definition: Must be "fsl,qoriq-mc-dpmac". 82 + 83 + - reg 84 + Value type: <prop-encoded-array> 85 + Definition: Specifies the id of the dpmac. 86 + 87 + - phy-handle 88 + Value type: <phandle> 89 + Definition: Specifies the phandle to the PHY device node associated 90 + with the this dpmac. 91 + 33 92 Example: 34 93 35 94 fsl_mc: fsl-mc@80c000000 { 36 95 compatible = "fsl,qoriq-mc"; 37 96 reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */ 38 97 <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ 39 - }; 98 + msi-parent = <&its>; 99 + #address-cells = <3>; 100 + #size-cells = <1>; 40 101 102 + /* 103 + * Region type 0x0 - MC portals 104 + * Region type 0x1 - QBMAN portals 105 + */ 106 + ranges = <0x0 0x0 0x0 0x8 0x0c000000 0x4000000 107 + 0x1 0x0 0x0 0x8 0x18000000 0x8000000>; 108 + 109 + dpmacs { 110 + #address-cells = <1>; 111 + #size-cells = <0>; 112 + 113 + dpmac@1 { 114 + compatible = "fsl,qoriq-mc-dpmac"; 115 + reg = <1>; 116 + phy-handle = <&mdio0_phy0>; 117 + } 118 + } 119 + };
+2 -1
Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
··· 5 5 "fsl,imx7d-qspi", "fsl,imx6ul-qspi", 6 6 "fsl,ls1021a-qspi" 7 7 or 8 - "fsl,ls2080a-qspi" followed by "fsl,ls1021a-qspi" 8 + "fsl,ls2080a-qspi" followed by "fsl,ls1021a-qspi", 9 + "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi" 9 10 - reg : the first contains the register location and length, 10 11 the second contains the memory mapping address and length 11 12 - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
+4 -1
Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
··· 1 1 ARM Freescale DSPI controller 2 2 3 3 Required properties: 4 - - compatible : "fsl,vf610-dspi", "fsl,ls1021a-v1.0-dspi", "fsl,ls2085a-dspi" 4 + - compatible : "fsl,vf610-dspi", "fsl,ls1021a-v1.0-dspi", 5 + "fsl,ls2085a-dspi" 6 + or 7 + "fsl,ls2080a-dspi" followed by "fsl,ls2085a-dspi" 5 8 - reg : Offset and length of the register set for the device 6 9 - interrupts : Should contain SPI controller interrupt 7 10 - clocks: from common clock binding: handle to dspi clock.
+2 -1
arch/arm64/boot/dts/freescale/Makefile
··· 1 + dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-qds.dtb 2 + dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb 1 3 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb 2 4 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb 3 5 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb 4 - dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb 5 6 6 7 always := $(dtb-y) 7 8 subdir-y := $(dts-dirs)
+181
arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.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 QDS Board"; 52 + compatible = "fsl,ls1043a-qds", "fsl,ls1043a"; 53 + 54 + aliases { 55 + gpio0 = &gpio1; 56 + gpio1 = &gpio2; 57 + gpio2 = &gpio3; 58 + gpio3 = &gpio4; 59 + serial0 = &lpuart0; 60 + serial1 = &lpuart1; 61 + serial2 = &lpuart2; 62 + serial3 = &lpuart3; 63 + serial4 = &lpuart4; 64 + serial5 = &lpuart5; 65 + }; 66 + }; 67 + 68 + &duart0 { 69 + status = "okay"; 70 + }; 71 + 72 + &duart1 { 73 + status = "okay"; 74 + }; 75 + 76 + &ifc { 77 + #address-cells = <2>; 78 + #size-cells = <1>; 79 + /* NOR, NAND Flashes and FPGA on board */ 80 + ranges = <0x0 0x0 0x0 0x60000000 0x08000000 81 + 0x1 0x0 0x0 0x7e800000 0x00010000 82 + 0x2 0x0 0x0 0x7fb00000 0x00000100>; 83 + status = "okay"; 84 + 85 + nor@0,0 { 86 + compatible = "cfi-flash"; 87 + reg = <0x0 0x0 0x8000000>; 88 + bank-width = <2>; 89 + device-width = <1>; 90 + }; 91 + 92 + nand@1,0 { 93 + compatible = "fsl,ifc-nand"; 94 + reg = <0x1 0x0 0x10000>; 95 + }; 96 + 97 + fpga: board-control@2,0 { 98 + compatible = "fsl,ls1043aqds-fpga", "fsl,fpga-qixis"; 99 + reg = <0x2 0x0 0x0000100>; 100 + }; 101 + }; 102 + 103 + &i2c0 { 104 + status = "okay"; 105 + 106 + pca9547@77 { 107 + compatible = "nxp,pca9547"; 108 + reg = <0x77>; 109 + #address-cells = <1>; 110 + #size-cells = <0>; 111 + 112 + i2c@0 { 113 + #address-cells = <1>; 114 + #size-cells = <0>; 115 + reg = <0x0>; 116 + 117 + rtc@68 { 118 + compatible = "dallas,ds3232"; 119 + reg = <0x68>; 120 + /* IRQ10_B */ 121 + interrupts = <0 150 0x4>; 122 + }; 123 + }; 124 + 125 + i2c@2 { 126 + #address-cells = <1>; 127 + #size-cells = <0>; 128 + reg = <0x2>; 129 + 130 + ina220@40 { 131 + compatible = "ti,ina220"; 132 + reg = <0x40>; 133 + shunt-resistor = <1000>; 134 + }; 135 + 136 + ina220@41 { 137 + compatible = "ti,ina220"; 138 + reg = <0x41>; 139 + shunt-resistor = <1000>; 140 + }; 141 + }; 142 + 143 + i2c@3 { 144 + #address-cells = <1>; 145 + #size-cells = <0>; 146 + reg = <0x3>; 147 + 148 + eeprom@56 { 149 + compatible = "atmel,24c512"; 150 + reg = <0x56>; 151 + }; 152 + 153 + eeprom@57 { 154 + compatible = "atmel,24c512"; 155 + reg = <0x57>; 156 + }; 157 + 158 + temp-sensor@4c { 159 + compatible = "adi,adt7461a"; 160 + reg = <0x4c>; 161 + }; 162 + }; 163 + }; 164 + }; 165 + 166 + &lpuart0 { 167 + status = "okay"; 168 + }; 169 + 170 + &qspi { 171 + bus-num = <0>; 172 + status = "okay"; 173 + 174 + qflash0: s25fl128s@0 { 175 + compatible = "spansion,m25p80"; 176 + #address-cells = <1>; 177 + #size-cells = <1>; 178 + spi-max-frequency = <20000000>; 179 + reg = <0>; 180 + }; 181 + };
+13
arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
··· 107 107 }; 108 108 }; 109 109 110 + &dspi0 { 111 + bus-num = <0>; 112 + status = "okay"; 113 + 114 + flash@0 { 115 + #address-cells = <1>; 116 + #size-cells = <1>; 117 + compatible = "n25q128a13", "jedec,spi-nor"; /* 16MB */ 118 + reg = <0>; 119 + spi-max-frequency = <1000000>; /* input clock */ 120 + }; 121 + }; 122 + 110 123 &duart0 { 111 124 status = "okay"; 112 125 };
+18 -4
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
··· 171 171 interrupts = <0 43 0x4>; 172 172 }; 173 173 174 + qspi: quadspi@1550000 { 175 + compatible = "fsl,ls1043a-qspi", "fsl,ls1021a-qspi"; 176 + #address-cells = <1>; 177 + #size-cells = <0>; 178 + reg = <0x0 0x1550000 0x0 0x10000>, 179 + <0x0 0x40000000 0x0 0x4000000>; 180 + reg-names = "QuadSPI", "QuadSPI-memory"; 181 + interrupts = <0 99 0x4>; 182 + clock-names = "qspi_en", "qspi"; 183 + clocks = <&clockgen 4 0>, <&clockgen 4 0>; 184 + big-endian; 185 + status = "disabled"; 186 + }; 187 + 174 188 esdhc: esdhc@1560000 { 175 189 compatible = "fsl,ls1043a-esdhc", "fsl,esdhc"; 176 190 reg = <0x0 0x1560000 0x0 0x10000>; ··· 298 284 }; 299 285 300 286 gpio1: gpio@2300000 { 301 - compatible = "fsl,ls1043a-gpio"; 287 + compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio"; 302 288 reg = <0x0 0x2300000 0x0 0x10000>; 303 289 interrupts = <0 66 0x4>; 304 290 gpio-controller; ··· 308 294 }; 309 295 310 296 gpio2: gpio@2310000 { 311 - compatible = "fsl,ls1043a-gpio"; 297 + compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio"; 312 298 reg = <0x0 0x2310000 0x0 0x10000>; 313 299 interrupts = <0 67 0x4>; 314 300 gpio-controller; ··· 318 304 }; 319 305 320 306 gpio3: gpio@2320000 { 321 - compatible = "fsl,ls1043a-gpio"; 307 + compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio"; 322 308 reg = <0x0 0x2320000 0x0 0x10000>; 323 309 interrupts = <0 68 0x4>; 324 310 gpio-controller; ··· 328 314 }; 329 315 330 316 gpio4: gpio@2330000 { 331 - compatible = "fsl,ls1043a-gpio"; 317 + compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio"; 332 318 reg = <0x0 0x2330000 0x0 0x10000>; 333 319 interrupts = <0 134 0x4>; 334 320 gpio-controller;
+8 -1
arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts
··· 178 178 179 179 &qspi { 180 180 status = "okay"; 181 - qflash0: s25fl008k { 181 + flash0: s25fl256s1@0 { 182 + #address-cells = <1>; 183 + #size-cells = <1>; 184 + compatible = "st,m25p80"; 185 + spi-max-frequency = <20000000>; 186 + reg = <0>; 187 + }; 188 + flash2: s25fl256s1@2 { 182 189 #address-cells = <1>; 183 190 #size-cells = <1>; 184 191 compatible = "st,m25p80";
+104 -6
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
··· 265 265 compatible = "fsl,qoriq-mc"; 266 266 reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */ 267 267 <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ 268 + msi-parent = <&its>; 269 + #address-cells = <3>; 270 + #size-cells = <1>; 271 + 272 + /* 273 + * Region type 0x0 - MC portals 274 + * Region type 0x1 - QBMAN portals 275 + */ 276 + ranges = <0x0 0x0 0x0 0x8 0x0c000000 0x4000000 277 + 0x1 0x0 0x0 0x8 0x18000000 0x8000000>; 278 + 279 + /* 280 + * Define the maximum number of MACs present on the SoC. 281 + */ 282 + dpmacs { 283 + #address-cells = <1>; 284 + #size-cells = <0>; 285 + 286 + dpmac1: dpmac@1 { 287 + compatible = "fsl,qoriq-mc-dpmac"; 288 + reg = <0x1>; 289 + }; 290 + 291 + dpmac2: dpmac@2 { 292 + compatible = "fsl,qoriq-mc-dpmac"; 293 + reg = <0x2>; 294 + }; 295 + 296 + dpmac3: dpmac@3 { 297 + compatible = "fsl,qoriq-mc-dpmac"; 298 + reg = <0x3>; 299 + }; 300 + 301 + dpmac4: dpmac@4 { 302 + compatible = "fsl,qoriq-mc-dpmac"; 303 + reg = <0x4>; 304 + }; 305 + 306 + dpmac5: dpmac@5 { 307 + compatible = "fsl,qoriq-mc-dpmac"; 308 + reg = <0x5>; 309 + }; 310 + 311 + dpmac6: dpmac@6 { 312 + compatible = "fsl,qoriq-mc-dpmac"; 313 + reg = <0x6>; 314 + }; 315 + 316 + dpmac7: dpmac@7 { 317 + compatible = "fsl,qoriq-mc-dpmac"; 318 + reg = <0x7>; 319 + }; 320 + 321 + dpmac8: dpmac@8 { 322 + compatible = "fsl,qoriq-mc-dpmac"; 323 + reg = <0x8>; 324 + }; 325 + 326 + dpmac9: dpmac@9 { 327 + compatible = "fsl,qoriq-mc-dpmac"; 328 + reg = <0x9>; 329 + }; 330 + 331 + dpmac10: dpmac@a { 332 + compatible = "fsl,qoriq-mc-dpmac"; 333 + reg = <0xa>; 334 + }; 335 + 336 + dpmac11: dpmac@b { 337 + compatible = "fsl,qoriq-mc-dpmac"; 338 + reg = <0xb>; 339 + }; 340 + 341 + dpmac12: dpmac@c { 342 + compatible = "fsl,qoriq-mc-dpmac"; 343 + reg = <0xc>; 344 + }; 345 + 346 + dpmac13: dpmac@d { 347 + compatible = "fsl,qoriq-mc-dpmac"; 348 + reg = <0xd>; 349 + }; 350 + 351 + dpmac14: dpmac@e { 352 + compatible = "fsl,qoriq-mc-dpmac"; 353 + reg = <0xe>; 354 + }; 355 + 356 + dpmac15: dpmac@f { 357 + compatible = "fsl,qoriq-mc-dpmac"; 358 + reg = <0xf>; 359 + }; 360 + 361 + dpmac16: dpmac@10 { 362 + compatible = "fsl,qoriq-mc-dpmac"; 363 + reg = <0x10>; 364 + }; 365 + }; 268 366 }; 269 367 270 368 smmu: iommu@5000000 { ··· 416 318 417 319 dspi: dspi@2100000 { 418 320 status = "disabled"; 419 - compatible = "fsl,vf610-dspi"; 321 + compatible = "fsl,ls2080a-dspi", "fsl,ls2085a-dspi"; 420 322 #address-cells = <1>; 421 323 #size-cells = <0>; 422 324 reg = <0x0 0x2100000 0x0 0x10000>; ··· 440 342 }; 441 343 442 344 gpio0: gpio@2300000 { 443 - compatible = "fsl,qoriq-gpio"; 345 + compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio"; 444 346 reg = <0x0 0x2300000 0x0 0x10000>; 445 347 interrupts = <0 36 0x4>; /* Level high type */ 446 348 gpio-controller; ··· 451 353 }; 452 354 453 355 gpio1: gpio@2310000 { 454 - compatible = "fsl,qoriq-gpio"; 356 + compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio"; 455 357 reg = <0x0 0x2310000 0x0 0x10000>; 456 358 interrupts = <0 36 0x4>; /* Level high type */ 457 359 gpio-controller; ··· 462 364 }; 463 365 464 366 gpio2: gpio@2320000 { 465 - compatible = "fsl,qoriq-gpio"; 367 + compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio"; 466 368 reg = <0x0 0x2320000 0x0 0x10000>; 467 369 interrupts = <0 37 0x4>; /* Level high type */ 468 370 gpio-controller; ··· 473 375 }; 474 376 475 377 gpio3: gpio@2330000 { 476 - compatible = "fsl,qoriq-gpio"; 378 + compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio"; 477 379 reg = <0x0 0x2330000 0x0 0x10000>; 478 380 interrupts = <0 37 0x4>; /* Level high type */ 479 381 gpio-controller; ··· 542 444 543 445 qspi: quadspi@20c0000 { 544 446 status = "disabled"; 545 - compatible = "fsl,vf610-qspi"; 447 + compatible = "fsl,ls2080a-qspi", "fsl,ls1021a-qspi"; 546 448 #address-cells = <1>; 547 449 #size-cells = <0>; 548 450 reg = <0x0 0x20c0000 0x0 0x10000>,