Message ID | 20220707074818.1481776-6-thierry.reding@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tegra: Add support for MGBE controller | expand |
On Thu, Jul 07, 2022 at 09:48:14AM +0200, Thierry Reding wrote: > From: Bhadram Varka <vbhadram@nvidia.com> > > Add device-tree binding documentation for the Multi-Gigabit Ethernet > (MGBE) controller found on NVIDIA Tegra234 SoCs. > > Signed-off-by: Jon Hunter <jonathanh@nvidia.com> > Signed-off-by: Bhadram Varka <vbhadram@nvidia.com> > Signed-off-by: Thierry Reding <treding@nvidia.com> > --- > Changes in v4: > - uses fixed lists of items for clock-names and reset-names > - add missing maxItems to interrupts property > - drop minItems where it equals maxItems > - drop unnecessary blank lines > - drop redundant comment > > Changes in v3: > - add macsec and macsec-ns interrupt names > - improve mdio bus node description > - drop power-domains description > - improve bindings title > > Changes in v2: > - add supported PHY modes > - change to dual license > > .../bindings/net/nvidia,tegra234-mgbe.yaml | 162 ++++++++++++++++++ > 1 file changed, 162 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/nvidia,tegra234-mgbe.yaml Rob, Krzysztof, any chance I could get a Reviewed-by/Acked-by on this? I'd like to include patches 5-8 as part of the ARM-SoC PRs for v5.20 (which I need to send before v5.19-rc6) because it unblocks a number of people and with networking support we could enable more of our daily testing coverage. Thanks, Thierry > diff --git a/Documentation/devicetree/bindings/net/nvidia,tegra234-mgbe.yaml b/Documentation/devicetree/bindings/net/nvidia,tegra234-mgbe.yaml > new file mode 100644 > index 000000000000..2bd3efff2485 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/nvidia,tegra234-mgbe.yaml > @@ -0,0 +1,162 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/nvidia,tegra234-mgbe.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Tegra234 MGBE Multi-Gigabit Ethernet Controller > + > +maintainers: > + - Thierry Reding <treding@nvidia.com> > + - Jon Hunter <jonathanh@nvidia.com> > + > +properties: > + compatible: > + const: nvidia,tegra234-mgbe > + > + reg: > + maxItems: 3 > + > + reg-names: > + items: > + - const: hypervisor > + - const: mac > + - const: xpcs > + > + interrupts: > + minItems: 1 > + maxItems: 3 > + > + interrupt-names: > + minItems: 1 > + items: > + - const: common > + - const: macsec-ns > + - const: macsec > + > + clocks: > + maxItems: 12 > + > + clock-names: > + items: > + - const: mgbe > + - const: mac > + - const: mac-divider > + - const: ptp-ref > + - const: rx-input-m > + - const: rx-input > + - const: tx > + - const: eee-pcs > + - const: rx-pcs-input > + - const: rx-pcs-m > + - const: rx-pcs > + - const: tx-pcs > + > + resets: > + maxItems: 2 > + > + reset-names: > + items: > + - const: mac > + - const: pcs > + > + interconnects: > + items: > + - description: memory read client > + - description: memory write client > + > + interconnect-names: > + items: > + - const: dma-mem > + - const: write > + > + iommus: > + maxItems: 1 > + > + power-domains: > + maxItems: 1 > + > + phy-handle: true > + > + phy-mode: > + contains: > + enum: > + - usxgmii > + - 10gbase-kr > + > + mdio: > + $ref: mdio.yaml# > + unevaluatedProperties: false > + description: > + Optional node for embedded MDIO controller. > + > +required: > + - compatible > + - reg > + - interrupts > + - interrupt-names > + - clocks > + - clock-names > + - resets > + - reset-names > + - power-domains > + - phy-handle > + - phy-mode > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/tegra234-clock.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/memory/tegra234-mc.h> > + #include <dt-bindings/power/tegra234-powergate.h> > + #include <dt-bindings/reset/tegra234-reset.h> > + > + ethernet@6800000 { > + compatible = "nvidia,tegra234-mgbe"; > + reg = <0x06800000 0x10000>, > + <0x06810000 0x10000>, > + <0x068a0000 0x10000>; > + reg-names = "hypervisor", "mac", "xpcs"; > + interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "common"; > + clocks = <&bpmp TEGRA234_CLK_MGBE0_APP>, > + <&bpmp TEGRA234_CLK_MGBE0_MAC>, > + <&bpmp TEGRA234_CLK_MGBE0_MAC_DIVIDER>, > + <&bpmp TEGRA234_CLK_MGBE0_PTP_REF>, > + <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT_M>, > + <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT>, > + <&bpmp TEGRA234_CLK_MGBE0_TX>, > + <&bpmp TEGRA234_CLK_MGBE0_EEE_PCS>, > + <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_INPUT>, > + <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_M>, > + <&bpmp TEGRA234_CLK_MGBE0_RX_PCS>, > + <&bpmp TEGRA234_CLK_MGBE0_TX_PCS>; > + clock-names = "mgbe", "mac", "mac-divider", "ptp-ref", "rx-input-m", > + "rx-input", "tx", "eee-pcs", "rx-pcs-input", "rx-pcs-m", > + "rx-pcs", "tx-pcs"; > + resets = <&bpmp TEGRA234_RESET_MGBE0_MAC>, > + <&bpmp TEGRA234_RESET_MGBE0_PCS>; > + reset-names = "mac", "pcs"; > + interconnects = <&mc TEGRA234_MEMORY_CLIENT_MGBEARD &emc>, > + <&mc TEGRA234_MEMORY_CLIENT_MGBEAWR &emc>; > + interconnect-names = "dma-mem", "write"; > + iommus = <&smmu_niso0 TEGRA234_SID_MGBE>; > + power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEA>; > + > + phy-handle = <&mgbe0_phy>; > + phy-mode = "usxgmii"; > + > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + > + mgbe0_phy: phy@0 { > + compatible = "ethernet-phy-ieee802.3-c45"; > + reg = <0x0>; > + > + #phy-cells = <0>; > + }; > + }; > + }; > -- > 2.36.1 >
On Thu, 07 Jul 2022 09:48:14 +0200, Thierry Reding wrote: > From: Bhadram Varka <vbhadram@nvidia.com> > > Add device-tree binding documentation for the Multi-Gigabit Ethernet > (MGBE) controller found on NVIDIA Tegra234 SoCs. > > Signed-off-by: Jon Hunter <jonathanh@nvidia.com> > Signed-off-by: Bhadram Varka <vbhadram@nvidia.com> > Signed-off-by: Thierry Reding <treding@nvidia.com> > --- > Changes in v4: > - uses fixed lists of items for clock-names and reset-names > - add missing maxItems to interrupts property > - drop minItems where it equals maxItems > - drop unnecessary blank lines > - drop redundant comment > > Changes in v3: > - add macsec and macsec-ns interrupt names > - improve mdio bus node description > - drop power-domains description > - improve bindings title > > Changes in v2: > - add supported PHY modes > - change to dual license > > .../bindings/net/nvidia,tegra234-mgbe.yaml | 162 ++++++++++++++++++ > 1 file changed, 162 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/nvidia,tegra234-mgbe.yaml > Reviewed-by: Rob Herring <robh@kernel.org>
diff --git a/Documentation/devicetree/bindings/net/nvidia,tegra234-mgbe.yaml b/Documentation/devicetree/bindings/net/nvidia,tegra234-mgbe.yaml new file mode 100644 index 000000000000..2bd3efff2485 --- /dev/null +++ b/Documentation/devicetree/bindings/net/nvidia,tegra234-mgbe.yaml @@ -0,0 +1,162 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/nvidia,tegra234-mgbe.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Tegra234 MGBE Multi-Gigabit Ethernet Controller + +maintainers: + - Thierry Reding <treding@nvidia.com> + - Jon Hunter <jonathanh@nvidia.com> + +properties: + compatible: + const: nvidia,tegra234-mgbe + + reg: + maxItems: 3 + + reg-names: + items: + - const: hypervisor + - const: mac + - const: xpcs + + interrupts: + minItems: 1 + maxItems: 3 + + interrupt-names: + minItems: 1 + items: + - const: common + - const: macsec-ns + - const: macsec + + clocks: + maxItems: 12 + + clock-names: + items: + - const: mgbe + - const: mac + - const: mac-divider + - const: ptp-ref + - const: rx-input-m + - const: rx-input + - const: tx + - const: eee-pcs + - const: rx-pcs-input + - const: rx-pcs-m + - const: rx-pcs + - const: tx-pcs + + resets: + maxItems: 2 + + reset-names: + items: + - const: mac + - const: pcs + + interconnects: + items: + - description: memory read client + - description: memory write client + + interconnect-names: + items: + - const: dma-mem + - const: write + + iommus: + maxItems: 1 + + power-domains: + maxItems: 1 + + phy-handle: true + + phy-mode: + contains: + enum: + - usxgmii + - 10gbase-kr + + mdio: + $ref: mdio.yaml# + unevaluatedProperties: false + description: + Optional node for embedded MDIO controller. + +required: + - compatible + - reg + - interrupts + - interrupt-names + - clocks + - clock-names + - resets + - reset-names + - power-domains + - phy-handle + - phy-mode + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/tegra234-clock.h> + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/memory/tegra234-mc.h> + #include <dt-bindings/power/tegra234-powergate.h> + #include <dt-bindings/reset/tegra234-reset.h> + + ethernet@6800000 { + compatible = "nvidia,tegra234-mgbe"; + reg = <0x06800000 0x10000>, + <0x06810000 0x10000>, + <0x068a0000 0x10000>; + reg-names = "hypervisor", "mac", "xpcs"; + interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "common"; + clocks = <&bpmp TEGRA234_CLK_MGBE0_APP>, + <&bpmp TEGRA234_CLK_MGBE0_MAC>, + <&bpmp TEGRA234_CLK_MGBE0_MAC_DIVIDER>, + <&bpmp TEGRA234_CLK_MGBE0_PTP_REF>, + <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT_M>, + <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT>, + <&bpmp TEGRA234_CLK_MGBE0_TX>, + <&bpmp TEGRA234_CLK_MGBE0_EEE_PCS>, + <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_INPUT>, + <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_M>, + <&bpmp TEGRA234_CLK_MGBE0_RX_PCS>, + <&bpmp TEGRA234_CLK_MGBE0_TX_PCS>; + clock-names = "mgbe", "mac", "mac-divider", "ptp-ref", "rx-input-m", + "rx-input", "tx", "eee-pcs", "rx-pcs-input", "rx-pcs-m", + "rx-pcs", "tx-pcs"; + resets = <&bpmp TEGRA234_RESET_MGBE0_MAC>, + <&bpmp TEGRA234_RESET_MGBE0_PCS>; + reset-names = "mac", "pcs"; + interconnects = <&mc TEGRA234_MEMORY_CLIENT_MGBEARD &emc>, + <&mc TEGRA234_MEMORY_CLIENT_MGBEAWR &emc>; + interconnect-names = "dma-mem", "write"; + iommus = <&smmu_niso0 TEGRA234_SID_MGBE>; + power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEA>; + + phy-handle = <&mgbe0_phy>; + phy-mode = "usxgmii"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + mgbe0_phy: phy@0 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <0x0>; + + #phy-cells = <0>; + }; + }; + };