Commit 9bc08aa6 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'mvebu-dt-5.11-1' of...

Merge tag 'mvebu-dt-5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/dt

mvebu dt for 5.11 (part 1)

 - Add support for MikroTik CRS3xx switches
 - Add support for RD-AC3X-48G4X2XL board : Armada 382 SoC connected
   to Prestera AC3X ASIC through PCI
 - Clean-up kirkwood device tree: replace "ok" by "okay"
 - Improve device tree for PCA953x gpio expander nodes
 - Use compliant node name for USB3 on armada 375
 - 98dx3236 SoCs:
    - remove non-existent i2c1
    - add i2c0 pinctrl information
 - Improve device tree for Turris Omnia

* tag 'mvebu-dt-5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  ARM: dts: mvebu: Add device tree for RD-AC3X-48G4X2XL board
  arm: dts: marvell: armada-375: Harmonize DWC USB3 DT nodes name
  ARM: dts: turris-omnia: remove unneeded status = "okay" properties
  ARM: dts: turris-omnia: update ethernet-phy node and handle name
  ARM: dts: turris-omnia: add LED controller node
  ARM: dts: turris-omnia: add SFP node
  ARM: dts: turris-omnia: describe switch interrupt
  ARM: dts: turris-omnia: add comphy handle to eth2
  ARM: dts: turris-omnia: enable HW buffer management
  ARM: dts: Add i2c0 pinctrl information for 98dx3236
  ARM: dts: Remove non-existent i2c1 from 98dx3236
  ARM: dts: armada: align GPIO hog names with dtschema
  ARM: dts: dove: fix PCA95xx GPIO expander properties on A510
  ARM: dts: kirkwood: replace status value "ok" by "okay"
  ARM: dts: mvebu: Add CRS328-4C-20S-4S board
  ARM: dts: mvebu: Add CRS305-1G-4S board
  ARM: dts: mvebu: Add CRS326-24G-2S board

Link: https://lore.kernel.org/r/87h7p6j0m7.fsf@BL-laptop


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents f458d69b 51b632c7
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1327,6 +1327,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \
dtb-$(CONFIG_MACH_ARMADA_375) += \
	armada-375-db.dtb
dtb-$(CONFIG_MACH_ARMADA_38X) += \
	armada-382-rd-ac3x-48g4x2xl.dtb \
	armada-385-clearfog-gtr-s4.dtb \
	armada-385-clearfog-gtr-l8.dtb \
	armada-385-db-88f6820-amc.dtb \
@@ -1348,6 +1349,12 @@ dtb-$(CONFIG_MACH_ARMADA_39X) += \
	armada-398-db.dtb
dtb-$(CONFIG_MACH_ARMADA_XP) += \
	armada-xp-axpwifiap.dtb \
	armada-xp-crs305-1g-4s.dtb \
	armada-xp-crs305-1g-4s-bit.dtb \
	armada-xp-crs326-24g-2s.dtb \
	armada-xp-crs326-24g-2s-bit.dtb \
	armada-xp-crs328-4c-20s-4s.dtb \
	armada-xp-crs328-4c-20s-4s-bit.dtb \
	armada-xp-db.dtb \
	armada-xp-db-dxbc2.dtb \
	armada-xp-db-xc3-24g4xg.dtb \
