[PATCH net-next v2 1/3] dt-bindings: net: Add support for Spacemit K3 dwmac

Rob Herring robh at kernel.org
Wed Jan 21 08:21:10 PST 2026


On Wed, Jan 21, 2026 at 03:13:09PM +0800, Inochi Amaoto wrote:
> The GMAC IP on Spacemit K3 is almost a standard Synopsys DesignWare
> MAC (version 5.40a) with some extra clock.
> 
> Add necessary compatible string for this device.
> 
> Signed-off-by: Inochi Amaoto <inochiama at gmail.com>
> ---
>  .../devicetree/bindings/net/snps,dwmac.yaml   |   3 +
>  .../bindings/net/spacemit,k3-dwmac.yaml       | 103 ++++++++++++++++++
>  2 files changed, 106 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/spacemit,k3-dwmac.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> index dd3c72e8363e..3c2c6cb6b10b 100644
> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> @@ -34,6 +34,7 @@ select:
>            - snps,dwmac-5.10a
>            - snps,dwmac-5.20
>            - snps,dwmac-5.30a
> +          - snps,dwmac-5.40a

You don't need this in select as the spacemit schema references this 
one.

>            - snps,dwxgmac
>            - snps,dwxgmac-2.10
>  
> @@ -108,6 +109,7 @@ properties:
>          - snps,dwmac-5.10a
>          - snps,dwmac-5.20
>          - snps,dwmac-5.30a
> +        - snps,dwmac-5.40a
>          - snps,dwxgmac
>          - snps,dwxgmac-2.10
>          - sophgo,sg2042-dwmac
> @@ -653,6 +655,7 @@ allOf:
>                  - snps,dwmac-5.10a
>                  - snps,dwmac-5.20
>                  - snps,dwmac-5.30a
> +                - snps,dwmac-5.40a
>                  - snps,dwxgmac
>                  - snps,dwxgmac-2.10
>                  - st,spear600-gmac
> diff --git a/Documentation/devicetree/bindings/net/spacemit,k3-dwmac.yaml b/Documentation/devicetree/bindings/net/spacemit,k3-dwmac.yaml
> new file mode 100644
> index 000000000000..e69f3b60c51f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/spacemit,k3-dwmac.yaml
> @@ -0,0 +1,103 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/spacemit,k3-dwmac.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Spacemit K3 DWMAC glue layer
> +
> +maintainers:
> +  - Inochi Amaoto <inochiama at gmail.com>
> +
> +select:
> +  properties:
> +    compatible:
> +      contains:
> +        const: spacemit,k3-dwmac
> +  required:
> +    - compatible
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: spacemit,k3-dwmac
> +      - const: snps,dwmac-5.40a
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    items:
> +      - description: GMAC main clock
> +      - description: PTP clock
> +      - description: TX clock
> +
> +  clock-names:
> +    items:
> +      - const: stmmaceth
> +      - const: ptp_ref
> +      - const: tx
> +
> +  interrupts:
> +    minItems: 1
> +    items:
> +      - description: MAC interrupt
> +      - description: MAC wake interrupt
> +
> +  interrupt-names:
> +    minItems: 1
> +    items:
> +      - const: macirq
> +      - const: eth_wake_irq
> +
> +  resets:
> +    maxItems: 1
> +
> +  reset-names:
> +    const: stmmaceth
> +
> +  spacemit,apmu:
> +    $ref: /schemas/types.yaml#/definitions/phandle-array
> +    items:
> +      - items:
> +          - description: phandle to the syscon node which control the glue register
> +          - description: offset of the control register
> +          - description: offset of the dline register
> +

Drop blank line

> +    description:
> +      A phandle to syscon with offset to control registers for this MAC
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - interrupts
> +  - interrupt-names
> +  - resets
> +  - reset-names

spacemit,apmu is not required? Looks like the driver requires it.

> +
> +allOf:
> +  - $ref: snps,dwmac.yaml#
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    eth0: ethernet at cac80000 {

Drop unused label.

> +      compatible = "spacemit,k3-dwmac", "snps,dwmac-5.40a";
> +      reg = <0xcac80000 0x2000>;
> +      clocks = <&syscon_apmu 66>, <&syscon_apmu 68>,
> +               <&syscon_apmu 69>;
> +      clock-names = "stmmaceth", "ptp_ref", "tx";
> +      interrupts = <131 IRQ_TYPE_LEVEL_HIGH>, <276 IRQ_TYPE_LEVEL_HIGH>;
> +      interrupt-names = "macirq", "eth_wake_irq";
> +      phy-mode = "rgmii-id";
> +      phy-handle = <&phy0>;
> +      resets = <&syscon_apmu 67>;
> +      reset-names = "stmmaceth";
> +      spacemit,apmu = <&syscon_apmu 0x384 0x38c>;
> +    };
> +
> -- 
> 2.52.0
> 



More information about the linux-riscv mailing list