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

Merge tag 'mvebu-dt-3.20' of git://git.infradead.org/linux-mvebu into next/dt

Merge "mvebu: dt for v3.20" from Andrew Lunn:

mvebu dt changes for v3.20 (part #1)

- Add Armada 388 General Purpose Development Board support
- Add Device Tree description of the Armada 388 SoC
- Document the Device Tree binding for the Armada 388 SoC
- a38x: Add missing labels
- a38x: Add more pinctrl functions
- Add Armada 385 Access Point Development Board support
- Add a number of pinctrl functions
- A38x: Remove redundant pinctrl informations
- a38x: Fix node names
- Add support for Seagate BlackArmor NAS220
- kirkwood: enable phy driver for SATA controller on 88f6192
- gpio_poweroff support for Iomega ix2-200
- Use all remaining MTD space foor rootfs of Iomega ix2-200

* tag 'mvebu-dt-3.20' of git://git.infradead.org/linux-mvebu:
ARM: mvebu: Add Armada 388 General Purpose Development Board support
ARM: mvebu: Add Device Tree description of the Armada 388 SoC
ARM: mvebu: Document the Device Tree binding for the Armada 388 SoC
ARM: mvebu: a38x: Add missing labels
ARM: mvebu: a38x: Add more pinctrl functions
ARM: mvebu: Add Armada 385 Access Point Development Board support
ARM: mvebu: Add a number of pinctrl functions
ARM: mvebu: A38x: Remove redundant pinctrl informations
ARM: mvebu: a38x: Fix node names
Kirkwood: add support for Seagate BlackArmor NAS220
ARM: dts: kirkwood: enable phy driver for SATA controller on 88f6192
ARM: dts: add gpio_poweroff support for Iomega ix2-200
ARM: dts: use all remaining MTD space foor rootfs of Iomega ix2-200

Signed-off-by: Olof Johansson <olof@lixom.net>

Signed-off-by: Olof Johansson <olof@lixom.net>

+909 -99
+7
Documentation/devicetree/bindings/arm/armada-38x.txt
··· 15 15 16 16 compatible: must contain "marvell,armada385" 17 17 18 + In addition, boards using the Marvell Armada 388 SoC shall have the 19 + following property before the previous one: 20 + 21 + Required root node property: 22 + 23 + compatible: must contain "marvell,armada388" 24 + 18 25 Example: 19 26 20 27 compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada380";
+5 -2
arch/arm/boot/dts/Makefile
··· 130 130 k2e-evm.dtb 131 131 dtb-$(CONFIG_MACH_KIRKWOOD) += \ 132 132 kirkwood-b3.dtb \ 133 + kirkwood-blackarmor-nas220.dtb \ 133 134 kirkwood-cloudbox.dtb \ 134 135 kirkwood-d2net.dtb \ 135 136 kirkwood-db-88f6281.dtb \ ··· 603 602 dtb-$(CONFIG_MACH_ARMADA_375) += \ 604 603 armada-375-db.dtb 605 604 dtb-$(CONFIG_MACH_ARMADA_38X) += \ 606 - armada-385-db.dtb \ 607 - armada-385-rd.dtb 605 + armada-385-db-ap.dtb \ 606 + armada-388-db.dtb \ 607 + armada-388-gp.dtb \ 608 + armada-388-rd.dtb 608 609 dtb-$(CONFIG_MACH_ARMADA_XP) += \ 609 610 armada-xp-axpwifiap.dtb \ 610 611 armada-xp-db.dtb \
+1 -2
arch/arm/boot/dts/armada-380.dtsi
··· 32 32 33 33 soc { 34 34 internal-regs { 35 - pinctrl { 35 + pinctrl@18000 { 36 36 compatible = "marvell,mv88f6810-pinctrl"; 37 - reg = <0x18000 0x20>; 38 37 }; 39 38 }; 40 39
+178
arch/arm/boot/dts/armada-385-db-ap.dts
··· 1 + /* 2 + * Device Tree file for Marvell Armada 385 Access Point Development board 3 + * (DB-88F6820-AP) 4 + * 5 + * Copyright (C) 2014 Marvell 6 + * 7 + * Nadav Haklai <nadavh@marvell.com> 8 + * 9 + * This file is dual-licensed: you can use it either under the terms 10 + * of the GPL or the X11 license, at your option. Note that this dual 11 + * licensing only applies to this file, and not this project as a 12 + * whole. 13 + * 14 + * a) This file is licensed under the terms of the GNU General Public 15 + * License version 2. This program is licensed "as is" without 16 + * any warranty of any kind, whether express or implied. 17 + * 18 + * Or, alternatively, 19 + * 20 + * b) Permission is hereby granted, free of charge, to any person 21 + * obtaining a copy of this software and associated documentation 22 + * files (the "Software"), to deal in the Software without 23 + * restriction, including without limitation the rights to use, 24 + * copy, modify, merge, publish, distribute, sublicense, and/or 25 + * sell copies of the Software, and to permit persons to whom the 26 + * Software is furnished to do so, subject to the following 27 + * conditions: 28 + * 29 + * The above copyright notice and this permission notice shall be 30 + * included in all copies or substantial portions of the Software. 31 + * 32 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 33 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 37 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 + * OTHER DEALINGS IN THE SOFTWARE. 40 + */ 41 + 42 + /dts-v1/; 43 + #include "armada-385.dtsi" 44 + 45 + #include <dt-bindings/gpio/gpio.h> 46 + 47 + / { 48 + model = "Marvell Armada 385 Access Point Development Board"; 49 + compatible = "marvell,a385-db-ap", "marvell,armada385", "marvell,armada38x"; 50 + 51 + chosen { 52 + bootargs = "console=ttyS0,115200"; 53 + stdout-path = &uart1; 54 + }; 55 + 56 + memory { 57 + device_type = "memory"; 58 + reg = <0x00000000 0x80000000>; /* 2GB */ 59 + }; 60 + 61 + soc { 62 + ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 63 + MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>; 64 + 65 + internal-regs { 66 + spi1: spi@10680 { 67 + pinctrl-names = "default"; 68 + pinctrl-0 = <&spi1_pins>; 69 + status = "okay"; 70 + 71 + spi-flash@0 { 72 + #address-cells = <1>; 73 + #size-cells = <1>; 74 + compatible = "st,m25p128"; 75 + reg = <0>; /* Chip select 0 */ 76 + spi-max-frequency = <54000000>; 77 + }; 78 + }; 79 + 80 + i2c0: i2c@11000 { 81 + pinctrl-names = "default"; 82 + pinctrl-0 = <&i2c0_pins>; 83 + status = "okay"; 84 + 85 + /* 86 + * This bus is wired to two EEPROM 87 + * sockets, one of which holding the 88 + * board ID used by the bootloader. 89 + * Erasing this EEPROM's content will 90 + * brick the board. 91 + * Use this bus with caution. 92 + */ 93 + }; 94 + 95 + mdio@72004 { 96 + pinctrl-names = "default"; 97 + pinctrl-0 = <&mdio_pins>; 98 + 99 + phy0: ethernet-phy@1 { 100 + reg = <1>; 101 + }; 102 + 103 + phy1: ethernet-phy@4 { 104 + reg = <4>; 105 + }; 106 + 107 + phy2: ethernet-phy@6 { 108 + reg = <6>; 109 + }; 110 + }; 111 + 112 + /* UART0 is exposed through the JP8 connector */ 113 + uart0: serial@12000 { 114 + pinctrl-names = "default"; 115 + pinctrl-0 = <&uart0_pins>; 116 + status = "okay"; 117 + }; 118 + 119 + /* 120 + * UART1 is exposed through a FTDI chip 121 + * wired to the mini-USB connector 122 + */ 123 + uart1: serial@12100 { 124 + pinctrl-names = "default"; 125 + pinctrl-0 = <&uart1_pins>; 126 + status = "okay"; 127 + }; 128 + 129 + ethernet@30000 { 130 + status = "okay"; 131 + phy = <&phy2>; 132 + phy-mode = "sgmii"; 133 + }; 134 + 135 + ethernet@34000 { 136 + status = "okay"; 137 + phy = <&phy1>; 138 + phy-mode = "sgmii"; 139 + }; 140 + 141 + ethernet@70000 { 142 + pinctrl-names = "default"; 143 + 144 + /* 145 + * The Reference Clock 0 is used to 146 + * provide a clock to the PHY 147 + */ 148 + pinctrl-0 = <&ge0_rgmii_pins>, <&ref_clk0_pins>; 149 + status = "okay"; 150 + phy = <&phy0>; 151 + phy-mode = "rgmii-id"; 152 + }; 153 + }; 154 + 155 + pcie-controller { 156 + status = "okay"; 157 + 158 + /* 159 + * The three PCIe units are accessible through 160 + * standard mini-PCIe slots on the board. 161 + */ 162 + pcie@1,0 { 163 + /* Port 0, Lane 0 */ 164 + status = "okay"; 165 + }; 166 + 167 + pcie@2,0 { 168 + /* Port 1, Lane 0 */ 169 + status = "okay"; 170 + }; 171 + 172 + pcie@3,0 { 173 + /* Port 2, Lane 0 */ 174 + status = "okay"; 175 + }; 176 + }; 177 + }; 178 + };
+18 -71
arch/arm/boot/dts/armada-385-db.dts arch/arm/boot/dts/armada-388-rd.dts
··· 1 1 /* 2 - * Device Tree file for Marvell Armada 385 evaluation board 3 - * (DB-88F6820) 2 + * Device Tree file for Marvell Armada 388 Reference Design board 3 + * (RD-88F6820-AP) 4 4 * 5 5 * Copyright (C) 2014 Marvell 6 6 * 7 + * Gregory CLEMENT <gregory.clement@free-electrons.com> 7 8 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 8 9 * 9 10 * This file is licensed under the terms of the GNU General Public ··· 13 12 */ 14 13 15 14 /dts-v1/; 16 - #include "armada-385.dtsi" 15 + #include "armada-388.dtsi" 17 16 18 17 / { 19 - model = "Marvell Armada 385 Development Board"; 20 - compatible = "marvell,a385-db", "marvell,armada385", "marvell,armada380"; 18 + model = "Marvell Armada 385 Reference Design"; 19 + compatible = "marvell,a385-rd", "marvell,armada388", 20 + "marvell,armada385","marvell,armada380"; 21 21 22 22 chosen { 23 23 bootargs = "console=ttyS0,115200 earlyprintk"; ··· 40 38 spi-flash@0 { 41 39 #address-cells = <1>; 42 40 #size-cells = <1>; 43 - compatible = "w25q32"; 41 + compatible = "st,m25p128"; 44 42 reg = <0>; /* Chip select 0 */ 45 43 spi-max-frequency = <108000000>; 46 44 }; ··· 51 49 clock-frequency = <100000>; 52 50 }; 53 51 54 - i2c@11100 { 55 - status = "okay"; 56 - clock-frequency = <100000>; 57 - }; 58 - 59 52 serial@12000 { 60 53 status = "okay"; 61 54 }; 62 55 63 56 ethernet@30000 { 64 57 status = "okay"; 65 - phy = <&phy1>; 66 - phy-mode = "rgmii-id"; 67 - }; 68 - 69 - usb@50000 { 70 - status = "ok"; 71 - }; 72 - 73 - ethernet@70000 { 74 - status = "okay"; 75 58 phy = <&phy0>; 76 59 phy-mode = "rgmii-id"; 77 60 }; 78 61 79 - mdio { 62 + ethernet@70000 { 63 + status = "okay"; 64 + phy = <&phy1>; 65 + phy-mode = "rgmii-id"; 66 + }; 67 + 68 + 69 + mdio@72004 { 80 70 phy0: ethernet-phy@0 { 81 71 reg = <0>; 82 72 }; ··· 78 84 }; 79 85 }; 80 86 81 - sata@a8000 { 82 - status = "okay"; 83 - }; 84 - 85 - sata@e0000 { 86 - status = "okay"; 87 - }; 88 - 89 - flash@d0000 { 90 - status = "okay"; 91 - num-cs = <1>; 92 - marvell,nand-keep-config; 93 - marvell,nand-enable-arbiter; 94 - nand-on-flash-bbt; 95 - nand-ecc-strength = <4>; 96 - nand-ecc-step-size = <512>; 97 - 98 - partition@0 { 99 - label = "U-Boot"; 100 - reg = <0 0x800000>; 101 - }; 102 - partition@800000 { 103 - label = "Linux"; 104 - reg = <0x800000 0x800000>; 105 - }; 106 - partition@1000000 { 107 - label = "Filesystem"; 108 - reg = <0x1000000 0x3f000000>; 109 - }; 110 - }; 111 - 112 - sdhci@d8000 { 113 - broken-cd; 114 - wp-inverted; 115 - bus-width = <8>; 116 - status = "okay"; 117 - no-1-8-v; 118 - }; 119 - 120 87 usb3@f0000 { 121 - status = "okay"; 122 - }; 123 - 124 - usb3@f8000 { 125 88 status = "okay"; 126 89 }; 127 90 }; ··· 86 135 pcie-controller { 87 136 status = "okay"; 88 137 /* 89 - * The two PCIe units are accessible through 90 - * standard PCIe slots on the board. 138 + * One PCIe units is accessible through 139 + * standard PCIe slot on the board. 91 140 */ 92 141 pcie@1,0 { 93 142 /* Port 0, Lane 0 */ 94 - status = "okay"; 95 - }; 96 - pcie@2,0 { 97 - /* Port 1, Lane 0 */ 98 143 status = "okay"; 99 144 }; 100 145 };
+71 -16
arch/arm/boot/dts/armada-385-rd.dts arch/arm/boot/dts/armada-388-db.dts
··· 1 1 /* 2 - * Device Tree file for Marvell Armada 385 Reference Design board 3 - * (RD-88F6820-AP) 2 + * Device Tree file for Marvell Armada 388 evaluation board 3 + * (DB-88F6820) 4 4 * 5 5 * Copyright (C) 2014 Marvell 6 6 * 7 - * Gregory CLEMENT <gregory.clement@free-electrons.com> 8 7 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 9 8 * 10 9 * This file is licensed under the terms of the GNU General Public ··· 12 13 */ 13 14 14 15 /dts-v1/; 15 - #include "armada-385.dtsi" 16 + #include "armada-388.dtsi" 16 17 17 18 / { 18 - model = "Marvell Armada 385 Reference Design"; 19 - compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada380"; 19 + model = "Marvell Armada 385 Development Board"; 20 + compatible = "marvell,a385-db", "marvell,armada388", 21 + "marvell,armada385", "marvell,armada380"; 20 22 21 23 chosen { 22 24 bootargs = "console=ttyS0,115200 earlyprintk"; ··· 39 39 spi-flash@0 { 40 40 #address-cells = <1>; 41 41 #size-cells = <1>; 42 - compatible = "st,m25p128"; 42 + compatible = "w25q32"; 43 43 reg = <0>; /* Chip select 0 */ 44 44 spi-max-frequency = <108000000>; 45 45 }; ··· 50 50 clock-frequency = <100000>; 51 51 }; 52 52 53 + i2c@11100 { 54 + status = "okay"; 55 + clock-frequency = <100000>; 56 + }; 57 + 53 58 serial@12000 { 54 59 status = "okay"; 55 60 }; 56 61 57 62 ethernet@30000 { 58 63 status = "okay"; 59 - phy = <&phy0>; 60 - phy-mode = "rgmii-id"; 61 - }; 62 - 63 - ethernet@70000 { 64 - status = "okay"; 65 64 phy = <&phy1>; 66 65 phy-mode = "rgmii-id"; 67 66 }; 68 67 68 + usb@50000 { 69 + status = "ok"; 70 + }; 69 71 70 - mdio { 72 + ethernet@70000 { 73 + status = "okay"; 74 + phy = <&phy0>; 75 + phy-mode = "rgmii-id"; 76 + }; 77 + 78 + mdio@72004 { 71 79 phy0: ethernet-phy@0 { 72 80 reg = <0>; 73 81 }; ··· 85 77 }; 86 78 }; 87 79 80 + sata@a8000 { 81 + status = "okay"; 82 + }; 83 + 84 + sata@e0000 { 85 + status = "okay"; 86 + }; 87 + 88 + flash@d0000 { 89 + status = "okay"; 90 + num-cs = <1>; 91 + marvell,nand-keep-config; 92 + marvell,nand-enable-arbiter; 93 + nand-on-flash-bbt; 94 + nand-ecc-strength = <4>; 95 + nand-ecc-step-size = <512>; 96 + 97 + partition@0 { 98 + label = "U-Boot"; 99 + reg = <0 0x800000>; 100 + }; 101 + partition@800000 { 102 + label = "Linux"; 103 + reg = <0x800000 0x800000>; 104 + }; 105 + partition@1000000 { 106 + label = "Filesystem"; 107 + reg = <0x1000000 0x3f000000>; 108 + }; 109 + }; 110 + 111 + sdhci@d8000 { 112 + broken-cd; 113 + wp-inverted; 114 + bus-width = <8>; 115 + status = "okay"; 116 + no-1-8-v; 117 + }; 118 + 88 119 usb3@f0000 { 120 + status = "okay"; 121 + }; 122 + 123 + usb3@f8000 { 89 124 status = "okay"; 90 125 }; 91 126 }; ··· 136 85 pcie-controller { 137 86 status = "okay"; 138 87 /* 139 - * One PCIe units is accessible through 140 - * standard PCIe slot on the board. 88 + * The two PCIe units are accessible through 89 + * standard PCIe slots on the board. 141 90 */ 142 91 pcie@1,0 { 143 92 /* Port 0, Lane 0 */ 93 + status = "okay"; 94 + }; 95 + pcie@2,0 { 96 + /* Port 1, Lane 0 */ 144 97 status = "okay"; 145 98 }; 146 99 };
+1 -2
arch/arm/boot/dts/armada-385.dtsi
··· 37 37 38 38 soc { 39 39 internal-regs { 40 - pinctrl { 40 + pinctrl@18000 { 41 41 compatible = "marvell,mv88f6820-pinctrl"; 42 - reg = <0x18000 0x20>; 43 42 }; 44 43 }; 45 44
+288
arch/arm/boot/dts/armada-388-gp.dts
··· 1 + /* 2 + * Device Tree file for Marvell Armada 385 development board 3 + * (RD-88F6820-GP) 4 + * 5 + * Copyright (C) 2014 Marvell 6 + * 7 + * Gregory CLEMENT <gregory.clement@free-electrons.com> 8 + * 9 + * This file is dual-licensed: you can use it either under the terms 10 + * of the GPL or the X11 license, at your option. Note that this dual 11 + * licensing only applies to this file, and not this project as a 12 + * whole. 13 + * 14 + * a) This file is licensed under the terms of the GNU General Public 15 + * License version 2. This program is licensed "as is" without 16 + * any warranty of any kind, whether express or implied. 17 + * 18 + * Or, alternatively, 19 + * 20 + * b) Permission is hereby granted, free of charge, to any person 21 + * obtaining a copy of this software and associated documentation 22 + * files (the "Software"), to deal in the Software without 23 + * restriction, including without limitation the rights to use, 24 + * copy, modify, merge, publish, distribute, sublicense, and/or 25 + * sell copies of the Software, and to permit persons to whom the 26 + * Software is furnished to do so, subject to the following 27 + * conditions: 28 + * 29 + * The above copyright notice and this permission notice shall be 30 + * included in all copies or substantial portions of the Software. 31 + * 32 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 33 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 37 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 + * OTHER DEALINGS IN THE SOFTWARE. 40 + */ 41 + 42 + /dts-v1/; 43 + #include "armada-388.dtsi" 44 + #include <dt-bindings/gpio/gpio.h> 45 + 46 + / { 47 + model = "Marvell Armada 385 GP"; 48 + compatible = "marvell,a385-gp", "marvell,armada388", "marvell,armada380"; 49 + 50 + chosen { 51 + bootargs = "console=ttyS0,115200"; 52 + stdout-path = &uart0; 53 + }; 54 + 55 + memory { 56 + device_type = "memory"; 57 + reg = <0x00000000 0x80000000>; /* 2 GB */ 58 + }; 59 + 60 + soc { 61 + ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 62 + MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>; 63 + 64 + internal-regs { 65 + spi@10600 { 66 + pinctrl-names = "default"; 67 + pinctrl-0 = <&spi0_pins>; 68 + status = "okay"; 69 + 70 + spi-flash@0 { 71 + #address-cells = <1>; 72 + #size-cells = <1>; 73 + compatible = "st,m25p128"; 74 + reg = <0>; /* Chip select 0 */ 75 + spi-max-frequency = <50000000>; 76 + m25p,fast-read; 77 + }; 78 + }; 79 + 80 + i2c@11000 { 81 + pinctrl-names = "default"; 82 + pinctrl-0 = <&i2c0_pins>; 83 + status = "okay"; 84 + clock-frequency = <100000>; 85 + /* 86 + * The EEPROM located at adresse 54 is needed 87 + * for the boot - DO NOT ERASE IT - 88 + */ 89 + 90 + expander0: pca9555@20 { 91 + compatible = "nxp,pca9555"; 92 + pinctrl-names = "default"; 93 + pinctrl-0 = <&pca0_pins>; 94 + interrupt-parent = <&gpio0>; 95 + interrupts = <18 IRQ_TYPE_EDGE_FALLING>; 96 + gpio-controller; 97 + #gpio-cells = <2>; 98 + interrupt-controller; 99 + #interrupt-cells = <2>; 100 + reg = <0x20>; 101 + }; 102 + 103 + expander1: pca9555@21 { 104 + compatible = "nxp,pca9555"; 105 + pinctrl-names = "default"; 106 + interrupt-parent = <&gpio0>; 107 + interrupts = <18 IRQ_TYPE_EDGE_FALLING>; 108 + gpio-controller; 109 + #gpio-cells = <2>; 110 + interrupt-controller; 111 + #interrupt-cells = <2>; 112 + reg = <0x21>; 113 + }; 114 + 115 + }; 116 + 117 + serial@12000 { 118 + /* 119 + * Exported on the micro USB connector CON16 120 + * through an FTDI 121 + */ 122 + 123 + pinctrl-names = "default"; 124 + pinctrl-0 = <&uart0_pins>; 125 + status = "okay"; 126 + }; 127 + 128 + /* GE1 CON15 */ 129 + ethernet@30000 { 130 + pinctrl-names = "default"; 131 + pinctrl-0 = <&ge1_rgmii_pins>; 132 + status = "okay"; 133 + phy = <&phy1>; 134 + phy-mode = "rgmii-id"; 135 + }; 136 + 137 + /* CON4 */ 138 + usb@50000 { 139 + vcc-supply = <&reg_usb2_0_vbus>; 140 + status = "okay"; 141 + }; 142 + 143 + /* GE0 CON1 */ 144 + ethernet@70000 { 145 + pinctrl-names = "default"; 146 + /* 147 + * The Reference Clock 0 is used to provide a 148 + * clock to the PHY 149 + */ 150 + pinctrl-0 = <&ge0_rgmii_pins>, <&ref_clk0_pins>; 151 + status = "okay"; 152 + phy = <&phy0>; 153 + phy-mode = "rgmii-id"; 154 + }; 155 + 156 + 157 + mdio@72004 { 158 + pinctrl-names = "default"; 159 + pinctrl-0 = <&mdio_pins>; 160 + 161 + phy0: ethernet-phy@1 { 162 + reg = <1>; 163 + }; 164 + 165 + phy1: ethernet-phy@0 { 166 + reg = <0>; 167 + }; 168 + }; 169 + 170 + sata@a8000 { 171 + pinctrl-names = "default"; 172 + pinctrl-0 = <&sata0_pins>, <&sata1_pins>; 173 + status = "okay"; 174 + #address-cells = <1>; 175 + #size-cells = <0>; 176 + }; 177 + 178 + sata@e0000 { 179 + pinctrl-names = "default"; 180 + pinctrl-0 = <&sata2_pins>, <&sata3_pins>; 181 + status = "okay"; 182 + #address-cells = <1>; 183 + #size-cells = <0>; 184 + }; 185 + 186 + sdhci@d8000 { 187 + pinctrl-names = "default"; 188 + pinctrl-0 = <&sdhci_pins>; 189 + cd-gpios = <&expander0 5 GPIO_ACTIVE_LOW>; 190 + no-1-8-v; 191 + wp-inverted; 192 + bus-width = <8>; 193 + status = "okay"; 194 + }; 195 + 196 + /* CON5 */ 197 + usb3@f0000 { 198 + vcc-supply = <&reg_usb2_1_vbus>; 199 + status = "okay"; 200 + }; 201 + 202 + /* CON7 */ 203 + usb3@f8000 { 204 + vcc-supply = <&reg_usb3_vbus>; 205 + status = "okay"; 206 + }; 207 + }; 208 + 209 + pcie-controller { 210 + status = "okay"; 211 + /* 212 + * One PCIe units is accessible through 213 + * standard PCIe slot on the board. 214 + */ 215 + pcie@1,0 { 216 + /* Port 0, Lane 0 */ 217 + status = "okay"; 218 + }; 219 + 220 + /* 221 + * The two other PCIe units are accessible 222 + * through mini PCIe slot on the board. 223 + */ 224 + pcie@2,0 { 225 + /* Port 1, Lane 0 */ 226 + status = "okay"; 227 + }; 228 + pcie@3,0 { 229 + /* Port 2, Lane 0 */ 230 + status = "okay"; 231 + }; 232 + }; 233 + 234 + gpio-fan { 235 + compatible = "gpio-fan"; 236 + gpios = <&expander1 3 GPIO_ACTIVE_HIGH>; 237 + gpio-fan,speed-map = < 0 0 238 + 3000 1>; 239 + }; 240 + }; 241 + 242 + reg_usb3_vbus: usb3-vbus { 243 + compatible = "regulator-fixed"; 244 + regulator-name = "usb3-vbus"; 245 + regulator-min-microvolt = <5000000>; 246 + regulator-max-microvolt = <5000000>; 247 + enable-active-high; 248 + regulator-always-on; 249 + gpio = <&expander1 15 GPIO_ACTIVE_HIGH>; 250 + }; 251 + 252 + reg_usb2_0_vbus: v5-vbus0 { 253 + compatible = "regulator-fixed"; 254 + regulator-name = "v5.0-vbus0"; 255 + regulator-min-microvolt = <5000000>; 256 + regulator-max-microvolt = <5000000>; 257 + enable-active-high; 258 + regulator-always-on; 259 + gpio = <&expander1 14 GPIO_ACTIVE_HIGH>; 260 + }; 261 + 262 + reg_usb2_1_vbus: v5-vbus1 { 263 + compatible = "regulator-fixed"; 264 + regulator-name = "v5.0-vbus1"; 265 + regulator-min-microvolt = <5000000>; 266 + regulator-max-microvolt = <5000000>; 267 + enable-active-high; 268 + regulator-always-on; 269 + gpio = <&expander0 4 GPIO_ACTIVE_HIGH>; 270 + }; 271 + 272 + reg_usb2_1_vbus: v5-vbus1 { 273 + compatible = "regulator-fixed"; 274 + regulator-name = "v5.0-vbus1"; 275 + regulator-min-microvolt = <5000000>; 276 + regulator-max-microvolt = <5000000>; 277 + enable-active-high; 278 + regulator-always-on; 279 + gpio = <&expander0 4 GPIO_ACTIVE_HIGH>; 280 + }; 281 + }; 282 + 283 + &pinctrl { 284 + pca0_pins: pca0_pins { 285 + marvell,pins = "mpp18"; 286 + marvell,function = "gpio"; 287 + }; 288 + };
+70
arch/arm/boot/dts/armada-388.dtsi
··· 1 + /* 2 + * Device Tree Include file for Marvell Armada 388 SoC. 3 + * 4 + * Copyright (C) 2015 Marvell 5 + * 6 + * Gregory CLEMENT <gregory.clement@free-electrons.com> 7 + * 8 + * This file is dual-licensed: you can use it either under the terms 9 + * of the GPL 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 file is licensed under the terms of the GNU General Public 14 + * License version 2. This program is licensed "as is" without 15 + * any warranty of any kind, whether express or implied. 16 + * 17 + * Or, alternatively, 18 + * 19 + * b) Permission is hereby granted, free of charge, to any person 20 + * obtaining a copy of this software and associated documentation 21 + * files (the "Software"), to deal in the Software without 22 + * restriction, including without limitation the rights to use, 23 + * copy, modify, merge, publish, distribute, sublicense, and/or 24 + * sell copies of the Software, and to permit persons to whom the 25 + * Software is furnished to do so, subject to the following 26 + * conditions: 27 + * 28 + * The above copyright notice and this permission notice shall be 29 + * included in all copies or substantial portions of the Software. 30 + * 31 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 32 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 36 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 + * OTHER DEALINGS IN THE SOFTWARE. 39 + * 40 + * 41 + * The main difference with the Armada 385 is that the 388 can handle two more 42 + * SATA ports. So we can reuse the dtsi of the Armada 385, override the pinctrl 43 + * property and the name of the SoC, and add the second SATA host which control 44 + * the 2 other ports. 45 + */ 46 + 47 + #include "armada-385.dtsi" 48 + 49 + / { 50 + model = "Marvell Armada 388 family SoC"; 51 + compatible = "marvell,armada388", "marvell,armada385", 52 + "marvell,armada380"; 53 + 54 + soc { 55 + internal-regs { 56 + pinctrl@18000 { 57 + compatible = "marvell,mv88f6828-pinctrl"; 58 + }; 59 + 60 + sata@e0000 { 61 + compatible = "marvell,armada-380-ahci"; 62 + reg = <0xe0000 0x2000>; 63 + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 64 + clocks = <&gateclk 30>; 65 + status = "disabled"; 66 + }; 67 + 68 + }; 69 + }; 70 + };
+89 -4
arch/arm/boot/dts/armada-38x.dtsi
··· 173 173 status = "disabled"; 174 174 }; 175 175 176 - serial@12000 { 176 + uart0: serial@12000 { 177 177 compatible = "snps,dw-apb-uart"; 178 178 reg = <0x12000 0x100>; 179 179 reg-shift = <2>; ··· 193 193 status = "disabled"; 194 194 }; 195 195 196 - pinctrl { 197 - compatible = "marvell,mv88f6820-pinctrl"; 196 + pinctrl: pinctrl@18000 { 198 197 reg = <0x18000 0x20>; 198 + 199 + ge0_rgmii_pins: ge-rgmii-pins-0 { 200 + marvell,pins = "mpp6", "mpp7", "mpp8", 201 + "mpp9", "mpp10", "mpp11", 202 + "mpp12", "mpp13", "mpp14", 203 + "mpp15", "mpp16", "mpp17"; 204 + marvell,function = "ge0"; 205 + }; 206 + 207 + ge1_rgmii_pins: ge-rgmii-pins-1 { 208 + marvell,pins = "mpp21", "mpp27", "mpp28", 209 + "mpp29", "mpp30", "mpp31", 210 + "mpp32", "mpp37", "mpp38", 211 + "mpp39", "mpp40", "mpp41"; 212 + marvell,function = "ge1"; 213 + }; 214 + 215 + i2c0_pins: i2c-pins-0 { 216 + marvell,pins = "mpp2", "mpp3"; 217 + marvell,function = "i2c0"; 218 + }; 219 + 220 + mdio_pins: mdio-pins { 221 + marvell,pins = "mpp4", "mpp5"; 222 + marvell,function = "ge"; 223 + }; 224 + 225 + ref_clk0_pins: ref-clk-pins-0 { 226 + marvell,pins = "mpp45"; 227 + marvell,function = "ref"; 228 + }; 229 + 230 + ref_clk1_pins: ref-clk-pins-1 { 231 + marvell,pins = "mpp46"; 232 + marvell,function = "ref"; 233 + }; 234 + 235 + spi0_pins: spi-pins-0 { 236 + marvell,pins = "mpp22", "mpp23", "mpp24", 237 + "mpp25"; 238 + marvell,function = "spi0"; 239 + }; 240 + 241 + spi1_pins: spi-pins-1 { 242 + marvell,pins = "mpp56", "mpp57", "mpp58", 243 + "mpp59"; 244 + marvell,function = "spi1"; 245 + }; 246 + 247 + uart0_pins: uart-pins-0 { 248 + marvell,pins = "mpp0", "mpp1"; 249 + marvell,function = "ua0"; 250 + }; 251 + 252 + uart1_pins: uart-pins-1 { 253 + marvell,pins = "mpp19", "mpp20"; 254 + marvell,function = "ua1"; 255 + }; 256 + 257 + sdhci_pins: sdhci-pins { 258 + marvell,pins = "mpp48", "mpp49", "mpp50", 259 + "mpp52", "mpp53", "mpp54", 260 + "mpp55", "mpp57", "mpp58", 261 + "mpp59"; 262 + marvell,function = "sd0"; 263 + }; 264 + 265 + sata0_pins: sata-pins-0 { 266 + marvell,pins = "mpp20"; 267 + marvell,function = "sata0"; 268 + }; 269 + 270 + sata1_pins: sata-pins-1 { 271 + marvell,pins = "mpp19"; 272 + marvell,function = "sata1"; 273 + }; 274 + 275 + sata2_pins: sata-pins-2 { 276 + marvell,pins = "mpp47"; 277 + marvell,function = "sata2"; 278 + }; 279 + 280 + sata3_pins: sata-pins-3 { 281 + marvell,pins = "mpp44"; 282 + marvell,function = "sata3"; 283 + }; 199 284 }; 200 285 201 286 gpio0: gpio@18100 { ··· 458 373 status = "disabled"; 459 374 }; 460 375 461 - mdio { 376 + mdio@72004 { 462 377 #address-cells = <1>; 463 378 #size-cells = <0>; 464 379 compatible = "marvell,orion-mdio";
+2
arch/arm/boot/dts/kirkwood-6192.dtsi
··· 66 66 interrupts = <21>; 67 67 clocks = <&gate_clk 14>, <&gate_clk 15>; 68 68 clock-names = "0", "1"; 69 + phys = <&sata_phy0>, <&sata_phy1>; 70 + phy-names = "port0", "port1"; 69 71 status = "disabled"; 70 72 }; 71 73
+173
arch/arm/boot/dts/kirkwood-blackarmor-nas220.dts
··· 1 + /* 2 + * Device Tree file for Seagate Blackarmor NAS220 3 + * 4 + * Copyright (C) 2014 Evgeni Dobrev <evgeni@studio-punkt.com> 5 + * 6 + * Licensed under GPLv2 or later. 7 + */ 8 + 9 + /dts-v1/; 10 + 11 + #include <dt-bindings/gpio/gpio.h> 12 + #include <dt-bindings/input/input.h> 13 + #include "kirkwood.dtsi" 14 + #include "kirkwood-6192.dtsi" 15 + 16 + / { 17 + model = "Seagate Blackarmor NAS220"; 18 + compatible = "seagate,blackarmor-nas220","marvell,kirkwood-88f6192", 19 + "marvell,kirkwood"; 20 + 21 + memory { /* 128 MB */ 22 + device_type = "memory"; 23 + reg = <0x00000000 0x8000000>; 24 + }; 25 + 26 + chosen { 27 + bootargs = "console=ttyS0,115200n8"; 28 + stdout-path = &uart0; 29 + }; 30 + 31 + gpio_poweroff { 32 + compatible = "gpio-poweroff"; 33 + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; 34 + }; 35 + 36 + gpio_keys { 37 + compatible = "gpio-keys"; 38 + 39 + button@1{ 40 + label = "Reset"; 41 + linux,code = <KEY_POWER>; 42 + gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; 43 + }; 44 + 45 + button@2{ 46 + label = "Power"; 47 + linux,code = <KEY_SLEEP>; 48 + gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; 49 + }; 50 + }; 51 + 52 + gpio-leds { 53 + compatible = "gpio-leds"; 54 + 55 + blue-power { 56 + label = "nas220:blue:power"; 57 + gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; 58 + linux,default-trigger = "default-on"; 59 + }; 60 + }; 61 + 62 + regulators { 63 + compatible = "simple-bus"; 64 + #address-cells = <1>; 65 + #size-cells = <0>; 66 + pinctrl-0 = <&pmx_power_sata0 &pmx_power_sata1>; 67 + pinctrl-names = "default"; 68 + 69 + sata0_power: regulator@1 { 70 + compatible = "regulator-fixed"; 71 + reg = <1>; 72 + regulator-name = "SATA0 Power"; 73 + regulator-min-microvolt = <5000000>; 74 + regulator-max-microvolt = <5000000>; 75 + enable-active-high; 76 + regulator-always-on; 77 + regulator-boot-on; 78 + gpio = <&gpio0 24 GPIO_ACTIVE_LOW>; 79 + }; 80 + 81 + sata1_power: regulator@2 { 82 + compatible = "regulator-fixed"; 83 + reg = <2>; 84 + regulator-name = "SATA1 Power"; 85 + regulator-min-microvolt = <5000000>; 86 + regulator-max-microvolt = <5000000>; 87 + enable-active-high; 88 + regulator-always-on; 89 + regulator-boot-on; 90 + gpio = <&gpio0 28 GPIO_ACTIVE_LOW>; 91 + }; 92 + }; 93 + }; 94 + 95 + /* 96 + * Serial port routed to connector CN5 97 + * 98 + * pin 1 - TX (CPU's TX) 99 + * pin 4 - RX (CPU's RX) 100 + * pin 6 - GND 101 + */ 102 + &uart0 { 103 + status = "okay"; 104 + }; 105 + 106 + &pinctrl { 107 + pinctrl-0 = <&pmx_button_reset &pmx_button_power>; 108 + pinctrl-names = "default"; 109 + 110 + pmx_act_sata0: pmx-act-sata0 { 111 + marvell,pins = "mpp15"; 112 + marvell,function = "sata0"; 113 + }; 114 + 115 + pmx_act_sata1: pmx-act-sata1 { 116 + marvell,pins = "mpp16"; 117 + marvell,function = "sata1"; 118 + }; 119 + 120 + pmx_power_sata0: pmx-power-sata0 { 121 + marvell,pins = "mpp24"; 122 + marvell,function = "gpio"; 123 + }; 124 + 125 + pmx_power_sata1: pmx-power-sata1 { 126 + marvell,pins = "mpp28"; 127 + marvell,function = "gpio"; 128 + }; 129 + 130 + pmx_button_reset: pmx-button-reset { 131 + marvell,pins = "mpp29"; 132 + marvell,function = "gpio"; 133 + }; 134 + 135 + pmx_button_power: pmx-button-power { 136 + marvell,pins = "mpp26"; 137 + marvell,function = "gpio"; 138 + }; 139 + }; 140 + 141 + &sata { 142 + status = "okay"; 143 + nr-ports = <2>; 144 + }; 145 + 146 + &i2c0 { 147 + status = "okay"; 148 + 149 + adt7476: thermal@2e { 150 + compatible = "adi,adt7476"; 151 + reg = <0x2e>; 152 + }; 153 + }; 154 + 155 + &nand { 156 + status = "okay"; 157 + }; 158 + 159 + &mdio { 160 + status = "okay"; 161 + 162 + ethphy0: ethernet-phy@8 { 163 + reg = <8>; 164 + }; 165 + }; 166 + 167 + &eth0 { 168 + status = "okay"; 169 + 170 + ethernet0-port@0 { 171 + phy-handle = <&ethphy0>; 172 + }; 173 + };
+6 -2
arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
··· 169 169 gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; 170 170 }; 171 171 }; 172 + gpio-poweroff { 173 + compatible = "gpio-poweroff"; 174 + gpios = <&gpio0 17 GPIO_ACTIVE_LOW>; 175 + }; 172 176 }; 173 177 174 178 &nand { ··· 196 192 }; 197 193 198 194 partition@400000 { 199 - label = "uInitrd"; 200 - reg = <0x540000 0x1000000>; 195 + label = "rootfs"; 196 + reg = <0x400000 0x1C00000>; 201 197 }; 202 198 }; 203 199