+1 −1
Original line number Diff line number Diff line
@@ -426,7 +426,7 @@
				status = "disabled";
			};

			usb2: usb3@58000 {
			usb2: usb@58000 {
				compatible = "marvell,armada-375-xhci";
				reg = <0x58000 0x20000>,<0x5b880 0x80>;
				interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+112 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Device Tree file for Marvell Armada 382 reference board
 * (RD-AC3X-48G4X2XL)
 *
 * Copyright (C) 2020 Allied Telesis Labs
 */

/dts-v1/;
#include "armada-385.dtsi"

#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Marvell Armada 382 RD-AC3X";
	compatible = "marvell,rd-ac3x-48g4x2xl", "marvell,rd-ac3x",
			 "marvell,armada385", "marvell,armada380";

	chosen {
		stdout-path = "serial0:115200n8";
	};

	aliases {
		ethernet0 = &eth1;
	};

	memory {
		device_type = "memory";
		reg = <0x00000000 0x20000000>; /* 512MB */
	};

	soc {
		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
			  MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
	};
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins>;
	status = "okay";

	eeprom@53{
		compatible = "atmel,24c64";
		reg = <0x53>;
	};

	/* CPLD device present at 0x3c. Function unknown */
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_pins>;
	status = "okay";
};

&eth1 {
	status = "okay";
	phy = <&phy0>;
	phy-mode = "rgmii-id";
};

&mdio {
	pinctrl-names = "default";
	pinctrl-0 = <&mdio_pins>;

	phy0: ethernet-phy@0 {
		reg = <0>;
	};
};

&pciec {
	status = "okay";
};

&pcie1 {
	/* Port 0, Lane 0 */
	status = "okay";
};

&nand_controller {
	status = "okay";

	nand@0 {
		reg = <0>;
		label = "pxa3xx_nand-0";
		nand-rb = <0>;
		nand-on-flash-bbt;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			partition@0 {
				reg = <0x00000000 0x00500000>;
				label = "u-boot";
			};
			partition@500000{
				reg = <0x00500000 0x00400000>;
				label = "u-boot env";
			};
			partition@900000{
				reg = <0x00900000 0x3F700000>;
				label = "user";
			};
		};
	};
};

&refclk {
	clock-frequency = <200000000>;
};
+171 −8
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include "armada-385.dtsi"

/ {
@@ -82,6 +83,32 @@
			};
		};
	};

	sfp: sfp {
		compatible = "sff,sfp";
		i2c-bus = <&sfp_i2c>;
		tx-fault-gpios = <&pcawan 0 GPIO_ACTIVE_HIGH>;
		tx-disable-gpios = <&pcawan 1 GPIO_ACTIVE_HIGH>;
		rate-select0-gpios = <&pcawan 2 GPIO_ACTIVE_HIGH>;
		los-gpios = <&pcawan 3 GPIO_ACTIVE_HIGH>;
		mod-def0-gpios = <&pcawan 4 GPIO_ACTIVE_LOW>;
		maximum-power-milliwatt = <3000>;

		/*
		 * For now this has to be enabled at boot time by U-Boot when
		 * a SFP module is present. Read more in the comment in the
		 * eth2 node below.
		 */
		status = "disabled";
	};
};

&bm {
	status = "okay";
};

&bm_bppi {
	status = "okay";
};

