Commit c8b53b1c authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'arm-soc/for-5.11/devicetree' of https://github.com/Broadcom/stblinux into arm/dt

This pull request contains Broadcom ARM-based SoCs changes for 5.11,
please pull the following:

- Vivek updates the Linksys EA9500 DTS by adding the two additional
  switch port nodes (5 & 7), providing a flash partition layout to
  make the device usable with OpenWrt, and finally switches to using
  the pin controller rather than using mdio-mux to get the same outcome.

- Serge fixes the USB Device Tree nodes unit name to be conformant to
  the recommended name patterns.

- Rafal re-arranges all the nodes that belonged to the CRU block to be
  under the CRU node (such as PLLs). He also disables the USB3 PHY node
  for devices that lack USB3 and adds USB3 support to the Luxul XWR-3150
  DTS.

- Jonathan drops the incorrect 'io-channel-ranges' from the Cygnus SoC
  DTSI.

- Maxime disables the Wi-Fi frequencies (around 2.4GHz) for HDMI on the
  Raspberry Pi 4 due to some cross-talk between the two blocks.

- Pavel updates the DWC2 USB controller RX FIFO sizes to be more
  accurate for all BCM283x (Raspberr Pi) SoCs.

- Florian updates all BCM5301x and NSP Device Tree files to allow
  switching the Broadcom B53 Ethernet switch device tree binding to YAML.

* tag 'arm-soc/for-5.11/devicetree' of https://github.com/Broadcom/stblinux: (22 commits)
  dt-bindings: net: dsa: b53: Add YAML bindings
  ARM: dts: NSP: Provide defaults ports container node
  ARM: dts: NSP: Add a SRAB compatible string for each board
  ARM: dts: NSP: Fix Ethernet switch SGMII register name
  ARM: dts: NSP: Update ethernet switch node name
  ARM: dts: BCM5301X: Provide defaults ports container node
  ARM: dts: BCM5301X: Add a default compatible for switch node
  ARM: dts: BCM5301X: Update Ethernet switch node name
  dt-bindings: net: dsa: Document sfp and managed properties
  dt-bindings: net: dsa: Extend switch nodes pattern
  ARM: dts: bcm283x: increase dwc2's RX FIFO size
  ARM: dts: rpi-4: disable wifi frequencies
  ARM: dts: Cygnus: Drop incorrect io-channel-ranges property.
  ARM: dts: BCM5301X: Enable USB 3 PHY on Luxul XWR-3150
  ARM: dts: BCM5301X: Disable USB 3 PHY on devices without USB 3
  ARM: dts: BCM5301X: Move CRU devices to the CRU node
  ARM: dts: BCM5301X: Linksys EA9500 make use of pinctrl
  ARM: dts: BCM5301X: Use corretc pinctrl compatible for 4709x
  ARM: dts: BCM5301X: Linksys EA9500 add fixed partitions
  ARM: dts: BCM5310X: Harmonize xHCI DT nodes name
  ...

Link: https://lore.kernel.org/r/20201128163410.1691529-3-f.fainelli@gmail.com


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 915a3919 f722fbac
Loading
Loading
Loading
Loading
+0 −149
Original line number Diff line number Diff line
Broadcom BCM53xx Ethernet switches
==================================

Required properties:

- compatible: For external switch chips, compatible string must be exactly one
  of: "brcm,bcm5325"
      "brcm,bcm53115"
      "brcm,bcm53125"
      "brcm,bcm53128"
      "brcm,bcm5365"
      "brcm,bcm5395"
      "brcm,bcm5389"
      "brcm,bcm5397"
      "brcm,bcm5398"

  For the BCM11360 SoC, must be:
      "brcm,bcm11360-srab" and the mandatory "brcm,cygnus-srab" string

  For the BCM5310x SoCs with an integrated switch, must be one of:
      "brcm,bcm53010-srab"
      "brcm,bcm53011-srab"
      "brcm,bcm53012-srab"
      "brcm,bcm53018-srab"
      "brcm,bcm53019-srab" and the mandatory "brcm,bcm5301x-srab" string

  For the BCM5831X/BCM1140x SoCs with an integrated switch, must be one of:
      "brcm,bcm11404-srab"
      "brcm,bcm11407-srab"
      "brcm,bcm11409-srab"
      "brcm,bcm58310-srab"
      "brcm,bcm58311-srab"
      "brcm,bcm58313-srab" and the mandatory "brcm,omega-srab" string

  For the BCM585xx/586XX/88312 SoCs with an integrated switch, must be one of:
      "brcm,bcm58522-srab"
      "brcm,bcm58523-srab"
      "brcm,bcm58525-srab"
      "brcm,bcm58622-srab"
      "brcm,bcm58623-srab"
      "brcm,bcm58625-srab"
      "brcm,bcm88312-srab" and the mandatory "brcm,nsp-srab string

  For the BCM63xx/33xx SoCs with an integrated switch, must be one of:
      "brcm,bcm3384-switch"
      "brcm,bcm6328-switch"
      "brcm,bcm6368-switch" and the mandatory "brcm,bcm63xx-switch"

