Merge tag 'mvebu-dt-3.15-2' of git://git.infradead.org/linux-mvebu into next/dt
authorArnd Bergmann <arnd@arndb.de>
Tue, 25 Feb 2014 17:16:15 +0000 (18:16 +0100)
committerArnd Bergmann <arnd@arndb.de>
Tue, 25 Feb 2014 17:16:15 +0000 (18:16 +0100)
Merge "mvebu dt changes for v3.15 (incremental round #2)" from Jason Cooper:

 - mvebu
    - add audio for Armada 370 DB
    - enable Armada 370/XP watchdog

 - kirkwood
    - convert board rd88f6281
    - add board rd88f6192

 - dove
    enable watchdog

* tag 'mvebu-dt-3.15-2' of git://git.infradead.org/linux-mvebu:
  ARM: dove: Enable Dove watchdog in the devicetree
  ARM: kirkwood: Add RSTOUT 'reg' entry to devicetree
  ARM: mvebu: Enable Armada 370/XP watchdog in the devicetree
  ARM: Kirkwood: convert rd88f6281-setup.c to DT.
  ARM: Kirkwood: Add DT description of rd88f6192.
  ARM: mvebu: enable S/PDIF audio in Armada 370 DB Device Tree
  ARM: mvebu: add audio support to Armada 370 DB
  ARM: mvebu: add I2C0 muxing option for Armada 370 SoC
  ARM: mvebu: add audio I2S controller to Armada 370 Device Tree

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/armada-370-db.dts
arch/arm/boot/dts/armada-370-xp.dtsi
arch/arm/boot/dts/armada-370.dtsi
arch/arm/boot/dts/armada-xp.dtsi
arch/arm/boot/dts/dove.dtsi
arch/arm/boot/dts/kirkwood-rd88f6192.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-rd88f6281.dtsi [new file with mode: 0644]
arch/arm/boot/dts/kirkwood.dtsi

index 222fe15a8d53760d122e53b746764e74eb0070ab..94b3bb4a08ea38a78edea12bd27079e87d327e6a 100644 (file)
@@ -113,6 +113,9 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-b3.dtb \
        kirkwood-nsa310a.dtb \
        kirkwood-openblocks_a6.dtb \
        kirkwood-openblocks_a7.dtb \
+       kirkwood-rd88f6192.dtb \
+       kirkwood-rd88f6281-a0.dtb \
+       kirkwood-rd88f6281-a1.dtb \
        kirkwood-sheevaplug.dtb \
        kirkwood-sheevaplug-esata.dtb \
        kirkwood-topkick.dtb \
index 08a56bcfc7248704b34ad1789418308819b3bcbf..82f238a9063ffe47d10dbe083f136e1876f8efd2 100644 (file)
                                phy-mode = "rgmii-id";
                        };
 
+                       i2c@11000 {
+                               pinctrl-0 = <&i2c0_pins>;
+                               pinctrl-names = "default";
+                               status = "okay";
+                               audio_codec: audio-codec@4a {
+                                       compatible = "cirrus,cs42l51";
+                                       reg = <0x4a>;
+                               };
+                       };
+
+                       audio-controller@30000 {
+                               pinctrl-0 = <&i2s_pins2>;
+                               pinctrl-names = "default";
+                               status = "okay";
+                       };
+
                        mvsdio@d4000 {
                                pinctrl-0 = <&sdio_pins1>;
                                pinctrl-names = "default";
                                broken-cd;
                        };
 
+                       pinctrl {
+                               /*
+                                * These pins might be muxed as I2S by
+                                * the bootloader, but it conflicts
+                                * with the real I2S pins that are
+                                * muxed using i2s_pins. We must mux
+                                * those pins to a function other than
+                                * I2S.
+                                */
+                               pinctrl-0 = <&hog_pins1 &hog_pins2>;
+                               pinctrl-names = "default";
+
+                               hog_pins1: hog-pins1 {
+                                       marvell,pins = "mpp6",  "mpp8", "mpp10",
+                                                      "mpp12", "mpp13";
+                                       marvell,function = "gpio";
+                               };
+
+                               hog_pins2: hog-pins2 {
+                                       marvell,pins = "mpp5", "mpp7", "mpp9";
+                                       marvell,function = "gpo";
+                               };
+                       };
+
                        usb@50000 {
                                status = "okay";
                        };
                                /* Port 0, Lane 0 */
                                status = "okay";
                        };
+
                        pcie@2,0 {
                                /* Port 1, Lane 0 */
                                status = "okay";
                        };
                };
        };
+
+       sound {
+             compatible = "marvell,a370db-audio";
+             marvell,audio-controller = <&audio_controller>;
+             marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>;
+             status = "okay";
+       };
+
+       spdif_out: spdif-out {
+             compatible = "linux,spdif-dit";
+       };
+
+       spdif_in: spdif-in {
+             compatible = "linux,spdif-dir";
+       };
 };
index 74b5964430ac3a7d833d8fce12eb655746acba4b..7bbc4ac997fbc971ceb2fdeabf2929be729d1679 100644 (file)
                                interrupts = <37>, <38>, <39>, <40>, <5>, <6>;
                        };
 
