1*4882a593Smuzhiyun============================================================================= 2*4882a593SmuzhiyunFreescale Frame Manager Device Bindings 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunCONTENTS 5*4882a593Smuzhiyun - FMan Node 6*4882a593Smuzhiyun - FMan Port Node 7*4882a593Smuzhiyun - FMan MURAM Node 8*4882a593Smuzhiyun - FMan dTSEC/XGEC/mEMAC Node 9*4882a593Smuzhiyun - FMan IEEE 1588 Node 10*4882a593Smuzhiyun - FMan MDIO Node 11*4882a593Smuzhiyun - Example 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun============================================================================= 14*4882a593SmuzhiyunFMan Node 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunDESCRIPTION 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunDue to the fact that the FMan is an aggregation of sub-engines (ports, MACs, 19*4882a593Smuzhiyunetc.) the FMan node will have child nodes for each of them. 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunPROPERTIES 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun- compatible 24*4882a593Smuzhiyun Usage: required 25*4882a593Smuzhiyun Value type: <stringlist> 26*4882a593Smuzhiyun Definition: Must include "fsl,fman" 27*4882a593Smuzhiyun FMan version can be determined via FM_IP_REV_1 register in the 28*4882a593Smuzhiyun FMan block. The offset is 0xc4 from the beginning of the 29*4882a593Smuzhiyun Frame Processing Manager memory map (0xc3000 from the 30*4882a593Smuzhiyun beginning of the FMan node). 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun- cell-index 33*4882a593Smuzhiyun Usage: required 34*4882a593Smuzhiyun Value type: <u32> 35*4882a593Smuzhiyun Definition: Specifies the index of the FMan unit. 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun The cell-index value may be used by the SoC, to identify the 38*4882a593Smuzhiyun FMan unit in the SoC memory map. In the table below, 39*4882a593Smuzhiyun there's a description of the cell-index use in each SoC: 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun - P1023: 42*4882a593Smuzhiyun register[bit] FMan unit cell-index 43*4882a593Smuzhiyun ============================================================ 44*4882a593Smuzhiyun DEVDISR[1] 1 0 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun - P2041, P3041, P4080 P5020, P5040: 47*4882a593Smuzhiyun register[bit] FMan unit cell-index 48*4882a593Smuzhiyun ============================================================ 49*4882a593Smuzhiyun DCFG_DEVDISR2[6] 1 0 50*4882a593Smuzhiyun DCFG_DEVDISR2[14] 2 1 51*4882a593Smuzhiyun (Second FM available only in P4080 and P5040) 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun - B4860, T1040, T2080, T4240: 54*4882a593Smuzhiyun register[bit] FMan unit cell-index 55*4882a593Smuzhiyun ============================================================ 56*4882a593Smuzhiyun DCFG_CCSR_DEVDISR2[24] 1 0 57*4882a593Smuzhiyun DCFG_CCSR_DEVDISR2[25] 2 1 58*4882a593Smuzhiyun (Second FM available only in T4240) 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun DEVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in 61*4882a593Smuzhiyun the specific SoC "Device Configuration/Pin Control" Memory 62*4882a593Smuzhiyun Map. 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun- reg 65*4882a593Smuzhiyun Usage: required 66*4882a593Smuzhiyun Value type: <prop-encoded-array> 67*4882a593Smuzhiyun Definition: A standard property. Specifies the offset of the 68*4882a593Smuzhiyun following configuration registers: 69*4882a593Smuzhiyun - BMI configuration registers. 70*4882a593Smuzhiyun - QMI configuration registers. 71*4882a593Smuzhiyun - DMA configuration registers. 72*4882a593Smuzhiyun - FPM configuration registers. 73*4882a593Smuzhiyun - FMan controller configuration registers. 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun- ranges 76*4882a593Smuzhiyun Usage: required 77*4882a593Smuzhiyun Value type: <prop-encoded-array> 78*4882a593Smuzhiyun Definition: A standard property. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun- clocks 81*4882a593Smuzhiyun Usage: required 82*4882a593Smuzhiyun Value type: <prop-encoded-array> 83*4882a593Smuzhiyun Definition: phandle for the fman input clock. 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun- clock-names 86*4882a593Smuzhiyun usage: required 87*4882a593Smuzhiyun Value type: <stringlist> 88*4882a593Smuzhiyun Definition: "fmanclk" for the fman input clock. 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun- interrupts 91*4882a593Smuzhiyun Usage: required 92*4882a593Smuzhiyun Value type: <prop-encoded-array> 93*4882a593Smuzhiyun Definition: A pair of IRQs are specified in this property. 94*4882a593Smuzhiyun The first element is associated with the event interrupts and 95*4882a593Smuzhiyun the second element is associated with the error interrupts. 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun- fsl,qman-channel-range 98*4882a593Smuzhiyun Usage: required 99*4882a593Smuzhiyun Value type: <prop-encoded-array> 100*4882a593Smuzhiyun Definition: Specifies the range of the available dedicated 101*4882a593Smuzhiyun channels in the FMan. The first cell specifies the beginning 102*4882a593Smuzhiyun of the range and the second cell specifies the number of 103*4882a593Smuzhiyun channels. 104*4882a593Smuzhiyun Further information available at: 105*4882a593Smuzhiyun "Work Queue (WQ) Channel Assignments in the QMan" section 106*4882a593Smuzhiyun in DPAA Reference Manual. 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun- fsl,qman 109*4882a593Smuzhiyun- fsl,bman 110*4882a593Smuzhiyun Usage: required 111*4882a593Smuzhiyun Definition: See soc/fsl/qman.txt and soc/fsl/bman.txt 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun- fsl,erratum-a050385 114*4882a593Smuzhiyun Usage: optional 115*4882a593Smuzhiyun Value type: boolean 116*4882a593Smuzhiyun Definition: A boolean property. Indicates the presence of the 117*4882a593Smuzhiyun erratum A050385 which indicates that DMA transactions that are 118*4882a593Smuzhiyun split can result in a FMan lock. 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun============================================================================= 121*4882a593SmuzhiyunFMan MURAM Node 122*4882a593Smuzhiyun 123*4882a593SmuzhiyunDESCRIPTION 124*4882a593Smuzhiyun 125*4882a593SmuzhiyunFMan Internal memory - shared between all the FMan modules. 126*4882a593SmuzhiyunIt contains data structures that are common and written to or read by 127*4882a593Smuzhiyunthe modules. 128*4882a593SmuzhiyunFMan internal memory is split into the following parts: 129*4882a593Smuzhiyun Packet buffering (Tx/Rx FIFOs) 130*4882a593Smuzhiyun Frames internal context 131*4882a593Smuzhiyun 132*4882a593SmuzhiyunPROPERTIES 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun- compatible 135*4882a593Smuzhiyun Usage: required 136*4882a593Smuzhiyun Value type: <stringlist> 137*4882a593Smuzhiyun Definition: Must include "fsl,fman-muram" 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun- ranges 140*4882a593Smuzhiyun Usage: required 141*4882a593Smuzhiyun Value type: <prop-encoded-array> 142*4882a593Smuzhiyun Definition: A standard property. 143*4882a593Smuzhiyun Specifies the multi-user memory offset and the size within 144*4882a593Smuzhiyun the FMan. 145*4882a593Smuzhiyun 146*4882a593SmuzhiyunEXAMPLE 147*4882a593Smuzhiyun 148*4882a593Smuzhiyunmuram@0 { 149*4882a593Smuzhiyun compatible = "fsl,fman-muram"; 150*4882a593Smuzhiyun ranges = <0 0x000000 0x28000>; 151*4882a593Smuzhiyun}; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun============================================================================= 154*4882a593SmuzhiyunFMan Port Node 155*4882a593Smuzhiyun 156*4882a593SmuzhiyunDESCRIPTION 157*4882a593Smuzhiyun 158*4882a593SmuzhiyunThe Frame Manager (FMan) supports several types of hardware ports: 159*4882a593Smuzhiyun Ethernet receiver (RX) 160*4882a593Smuzhiyun Ethernet transmitter (TX) 161*4882a593Smuzhiyun Offline/Host command (O/H) 162*4882a593Smuzhiyun 163*4882a593SmuzhiyunPROPERTIES 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun- compatible 166*4882a593Smuzhiyun Usage: required 167*4882a593Smuzhiyun Value type: <stringlist> 168*4882a593Smuzhiyun Definition: A standard property. 169*4882a593Smuzhiyun Must include one of the following: 170*4882a593Smuzhiyun - "fsl,fman-v2-port-oh" for FManV2 OH ports 171*4882a593Smuzhiyun - "fsl,fman-v2-port-rx" for FManV2 RX ports 172*4882a593Smuzhiyun - "fsl,fman-v2-port-tx" for FManV2 TX ports 173*4882a593Smuzhiyun - "fsl,fman-v3-port-oh" for FManV3 OH ports 174*4882a593Smuzhiyun - "fsl,fman-v3-port-rx" for FManV3 RX ports 175*4882a593Smuzhiyun - "fsl,fman-v3-port-tx" for FManV3 TX ports 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun- cell-index 178*4882a593Smuzhiyun Usage: required 179*4882a593Smuzhiyun Value type: <u32> 180*4882a593Smuzhiyun Definition: Specifies the hardware port id. 181*4882a593Smuzhiyun Each hardware port on the FMan has its own hardware PortID. 182*4882a593Smuzhiyun Super set of all hardware Port IDs available at FMan Reference 183*4882a593Smuzhiyun Manual under "FMan Hardware Ports in Freescale Devices" table. 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun Each hardware port is assigned a 4KB, port-specific page in 186*4882a593Smuzhiyun the FMan hardware port memory region (which is part of the 187*4882a593Smuzhiyun FMan memory map). The first 4 KB in the FMan hardware ports 188*4882a593Smuzhiyun memory region is used for what are called common registers. 189*4882a593Smuzhiyun The subsequent 63 4KB pages are allocated to the hardware 190*4882a593Smuzhiyun ports. 191*4882a593Smuzhiyun The page of a specific port is determined by the cell-index. 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun- reg 194*4882a593Smuzhiyun Usage: required 195*4882a593Smuzhiyun Value type: <prop-encoded-array> 196*4882a593Smuzhiyun Definition: There is one reg region describing the port 197*4882a593Smuzhiyun configuration registers. 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun- fsl,fman-10g-port 200*4882a593Smuzhiyun Usage: optional 201*4882a593Smuzhiyun Value type: boolean 202*4882a593Smuzhiyun Definition: The default port rate is 1G. 203*4882a593Smuzhiyun If this property exists, the port is s 10G port. 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun- fsl,fman-best-effort-port 206*4882a593Smuzhiyun Usage: optional 207*4882a593Smuzhiyun Value type: boolean 208*4882a593Smuzhiyun Definition: Can be defined only if 10G-support is set. 209*4882a593Smuzhiyun This property marks a best-effort 10G port (10G port that 210*4882a593Smuzhiyun may not be capable of line rate). 211*4882a593Smuzhiyun 212*4882a593SmuzhiyunEXAMPLE 213*4882a593Smuzhiyun 214*4882a593Smuzhiyunport@a8000 { 215*4882a593Smuzhiyun cell-index = <0x28>; 216*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-tx"; 217*4882a593Smuzhiyun reg = <0xa8000 0x1000>; 218*4882a593Smuzhiyun}; 219*4882a593Smuzhiyun 220*4882a593Smuzhiyunport@88000 { 221*4882a593Smuzhiyun cell-index = <0x8>; 222*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-rx"; 223*4882a593Smuzhiyun reg = <0x88000 0x1000>; 224*4882a593Smuzhiyun}; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyunport@81000 { 227*4882a593Smuzhiyun cell-index = <0x1>; 228*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-oh"; 229*4882a593Smuzhiyun reg = <0x81000 0x1000>; 230*4882a593Smuzhiyun}; 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun============================================================================= 233*4882a593SmuzhiyunFMan dTSEC/XGEC/mEMAC Node 234*4882a593Smuzhiyun 235*4882a593SmuzhiyunDESCRIPTION 236*4882a593Smuzhiyun 237*4882a593SmuzhiyunmEMAC/dTSEC/XGEC are the Ethernet network interfaces 238*4882a593Smuzhiyun 239*4882a593SmuzhiyunPROPERTIES 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun- compatible 242*4882a593Smuzhiyun Usage: required 243*4882a593Smuzhiyun Value type: <stringlist> 244*4882a593Smuzhiyun Definition: A standard property. 245*4882a593Smuzhiyun Must include one of the following: 246*4882a593Smuzhiyun - "fsl,fman-dtsec" for dTSEC MAC 247*4882a593Smuzhiyun - "fsl,fman-xgec" for XGEC MAC 248*4882a593Smuzhiyun - "fsl,fman-memac" for mEMAC MAC 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun- cell-index 251*4882a593Smuzhiyun Usage: required 252*4882a593Smuzhiyun Value type: <u32> 253*4882a593Smuzhiyun Definition: Specifies the MAC id. 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun The cell-index value may be used by the FMan or the SoC, to 256*4882a593Smuzhiyun identify the MAC unit in the FMan (or SoC) memory map. 257*4882a593Smuzhiyun In the tables below there's a description of the cell-index 258*4882a593Smuzhiyun use, there are two tables, one describes the use of cell-index 259*4882a593Smuzhiyun by the FMan, the second describes the use by the SoC: 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun 1. FMan Registers 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun FManV2: 264*4882a593Smuzhiyun register[bit] MAC cell-index 265*4882a593Smuzhiyun ============================================================ 266*4882a593Smuzhiyun FM_EPI[16] XGEC 8 267*4882a593Smuzhiyun FM_EPI[16+n] dTSECn n-1 268*4882a593Smuzhiyun FM_NPI[11+n] dTSECn n-1 269*4882a593Smuzhiyun n = 1,..,5 270*4882a593Smuzhiyun 271*4882a593Smuzhiyun FManV3: 272*4882a593Smuzhiyun register[bit] MAC cell-index 273*4882a593Smuzhiyun ============================================================ 274*4882a593Smuzhiyun FM_EPI[16+n] mEMACn n-1 275*4882a593Smuzhiyun FM_EPI[25] mEMAC10 9 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun FM_NPI[11+n] mEMACn n-1 278*4882a593Smuzhiyun FM_NPI[10] mEMAC10 9 279*4882a593Smuzhiyun FM_NPI[11] mEMAC9 8 280*4882a593Smuzhiyun n = 1,..8 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun FM_EPI and FM_NPI are located in the FMan memory map. 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun 2. SoC registers: 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun - P2041, P3041, P4080 P5020, P5040: 287*4882a593Smuzhiyun register[bit] FMan MAC cell 288*4882a593Smuzhiyun Unit index 289*4882a593Smuzhiyun ============================================================ 290*4882a593Smuzhiyun DCFG_DEVDISR2[7] 1 XGEC 8 291*4882a593Smuzhiyun DCFG_DEVDISR2[7+n] 1 dTSECn n-1 292*4882a593Smuzhiyun DCFG_DEVDISR2[15] 2 XGEC 8 293*4882a593Smuzhiyun DCFG_DEVDISR2[15+n] 2 dTSECn n-1 294*4882a593Smuzhiyun n = 1,..5 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun - T1040, T2080, T4240, B4860: 297*4882a593Smuzhiyun register[bit] FMan MAC cell 298*4882a593Smuzhiyun Unit index 299*4882a593Smuzhiyun ============================================================ 300*4882a593Smuzhiyun DCFG_CCSR_DEVDISR2[n-1] 1 mEMACn n-1 301*4882a593Smuzhiyun DCFG_CCSR_DEVDISR2[11+n] 2 mEMACn n-1 302*4882a593Smuzhiyun n = 1,..6,9,10 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun EVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in 305*4882a593Smuzhiyun the specific SoC "Device Configuration/Pin Control" Memory 306*4882a593Smuzhiyun Map. 307*4882a593Smuzhiyun 308*4882a593Smuzhiyun- reg 309*4882a593Smuzhiyun Usage: required 310*4882a593Smuzhiyun Value type: <prop-encoded-array> 311*4882a593Smuzhiyun Definition: A standard property. 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun- fsl,fman-ports 314*4882a593Smuzhiyun Usage: required 315*4882a593Smuzhiyun Value type: <prop-encoded-array> 316*4882a593Smuzhiyun Definition: An array of two phandles - the first references is 317*4882a593Smuzhiyun the FMan RX port and the second is the TX port used by this 318*4882a593Smuzhiyun MAC. 319*4882a593Smuzhiyun 320*4882a593Smuzhiyun- ptp-timer 321*4882a593Smuzhiyun Usage required 322*4882a593Smuzhiyun Value type: <phandle> 323*4882a593Smuzhiyun Definition: A phandle for 1EEE1588 timer. 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun- pcsphy-handle 326*4882a593Smuzhiyun Usage required for "fsl,fman-memac" MACs 327*4882a593Smuzhiyun Value type: <phandle> 328*4882a593Smuzhiyun Definition: A phandle for pcsphy. 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun- tbi-handle 331*4882a593Smuzhiyun Usage required for "fsl,fman-dtsec" MACs 332*4882a593Smuzhiyun Value type: <phandle> 333*4882a593Smuzhiyun Definition: A phandle for tbiphy. 334*4882a593Smuzhiyun 335*4882a593SmuzhiyunEXAMPLE 336*4882a593Smuzhiyun 337*4882a593Smuzhiyunfman1_tx28: port@a8000 { 338*4882a593Smuzhiyun cell-index = <0x28>; 339*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-tx"; 340*4882a593Smuzhiyun reg = <0xa8000 0x1000>; 341*4882a593Smuzhiyun}; 342*4882a593Smuzhiyun 343*4882a593Smuzhiyunfman1_rx8: port@88000 { 344*4882a593Smuzhiyun cell-index = <0x8>; 345*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-rx"; 346*4882a593Smuzhiyun reg = <0x88000 0x1000>; 347*4882a593Smuzhiyun}; 348*4882a593Smuzhiyun 349*4882a593Smuzhiyunptp-timer: ptp_timer@fe000 { 350*4882a593Smuzhiyun compatible = "fsl,fman-ptp-timer"; 351*4882a593Smuzhiyun reg = <0xfe000 0x1000>; 352*4882a593Smuzhiyun}; 353*4882a593Smuzhiyun 354*4882a593Smuzhiyunethernet@e0000 { 355*4882a593Smuzhiyun compatible = "fsl,fman-dtsec"; 356*4882a593Smuzhiyun cell-index = <0>; 357*4882a593Smuzhiyun reg = <0xe0000 0x1000>; 358*4882a593Smuzhiyun fsl,fman-ports = <&fman1_rx8 &fman1_tx28>; 359*4882a593Smuzhiyun ptp-timer = <&ptp-timer>; 360*4882a593Smuzhiyun tbi-handle = <&tbi0>; 361*4882a593Smuzhiyun}; 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun============================================================================ 364*4882a593SmuzhiyunFMan IEEE 1588 Node 365*4882a593Smuzhiyun 366*4882a593SmuzhiyunRefer to Documentation/devicetree/bindings/ptp/ptp-qoriq.txt 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun============================================================================= 369*4882a593SmuzhiyunFMan MDIO Node 370*4882a593Smuzhiyun 371*4882a593SmuzhiyunDESCRIPTION 372*4882a593Smuzhiyun 373*4882a593SmuzhiyunThe MDIO is a bus to which the PHY devices are connected. 374*4882a593Smuzhiyun 375*4882a593SmuzhiyunPROPERTIES 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun- compatible 378*4882a593Smuzhiyun Usage: required 379*4882a593Smuzhiyun Value type: <stringlist> 380*4882a593Smuzhiyun Definition: A standard property. 381*4882a593Smuzhiyun Must include "fsl,fman-mdio" for 1 Gb/s MDIO from FMan v2. 382*4882a593Smuzhiyun Must include "fsl,fman-xmdio" for 10 Gb/s MDIO from FMan v2. 383*4882a593Smuzhiyun Must include "fsl,fman-memac-mdio" for 1/10 Gb/s MDIO from 384*4882a593Smuzhiyun FMan v3. 385*4882a593Smuzhiyun 386*4882a593Smuzhiyun- reg 387*4882a593Smuzhiyun Usage: required 388*4882a593Smuzhiyun Value type: <prop-encoded-array> 389*4882a593Smuzhiyun Definition: A standard property. 390*4882a593Smuzhiyun 391*4882a593Smuzhiyun- bus-frequency 392*4882a593Smuzhiyun Usage: optional 393*4882a593Smuzhiyun Value type: <u32> 394*4882a593Smuzhiyun Definition: Specifies the external MDIO bus clock speed to 395*4882a593Smuzhiyun be used, if different from the standard 2.5 MHz. 396*4882a593Smuzhiyun This may be due to the standard speed being unsupported (e.g. 397*4882a593Smuzhiyun due to a hardware problem), or to advertise that all relevant 398*4882a593Smuzhiyun components in the system support a faster speed. 399*4882a593Smuzhiyun 400*4882a593Smuzhiyun- interrupts 401*4882a593Smuzhiyun Usage: required for external MDIO 402*4882a593Smuzhiyun Value type: <prop-encoded-array> 403*4882a593Smuzhiyun Definition: Event interrupt of external MDIO controller. 404*4882a593Smuzhiyun 405*4882a593Smuzhiyun- fsl,fman-internal-mdio 406*4882a593Smuzhiyun Usage: required for internal MDIO 407*4882a593Smuzhiyun Value type: boolean 408*4882a593Smuzhiyun Definition: Fman has internal MDIO for internal PCS(Physical 409*4882a593Smuzhiyun Coding Sublayer) PHYs and external MDIO for external PHYs. 410*4882a593Smuzhiyun The settings and programming routines for internal/external 411*4882a593Smuzhiyun MDIO are different. Must be included for internal MDIO. 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun- fsl,erratum-a011043 414*4882a593Smuzhiyun Usage: optional 415*4882a593Smuzhiyun Value type: <boolean> 416*4882a593Smuzhiyun Definition: Indicates the presence of the A011043 erratum 417*4882a593Smuzhiyun describing that the MDIO_CFG[MDIO_RD_ER] bit may be falsely 418*4882a593Smuzhiyun set when reading internal PCS registers. MDIO reads to 419*4882a593Smuzhiyun internal PCS registers may result in having the 420*4882a593Smuzhiyun MDIO_CFG[MDIO_RD_ER] bit set, even when there is no error and 421*4882a593Smuzhiyun read data (MDIO_DATA[MDIO_DATA]) is correct. 422*4882a593Smuzhiyun Software may get false read error when reading internal 423*4882a593Smuzhiyun PCS registers through MDIO. As a workaround, all internal 424*4882a593Smuzhiyun MDIO accesses should ignore the MDIO_CFG[MDIO_RD_ER] bit. 425*4882a593Smuzhiyun 426*4882a593SmuzhiyunFor internal PHY device on internal mdio bus, a PHY node should be created. 427*4882a593SmuzhiyunSee the definition of the PHY node in booting-without-of.txt for an 428*4882a593Smuzhiyunexample of how to define a PHY (Internal PHY has no interrupt line). 429*4882a593Smuzhiyun- For "fsl,fman-mdio" compatible internal mdio bus, the PHY is TBI PHY. 430*4882a593Smuzhiyun- For "fsl,fman-memac-mdio" compatible internal mdio bus, the PHY is PCS PHY, 431*4882a593Smuzhiyun PCS PHY addr must be '0'. 432*4882a593Smuzhiyun 433*4882a593SmuzhiyunEXAMPLE 434*4882a593Smuzhiyun 435*4882a593SmuzhiyunExample for FMan v2 external MDIO: 436*4882a593Smuzhiyun 437*4882a593Smuzhiyunmdio@f1000 { 438*4882a593Smuzhiyun compatible = "fsl,fman-xmdio"; 439*4882a593Smuzhiyun reg = <0xf1000 0x1000>; 440*4882a593Smuzhiyun interrupts = <101 2 0 0>; 441*4882a593Smuzhiyun}; 442*4882a593Smuzhiyun 443*4882a593SmuzhiyunExample for FMan v2 internal MDIO: 444*4882a593Smuzhiyun 445*4882a593Smuzhiyunmdio@e3120 { 446*4882a593Smuzhiyun compatible = "fsl,fman-mdio"; 447*4882a593Smuzhiyun reg = <0xe3120 0xee0>; 448*4882a593Smuzhiyun fsl,fman-internal-mdio; 449*4882a593Smuzhiyun 450*4882a593Smuzhiyun tbi1: tbi-phy@8 { 451*4882a593Smuzhiyun reg = <0x8>; 452*4882a593Smuzhiyun device_type = "tbi-phy"; 453*4882a593Smuzhiyun }; 454*4882a593Smuzhiyun}; 455*4882a593Smuzhiyun 456*4882a593SmuzhiyunExample for FMan v3 internal MDIO: 457*4882a593Smuzhiyun 458*4882a593Smuzhiyunmdio@f1000 { 459*4882a593Smuzhiyun compatible = "fsl,fman-memac-mdio"; 460*4882a593Smuzhiyun reg = <0xf1000 0x1000>; 461*4882a593Smuzhiyun fsl,fman-internal-mdio; 462*4882a593Smuzhiyun 463*4882a593Smuzhiyun pcsphy6: ethernet-phy@0 { 464*4882a593Smuzhiyun reg = <0x0>; 465*4882a593Smuzhiyun }; 466*4882a593Smuzhiyun}; 467*4882a593Smuzhiyun 468*4882a593Smuzhiyun============================================================================= 469*4882a593SmuzhiyunExample 470*4882a593Smuzhiyun 471*4882a593Smuzhiyunfman@400000 { 472*4882a593Smuzhiyun #address-cells = <1>; 473*4882a593Smuzhiyun #size-cells = <1>; 474*4882a593Smuzhiyun cell-index = <1>; 475*4882a593Smuzhiyun compatible = "fsl,fman" 476*4882a593Smuzhiyun ranges = <0 0x400000 0x100000>; 477*4882a593Smuzhiyun reg = <0x400000 0x100000>; 478*4882a593Smuzhiyun clocks = <&fman_clk>; 479*4882a593Smuzhiyun clock-names = "fmanclk"; 480*4882a593Smuzhiyun interrupts = < 481*4882a593Smuzhiyun 96 2 0 0 482*4882a593Smuzhiyun 16 2 1 1>; 483*4882a593Smuzhiyun fsl,qman-channel-range = <0x40 0xc>; 484*4882a593Smuzhiyun 485*4882a593Smuzhiyun muram@0 { 486*4882a593Smuzhiyun compatible = "fsl,fman-muram"; 487*4882a593Smuzhiyun reg = <0x0 0x28000>; 488*4882a593Smuzhiyun }; 489*4882a593Smuzhiyun 490*4882a593Smuzhiyun port@81000 { 491*4882a593Smuzhiyun cell-index = <1>; 492*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-oh"; 493*4882a593Smuzhiyun reg = <0x81000 0x1000>; 494*4882a593Smuzhiyun }; 495*4882a593Smuzhiyun 496*4882a593Smuzhiyun port@82000 { 497*4882a593Smuzhiyun cell-index = <2>; 498*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-oh"; 499*4882a593Smuzhiyun reg = <0x82000 0x1000>; 500*4882a593Smuzhiyun }; 501*4882a593Smuzhiyun 502*4882a593Smuzhiyun port@83000 { 503*4882a593Smuzhiyun cell-index = <3>; 504*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-oh"; 505*4882a593Smuzhiyun reg = <0x83000 0x1000>; 506*4882a593Smuzhiyun }; 507*4882a593Smuzhiyun 508*4882a593Smuzhiyun port@84000 { 509*4882a593Smuzhiyun cell-index = <4>; 510*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-oh"; 511*4882a593Smuzhiyun reg = <0x84000 0x1000>; 512*4882a593Smuzhiyun }; 513*4882a593Smuzhiyun 514*4882a593Smuzhiyun port@85000 { 515*4882a593Smuzhiyun cell-index = <5>; 516*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-oh"; 517*4882a593Smuzhiyun reg = <0x85000 0x1000>; 518*4882a593Smuzhiyun }; 519*4882a593Smuzhiyun 520*4882a593Smuzhiyun port@86000 { 521*4882a593Smuzhiyun cell-index = <6>; 522*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-oh"; 523*4882a593Smuzhiyun reg = <0x86000 0x1000>; 524*4882a593Smuzhiyun }; 525*4882a593Smuzhiyun 526*4882a593Smuzhiyun fman1_rx_0x8: port@88000 { 527*4882a593Smuzhiyun cell-index = <0x8>; 528*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-rx"; 529*4882a593Smuzhiyun reg = <0x88000 0x1000>; 530*4882a593Smuzhiyun }; 531*4882a593Smuzhiyun 532*4882a593Smuzhiyun fman1_rx_0x9: port@89000 { 533*4882a593Smuzhiyun cell-index = <0x9>; 534*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-rx"; 535*4882a593Smuzhiyun reg = <0x89000 0x1000>; 536*4882a593Smuzhiyun }; 537*4882a593Smuzhiyun 538*4882a593Smuzhiyun fman1_rx_0xa: port@8a000 { 539*4882a593Smuzhiyun cell-index = <0xa>; 540*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-rx"; 541*4882a593Smuzhiyun reg = <0x8a000 0x1000>; 542*4882a593Smuzhiyun }; 543*4882a593Smuzhiyun 544*4882a593Smuzhiyun fman1_rx_0xb: port@8b000 { 545*4882a593Smuzhiyun cell-index = <0xb>; 546*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-rx"; 547*4882a593Smuzhiyun reg = <0x8b000 0x1000>; 548*4882a593Smuzhiyun }; 549*4882a593Smuzhiyun 550*4882a593Smuzhiyun fman1_rx_0xc: port@8c000 { 551*4882a593Smuzhiyun cell-index = <0xc>; 552*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-rx"; 553*4882a593Smuzhiyun reg = <0x8c000 0x1000>; 554*4882a593Smuzhiyun }; 555*4882a593Smuzhiyun 556*4882a593Smuzhiyun fman1_rx_0x10: port@90000 { 557*4882a593Smuzhiyun cell-index = <0x10>; 558*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-rx"; 559*4882a593Smuzhiyun reg = <0x90000 0x1000>; 560*4882a593Smuzhiyun }; 561*4882a593Smuzhiyun 562*4882a593Smuzhiyun fman1_tx_0x28: port@a8000 { 563*4882a593Smuzhiyun cell-index = <0x28>; 564*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-tx"; 565*4882a593Smuzhiyun reg = <0xa8000 0x1000>; 566*4882a593Smuzhiyun }; 567*4882a593Smuzhiyun 568*4882a593Smuzhiyun fman1_tx_0x29: port@a9000 { 569*4882a593Smuzhiyun cell-index = <0x29>; 570*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-tx"; 571*4882a593Smuzhiyun reg = <0xa9000 0x1000>; 572*4882a593Smuzhiyun }; 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun fman1_tx_0x2a: port@aa000 { 575*4882a593Smuzhiyun cell-index = <0x2a>; 576*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-tx"; 577*4882a593Smuzhiyun reg = <0xaa000 0x1000>; 578*4882a593Smuzhiyun }; 579*4882a593Smuzhiyun 580*4882a593Smuzhiyun fman1_tx_0x2b: port@ab000 { 581*4882a593Smuzhiyun cell-index = <0x2b>; 582*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-tx"; 583*4882a593Smuzhiyun reg = <0xab000 0x1000>; 584*4882a593Smuzhiyun }; 585*4882a593Smuzhiyun 586*4882a593Smuzhiyun fman1_tx_0x2c: port@ac0000 { 587*4882a593Smuzhiyun cell-index = <0x2c>; 588*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-tx"; 589*4882a593Smuzhiyun reg = <0xac000 0x1000>; 590*4882a593Smuzhiyun }; 591*4882a593Smuzhiyun 592*4882a593Smuzhiyun fman1_tx_0x30: port@b0000 { 593*4882a593Smuzhiyun cell-index = <0x30>; 594*4882a593Smuzhiyun compatible = "fsl,fman-v2-port-tx"; 595*4882a593Smuzhiyun reg = <0xb0000 0x1000>; 596*4882a593Smuzhiyun }; 597*4882a593Smuzhiyun 598*4882a593Smuzhiyun ethernet@e0000 { 599*4882a593Smuzhiyun compatible = "fsl,fman-dtsec"; 600*4882a593Smuzhiyun cell-index = <0>; 601*4882a593Smuzhiyun reg = <0xe0000 0x1000>; 602*4882a593Smuzhiyun fsl,fman-ports = <&fman1_rx_0x8 &fman1_tx_0x28>; 603*4882a593Smuzhiyun tbi-handle = <&tbi5>; 604*4882a593Smuzhiyun }; 605*4882a593Smuzhiyun 606*4882a593Smuzhiyun ethernet@e2000 { 607*4882a593Smuzhiyun compatible = "fsl,fman-dtsec"; 608*4882a593Smuzhiyun cell-index = <1>; 609*4882a593Smuzhiyun reg = <0xe2000 0x1000>; 610*4882a593Smuzhiyun fsl,fman-ports = <&fman1_rx_0x9 &fman1_tx_0x29>; 611*4882a593Smuzhiyun tbi-handle = <&tbi6>; 612*4882a593Smuzhiyun }; 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun ethernet@e4000 { 615*4882a593Smuzhiyun compatible = "fsl,fman-dtsec"; 616*4882a593Smuzhiyun cell-index = <2>; 617*4882a593Smuzhiyun reg = <0xe4000 0x1000>; 618*4882a593Smuzhiyun fsl,fman-ports = <&fman1_rx_0xa &fman1_tx_0x2a>; 619*4882a593Smuzhiyun tbi-handle = <&tbi7>; 620*4882a593Smuzhiyun }; 621*4882a593Smuzhiyun 622*4882a593Smuzhiyun ethernet@e6000 { 623*4882a593Smuzhiyun compatible = "fsl,fman-dtsec"; 624*4882a593Smuzhiyun cell-index = <3>; 625*4882a593Smuzhiyun reg = <0xe6000 0x1000>; 626*4882a593Smuzhiyun fsl,fman-ports = <&fman1_rx_0xb &fman1_tx_0x2b>; 627*4882a593Smuzhiyun tbi-handle = <&tbi8>; 628*4882a593Smuzhiyun }; 629*4882a593Smuzhiyun 630*4882a593Smuzhiyun ethernet@e8000 { 631*4882a593Smuzhiyun compatible = "fsl,fman-dtsec"; 632*4882a593Smuzhiyun cell-index = <4>; 633*4882a593Smuzhiyun reg = <0xf0000 0x1000>; 634*4882a593Smuzhiyun fsl,fman-ports = <&fman1_rx_0xc &fman1_tx_0x2c>; 635*4882a593Smuzhiyun tbi-handle = <&tbi9>; 636*4882a593Smuzhiyun 637*4882a593Smuzhiyun ethernet@f0000 { 638*4882a593Smuzhiyun cell-index = <8>; 639*4882a593Smuzhiyun compatible = "fsl,fman-xgec"; 640*4882a593Smuzhiyun reg = <0xf0000 0x1000>; 641*4882a593Smuzhiyun fsl,fman-ports = <&fman1_rx_0x10 &fman1_tx_0x30>; 642*4882a593Smuzhiyun }; 643*4882a593Smuzhiyun 644*4882a593Smuzhiyun ptp-timer@fe000 { 645*4882a593Smuzhiyun compatible = "fsl,fman-ptp-timer"; 646*4882a593Smuzhiyun reg = <0xfe000 0x1000>; 647*4882a593Smuzhiyun }; 648*4882a593Smuzhiyun 649*4882a593Smuzhiyun mdio@f1000 { 650*4882a593Smuzhiyun compatible = "fsl,fman-xmdio"; 651*4882a593Smuzhiyun reg = <0xf1000 0x1000>; 652*4882a593Smuzhiyun interrupts = <101 2 0 0>; 653*4882a593Smuzhiyun }; 654*4882a593Smuzhiyun}; 655