Required properties for BCM585xx/586xx/88312 SoCs:

 - reg: a total of 3 register base addresses, the first one must be the
   Switch Register Access block base, the second is the port 5/4 mux
   configuration register and the third one is the SGMII configuration
   and status register base address.

 - interrupts: a total of 13 interrupts must be specified, in the following
   order: port 0-5, 7-8 link status change, then the integrated PHY interrupt,
   then the timestamping interrupt and the sleep timer interrupts for ports
   5,7,8.

Optional properties for BCM585xx/586xx/88312 SoCs:

  - reg-names: a total of 3 names matching the 3 base register address, must
    be in the following order:
	"srab"
	"mux_config"
	"sgmii_config"

  - interrupt-names: a total of 13 names matching the 13 interrupts specified
    must be in the following order:
	"link_state_p0"
	"link_state_p1"
	"link_state_p2"
	"link_state_p3"
	"link_state_p4"
	"link_state_p5"
	"link_state_p7"
	"link_state_p8"
	"phy"
	"ts"
	"imp_sleep_timer_p5"
	"imp_sleep_timer_p7"
	"imp_sleep_timer_p8"

See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
required and optional properties.

Examples:

Ethernet switch connected via MDIO to the host, CPU port wired to eth0:

	eth0: ethernet@10001000 {
		compatible = "brcm,unimac";
		reg = <0x10001000 0x1000>;

		fixed-link {
			speed = <1000>;
			full-duplex;
		};
	};

	mdio0: mdio@10000000 {
		compatible = "brcm,unimac-mdio";
		#address-cells = <1>;
		#size-cells = <0>;

		switch0: ethernet-switch@1e {
			compatible = "brcm,bcm53125";
			reg = <30>;
			#address-cells = <1>;
			#size-cells = <0>;

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port0@0 {
					reg = <0>;
					label = "lan1";
				};

				port1@1 {
					reg = <1>;
					label = "lan2";
				};

				port5@5 {
					reg = <5>;
					label = "cable-modem";
					fixed-link {
						speed = <1000>;
						full-duplex;
					};
					phy-mode = "rgmii-txid";
				};

				port8@8 {
					reg = <8>;
					label = "cpu";
					fixed-link {
						speed = <1000>;
						full-duplex;
					};
					phy-mode = "rgmii-txid";
					ethernet = <&eth0>;
				};
			};
		};
	};
+249 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/dsa/brcm,b53.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM53xx Ethernet switches

allOf:
  - $ref: dsa.yaml#

maintainers:
  - Florian Fainelli <f.fainelli@gmail.com>

description:
  Broadcom BCM53xx Ethernet switches

properties:
  compatible:
    oneOf:
      - const: brcm,bcm5325
      - const: brcm,bcm53115
      - const: brcm,bcm53125
      - const: brcm,bcm53128
      - const: brcm,bcm5365
      - const: brcm,bcm5395
      - const: brcm,bcm5389
      - const: brcm,bcm5397
      - const: brcm,bcm5398
      - items:
          - const: brcm,bcm11360-srab
          - const: brcm,cygnus-srab
      - items:
          - enum:
              - brcm,bcm53010-srab
              - brcm,bcm53011-srab
              - brcm,bcm53012-srab
              - brcm,bcm53018-srab
              - brcm,bcm53019-srab
          - const: brcm,bcm5301x-srab
      - items:
          - enum:
              - brcm,bcm11404-srab
              - brcm,bcm11407-srab
              - brcm,bcm11409-srab
              - brcm,bcm58310-srab
              - brcm,bcm58311-srab
              - brcm,bcm58313-srab
          - const: brcm,omega-srab
      - items:
          - enum:
              - brcm,bcm58522-srab
              - brcm,bcm58523-srab
              - brcm,bcm58525-srab
              - brcm,bcm58622-srab
              - brcm,bcm58623-srab
              - brcm,bcm58625-srab
              - brcm,bcm88312-srab
          - const: brcm,nsp-srab
      - items:
          - enum:
              - brcm,bcm3384-switch
              - brcm,bcm6328-switch
              - brcm,bcm6368-switch
          - const: brcm,bcm63xx-switch