+                       watchdog@20300 {
+                               reg = <0x20300 0x34>, <0x20704 0x4>;
+                       };
+
                        usb@50000 {
                                compatible = "marvell,orion-ehci";
                                reg = <0x50000 0x500>;
index 0d8530c98cf5072f75662807f5cddcf2a40bee40..af1f11e9e5a011d526f64f8afaa60d000ef87542 100644 (file)
                                                        "mpp51", "mpp52", "mpp53";
                                        marvell,function = "sd0";
                                };
+
+                               i2c0_pins: i2c0-pins {
+                                       marvell,pins = "mpp2", "mpp3";
+                                       marvell,function = "i2c0";
+                               };
+
+                               i2s_pins1: i2s-pins1 {
+                                       marvell,pins = "mpp5", "mpp6", "mpp7",
+                                                      "mpp8", "mpp9", "mpp10",
+                                                      "mpp12", "mpp13";
+                                       marvell,function = "audio";
+                               };
+
+                               i2s_pins2: i2s-pins2 {
+                                       marvell,pins = "mpp49", "mpp47", "mpp50",
+                                                      "mpp59", "mpp57", "mpp61",
+                                                      "mpp62", "mpp60", "mpp58";
+                                       marvell,function = "audio";
+                               };
                        };
 
                        gpio0: gpio@18100 {
                                clocks = <&coreclk 2>;
                        };
 
+                       watchdog@20300 {
+                               compatible = "marvell,armada-370-wdt";
+                               clocks = <&coreclk 2>;
+                       };
+
+                       audio_controller: audio-controller@30000 {
+                               compatible = "marvell,armada370-audio";
+                               reg = <0x30000 0x4000>;
+                               interrupts = <93>;
+                               clocks = <&gateclk 0>;
+                               clock-names = "internal";
+                               status = "disabled";
+                       };
+
                        usb@50000 {
                                clocks = <&coreclk 0>;
                        };
index b8b84a22f0f3971b7013862821ecb0e2cfc237aa..abb9f9dcc525a6a7c1583e5f1f7c65d4ff29e485 100644 (file)
                                clock-names = "nbclk", "fixed";
                        };
 
+                       watchdog@20300 {
+                               compatible = "marvell,armada-xp-wdt";
+                               clocks = <&coreclk 2>, <&refclk>;
+                               clock-names = "nbclk", "fixed";
+                       };
+
                        armada-370-xp-pmsu@22000 {
                                compatible = "marvell,armada-370-xp-pmsu";
                                reg = <0x22100 0x400>, <0x20800 0x20>;
index 2b76524f4aa74ee475d7e027f24683097ef4770f..a88ed73c1c86a554ce39a1947de2f20288771589 100644 (file)
                                clocks = <&core_clk 0>;
                        };
 
