macros.dtsi 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
  2. /dts-v1/;
  3. #define STRINGIZE(s) #s
  4. #define LAN_LABEL(p, s) STRINGIZE(p ## s)
  5. #define SWITCH_PORT_LABEL(n) LAN_LABEL(lan, n)
  6. #define INTERNAL_PHY(n) \
  7. phy##n: ethernet-phy@##n { \
  8. reg = <##n>; \
  9. compatible = "ethernet-phy-ieee802.3-c22"; \
  10. phy-is-integrated; \
  11. };
  12. #define EXTERNAL_PHY(n) \
  13. phy##n: ethernet-phy@##n { \
  14. reg = <##n>; \
  15. compatible = "ethernet-phy-ieee802.3-c22"; \
  16. };
  17. #define EXTERNAL_SFP_PHY(n) \
  18. phy##n: ethernet-phy@##n { \
  19. compatible = "ethernet-phy-ieee802.3-c22"; \
  20. sfp; \
  21. media = "fibre"; \
  22. reg = <##n>; \
  23. };
  24. #define EXTERNAL_SFP_PHY_FULL(n, s) \
  25. phy##n: ethernet-phy@##n { \
  26. compatible = "ethernet-phy-ieee802.3-c22"; \
  27. sfp = <&sfp##s>; \
  28. reg = <##n>; \
  29. };
  30. #define SWITCH_PORT(p, l, m) \
  31. port##p: port@##p { \
  32. reg = <##p>; \
  33. label = SWITCH_PORT_LABEL(l) ; \
  34. phy-handle = <&phy##p>; \
  35. phy-mode = #m ; \
  36. };
  37. #define SWITCH_PORT_SDS(p, l, s, m) \
  38. port##p: port@##p { \
  39. reg = <##p>; \
  40. label = SWITCH_PORT_LABEL(l) ; \
  41. pcs-handle = <&serdes##s>; \
  42. phy-handle = <&phy##p>; \
  43. phy-mode = #m ; \
  44. };
  45. #define SWITCH_SFP_PORT(n, s, m) \
  46. port##n: port@##n { \
  47. reg = <##n>; \
  48. label = SWITCH_PORT_LABEL(s) ; \
  49. phy-handle = <&phy##n>; \
  50. phy-mode = #m ; \
  51. fixed-link { \
  52. speed = <1000>; \
  53. full-duplex; \
  54. }; \
  55. };
  56. // LED Set mode definitions
  57. #define RTL93XX_LED_SET_NONE (0)
  58. #define RTL93XX_LED_SET_10G (1 << 0)
  59. #define RTL93XX_LED_SET_5G (1 << 1)
  60. #define RTL93XX_LED_SET_2P5G (1 << 3)
  61. #define RTL93XX_LED_SET_1G (1 << 5)
  62. #define RTL93XX_LED_SET_100M (1 << 7)
  63. #define RTL93XX_LED_SET_10M (1 << 8)
  64. #define RTL93XX_LED_SET_LINK (1 << 9)
  65. #define RTL93XX_LED_SET_LINK_BLINK (1 << 10)
  66. #define RTL93XX_LED_SET_ACT (1 << 11)
  67. #define RTL93XX_LED_SET_RX (1 << 12)
  68. #define RTL93XX_LED_SET_TX (1 << 13)
  69. #define RTL93XX_LED_SET_COLLISION (1 << 14)
  70. #define RTL93XX_LED_SET_DUPLEX (1 << 15)