1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*0e8011faSEmmanuel Vadot%YAML 1.2 3*0e8011faSEmmanuel Vadot--- 4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/net/fsl,fman.yaml# 5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*0e8011faSEmmanuel Vadot 7*0e8011faSEmmanuel Vadottitle: Freescale Frame Manager Device 8*0e8011faSEmmanuel Vadot 9*0e8011faSEmmanuel Vadotmaintainers: 10*0e8011faSEmmanuel Vadot - Frank Li <Frank.Li@nxp.com> 11*0e8011faSEmmanuel Vadot 12*0e8011faSEmmanuel Vadotdescription: 13*0e8011faSEmmanuel Vadot Due to the fact that the FMan is an aggregation of sub-engines (ports, MACs, 14*0e8011faSEmmanuel Vadot etc.) the FMan node will have child nodes for each of them. 15*0e8011faSEmmanuel Vadot 16*0e8011faSEmmanuel Vadotproperties: 17*0e8011faSEmmanuel Vadot compatible: 18*0e8011faSEmmanuel Vadot enum: 19*0e8011faSEmmanuel Vadot - fsl,fman 20*0e8011faSEmmanuel Vadot description: 21*0e8011faSEmmanuel Vadot FMan version can be determined via FM_IP_REV_1 register in the 22*0e8011faSEmmanuel Vadot FMan block. The offset is 0xc4 from the beginning of the 23*0e8011faSEmmanuel Vadot Frame Processing Manager memory map (0xc3000 from the 24*0e8011faSEmmanuel Vadot beginning of the FMan node). 25*0e8011faSEmmanuel Vadot 26*0e8011faSEmmanuel Vadot cell-index: 27*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 28*0e8011faSEmmanuel Vadot description: | 29*0e8011faSEmmanuel Vadot Specifies the index of the FMan unit. 30*0e8011faSEmmanuel Vadot 31*0e8011faSEmmanuel Vadot The cell-index value may be used by the SoC, to identify the 32*0e8011faSEmmanuel Vadot FMan unit in the SoC memory map. In the table below, 33*0e8011faSEmmanuel Vadot there's a description of the cell-index use in each SoC: 34*0e8011faSEmmanuel Vadot 35*0e8011faSEmmanuel Vadot - P1023: 36*0e8011faSEmmanuel Vadot register[bit] FMan unit cell-index 37*0e8011faSEmmanuel Vadot ============================================================ 38*0e8011faSEmmanuel Vadot DEVDISR[1] 1 0 39*0e8011faSEmmanuel Vadot 40*0e8011faSEmmanuel Vadot - P2041, P3041, P4080 P5020, P5040: 41*0e8011faSEmmanuel Vadot register[bit] FMan unit cell-index 42*0e8011faSEmmanuel Vadot ============================================================ 43*0e8011faSEmmanuel Vadot DCFG_DEVDISR2[6] 1 0 44*0e8011faSEmmanuel Vadot DCFG_DEVDISR2[14] 2 1 45*0e8011faSEmmanuel Vadot (Second FM available only in P4080 and P5040) 46*0e8011faSEmmanuel Vadot 47*0e8011faSEmmanuel Vadot - B4860, T1040, T2080, T4240: 48*0e8011faSEmmanuel Vadot register[bit] FMan unit cell-index 49*0e8011faSEmmanuel Vadot ============================================================ 50*0e8011faSEmmanuel Vadot DCFG_CCSR_DEVDISR2[24] 1 0 51*0e8011faSEmmanuel Vadot DCFG_CCSR_DEVDISR2[25] 2 1 52*0e8011faSEmmanuel Vadot (Second FM available only in T4240) 53*0e8011faSEmmanuel Vadot 54*0e8011faSEmmanuel Vadot DEVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in 55*0e8011faSEmmanuel Vadot the specific SoC "Device Configuration/Pin Control" Memory 56*0e8011faSEmmanuel Vadot Map. 57*0e8011faSEmmanuel Vadot 58*0e8011faSEmmanuel Vadot reg: 59*0e8011faSEmmanuel Vadot items: 60*0e8011faSEmmanuel Vadot - description: BMI configuration registers. 61*0e8011faSEmmanuel Vadot - description: QMI configuration registers. 62*0e8011faSEmmanuel Vadot - description: DMA configuration registers. 63*0e8011faSEmmanuel Vadot - description: FPM configuration registers. 64*0e8011faSEmmanuel Vadot - description: FMan controller configuration registers. 65*0e8011faSEmmanuel Vadot minItems: 1 66*0e8011faSEmmanuel Vadot 67*0e8011faSEmmanuel Vadot ranges: true 68*0e8011faSEmmanuel Vadot 69*0e8011faSEmmanuel Vadot clocks: 70*0e8011faSEmmanuel Vadot maxItems: 1 71*0e8011faSEmmanuel Vadot 72*0e8011faSEmmanuel Vadot clock-names: 73*0e8011faSEmmanuel Vadot items: 74*0e8011faSEmmanuel Vadot - const: fmanclk 75*0e8011faSEmmanuel Vadot 76*0e8011faSEmmanuel Vadot interrupts: 77*0e8011faSEmmanuel Vadot items: 78*0e8011faSEmmanuel Vadot - description: The first element is associated with the event interrupts. 79*0e8011faSEmmanuel Vadot - description: the second element is associated with the error interrupts. 80*0e8011faSEmmanuel Vadot 81*0e8011faSEmmanuel Vadot dma-coherent: true 82*0e8011faSEmmanuel Vadot 83*0e8011faSEmmanuel Vadot ptimer-handle: 84*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 85*0e8011faSEmmanuel Vadot description: see ptp/fsl,ptp.yaml 86*0e8011faSEmmanuel Vadot 87*0e8011faSEmmanuel Vadot fsl,qman-channel-range: 88*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 89*0e8011faSEmmanuel Vadot description: 90*0e8011faSEmmanuel Vadot Specifies the range of the available dedicated 91*0e8011faSEmmanuel Vadot channels in the FMan. The first cell specifies the beginning 92*0e8011faSEmmanuel Vadot of the range and the second cell specifies the number of 93*0e8011faSEmmanuel Vadot channels 94*0e8011faSEmmanuel Vadot items: 95*0e8011faSEmmanuel Vadot - description: The first cell specifies the beginning of the range. 96*0e8011faSEmmanuel Vadot - description: | 97*0e8011faSEmmanuel Vadot The second cell specifies the number of channels. 98*0e8011faSEmmanuel Vadot Further information available at: 99*0e8011faSEmmanuel Vadot "Work Queue (WQ) Channel Assignments in the QMan" section 100*0e8011faSEmmanuel Vadot in DPAA Reference Manual. 101*0e8011faSEmmanuel Vadot 102*0e8011faSEmmanuel Vadot fsl,qman: 103*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 104*0e8011faSEmmanuel Vadot description: See soc/fsl/qman.txt 105*0e8011faSEmmanuel Vadot 106*0e8011faSEmmanuel Vadot fsl,bman: 107*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 108*0e8011faSEmmanuel Vadot description: See soc/fsl/bman.txt 109*0e8011faSEmmanuel Vadot 110*0e8011faSEmmanuel Vadot fsl,erratum-a050385: 111*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 112*0e8011faSEmmanuel Vadot description: A boolean property. Indicates the presence of the 113*0e8011faSEmmanuel Vadot erratum A050385 which indicates that DMA transactions that are 114*0e8011faSEmmanuel Vadot split can result in a FMan lock. 115*0e8011faSEmmanuel Vadot 116*0e8011faSEmmanuel Vadot '#address-cells': 117*0e8011faSEmmanuel Vadot const: 1 118*0e8011faSEmmanuel Vadot 119*0e8011faSEmmanuel Vadot '#size-cells': 120*0e8011faSEmmanuel Vadot const: 1 121*0e8011faSEmmanuel Vadot 122*0e8011faSEmmanuel VadotpatternProperties: 123*0e8011faSEmmanuel Vadot '^muram@[a-f0-9]+$': 124*0e8011faSEmmanuel Vadot $ref: fsl,fman-muram.yaml 125*0e8011faSEmmanuel Vadot 126*0e8011faSEmmanuel Vadot '^port@[a-f0-9]+$': 127*0e8011faSEmmanuel Vadot $ref: fsl,fman-port.yaml 128*0e8011faSEmmanuel Vadot 129*0e8011faSEmmanuel Vadot '^ethernet@[a-f0-9]+$': 130*0e8011faSEmmanuel Vadot $ref: fsl,fman-dtsec.yaml 131*0e8011faSEmmanuel Vadot 132*0e8011faSEmmanuel Vadot '^mdio@[a-f0-9]+$': 133*0e8011faSEmmanuel Vadot $ref: fsl,fman-mdio.yaml 134*0e8011faSEmmanuel Vadot 135*0e8011faSEmmanuel Vadot '^phc@[a-f0-9]+$': 136*0e8011faSEmmanuel Vadot $ref: /schemas/ptp/fsl,ptp.yaml 137*0e8011faSEmmanuel Vadot 138*0e8011faSEmmanuel Vadotrequired: 139*0e8011faSEmmanuel Vadot - compatible 140*0e8011faSEmmanuel Vadot - cell-index 141*0e8011faSEmmanuel Vadot - reg 142*0e8011faSEmmanuel Vadot - ranges 143*0e8011faSEmmanuel Vadot - clocks 144*0e8011faSEmmanuel Vadot - clock-names 145*0e8011faSEmmanuel Vadot - interrupts 146*0e8011faSEmmanuel Vadot - fsl,qman-channel-range 147*0e8011faSEmmanuel Vadot 148*0e8011faSEmmanuel VadotadditionalProperties: false 149*0e8011faSEmmanuel Vadot 150*0e8011faSEmmanuel Vadotexamples: 151*0e8011faSEmmanuel Vadot - | 152*0e8011faSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 153*0e8011faSEmmanuel Vadot 154*0e8011faSEmmanuel Vadot fman@400000 { 155*0e8011faSEmmanuel Vadot compatible = "fsl,fman"; 156*0e8011faSEmmanuel Vadot reg = <0x400000 0x100000>; 157*0e8011faSEmmanuel Vadot ranges = <0 0x400000 0x100000>; 158*0e8011faSEmmanuel Vadot #address-cells = <1>; 159*0e8011faSEmmanuel Vadot #size-cells = <1>; 160*0e8011faSEmmanuel Vadot cell-index = <1>; 161*0e8011faSEmmanuel Vadot clocks = <&fman_clk>; 162*0e8011faSEmmanuel Vadot clock-names = "fmanclk"; 163*0e8011faSEmmanuel Vadot interrupts = <96 IRQ_TYPE_EDGE_FALLING>, 164*0e8011faSEmmanuel Vadot <16 IRQ_TYPE_EDGE_FALLING>; 165*0e8011faSEmmanuel Vadot fsl,qman-channel-range = <0x40 0xc>; 166*0e8011faSEmmanuel Vadot 167*0e8011faSEmmanuel Vadot muram@0 { 168*0e8011faSEmmanuel Vadot compatible = "fsl,fman-muram"; 169*0e8011faSEmmanuel Vadot reg = <0x0 0x28000>; 170*0e8011faSEmmanuel Vadot }; 171*0e8011faSEmmanuel Vadot 172*0e8011faSEmmanuel Vadot port@81000 { 173*0e8011faSEmmanuel Vadot cell-index = <1>; 174*0e8011faSEmmanuel Vadot compatible = "fsl,fman-v2-port-oh"; 175*0e8011faSEmmanuel Vadot reg = <0x81000 0x1000>; 176*0e8011faSEmmanuel Vadot }; 177*0e8011faSEmmanuel Vadot 178*0e8011faSEmmanuel Vadot fman1_rx_0x8: port@88000 { 179*0e8011faSEmmanuel Vadot cell-index = <0x8>; 180*0e8011faSEmmanuel Vadot compatible = "fsl,fman-v2-port-rx"; 181*0e8011faSEmmanuel Vadot reg = <0x88000 0x1000>; 182*0e8011faSEmmanuel Vadot }; 183*0e8011faSEmmanuel Vadot 184*0e8011faSEmmanuel Vadot fman1_tx_0x28: port@a8000 { 185*0e8011faSEmmanuel Vadot cell-index = <0x28>; 186*0e8011faSEmmanuel Vadot compatible = "fsl,fman-v2-port-tx"; 187*0e8011faSEmmanuel Vadot reg = <0xa8000 0x1000>; 188*0e8011faSEmmanuel Vadot }; 189*0e8011faSEmmanuel Vadot 190*0e8011faSEmmanuel Vadot ethernet@e0000 { 191*0e8011faSEmmanuel Vadot compatible = "fsl,fman-dtsec"; 192*0e8011faSEmmanuel Vadot cell-index = <0>; 193*0e8011faSEmmanuel Vadot reg = <0xe0000 0x1000>; 194*0e8011faSEmmanuel Vadot ptp-timer = <&ptp_timer>; 195*0e8011faSEmmanuel Vadot fsl,fman-ports = <&fman1_rx_0x8 &fman1_tx_0x28>; 196*0e8011faSEmmanuel Vadot tbi-handle = <&tbi5>; 197*0e8011faSEmmanuel Vadot }; 198*0e8011faSEmmanuel Vadot 199*0e8011faSEmmanuel Vadot ptp_timer: phc@fe000 { 200*0e8011faSEmmanuel Vadot compatible = "fsl,fman-ptp-timer"; 201*0e8011faSEmmanuel Vadot reg = <0xfe000 0x1000>; 202*0e8011faSEmmanuel Vadot interrupts = <12 IRQ_TYPE_LEVEL_LOW>; 203*0e8011faSEmmanuel Vadot }; 204*0e8011faSEmmanuel Vadot 205*0e8011faSEmmanuel Vadot mdio@f1000 { 206*0e8011faSEmmanuel Vadot compatible = "fsl,fman-xmdio"; 207*0e8011faSEmmanuel Vadot reg = <0xf1000 0x1000>; 208*0e8011faSEmmanuel Vadot interrupts = <101 IRQ_TYPE_EDGE_FALLING>; 209*0e8011faSEmmanuel Vadot }; 210*0e8011faSEmmanuel Vadot }; 211