# Ethernet PHY drivers configuration options

# Copyright (c) 2021 IP-Logix Inc.
# SPDX-License-Identifier: Apache-2.0

menuconfig ETH_PHY_DRIVER
	bool "Ethernet PHY drivers"
	default y if NET_L2_ETHERNET || ETH_DRIVER

if ETH_PHY_DRIVER

module = PHY
module-dep = LOG
module-str = Log level for Ethernet PHY driver
module-help = Sets log level for Ethernet PHY Device Drivers.
source "subsys/net/Kconfig.template.log_config.net"
source "drivers/ethernet/phy/Kconfig.tja1103"

config PHY_INIT_PRIORITY
	int "Ethernet PHY driver init priority"
	default 70
	help
	  Ethernet PHY device driver initialization priority.
	  Do not mess with it unless you know what you are doing.
	  Note that the priority needs to be lower than the net stack
	  so that it can start before the networking sub-system.

config PHY_GENERIC_MII
	bool "Generic MII PHY Driver"
	default y if DT_HAS_ETHERNET_PHY_ENABLED
	depends on MDIO
	help
	  This is a generic MII PHY interface that communicates with the
	  PHY using the MDIO bus.

config PHY_ADIN2111
	bool "ADIN2111 PHY driver"
	default y
	depends on DT_HAS_ADI_ADIN2111_PHY_ENABLED || DT_HAS_ADI_ADIN1100_PHY_ENABLED
	help
	  Enable ADIN2111 PHY driver.

config PHY_MICROCHIP_KSZ8081
	bool "Microchip KSZ8081 PHY Driver"
	default y
	depends on DT_HAS_MICROCHIP_KSZ8081_ENABLED
	depends on MDIO
	depends on GPIO
	help
	  Enable Microchip KSZ8081 Ethernet PHY Driver

config PHY_REALTEK_RTL8211F
	bool "Realtek RTL8211F PHY Driver"
	default y
	depends on DT_HAS_REALTEK_RTL8211F_ENABLED
	depends on MDIO
	depends on GPIO || (!$(dt_compat_any_has_prop,$(DT_COMPAT_REALTEK_RTL8211F),reset-gpios) && \
			    !$(dt_compat_any_has_prop,$(DT_COMPAT_REALTEK_RTL8211F),int-gpios))
	help
	  Enable Realtek RTL8211F Ethernet PHY Driver

config PHY_AUTONEG_TIMEOUT_MS
	int "Auto-negotiation timeout value in milliseconds"
	default 4000
	help
	  Maximum duration of auto-negotiation sequence in milliseconds
	  before the process fails

config PHY_MONITOR_PERIOD
	int "Monitor task execution period"
	default 500
	help
	  Monitor task execution period in milliseconds. The monitor task is
	  periodically executed to detect and report any changes in the
	  PHY link status to the operating system.

endif # "Ethernet PHY Drivers"
