129 lines
3.4 KiB
YAML
129 lines
3.4 KiB
YAML
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: "http://devicetree.org/schemas/net/rockchip-dwmac.yaml#"
|
||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||
|
|
||
|
title: Rockchip 10/100/1000 Ethernet driver(GMAC)
|
||
|
|
||
|
maintainers:
|
||
|
- David Wu <david.wu@rock-chips.com>
|
||
|
|
||
|
# We need a select here so we don't match all nodes with 'snps,dwmac'
|
||
|
select:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
enum:
|
||
|
- rockchip,px30-gmac
|
||
|
- rockchip,rk3128-gmac
|
||
|
- rockchip,rk3228-gmac
|
||
|
- rockchip,rk3288-gmac
|
||
|
- rockchip,rk3308-gmac
|
||
|
- rockchip,rk3328-gmac
|
||
|
- rockchip,rk3366-gmac
|
||
|
- rockchip,rk3368-gmac
|
||
|
- rockchip,rk3399-gmac
|
||
|
- rockchip,rk3568-gmac
|
||
|
- rockchip,rv1108-gmac
|
||
|
required:
|
||
|
- compatible
|
||
|
|
||
|
allOf:
|
||
|
- $ref: "snps,dwmac.yaml#"
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
oneOf:
|
||
|
- items:
|
||
|
- enum:
|
||
|
- rockchip,px30-gmac
|
||
|
- rockchip,rk3128-gmac
|
||
|
- rockchip,rk3228-gmac
|
||
|
- rockchip,rk3288-gmac
|
||
|
- rockchip,rk3308-gmac
|
||
|
- rockchip,rk3328-gmac
|
||
|
- rockchip,rk3366-gmac
|
||
|
- rockchip,rk3368-gmac
|
||
|
- rockchip,rk3399-gmac
|
||
|
- rockchip,rv1108-gmac
|
||
|
- items:
|
||
|
- enum:
|
||
|
- rockchip,rk3568-gmac
|
||
|
- const: snps,dwmac-4.20a
|
||
|
|
||
|
clocks:
|
||
|
minItems: 5
|
||
|
maxItems: 8
|
||
|
|
||
|
clock-names:
|
||
|
contains:
|
||
|
enum:
|
||
|
- stmmaceth
|
||
|
- mac_clk_tx
|
||
|
- mac_clk_rx
|
||
|
- aclk_mac
|
||
|
- pclk_mac
|
||
|
- clk_mac_ref
|
||
|
- clk_mac_refout
|
||
|
- clk_mac_speed
|
||
|
|
||
|
clock_in_out:
|
||
|
description:
|
||
|
For RGMII, it must be "input", means main clock(125MHz)
|
||
|
is not sourced from SoC's PLL, but input from PHY.
|
||
|
For RMII, "input" means PHY provides the reference clock(50MHz),
|
||
|
"output" means GMAC provides the reference clock.
|
||
|
$ref: /schemas/types.yaml#/definitions/string
|
||
|
enum: [input, output]
|
||
|
|
||
|
rockchip,grf:
|
||
|
description: The phandle of the syscon node for the general register file.
|
||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||
|
|
||
|
tx_delay:
|
||
|
description: Delay value for TXD timing. Range value is 0~0x7F, 0x30 as default.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
|
||
|
rx_delay:
|
||
|
description: Delay value for RXD timing. Range value is 0~0x7F, 0x10 as default.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
|
||
|
phy-supply:
|
||
|
description: PHY regulator
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- clocks
|
||
|
- clock-names
|
||
|
|
||
|
unevaluatedProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||
|
#include <dt-bindings/clock/rk3288-cru.h>
|
||
|
|
||
|
gmac: ethernet@ff290000 {
|
||
|
compatible = "rockchip,rk3288-gmac";
|
||
|
reg = <0xff290000 0x10000>;
|
||
|
interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
interrupt-names = "macirq";
|
||
|
clocks = <&cru SCLK_MAC>,
|
||
|
<&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
|
||
|
<&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
|
||
|
<&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
|
||
|
clock-names = "stmmaceth",
|
||
|
"mac_clk_rx", "mac_clk_tx",
|
||
|
"clk_mac_ref", "clk_mac_refout",
|
||
|
"aclk_mac", "pclk_mac";
|
||
|
assigned-clocks = <&cru SCLK_MAC>;
|
||
|
assigned-clock-parents = <&ext_gmac>;
|
||
|
|
||
|
rockchip,grf = <&grf>;
|
||
|
phy-mode = "rgmii";
|
||
|
clock_in_out = "input";
|
||
|
tx_delay = <0x30>;
|
||
|
rx_delay = <0x10>;
|
||
|
};
|