| # 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,rk3506-gmac | |
| - rockchip,rk3528-gmac | |
| - rockchip,rk3568-gmac | |
| - rockchip,rk3576-gmac | |
| - rockchip,rk3588-gmac | |
| - rockchip,rv1108-gmac | |
| - rockchip,rv1126-gmac | |
| required: | |
| - compatible | |
| 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,rk3506-gmac | |
| - rockchip,rk3528-gmac | |
| - rockchip,rk3568-gmac | |
| - rockchip,rk3576-gmac | |
| - rockchip,rk3588-gmac | |
| - rockchip,rv1126-gmac | |
| - const: snps,dwmac-4.20a | |
| interrupts: | |
| minItems: 1 | |
| maxItems: 2 | |
| interrupt-names: | |
| minItems: 1 | |
| items: | |
| - const: macirq | |
| - const: eth_wake_irq | |
| clocks: | |
| minItems: 4 | |
| 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 | |
| dma-coherent: true | |
| 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] | |
| default: input | |
| rockchip,grf: | |
| description: The phandle of the syscon node for the general register file. | |
| $ref: /schemas/types.yaml#/definitions/phandle | |
| rockchip,php-grf: | |
| description: | |
| The phandle of the syscon node for the peripheral general register file. | |
| $ref: /schemas/types.yaml#/definitions/phandle | |
| tx_delay: | |
| description: Delay value for TXD timing. | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| minimum: 0 | |
| maximum: 0x7F | |
| default: 0x30 | |
| rx_delay: | |
| description: Delay value for RXD timing. | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| minimum: 0 | |
| maximum: 0x7F | |
| default: 0x10 | |
| phy-supply: | |
| description: PHY regulator | |
| required: | |
| - compatible | |
| - clocks | |
| - clock-names | |
| - rockchip,grf | |
| allOf: | |
| - $ref: snps,dwmac.yaml# | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - rockchip,rk3576-gmac | |
| - rockchip,rk3588-gmac | |
| then: | |
| required: | |
| - rockchip,php-grf | |
| else: | |
| properties: | |
| rockchip,php-grf: false | |
| - if: | |
| not: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - rockchip,rk3506-gmac | |
| - rockchip,rk3528-gmac | |
| then: | |
| properties: | |
| clocks: | |
| minItems: 5 | |
| 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-id"; | |
| clock_in_out = "input"; | |
| }; |