mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 00:48:50 +00:00
53e41b76a8
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>
172 lines
3.9 KiB
YAML
172 lines
3.9 KiB
YAML
# 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:
|
|
- starfive,jh7100-dwmac
|
|
- starfive,jh7110-dwmac
|
|
required:
|
|
- compatible
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- const: starfive,jh7100-dwmac
|
|
- const: snps,dwmac
|
|
- items:
|
|
- const: starfive,jh7110-dwmac
|
|
- const: snps,dwmac-5.20
|
|
|
|
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#
|
|
|
|
- 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
|
|
|
|
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>;
|
|
};
|
|
};
|