1d5a57e4eSNeil Armstrong# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2d5a57e4eSNeil Armstrong# Copyright 2019 BayLibre, SAS 3d5a57e4eSNeil Armstrong%YAML 1.2 4d5a57e4eSNeil Armstrong--- 5*3079bfdbSRob Herring$id: http://devicetree.org/schemas/net/amlogic,meson-dwmac.yaml# 6*3079bfdbSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml# 7d5a57e4eSNeil Armstrong 8d5a57e4eSNeil Armstrongtitle: Amlogic Meson DWMAC Ethernet controller 9d5a57e4eSNeil Armstrong 10d5a57e4eSNeil Armstrongmaintainers: 11c6a43fb3SNeil Armstrong - Neil Armstrong <neil.armstrong@linaro.org> 12d5a57e4eSNeil Armstrong - Martin Blumenstingl <martin.blumenstingl@googlemail.com> 13d5a57e4eSNeil Armstrong 14d5a57e4eSNeil Armstrong# We need a select here so we don't match all nodes with 'snps,dwmac' 15d5a57e4eSNeil Armstrongselect: 16d5a57e4eSNeil Armstrong properties: 17d5a57e4eSNeil Armstrong compatible: 18d5a57e4eSNeil Armstrong contains: 19d5a57e4eSNeil Armstrong enum: 20d5a57e4eSNeil Armstrong - amlogic,meson6-dwmac 21d5a57e4eSNeil Armstrong - amlogic,meson8b-dwmac 22d5a57e4eSNeil Armstrong - amlogic,meson8m2-dwmac 23d5a57e4eSNeil Armstrong - amlogic,meson-gxbb-dwmac 24d5a57e4eSNeil Armstrong - amlogic,meson-axg-dwmac 253efdb924SMartin Blumenstingl - amlogic,meson-g12a-dwmac 26d5a57e4eSNeil Armstrong required: 27d5a57e4eSNeil Armstrong - compatible 28d5a57e4eSNeil Armstrong 29d5a57e4eSNeil ArmstrongallOf: 30d5a57e4eSNeil Armstrong - $ref: snps,dwmac.yaml# 31d5a57e4eSNeil Armstrong - if: 32d5a57e4eSNeil Armstrong properties: 33d5a57e4eSNeil Armstrong compatible: 34d5a57e4eSNeil Armstrong contains: 35d5a57e4eSNeil Armstrong enum: 36d5a57e4eSNeil Armstrong - amlogic,meson8b-dwmac 37d5a57e4eSNeil Armstrong - amlogic,meson8m2-dwmac 38d5a57e4eSNeil Armstrong - amlogic,meson-gxbb-dwmac 39d5a57e4eSNeil Armstrong - amlogic,meson-axg-dwmac 403efdb924SMartin Blumenstingl - amlogic,meson-g12a-dwmac 41d5a57e4eSNeil Armstrong 42d5a57e4eSNeil Armstrong then: 43d5a57e4eSNeil Armstrong properties: 44d5a57e4eSNeil Armstrong clocks: 45ee0b8e6dSMartin Blumenstingl minItems: 3 46d5a57e4eSNeil Armstrong items: 47d5a57e4eSNeil Armstrong - description: GMAC main clock 48d5a57e4eSNeil Armstrong - description: First parent clock of the internal mux 49d5a57e4eSNeil Armstrong - description: Second parent clock of the internal mux 50ee0b8e6dSMartin Blumenstingl - description: The clock which drives the timing adjustment logic 51d5a57e4eSNeil Armstrong 52d5a57e4eSNeil Armstrong clock-names: 53d5a57e4eSNeil Armstrong minItems: 3 54d5a57e4eSNeil Armstrong items: 55d5a57e4eSNeil Armstrong - const: stmmaceth 56d5a57e4eSNeil Armstrong - const: clkin0 57d5a57e4eSNeil Armstrong - const: clkin1 58ee0b8e6dSMartin Blumenstingl - const: timing-adjustment 59d5a57e4eSNeil Armstrong 60d5a57e4eSNeil Armstrong amlogic,tx-delay-ns: 61d69c6dddSRob Herring $ref: /schemas/types.yaml#/definitions/uint32 62d5a57e4eSNeil Armstrong description: 63d5a57e4eSNeil Armstrong The internal RGMII TX clock delay (provided by this driver) in 64d5a57e4eSNeil Armstrong nanoseconds. Allowed values are 0ns, 2ns, 4ns, 6ns. 65d5a57e4eSNeil Armstrong When phy-mode is set to "rgmii" then the TX delay should be 66d5a57e4eSNeil Armstrong explicitly configured. When not configured a fallback of 2ns is 67d5a57e4eSNeil Armstrong used. When the phy-mode is set to either "rgmii-id" or "rgmii-txid" 68d5a57e4eSNeil Armstrong the TX clock delay is already provided by the PHY. In that case 69d5a57e4eSNeil Armstrong this property should be set to 0ns (which disables the TX clock 70d5a57e4eSNeil Armstrong delay in the MAC to prevent the clock from going off because both 71d5a57e4eSNeil Armstrong PHY and MAC are adding a delay). 72d5a57e4eSNeil Armstrong Any configuration is ignored when the phy-mode is set to "rmii". 73d5a57e4eSNeil Armstrong 747af4c845SMartin Blumenstingl amlogic,rx-delay-ns: 756b5903f5SMartin Blumenstingl deprecated: true 767af4c845SMartin Blumenstingl enum: 777af4c845SMartin Blumenstingl - 0 787af4c845SMartin Blumenstingl - 2 797af4c845SMartin Blumenstingl default: 0 807af4c845SMartin Blumenstingl description: 816b5903f5SMartin Blumenstingl The internal RGMII RX clock delay in nanoseconds. Deprecated, use 826b5903f5SMartin Blumenstingl rx-internal-delay-ps instead. 836b5903f5SMartin Blumenstingl 846b5903f5SMartin Blumenstingl rx-internal-delay-ps: 856b5903f5SMartin Blumenstingl default: 0 866b5903f5SMartin Blumenstingl 876b5903f5SMartin Blumenstingl - if: 886b5903f5SMartin Blumenstingl properties: 896b5903f5SMartin Blumenstingl compatible: 906b5903f5SMartin Blumenstingl contains: 916b5903f5SMartin Blumenstingl enum: 926b5903f5SMartin Blumenstingl - amlogic,meson8b-dwmac 936b5903f5SMartin Blumenstingl - amlogic,meson8m2-dwmac 946b5903f5SMartin Blumenstingl - amlogic,meson-gxbb-dwmac 956b5903f5SMartin Blumenstingl - amlogic,meson-axg-dwmac 966b5903f5SMartin Blumenstingl then: 976b5903f5SMartin Blumenstingl properties: 986b5903f5SMartin Blumenstingl rx-internal-delay-ps: 996b5903f5SMartin Blumenstingl enum: 1006b5903f5SMartin Blumenstingl - 0 1016b5903f5SMartin Blumenstingl - 2000 1026b5903f5SMartin Blumenstingl 1036b5903f5SMartin Blumenstingl - if: 1046b5903f5SMartin Blumenstingl properties: 1056b5903f5SMartin Blumenstingl compatible: 1066b5903f5SMartin Blumenstingl contains: 1076b5903f5SMartin Blumenstingl enum: 1086b5903f5SMartin Blumenstingl - amlogic,meson-g12a-dwmac 1096b5903f5SMartin Blumenstingl then: 1106b5903f5SMartin Blumenstingl properties: 1116b5903f5SMartin Blumenstingl rx-internal-delay-ps: 1126b5903f5SMartin Blumenstingl enum: 1136b5903f5SMartin Blumenstingl - 0 1146b5903f5SMartin Blumenstingl - 200 1156b5903f5SMartin Blumenstingl - 400 1166b5903f5SMartin Blumenstingl - 600 1176b5903f5SMartin Blumenstingl - 800 1186b5903f5SMartin Blumenstingl - 1000 1196b5903f5SMartin Blumenstingl - 1200 1206b5903f5SMartin Blumenstingl - 1400 1216b5903f5SMartin Blumenstingl - 1600 1226b5903f5SMartin Blumenstingl - 1800 1236b5903f5SMartin Blumenstingl - 2000 1246b5903f5SMartin Blumenstingl - 2200 1256b5903f5SMartin Blumenstingl - 2400 1266b5903f5SMartin Blumenstingl - 2600 1276b5903f5SMartin Blumenstingl - 2800 1286b5903f5SMartin Blumenstingl - 3000 1297af4c845SMartin Blumenstingl 130d5a57e4eSNeil Armstrongproperties: 131d5a57e4eSNeil Armstrong compatible: 132d5a57e4eSNeil Armstrong additionalItems: true 133d5a57e4eSNeil Armstrong maxItems: 3 134d5a57e4eSNeil Armstrong items: 135d5a57e4eSNeil Armstrong - enum: 136d5a57e4eSNeil Armstrong - amlogic,meson6-dwmac 137d5a57e4eSNeil Armstrong - amlogic,meson8b-dwmac 138d5a57e4eSNeil Armstrong - amlogic,meson8m2-dwmac 139d5a57e4eSNeil Armstrong - amlogic,meson-gxbb-dwmac 140d5a57e4eSNeil Armstrong - amlogic,meson-axg-dwmac 1413efdb924SMartin Blumenstingl - amlogic,meson-g12a-dwmac 142d5a57e4eSNeil Armstrong contains: 143d5a57e4eSNeil Armstrong enum: 144d5a57e4eSNeil Armstrong - snps,dwmac-3.70a 145d5a57e4eSNeil Armstrong - snps,dwmac 146d5a57e4eSNeil Armstrong 147d5a57e4eSNeil Armstrong reg: 148d5a57e4eSNeil Armstrong items: 149d5a57e4eSNeil Armstrong - description: 150d5a57e4eSNeil Armstrong The first register range should be the one of the DWMAC controller 151d5a57e4eSNeil Armstrong - description: 152d5a57e4eSNeil Armstrong The second range is is for the Amlogic specific configuration 153d5a57e4eSNeil Armstrong (for example the PRG_ETHERNET register range on Meson8b and newer) 154d5a57e4eSNeil Armstrong 155d5a57e4eSNeil Armstrongrequired: 156d5a57e4eSNeil Armstrong - compatible 157d5a57e4eSNeil Armstrong - reg 158d5a57e4eSNeil Armstrong - interrupts 159d5a57e4eSNeil Armstrong - interrupt-names 160d5a57e4eSNeil Armstrong - clocks 161d5a57e4eSNeil Armstrong - clock-names 162d5a57e4eSNeil Armstrong - phy-mode 163d5a57e4eSNeil Armstrong 1646fdc6e23SRob HerringunevaluatedProperties: false 1656fdc6e23SRob Herring 166d5a57e4eSNeil Armstrongexamples: 167d5a57e4eSNeil Armstrong - | 168d5a57e4eSNeil Armstrong ethmac: ethernet@c9410000 { 169d5a57e4eSNeil Armstrong compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac"; 170d5a57e4eSNeil Armstrong reg = <0xc9410000 0x10000>, <0xc8834540 0x8>; 171d5a57e4eSNeil Armstrong interrupts = <8>; 172d5a57e4eSNeil Armstrong interrupt-names = "macirq"; 173ee0b8e6dSMartin Blumenstingl clocks = <&clk_eth>, <&clk_fclk_div2>, <&clk_mpll2>, <&clk_fclk_div2>; 174ee0b8e6dSMartin Blumenstingl clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment"; 175d5a57e4eSNeil Armstrong phy-mode = "rgmii"; 176d5a57e4eSNeil Armstrong }; 177