]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
Merge tag 'mvebu-dt64-4.12-1' of git://git.infradead.org/linux-mvebu into next/dt64
authorArnd Bergmann <arnd@arndb.de>
Fri, 31 Mar 2017 09:51:03 +0000 (11:51 +0200)
committerArnd Bergmann <arnd@arndb.de>
Fri, 31 Mar 2017 09:51:03 +0000 (11:51 +0200)
Pull "mvebu dt64 for 4.12 (part 1)" from Gregory CLEMENT:

- Add RTC support on Armada 7k/8k
- Improve i2c support on Armada 37xx
- Add gpio expander and RTC on Armada 3720 board
- Improve USB3 support on Armada 37xx
- Add network support on Armada 7k/8k

* tag 'mvebu-dt64-4.12-1' of git://git.infradead.org/linux-mvebu:
  arm64: marvell: dts: add PPv2.2 description to Armada 7K/8K
  ARM64: dts: marvell: armada-3720 add RTC support
  ARM64: dts: marvell: armada-3720-db: Add phy for USB3
  ARM64: dts: marvell: armada-37xx: Add clock resource for USB3
  ARM64: dts: marvell: armada-37xx: Fix interrupt mapping for USB3
  ARM64: dts: marvell: armada-3720-db: add gpio expander
  ARM64: dts: marvell: armada37xx: add address and size property for i2c cells
  arm64: dts: marvell: add RTC description for Armada 7K/8K

arch/arm64/boot/dts/marvell/armada-3720-db.dts
arch/arm64/boot/dts/marvell/armada-37xx.dtsi
arch/arm64/boot/dts/marvell/armada-7040-db.dts
arch/arm64/boot/dts/marvell/armada-8020.dtsi
arch/arm64/boot/dts/marvell/armada-8040-db.dts
arch/arm64/boot/dts/marvell/armada-8040.dtsi
arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi

index 86602c907a6149e241e7539e492465de646e2809..2a6eef2d4d6692b32114adc03760301029698bb0 100644 (file)
@@ -46,6 +46,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/gpio/gpio.h>
 #include "armada-372x.dtsi"
 
 / {
@@ -60,10 +61,49 @@ memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
        };
+
+       exp_usb3_vbus: usb3-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb3-vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               regulator-always-on;
+               gpio = <&gpio_exp 1 GPIO_ACTIVE_HIGH>;
+       };
+
+       usb3_phy: usb3-phy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&exp_usb3_vbus>;
+       };
 };
 
 &i2c0 {
        status = "okay";
+
+       gpio_exp: pca9555@22 {
+               compatible = "nxp,pca9555";
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               reg = <0x22>;
+               /*
+                * IO0_0: PWR_EN_USB2   IO1_0: PWR_EN_VTT
+                * IO0_1: PWR_EN_USB23  IO1_1: MPCIE_WDISABLE
+                * IO0_2: PWR_EN_SATA   IO1_2: RGMII_DEV_RSTN
+                * IO0_3: PWR_EN_PCIE   IO1_3: SGMII_DEV_RSTN
+                * IO0_4: PWR_EN_SD
+                * IO0_5: PWR_EN_EMMC
+                * IO0_6: PWR_EN_RGMII  IO1_6: SATA_USB3.0_SEL
+                * IO0_7: PWR_EN_SGMII  IO1_7: PWR_MCI_PS
+                */
+       };
+
+       rtc@68  {
+               /* PT7C4337A from pericom fully compatible with the ds1337 */
+               compatible = "dallas,ds1337";
+               reg = <0x68>;
+       };
 };
 
 /* CON3 */
