# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/net/fsl,fman-dtsec.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: NXP FMan MAC maintainers: - Madalin Bucur description: | Each FMan has several MACs, each implementing an Ethernet interface. Earlier versions of FMan used the Datapath Three Speed Ethernet Controller (dTSEC) for 10/100/1000 MBit/s speeds, and the 10-Gigabit Ethernet Media Access Controller (10GEC) for 10 Gbit/s speeds. Later versions of FMan use the Multirate Ethernet Media Access Controller (mEMAC) to handle all speeds. properties: compatible: enum: - fsl,fman-dtsec - fsl,fman-xgec - fsl,fman-memac cell-index: maximum: 64 description: | FManV2: register[bit] MAC cell-index ============================================================ FM_EPI[16] XGEC 8 FM_EPI[16+n] dTSECn n-1 FM_NPI[11+n] dTSECn n-1 n = 1,..,5 FManV3: register[bit] MAC cell-index ============================================================ FM_EPI[16+n] mEMACn n-1 FM_EPI[25] mEMAC10 9 FM_NPI[11+n] mEMACn n-1 FM_NPI[10] mEMAC10 9 FM_NPI[11] mEMAC9 8 n = 1,..8 FM_EPI and FM_NPI are located in the FMan memory map. 2. SoC registers: - P2041, P3041, P4080 P5020, P5040: register[bit] FMan MAC cell Unit index ============================================================ DCFG_DEVDISR2[7] 1 XGEC 8 DCFG_DEVDISR2[7+n] 1 dTSECn n-1 DCFG_DEVDISR2[15] 2 XGEC 8 DCFG_DEVDISR2[15+n] 2 dTSECn n-1 n = 1,..5 - T1040, T2080, T4240, B4860: register[bit] FMan MAC cell Unit index ============================================================ DCFG_CCSR_DEVDISR2[n-1] 1 mEMACn n-1 DCFG_CCSR_DEVDISR2[11+n] 2 mEMACn n-1 n = 1,..6,9,10 EVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in the specific SoC "Device Configuration/Pin Control" Memory Map. reg: maxItems: 1 fsl,fman-ports: $ref: /schemas/types.yaml#/definitions/phandle-array maxItems: 2 description: | An array of two references: the first is the FMan RX port and the second is the TX port used by this MAC. ptp-timer: $ref: /schemas/types.yaml#/definitions/phandle description: A reference to the IEEE1588 timer phys: description: A reference to the SerDes lane(s) maxItems: 1 phy-names: items: - const: serdes pcsphy-handle: $ref: /schemas/types.yaml#/definitions/phandle-array minItems: 1 maxItems: 3 deprecated: true description: See pcs-handle. pcs-handle: minItems: 1 maxItems: 3 description: | A reference to the various PCSs (typically found on the SerDes). If pcs-handle-names is absent, and phy-connection-type is "xgmii", then the first reference will be assumed to be for "xfi". Otherwise, if pcs-handle-names is absent, then the first reference will be assumed to be for "sgmii". pcs-handle-names: minItems: 1 maxItems: 3 items: enum: - sgmii - qsgmii - xfi description: The type of each PCS in pcsphy-handle. tbi-handle: $ref: /schemas/types.yaml#/definitions/phandle description: A reference to the (TBI-based) PCS required: - compatible - cell-index - reg - fsl,fman-ports - ptp-timer dependencies: pcs-handle-names: - pcs-handle allOf: - $ref: ethernet-controller.yaml# - if: properties: compatible: contains: const: fsl,fman-dtsec then: required: - tbi-handle unevaluatedProperties: false examples: - | ethernet@e0000 { compatible = "fsl,fman-dtsec"; cell-index = <0>; reg = <0xe0000 0x1000>; fsl,fman-ports = <&fman1_rx8 &fman1_tx28>; ptp-timer = <&ptp_timer>; tbi-handle = <&tbi0>; }; - | ethernet@e8000 { cell-index = <4>; compatible = "fsl,fman-memac"; reg = <0xe8000 0x1000>; fsl,fman-ports = <&fman0_rx_0x0c &fman0_tx_0x2c>; ptp-timer = <&ptp_timer0>; pcs-handle = <&pcsphy4>, <&qsgmiib_pcs1>; pcs-handle-names = "sgmii", "qsgmii"; phys = <&serdes1 1>; phy-names = "serdes"; }; ...