2023-04-17 18:02:49 +08:00
|
|
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
|
|
# Copyright (C) 2022 StarFive Technology Co., Ltd.
|
|
|
|
%YAML 1.2
|
|
|
|
---
|
|
|
|
$id: http://devicetree.org/schemas/net/starfive,jh7110-dwmac.yaml#
|
|
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
|
|
|
|
title: StarFive JH7110 DWMAC glue layer
|
|
|
|
|
|
|
|
maintainers:
|
|
|
|
- Emil Renner Berthing <kernel@esmil.dk>
|
|
|
|
- Samin Guo <samin.guo@starfivetech.com>
|
|
|
|
|
|
|
|
select:
|
|
|
|
properties:
|
|
|
|
compatible:
|
|
|
|
contains:
|
|
|
|
enum:
|
dt-bindings: net: starfive,jh7110-dwmac: Add JH7100 SoC compatible
The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly
similar to the newer JH7110, but it requires only two interrupts and a
single reset line, which is 'ahb' instead of the commonly used
'stmmaceth'.
Since the common binding 'snps,dwmac' allows selecting 'ahb' only in
conjunction with 'stmmaceth', extend the logic to also permit exclusive
usage of the 'ahb' reset name. This ensures the following use cases are
supported:
JH7110: reset-names = "stmmaceth", "ahb";
JH7100: reset-names = "ahb";
other: reset-names = "stmmaceth";
Also note the need to use a different dwmac fallback, as v5.20 applies
to JH7110 only, while JH7100 relies on v3.7x.
Additionally, drop the reset description items from top-level binding as
they are already provided by the included snps,dwmac schema.
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2024-01-26 21:21:25 +02:00
|
|
|
- starfive,jh7100-dwmac
|
2023-04-17 18:02:49 +08:00
|
|
|
- starfive,jh7110-dwmac
|
|
|
|
required:
|
|
|
|
- compatible
|
|
|
|
|
|
|
|
properties:
|
|
|
|
compatible:
|
dt-bindings: net: starfive,jh7110-dwmac: Add JH7100 SoC compatible
The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly
similar to the newer JH7110, but it requires only two interrupts and a
single reset line, which is 'ahb' instead of the commonly used
'stmmaceth'.
Since the common binding 'snps,dwmac' allows selecting 'ahb' only in
conjunction with 'stmmaceth', extend the logic to also permit exclusive
usage of the 'ahb' reset name. This ensures the following use cases are
supported:
JH7110: reset-names = "stmmaceth", "ahb";
JH7100: reset-names = "ahb";
other: reset-names = "stmmaceth";
Also note the need to use a different dwmac fallback, as v5.20 applies
to JH7110 only, while JH7100 relies on v3.7x.
Additionally, drop the reset description items from top-level binding as
they are already provided by the included snps,dwmac schema.
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2024-01-26 21:21:25 +02:00
|
|
|
oneOf:
|
|
|
|
- items:
|
|
|
|
- const: starfive,jh7100-dwmac
|
|
|
|
- const: snps,dwmac
|
|
|
|
- items:
|
|
|
|
- const: starfive,jh7110-dwmac
|
|
|
|
- const: snps,dwmac-5.20
|
2023-04-17 18:02:49 +08:00
|
|
|
|
|
|
|
reg:
|
|
|
|
maxItems: 1
|
|
|
|
|
|
|
|
clocks:
|
|
|
|
items:
|
|
|
|
- description: GMAC main clock
|
|
|
|
- description: GMAC AHB clock
|
|
|
|
- description: PTP clock
|
|
|
|
- description: TX clock
|
|
|
|
- description: GTX clock
|
|
|
|
|
|
|
|
clock-names:
|
|
|
|
items:
|
|
|
|
- const: stmmaceth
|
|
|
|
- const: pclk
|
|
|
|
- const: ptp_ref
|
|
|
|
- const: tx
|
|
|
|
- const: gtx
|
|
|
|
|
|
|
|
starfive,tx-use-rgmii-clk:
|
|
|
|
description:
|
|
|
|
Tx clock is provided by external rgmii clock.
|
|
|
|
type: boolean
|
|
|
|
|
|
|
|
starfive,syscon:
|
|
|
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
|
|
|
items:
|
|
|
|
- items:
|
|
|
|
- description: phandle to syscon that configures phy mode
|
|
|
|
- description: Offset of phy mode selection
|
|
|
|
- description: Shift of phy mode selection
|
|
|
|
description:
|
|
|
|
A phandle to syscon with two arguments that configure phy mode.
|
|
|
|
The argument one is the offset of phy mode selection, the
|
|
|
|
argument two is the shift of phy mode selection.
|
|
|
|
|
|
|
|
required:
|
|
|
|
- compatible
|
|
|
|
- reg
|
|
|
|
- clocks
|
|
|
|
- clock-names
|
|
|
|
- interrupts
|
|
|
|
- interrupt-names
|
|
|
|
- resets
|
|
|
|
- reset-names
|
|
|
|
|
|
|
|
allOf:
|
|
|
|
- $ref: snps,dwmac.yaml#
|
|
|
|
|
dt-bindings: net: starfive,jh7110-dwmac: Add JH7100 SoC compatible
The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly
similar to the newer JH7110, but it requires only two interrupts and a
single reset line, which is 'ahb' instead of the commonly used
'stmmaceth'.
Since the common binding 'snps,dwmac' allows selecting 'ahb' only in
conjunction with 'stmmaceth', extend the logic to also permit exclusive
usage of the 'ahb' reset name. This ensures the following use cases are
supported:
JH7110: reset-names = "stmmaceth", "ahb";
JH7100: reset-names = "ahb";
other: reset-names = "stmmaceth";
Also note the need to use a different dwmac fallback, as v5.20 applies
to JH7110 only, while JH7100 relies on v3.7x.
Additionally, drop the reset description items from top-level binding as
they are already provided by the included snps,dwmac schema.
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2024-01-26 21:21:25 +02:00
|
|
|
- if:
|
|
|
|
properties:
|
|
|
|
compatible:
|
|
|
|
contains:
|
|
|
|
const: starfive,jh7100-dwmac
|
|
|
|
then:
|
|
|
|
properties:
|
|
|
|
interrupts:
|
|
|
|
minItems: 2
|
|
|
|
maxItems: 2
|
|
|
|
|
|
|
|
interrupt-names:
|
|
|
|
minItems: 2
|
|
|
|
maxItems: 2
|
|
|
|
|
|
|
|
resets:
|
|
|
|
maxItems: 1
|
|
|
|
|
|
|
|
reset-names:
|
|
|
|
const: ahb
|
|
|
|
|
|
|
|
- if:
|
|
|
|
properties:
|
|
|
|
compatible:
|
|
|
|
contains:
|
|
|
|
const: starfive,jh7110-dwmac
|
|
|
|
then:
|
|
|
|
properties:
|
|
|
|
interrupts:
|
|
|
|
minItems: 3
|
|
|
|
maxItems: 3
|
|
|
|
|
|
|
|
interrupt-names:
|
|
|
|
minItems: 3
|
|
|
|
maxItems: 3
|
|
|
|
|
|
|
|
resets:
|
|
|
|
minItems: 2
|
|
|
|
|
|
|
|
reset-names:
|
|
|
|
minItems: 2
|
|
|
|
|
2023-04-17 18:02:49 +08:00
|
|
|
unevaluatedProperties: false
|
|
|
|
|
|
|
|
examples:
|
|
|
|
- |
|
|
|
|
ethernet@16030000 {
|
|
|
|
compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
|
|
|
|
reg = <0x16030000 0x10000>;
|
|
|
|
clocks = <&clk 3>, <&clk 2>, <&clk 109>,
|
|
|
|
<&clk 6>, <&clk 111>;
|
|
|
|
clock-names = "stmmaceth", "pclk", "ptp_ref",
|
|
|
|
"tx", "gtx";
|
|
|
|
resets = <&rst 1>, <&rst 2>;
|
|
|
|
reset-names = "stmmaceth", "ahb";
|
|
|
|
interrupts = <7>, <6>, <5>;
|
|
|
|
interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
|
|
|
|
phy-mode = "rgmii-id";
|
|
|
|
snps,multicast-filter-bins = <64>;
|
|
|
|
snps,perfect-filter-entries = <8>;
|
|
|
|
rx-fifo-depth = <2048>;
|
|
|
|
tx-fifo-depth = <2048>;
|
|
|
|
snps,fixed-burst;
|
|
|
|
snps,no-pbl-x8;
|
|
|
|
snps,tso;
|
|
|
|
snps,force_thresh_dma_mode;
|
|
|
|
snps,axi-config = <&stmmac_axi_setup>;
|
|
|
|
snps,en-tx-lpi-clockgating;
|
|
|
|
snps,txpbl = <16>;
|
|
|
|
snps,rxpbl = <16>;
|
|
|
|
starfive,syscon = <&aon_syscon 0xc 0x12>;
|
|
|
|
phy-handle = <&phy0>;
|
|
|
|
|
|
|
|
mdio {
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <0>;
|
|
|
|
compatible = "snps,dwmac-mdio";
|
|
|
|
|
|
|
|
phy0: ethernet-phy@0 {
|
|
|
|
reg = <0>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
stmmac_axi_setup: stmmac-axi-config {
|
|
|
|
snps,lpi_en;
|
|
|
|
snps,wr_osr_lmt = <4>;
|
|
|
|
snps,rd_osr_lmt = <4>;
|
|
|
|
snps,blen = <256 128 64 32 0 0 0>;
|
|
|
|
};
|
|
|
|
};
|