@@ -109,6 +149,7 @@ &uart0 {
 /* CON31 */
 &usb3 {
        status = "okay";
+       usb-phy = <&usb3_phy>;
 };
 
 /* CON17 (PCIe) / CON12 (mini-PCIe) */
index b48d668a6ab6278f2445d09554dfcb8278ecabc0..2a4e8dbe33aaa3f31822ab72a25cec443c84569d 100644 (file)
@@ -112,6 +112,8 @@ spi0: spi@10600 {
                        i2c0: i2c@11000 {
                                compatible = "marvell,armada-3700-i2c";
                                reg = <0x11000 0x24>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
                                clocks = <&nb_periph_clk 10>;
                                interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
                                mrvl,i2c-fast-mode;
@@ -121,6 +123,8 @@ i2c0: i2c@11000 {
                        i2c1: i2c@11080 {
                                compatible = "marvell,armada-3700-i2c";
                                reg = <0x11080 0x24>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
                                clocks = <&nb_periph_clk 9>;
                                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
                                mrvl,i2c-fast-mode;
@@ -196,7 +200,8 @@ usb3: usb@58000 {
                                compatible = "marvell,armada3700-xhci",
                                "generic-xhci";
                                reg = <0x58000 0x4000>;
-                               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&sb_periph_clk 12>;
                                status = "disabled";
                        };
 
index 070b589680c59cb4d355ad680dea15a84d011660..bb0e1e8e7138876a6eff222cd2c1f38fc19ea595 100644 (file)
@@ -146,3 +146,28 @@ &cpm_usb3_0 {
 &cpm_usb3_1 {
        status = "okay";
 };
+
+&cpm_mdio {
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
+&cpm_ethernet {
+       status = "okay";
+};
+
+&cpm_eth1 {
+       status = "okay";
+       phy = <&phy0>;
+       phy-mode = "sgmii";
+};
+
+&cpm_eth2 {
+       status = "okay";
+       phy = <&phy1>;
+       phy-mode = "rgmii-id";
+};
index 048e5cf5160e9740896e3057b08120163cc78e1c..7c08f1f28d9e05ab95c388b6aec41193970f52c1 100644 (file)
@@ -54,3 +54,13 @@ / {
        compatible = "marvell,armada8020", "marvell,armada-ap806-dual",
                     "marvell,armada-ap806";
 };
+
+/* The RTC requires external oscillator. But on Aramda 80x0, the RTC clock
+ * in CP master is not connected (by package) to the oscillator. So
+ * disable it. However, the RTC clock in CP slave is connected to the
+ * oscillator so this one is let enabled.
+ */
+
+&cpm_rtc {
+       status = "disabled";
+};
index 6e6f182fb2971a895efded70f6e4ae7b7287bd39..80e685e4235d3d3a010982e8908b719b43cbf4ec 100644 (file)
@@ -124,6 +124,22 @@ &cpm_usb3_1 {
        status = "okay";
 };
 
+&cpm_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
+&cpm_ethernet {
+       status = "okay";
+};
+
+&cpm_eth2 {
+       status = "okay";
+       phy = <&phy1>;
+       phy-mode = "rgmii-id";
+};
+
 /* CON5 on CP1 expansion */
 &cps_pcie2 {
        status = "okay";
index 9c1b28c476838fc20009b35740d825627b0ff5c3..33813a75bc309032cff84b51f97269c1c15abddc 100644 (file)
@@ -54,3 +54,12 @@ / {
        compatible = "marvell,armada8040", "marvell,armada-ap806-quad",
                     "marvell,armada-ap806";
 };
+
+/* The RTC requires external oscillator. But on Aramda 80x0, the RTC clock
+ * in CP master is not connected (by package) to the oscillator. So
+ * disable it. However, the RTC clock in CP slave is connected to the
+ * oscillator so this one is let enabled.
+ */
+&cpm_rtc {
+       status = "disabled";
+};
index 3a99c36433d6f9bb0c82c13fd68aa10dfb0f037a..a035f59552821ceb481db9d8ccfa37f3eef320e1 100644 (file)
@@ -59,6 +59,43 @@ config-space@f2000000 {
                        interrupt-parent = <&gic>;
                        ranges = <0x0 0x0 0xf2000000 0x2000000>;
 
+                       cpm_ethernet: ethernet@0 {
+                               compatible = "marvell,armada-7k-pp22";
+                               reg = <0x0 0x100000>, <0x129000 0xb000>;
+                               clocks = <&cpm_syscon0 1 3>, <&cpm_syscon0 1 9>, <&cpm_syscon0 1 5>;
+                               clock-names = "pp_clk", "gop_clk", "mg_clk";
+                               status = "disabled";
+                               dma-coherent;
+
+                               cpm_eth0: eth0 {
+                                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                                       port-id = <0>;
+                                       gop-port-id = <0>;
+                                       status = "disabled";
+                               };
+
+                               cpm_eth1: eth1 {
+                                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                                       port-id = <1>;
+                                       gop-port-id = <2>;
+                                       status = "disabled";
+                               };
+
+                               cpm_eth2: eth2 {
+                                       interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+                                       port-id = <2>;
+                                       gop-port-id = <3>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       cpm_mdio: mdio@12a200 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "marvell,orion-mdio";
+                               reg = <0x12a200 0x10>;
+                       };
+
                        cpm_syscon0: system-controller@440000 {
                                compatible = "marvell,cp110-system-controller0",
                                             "syscon";
@@ -79,6 +116,13 @@ cpm_syscon0: system-controller@440000 {
                                        "cpm-usb3dev", "cpm-eip150", "cpm-eip197";
                        };
 
+                       cpm_rtc: rtc@284000 {
+                               compatible = "marvell,armada-8k-rtc";
+                               reg = <0x284000 0x20>, <0x284080 0x24>;
+                               reg-names = "rtc", "rtc-soc";
+                               interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
                        cpm_sata0: sata@540000 {
                                compatible = "marvell,armada-8k-ahci",
                                             "generic-ahci";
index 9e09c4d3b6bd8412deb29353a6d67a9fbe35beb2..fb9141ab9b3763881add3bb6a3b1de26836c2026 100644 (file)
@@ -59,6 +59,50 @@ config-space@f4000000 {
                        interrupt-parent = <&gic>;
                        ranges = <0x0 0x0 0xf4000000 0x2000000>;
 
+                       cps_rtc: rtc@284000 {
+                               compatible = "marvell,armada-8k-rtc";
+                               reg = <0x284000 0x20>, <0x284080 0x24>;
+                               reg-names = "rtc", "rtc-soc";
+                               interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       cps_ethernet: ethernet@0 {
+                               compatible = "marvell,armada-7k-pp22";
+                               reg = <0x0 0x100000>, <0x129000 0xb000>;
+                               clocks = <&cps_syscon0 1 3>, <&cps_syscon0 1 9>, <&cps_syscon0 1 5>;
+                               clock-names = "pp_clk", "gop_clk", "mg_clk";
+                               status = "disabled";
+                               dma-coherent;
+
+                               cps_eth0: eth0 {
+                                       interrupts = <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>;
+                                       port-id = <0>;
+                                       gop-port-id = <0>;
+                                       status = "disabled";
+                               };
+
+                               cps_eth1: eth1 {
+                                       interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
+                                       port-id = <1>;
+                                       gop-port-id = <2>;
+                                       status = "disabled";
+                               };
+
+                               cps_eth2: eth2 {
+                                       interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
+                                       port-id = <2>;
+                                       gop-port-id = <3>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       cps_mdio: mdio@12a200 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "marvell,orion-mdio";
+                               reg = <0x12a200 0x10>;
+                       };
+
                        cps_syscon0: system-controller@440000 {
                                compatible = "marvell,cp110-system-controller0",
                                             "syscon";