Kconfig 9.1 KB

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