/* Connected to 88E6176 switch, port 6 */
@@ -90,6 +117,9 @@
	pinctrl-0 = <&ge0_rgmii_pins>;
	status = "okay";
	phy-mode = "rgmii";
	buffer-manager = <&bm>;
	bm,pool-long = <0>;
	bm,pool-short = <3>;

	fixed-link {
		speed = <1000>;
@@ -103,6 +133,9 @@
	pinctrl-0 = <&ge1_rgmii_pins>;
	status = "okay";
	phy-mode = "rgmii";
	buffer-manager = <&bm>;
	bm,pool-long = <1>;
	bm,pool-short = <3>;

	fixed-link {
		speed = <1000>;
@@ -112,9 +145,23 @@

/* WAN port */
&eth2 {
	/*
	 * eth2 is connected via a multiplexor to both the SFP cage and to
	 * ethernet-phy@1. The multiplexor switches the signal to SFP cage when
	 * a SFP module is present, as determined by the mode-def0 GPIO.
	 *
	 * Until kernel supports this configuration properly, in case SFP module
	 * is present, U-Boot has to enable the sfp node above, remove phy
	 * handle and add managed = "in-band-status" property.
	 */
	status = "okay";
	phy-mode = "sgmii";
	phy = <&phy1>;
	phy-handle = <&phy1>;
	phys = <&comphy5 2>;
	sfp = <&sfp>;
	buffer-manager = <&bm>;
	bm,pool-long = <2>;
	bm,pool-short = <3>;
};

&i2c0 {
@@ -127,7 +174,6 @@
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x70>;
		status = "okay";

		i2c@0 {
			#address-cells = <1>;
@@ -135,7 +181,115 @@
			reg = <0>;

			/* STM32F0 command interface at address 0x2a */
			/* leds device (in STM32F0) at address 0x2b */

			led-controller@2b {
				compatible = "cznic,turris-omnia-leds";
				reg = <0x2b>;
				#address-cells = <1>;
				#size-cells = <0>;

				/*
				 * LEDs are controlled by MCU (STM32F0) at
				 * address 0x2b.
				 *
				 * The driver does not support HW control mode
				 * for the LEDs yet. Disable the LEDs for now.
				 *
				 * Also LED functions are not stable yet:
				 * - there are 3 LEDs connected via MCU to PCIe
				 *   ports. One of these ports supports mSATA.
				 *   There is no mSATA nor PCIe function.
				 *   For now we use LED_FUNCTION_WLAN, since
				 *   in most cases users have wifi cards in
				 *   these slots
				 * - there are 2 LEDs dedicated for user: A and
				 *   B. Again there is no such function defined.
				 *   For now we use LED_FUNCTION_INDICATOR
				 */
				status = "disabled";

				multi-led@0 {
					reg = <0x0>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_INDICATOR;
					function-enumerator = <2>;
				};

				multi-led@1 {
					reg = <0x1>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_INDICATOR;
					function-enumerator = <1>;
				};

				multi-led@2 {
					reg = <0x2>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_WLAN;
					function-enumerator = <3>;
				};

				multi-led@3 {
					reg = <0x3>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_WLAN;
					function-enumerator = <2>;
				};

				multi-led@4 {
					reg = <0x4>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_WLAN;
					function-enumerator = <1>;
				};

				multi-led@5 {
					reg = <0x5>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_WAN;
				};

				multi-led@6 {
					reg = <0x6>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_LAN;
					function-enumerator = <4>;
				};

				multi-led@7 {
					reg = <0x7>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_LAN;
					function-enumerator = <3>;
				};

				multi-led@8 {
					reg = <0x8>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_LAN;
					function-enumerator = <2>;
				};

				multi-led@9 {
					reg = <0x9>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_LAN;
					function-enumerator = <1>;
				};

				multi-led@a {
					reg = <0xa>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_LAN;
					function-enumerator = <0>;
				};

				multi-led@b {
					reg = <0xb>;
					color = <LED_COLOR_ID_RGB>;
					function = LED_FUNCTION_POWER;
				};
			};

			eeprom@54 {
				compatible = "atmel,24c64";
@@ -177,7 +331,7 @@
			/* routed to PCIe2 connector (CN62A) */
		};

		i2c@4 {
		sfp_i2c: i2c@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;
@@ -232,9 +386,8 @@
	pinctrl-0 = <&mdio_pins>;
	status = "okay";

	phy1: phy@1 {
		status = "okay";
		compatible = "ethernet-phy-id0141.0DD1", "ethernet-phy-ieee802.3-c22";
	phy1: ethernet-phy@1 {
		compatible = "ethernet-phy-ieee802.3-c22";
		reg = <1>;

		/* irq is connected to &pcawan pin 7 */
@@ -242,13 +395,18 @@

	/* Switch MV88E6176 at address 0x10 */
	switch@10 {
		pinctrl-names = "default";
		pinctrl-0 = <&swint_pins>;
		compatible = "marvell,mv88e6085";
		#address-cells = <1>;
		#size-cells = <0>;
		dsa,member = <0 0>;

		dsa,member = <0 0>;
		reg = <0x10>;

		interrupt-parent = <&gpio1>;
		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;
@@ -301,6 +459,11 @@
		marvell,function = "gpio";
	};

	swint_pins: swint-pins {
		marvell,pins = "mpp45";
		marvell,function = "gpio";
	};

	spi0cs0_pins: spi0cs0-pins {
		marvell,pins = "mpp25";
		marvell,function = "spi0";
+2 −2
Original line number Diff line number Diff line
@@ -73,13 +73,13 @@
	 * 14-SFP_TX_DISABLE
	 * 15-SFP_MOD_DEF0
	 */
	pcie2_0_clkreq {
	pcie2-0-clkreq-hog {
		gpio-hog;
		gpios = <4 GPIO_ACTIVE_LOW>;
		input;
		line-name = "pcie2.0-clkreq";
	};
	pcie2_0_w_disable {
	pcie2-0-w-disable-hog {
		gpio-hog;
		gpios = <7 GPIO_ACTIVE_LOW>;
		output-low;
Loading