+                       watchdog@20300 {
+                               compatible = "marvell,orion-wdt";
+                               reg = <0x20300 0x28>, <0x20108 0x4>;
+                               interrupt-parent = <&bridge_intc>;
+                               interrupts = <3>;
+                               clocks = <&core_clk 0>;
+                       };
+
                        crypto: crypto-engine@30000 {
                                compatible = "marvell,orion-crypto";
                                reg = <0x30000 0x10000>,
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6192.dts b/arch/arm/boot/dts/kirkwood-rd88f6192.dts
new file mode 100644 (file)
index 0000000..e9dd850
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * Marvell RD88F6192 Board descrition
+ *
+ * Andrew Lunn <andrew@lunn.ch>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ *
+ * This file contains the definitions that are common between the three
+ * variants of the Marvell Kirkwood Development Board.
+ */
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6192.dtsi"
+
+/ {
+       model = "Marvell RD88F6192 reference design";
+       compatible = "marvell,rd88f6192", "marvell,kirkwood-88f6192", "marvell,kirkwood";
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x20000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       mbus {
+               pcie-controller {
+                       status = "okay";
+
+                       pcie@1,0 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ocp@f1000000 {
+               pinctrl: pinctrl@10000 {
+                       pinctrl-0 = <&pmx_usb_power>;
+                       pinctrl-names = "default";
+
+                        pmx_usb_power: pmx-usb-power {
+                                marvell,pins = "mpp10";
+                                marvell,function = "gpo";
+                        };
+               };
+
+               serial@12000 {
+                       status = "okay";
+
+               };
+
+               spi@10600 {
+                       status = "okay";
+                       pinctrl-0 = <&pmx_spi>;
+                       pinctrl-names = "default";
+
+                       m25p128@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "st,m25p128";
+                               reg = <0>;
+                               spi-max-frequency = <20000000>;
+                               mode = <0>;
+                       };
+               };
+
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <2>;
+               };
+       };
+
+       regulators {
+                compatible = "simple-bus";
+                #address-cells = <1>;
+                #size-cells = <0>;
+                pinctrl-0 = <&pmx_usb_power>;
+                pinctrl-names = "default";
+
+                usb_power: regulator@0 {
+                        compatible = "regulator-fixed";
+                        reg = <0>;
+                        regulator-name = "USB VBUS";
+                        regulator-min-microvolt = <5000000>;
+                        regulator-max-microvolt = <5000000>;
+                        enable-active-high;
+                        regulator-always-on;
+                        regulator-boot-on;
+                        gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+                };
+       };
+};
+
+&mdio {
+        status = "okay";
+
+        ethphy0: ethernet-phy@8 {
+                reg = <8>;
+        };
+};
+
+&eth0 {
+        status = "okay";
+        ethernet0-port@0 {
+                phy-handle = <&ethphy0>;
+        };
+};
\ No newline at end of file
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts
new file mode 100644 (file)
index 0000000..a803bbb
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Marvell RD88F6181 A0 Board descrition
+ *
+ * Andrew Lunn <andrew@lunn.ch>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ *
+ * This file contains the definitions for the board with the A0 variant of
+ * the SoC. The ethernet switch does not have a "wan" port.
+ */
+
+/dts-v1/;
+#include "kirkwood-rd88f6281.dtsi"
+
+/ {
+       model = "Marvell RD88f6281 Reference design, with A0 SoC";
+       compatible = "marvell,rd88f6281-a0", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       dsa@0 {
+               switch@0 {
+                       reg = <10 0>;    /* MDIO address 10, switch 0 in tree */
+               };
+       };
+};
\ No newline at end of file
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts
new file mode 100644 (file)
index 0000000..baeebbf
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Marvell RD88F6181 A1 Board descrition
+ *
+ * Andrew Lunn <andrew@lunn.ch>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ *
+ * This file contains the definitions for the board with the A1 variant of
+ * the SoC. The ethernet switch has a "wan" port.
+ */
+
+/dts-v1/;
+
+#include "kirkwood-rd88f6281.dtsi"
+
+/ {
+       model = "Marvell RD88f6281 Reference design, with A1 SoC";
+       compatible = "marvell,rd88f6281-a1", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       dsa@0 {
+               switch@0 {
+                       reg = <0 0>;    /* MDIO address 0, switch 0 in tree */
+                       port@4 {
+                               reg = <4>;
+                               label = "wan";
+                       };
+               };
+       };
+};
\ No newline at end of file
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi b/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi
new file mode 100644 (file)
index 0000000..d6368c3
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+ * Marvell RD88F6181 Common Board descrition
+ *
+ * Andrew Lunn <andrew@lunn.ch>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ *
+ * This file contains the definitions that are common between the two
+ * variants of the Marvell Kirkwood Development Board.
+ */
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x20000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       mbus {
+               pcie-controller {
+                       status = "okay";
+
+                       pcie@1,0 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ocp@f1000000 {
+               pinctrl: pinctrl@10000 {
+                       pinctrl-0 = <&pmx_sdio_cd>;
+                       pinctrl-names = "default";
+
+                       pmx_sdio_cd: pmx-sdio-cd {
+                               marvell,pins = "mpp28";
+                               marvell,function = "gpio";
+                       };
+               };
+
+               serial@12000 {
+                       status = "okay";
+
+               };
+
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <2>;
+               };
+               mvsdio@90000 {
+                       pinctrl-0 = <&pmx_sdio &pmx_sdio_cd>;
+                       pinctrl-names = "default";
+                       status = "okay";
+                       cd-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+                       /* No WP GPIO */
+               };
+       };
+
+       dsa@0 {
+               compatible = "marvell,dsa";
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               dsa,ethernet = <&eth0>;
+               dsa,mii-bus = <&ethphy1>;
+
+               switch@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               label = "lan1";
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               label = "lan2";
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "lan3";
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               label = "lan4";
+                       };
+
+                       port@5 {
+                               reg = <5>;
+                               label = "cpu";
+                       };
+               };
+       };
+};
+
+&nand {
+       status = "okay";
+
+       partition@0 {
+               label = "u-boot";
+               reg = <0x0000000 0x100000>;
+               read-only;
+       };
+
+       partition@100000 {
+               label = "uImage";
+               reg = <0x0100000 0x200000>;
+       };
+
+       partition@300000 {
+               label = "data";
+               reg = <0x0300000 0x500000>;
+       };
+};
+
+&mdio {
+       status = "okay";
+
+       ethphy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+
+       ethphy1: ethernet-phy@ff {
+               reg = <0xff>; /* No PHY attached */
+               speed = <1000>;
+               duple = <1>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+       ethernet0-port@0 {
+               phy-handle = <&ethphy0>;
+       };
+};
+
+&eth1 {
+       status = "okay";
+       ethernet1-port@0 {
+               phy-handle = <&ethphy1>;
+       };
+};
index 6abf44d257dfa3fd7cadd8ca85a005d4ad9eed8f..85542c2f34b145c3be24ee99abadc2c905ab1925 100644 (file)
 
                wdt: watchdog-timer@20300 {
                        compatible = "marvell,orion-wdt";
-                       reg = <0x20300 0x28>;
+                       reg = <0x20300 0x28>, <0x20108 0x4>;
                        interrupt-parent = <&bridge_intc>;
                        interrupts = <3>;
                        clocks = <&gate_clk 7>;