fsl,fman-mdio.yaml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/net/fsl,fman-mdio.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Freescale Frame Manager MDIO Device
  7. maintainers:
  8. - Frank Li <Frank.Li@nxp.com>
  9. description: FMan MDIO Node.
  10. The MDIO is a bus to which the PHY devices are connected.
  11. properties:
  12. compatible:
  13. enum:
  14. - fsl,fman-mdio
  15. - fsl,fman-xmdio
  16. - fsl,fman-memac-mdio
  17. description:
  18. Must include "fsl,fman-mdio" for 1 Gb/s MDIO from FMan v2.
  19. Must include "fsl,fman-xmdio" for 10 Gb/s MDIO from FMan v2.
  20. Must include "fsl,fman-memac-mdio" for 1/10 Gb/s MDIO from
  21. FMan v3.
  22. reg:
  23. maxItems: 1
  24. clocks:
  25. items:
  26. - description: A reference to the input clock of the controller
  27. from which the MDC frequency is derived.
  28. interrupts:
  29. maxItems: 1
  30. fsl,fman-internal-mdio:
  31. $ref: /schemas/types.yaml#/definitions/flag
  32. description:
  33. Fman has internal MDIO for internal PCS(Physical
  34. Coding Sublayer) PHYs and external MDIO for external PHYs.
  35. The settings and programming routines for internal/external
  36. MDIO are different. Must be included for internal MDIO.
  37. fsl,erratum-a009885:
  38. $ref: /schemas/types.yaml#/definitions/flag
  39. description: Indicates the presence of the A009885
  40. erratum describing that the contents of MDIO_DATA may
  41. become corrupt unless it is read within 16 MDC cycles
  42. of MDIO_CFG[BSY] being cleared, when performing an
  43. MDIO read operation.
  44. fsl,erratum-a011043:
  45. $ref: /schemas/types.yaml#/definitions/flag
  46. description:
  47. Indicates the presence of the A011043 erratum
  48. describing that the MDIO_CFG[MDIO_RD_ER] bit may be falsely
  49. set when reading internal PCS registers. MDIO reads to
  50. internal PCS registers may result in having the
  51. MDIO_CFG[MDIO_RD_ER] bit set, even when there is no error and
  52. read data (MDIO_DATA[MDIO_DATA]) is correct.
  53. Software may get false read error when reading internal
  54. PCS registers through MDIO. As a workaround, all internal
  55. MDIO accesses should ignore the MDIO_CFG[MDIO_RD_ER] bit.
  56. For internal PHY device on internal mdio bus, a PHY node should be created.
  57. See the definition of the PHY node in booting-without-of.txt for an
  58. example of how to define a PHY (Internal PHY has no interrupt line).
  59. - For "fsl,fman-mdio" compatible internal mdio bus, the PHY is TBI PHY.
  60. - For "fsl,fman-memac-mdio" compatible internal mdio bus, the PHY is PCS PHY.
  61. The PCS PHY address should correspond to the value of the appropriate
  62. MDEV_PORT.
  63. little-endian:
  64. $ref: /schemas/types.yaml#/definitions/flag
  65. description:
  66. IP block is little-endian mode. The default endian mode is big-endian.
  67. required:
  68. - compatible
  69. - reg
  70. allOf:
  71. - $ref: mdio.yaml#
  72. unevaluatedProperties: false
  73. examples:
  74. - |
  75. mdio@f1000 {
  76. compatible = "fsl,fman-xmdio";
  77. reg = <0xf1000 0x1000>;
  78. interrupts = <101 2 0 0>;
  79. };
  80. - |
  81. mdio@e3120 {
  82. compatible = "fsl,fman-mdio";
  83. reg = <0xe3120 0xee0>;
  84. fsl,fman-internal-mdio;
  85. #address-cells = <1>;
  86. #size-cells = <0>;
  87. tbi-phy@8 {
  88. reg = <0x8>;
  89. device_type = "tbi-phy";
  90. };
  91. };
  92. - |
  93. mdio@f1000 {
  94. compatible = "fsl,fman-memac-mdio";
  95. reg = <0xf1000 0x1000>;
  96. fsl,fman-internal-mdio;
  97. #address-cells = <1>;
  98. #size-cells = <0>;
  99. pcsphy6: ethernet-phy@0 {
  100. reg = <0x0>;
  101. };
  102. };