Kconfig 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # MDIO Layer Configuration
  4. #
  5. if PHYLIB
  6. config FWNODE_MDIO
  7. def_tristate (ACPI || OF) || COMPILE_TEST
  8. select FIXED_PHY
  9. help
  10. FWNODE MDIO bus (Ethernet PHY) accessors
  11. config OF_MDIO
  12. def_tristate OF
  13. select FIXED_PHY
  14. help
  15. OpenFirmware MDIO bus (Ethernet PHY) accessors
  16. config ACPI_MDIO
  17. def_tristate ACPI
  18. help
  19. ACPI MDIO bus (Ethernet PHY) accessors
  20. config MDIO_AIROHA
  21. tristate "Airoha AN7583 MDIO bus controller"
  22. depends on ARCH_AIROHA || COMPILE_TEST
  23. help
  24. This module provides a driver for the MDIO busses found in the
  25. Airoha AN7583 SoC's.
  26. config MDIO_SUN4I
  27. tristate "Allwinner sun4i MDIO interface support"
  28. depends on ARCH_SUNXI || COMPILE_TEST
  29. help
  30. This driver supports the MDIO interface found in the network
  31. interface units of the Allwinner SoC that have an EMAC (A10,
  32. A12, A10s, etc.)
  33. config MDIO_XGENE
  34. tristate "APM X-Gene SoC MDIO bus controller"
  35. depends on ARCH_XGENE || COMPILE_TEST
  36. help
  37. This module provides a driver for the MDIO busses found in the
  38. APM X-Gene SoC's.
  39. config MDIO_ASPEED
  40. tristate "ASPEED MDIO bus controller"
  41. depends on ARCH_ASPEED || COMPILE_TEST
  42. depends on OF_MDIO && HAS_IOMEM
  43. help
  44. This module provides a driver for the independent MDIO bus
  45. controllers found in the ASPEED AST2600 SoC. This is a driver for the
  46. third revision of the ASPEED MDIO register interface - the first two
  47. revisions are the "old" and "new" interfaces found in the AST2400 and
  48. AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
  49. continues to drive the embedded MDIO controller for the AST2400 and
  50. AST2500 SoCs, so say N if AST2600 support is not required.
  51. config MDIO_BITBANG
  52. tristate "Bitbanged MDIO buses"
  53. help
  54. This module implements the MDIO bus protocol in software,
  55. for use by low level drivers that export the ability to
  56. drive the relevant pins.
  57. If in doubt, say N.
  58. config MDIO_BCM_IPROC
  59. tristate "Broadcom iProc MDIO bus controller"
  60. depends on ARCH_BCM_IPROC || COMPILE_TEST
  61. depends on HAS_IOMEM && OF_MDIO
  62. default ARCH_BCM_IPROC
  63. help
  64. This module provides a driver for the MDIO busses found in the
  65. Broadcom iProc SoC's.
  66. config MDIO_BCM_UNIMAC
  67. tristate "Broadcom UniMAC MDIO bus controller"
  68. depends on HAS_IOMEM
  69. help
  70. This module provides a driver for the Broadcom UniMAC MDIO busses.
  71. This hardware can be found in the Broadcom GENET Ethernet MAC
  72. controllers as well as some Broadcom Ethernet switches such as the
  73. Starfighter 2 switches.
  74. config MDIO_CAVIUM
  75. tristate
  76. config MDIO_GPIO
  77. tristate "GPIO lib-based bitbanged MDIO buses"
  78. depends on MDIO_BITBANG
  79. depends on GPIOLIB || COMPILE_TEST
  80. help
  81. Supports GPIO lib-based MDIO busses.
  82. To compile this driver as a module, choose M here: the module
  83. will be called mdio-gpio.
  84. config MDIO_HISI_FEMAC
  85. tristate "Hisilicon FEMAC MDIO bus controller"
  86. depends on HAS_IOMEM && OF_MDIO
  87. help
  88. This module provides a driver for the MDIO busses found in the
  89. Hisilicon SoC that have an Fast Ethernet MAC.
  90. config MDIO_I2C
  91. tristate
  92. depends on I2C
  93. help
  94. Support I2C based PHYs. This provides a MDIO bus bridged
  95. to I2C to allow PHYs connected in I2C mode to be accessed
  96. using the existing infrastructure.
  97. This is library mode.
  98. config MDIO_MVUSB
  99. tristate "Marvell USB to MDIO Adapter"
  100. depends on USB
  101. help
  102. A USB to MDIO converter present on development boards for
  103. Marvell's Link Street family of Ethernet switches.
  104. config MDIO_MSCC_MIIM
  105. tristate "Microsemi MIIM interface support"
  106. depends on HAS_IOMEM && REGMAP_MMIO
  107. help
  108. This driver supports the MIIM (MDIO) interface found in the network
  109. switches of the Microsemi SoCs; it is recommended to switch on
  110. CONFIG_HIGH_RES_TIMERS
  111. config MDIO_MOXART
  112. tristate "MOXA ART MDIO interface support"
  113. depends on ARCH_MOXART || COMPILE_TEST
  114. help
  115. This driver supports the MDIO interface found in the network
  116. interface units of the MOXA ART SoC
  117. config MDIO_OCTEON
  118. tristate "Octeon and some ThunderX SOCs MDIO buses"
  119. depends on (64BIT && OF_MDIO) || COMPILE_TEST
  120. depends on HAS_IOMEM
  121. select MDIO_CAVIUM
  122. help
  123. This module provides a driver for the Octeon and ThunderX MDIO
  124. buses. It is required by the Octeon and ThunderX ethernet device
  125. drivers on some systems.
  126. config MDIO_IPQ4019
  127. tristate "Qualcomm IPQ4019 MDIO interface support"
  128. depends on HAS_IOMEM && OF_MDIO
  129. depends on COMMON_CLK
  130. help
  131. This driver supports the MDIO interface found in Qualcomm
  132. IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
  133. config MDIO_IPQ8064
  134. tristate "Qualcomm IPQ8064 MDIO interface support"
  135. depends on HAS_IOMEM && OF_MDIO
  136. depends on MFD_SYSCON
  137. help
  138. This driver supports the MDIO interface found in the network
  139. interface units of the IPQ8064 SoC
  140. config MDIO_REALTEK_RTL9300
  141. tristate "Realtek RTL9300 MDIO interface support"
  142. depends on MACH_REALTEK_RTL || COMPILE_TEST
  143. help
  144. This driver supports the MDIO interface found in the Realtek
  145. RTL9300 family of Ethernet switches with integrated SoC.
  146. config MDIO_REGMAP
  147. tristate
  148. help
  149. This driver allows using MDIO devices that are not sitting on a
  150. regular MDIO bus, but still exposes the standard 802.3 register
  151. layout. It's regmap-based so that it can be used on integrated,
  152. memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is
  153. created, and its read/write operations are mapped to the underlying
  154. regmap. Users willing to use this driver must explicitly select
  155. REGMAP.
  156. config MDIO_THUNDER
  157. tristate "ThunderX SOCs MDIO buses"
  158. depends on 64BIT
  159. depends on PCI
  160. select MDIO_CAVIUM
  161. help
  162. This driver supports the MDIO interfaces found on Cavium
  163. ThunderX SoCs when the MDIO bus device appears as a PCI
  164. device.
  165. comment "MDIO Multiplexers"
  166. config MDIO_BUS_MUX
  167. tristate
  168. depends on OF_MDIO
  169. help
  170. This module provides a driver framework for MDIO bus
  171. multiplexers which connect one of several child MDIO busses
  172. to a parent bus. Switching between child busses is done by
  173. device specific drivers.
  174. config MDIO_BUS_MUX_MESON_G12A
  175. tristate "Amlogic G12a based MDIO bus multiplexer"
  176. depends on ARCH_MESON || COMPILE_TEST
  177. depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
  178. select MDIO_BUS_MUX
  179. default m if ARCH_MESON
  180. help
  181. This module provides a driver for the MDIO multiplexer/glue of
  182. the amlogic g12a SoC. The multiplexers connects either the external
  183. or the internal MDIO bus to the parent bus.
  184. config MDIO_BUS_MUX_MESON_GXL
  185. tristate "Amlogic GXL based MDIO bus multiplexer"
  186. depends on ARCH_MESON || COMPILE_TEST
  187. depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
  188. select MDIO_BUS_MUX
  189. default m if ARCH_MESON
  190. help
  191. This module provides a driver for the MDIO multiplexer/glue of
  192. the amlogic GXL SoC. The multiplexer connects either the external
  193. or the internal MDIO bus to the parent bus.
  194. config MDIO_BUS_MUX_BCM6368
  195. tristate "Broadcom BCM6368 MDIO bus multiplexers"
  196. depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
  197. select MDIO_BUS_MUX
  198. default BMIPS_GENERIC
  199. help
  200. This module provides a driver for MDIO bus multiplexers found in
  201. BCM6368 based Broadcom SoCs. This multiplexer connects one of several
  202. child MDIO bus to a parent bus. Buses could be internal as well as
  203. external and selection logic lies inside the same multiplexer.
  204. config MDIO_BUS_MUX_BCM_IPROC
  205. tristate "Broadcom iProc based MDIO bus multiplexers"
  206. depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
  207. select MDIO_BUS_MUX
  208. default ARCH_BCM_IPROC
  209. help
  210. This module provides a driver for MDIO bus multiplexers found in
  211. iProc based Broadcom SoCs. This multiplexer connects one of several
  212. child MDIO bus to a parent bus. Buses could be internal as well as
  213. external and selection logic lies inside the same multiplexer.
  214. config MDIO_BUS_MUX_GPIO
  215. tristate "GPIO controlled MDIO bus multiplexers"
  216. depends on OF_GPIO && OF_MDIO
  217. select MDIO_BUS_MUX
  218. help
  219. This module provides a driver for MDIO bus multiplexers that
  220. are controlled via GPIO lines. The multiplexer connects one of
  221. several child MDIO busses to a parent bus. Child bus
  222. selection is under the control of GPIO lines.
  223. config MDIO_BUS_MUX_MULTIPLEXER
  224. tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
  225. depends on OF_MDIO
  226. select MULTIPLEXER
  227. select MDIO_BUS_MUX
  228. help
  229. This module provides a driver for MDIO bus multiplexer
  230. that is controlled via the kernel multiplexer subsystem. The
  231. bus multiplexer connects one of several child MDIO busses to
  232. a parent bus. Child bus selection is under the control of
  233. the kernel multiplexer subsystem.
  234. config MDIO_BUS_MUX_MMIOREG
  235. tristate "MMIO device-controlled MDIO bus multiplexers"
  236. depends on OF_MDIO && HAS_IOMEM
  237. select MDIO_BUS_MUX
  238. help
  239. This module provides a driver for MDIO bus multiplexers that
  240. are controlled via a simple memory-mapped device, like an FPGA.
  241. The multiplexer connects one of several child MDIO busses to a
  242. parent bus. Child bus selection is under the control of one of
  243. the FPGA's registers.
  244. Currently, only 8/16/32 bits registers are supported.
  245. endif