required:
  - compatible
  - reg

# BCM585xx/586xx/88312 SoCs
if:
  properties:
    compatible:
      contains:
        enum:
          - brcm,bcm58522-srab
          - brcm,bcm58523-srab
          - brcm,bcm58525-srab
          - brcm,bcm58622-srab
          - brcm,bcm58623-srab
          - brcm,bcm58625-srab
          - brcm,bcm88312-srab
then:
  properties:
    reg:
      minItems: 3
      maxItems: 3
    reg-names:
      items:
        - const: srab
        - const: mux_config
        - const: sgmii_config
    interrupts:
      minItems: 13
      maxItems: 13
    interrupt-names:
      items:
        - const: link_state_p0
        - const: link_state_p1
        - const: link_state_p2
        - const: link_state_p3
        - const: link_state_p4
        - const: link_state_p5
        - const: link_state_p7
        - const: link_state_p8
        - const: phy
        - const: ts
        - const: imp_sleep_timer_p5
        - const: imp_sleep_timer_p7
        - const: imp_sleep_timer_p8
  required:
    - interrupts
else:
  properties:
    reg:
      maxItems: 1

unevaluatedProperties: false

examples:
  - |
    mdio {
        #address-cells = <1>;
        #size-cells = <0>;

        ethernet-switch@1e {
            compatible = "brcm,bcm53125";
            reg = <30>;

            ethernet-ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;
                    label = "lan1";
                };

                port@1 {
                    reg = <1>;
                    label = "lan2";
                };

                port@5 {
                    reg = <5>;
                    label = "cable-modem";
                    phy-mode = "rgmii-txid";
                    fixed-link {
                        speed = <1000>;
                        full-duplex;
                    };
                };

                port@8 {
                    reg = <8>;
                    label = "cpu";
                    phy-mode = "rgmii-txid";
                    ethernet = <&eth0>;
                    fixed-link {
                        speed = <1000>;
                        full-duplex;
                    };
                };
            };
        };
    };
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    axi {
        #address-cells = <1>;
        #size-cells = <1>;

        switch@36000 {
            compatible = "brcm,bcm58623-srab", "brcm,nsp-srab";
            reg = <0x36000 0x1000>,
                  <0x3f308 0x8>,
                  <0x3f410 0xc>;
            reg-names = "srab", "mux_config", "sgmii_config";
            interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "link_state_p0",
                              "link_state_p1",
                              "link_state_p2",
                              "link_state_p3",
                              "link_state_p4",
                              "link_state_p5",
                              "link_state_p7",
                              "link_state_p8",
                              "phy",
                              "ts",
                              "imp_sleep_timer_p5",
                              "imp_sleep_timer_p7",
                              "imp_sleep_timer_p8";

            ethernet-ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    label = "port0";
                    reg = <0>;
                };

                port@1 {
                    label = "port1";
                    reg = <1>;
                };

                port@2 {
                    label = "port2";
                    reg = <2>;
                };

                port@3 {
                    label = "port3";
                    reg = <3>;
                };

                port@4 {
                    label = "port4";
                    reg = <4>;
                };

                port@8 {
                    ethernet = <&amac2>;
                    label = "cpu";
                    reg = <8>;
                    fixed-link {
                        speed = <1000>;
                        full-duplex;
                    };
                };
            };
        };
    };
+5 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ select: false

properties:
  $nodename:
    pattern: "^switch(@.*)?$"
    pattern: "^(ethernet-)?switch(@.*)?$"

  dsa,member:
    minItems: 2
@@ -78,6 +78,10 @@ patternProperties:

          mac-address: true

          sfp: true

          managed: true

        required:
          - reg

+1 −1
Original line number Diff line number Diff line
@@ -3377,7 +3377,7 @@ M: Florian Fainelli <f.fainelli@gmail.com>
L:	netdev@vger.kernel.org
L:	openwrt-devel@lists.openwrt.org (subscribers-only)
S:	Supported
F:	Documentation/devicetree/bindings/net/dsa/b53.txt
F:	Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
F:	drivers/net/dsa/b53/*
F:	include/linux/platform_data/b53.h
+0 −1
Original line number Diff line number Diff line
@@ -591,7 +591,6 @@ touchscreen: touchscreen@180a6000 {
		adc: adc@180a6000 {
			compatible = "brcm,iproc-static-adc";
			#io-channel-cells = <1>;
			io-channel-ranges;
			adc-syscon = <&ts_adc_syscon>;
			clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;
			clock-names = "tsc_clk";
Loading