[RFC PATCH 1/8] dt-bindings: net: Add TSN Endpoint Ethernet MAC support

Andrew Lunn andrew at lunn.ch
Thu Feb 19 08:53:50 PST 2026


> +examples:
> +  - |
> +    tsn_ip: tsn at 80040000 {
> +        compatible = "xlnx,tsn-endpoint-ethernet-mac-3.0";
> +        reg = <0x80040000 0x40000>;
> +        clocks = <&misc_clk_2>, <&misc_clk_2>, <&misc_clk_1>, <&misc_clk_1>, <&misc_clk_3>, <&misc_clk_0>;
> +        clock-names = "gtx", "gtx90", "host_rxfifo", "host_txfifo", "ref", "s_axi";
> +        dmas = <&axi_mcdma_0 0>, <&axi_mcdma_0 1>, <&axi_mcdma_0 2>, <&axi_mcdma_0 3>,
> +               <&axi_mcdma_0 4>, <&axi_mcdma_0 5>, <&axi_mcdma_0 6>, <&axi_mcdma_0 7>,
> +               <&axi_mcdma_0 16>, <&axi_mcdma_0 17>, <&axi_mcdma_0 18>, <&axi_mcdma_0 19>,
> +               <&axi_mcdma_0 20>, <&axi_mcdma_0 21>, <&axi_mcdma_0 22>, <&axi_mcdma_0 23>;
> +        dma-names = "tx_chan0","tx_chan1","tx_chan2","tx_chan3","tx_chan4","tx_chan5","tx_chan6",
> +                    "tx_chan7","rx_chan0","rx_chan1","rx_chan2","rx_chan3","rx_chan4","rx_chan5",
> +                    "rx_chan6","rx_chan7";
> +        xlnx,num-priorities = <8>;
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0x0 0x80040000 0x40000>;
> +        xlnx,tsn-tx-config = <&tsn_tx_config>;
> +        tsn_tx_config: tx-queues-config {
> +            queue0 {
> +                xlnx,dma-channel-num = <0x5>;
> +            };
> +            queue1 {
> +                 xlnx,dma-channel-num = <0x4>;
> +            };
> +            queue2 {
> +                 xlnx,dma-channel-num = <0x3>;
> +            };
> +            queue3 {
> +                 xlnx,dma-channel-num = <0x2>;
> +            };
> +            queue4 {
> +                 xlnx,dma-channel-num = <0x1>;
> +            };
> +            queue5 {
> +                 xlnx,dma-channel-num = <0x0>;
> +            };
> +        };
> +        // MAC 1 Node
> +        mac1: ethernet-mac at 0 {
> +            reg = <0x0 0x14000>;
> +            phy-mode = "rgmii-id";
> +            phy-handle = <&phy0>;
> +            mdio {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            phy0: ethernet-phy at 0 {
> +                device_type = "ethernet-phy";
> +                reg = <0>;
> +            };
> +            };

Two } at the same level means your indentation is broken.

So each MAC has an MDIO node?

> +        };
> +
> +        // MAC 2 Node
> +        mac2: ethernet-mac at 20000 {
> +            reg = <0x20000 0x14000>;
> +            phy-mode = "rgmii-id";
> +            phy-handle = <&phy1>;
> +            mdio {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            phy1: ethernet-phy at 1 {
> +                device_type = "ethernet-phy";
> +                reg = <1>;
> +            };
> +            };
> +        };
> +
> +        // Endpoint Node
> +        ep_mac: ep-mac at 16000 {
> +            reg = <0x16000 0xa000>;
> +        };

Except the Endpoint MAC does not have MDIO?  Or does it have an MDIO
bus, and you have simply not listed it?

> +
> +        // Switch Node
> +        tsn_switch: switch at 38000 {
> +            reg = <0x38000 0x8000>;
> +
> +            ethernet-ports {
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +
> +                port at 0 {
> +                    reg = <0>;
> +                    ethernet = <&ep_mac>;
> +                };

So this looks like a DSA switch.

> +
> +                port at 1 {
> +                    reg = <1>;
> +                    ethernet = <&mac1>;

If you look at Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
you see this node is derives from ethernet-switch-port.yaml, and that
derives from ethernet-controller.yaml. All the MAC properties you have
above actually belong here.

	Andrew



More information about the linux-arm-kernel mailing list