# SPDX-License-Identifier: GPL-2.0-only
#
# Ethernet Power Sourcing Equipment drivers
#

menuconfig PSE_CONTROLLER
	bool "Ethernet Power Sourcing Equipment Support"
	depends on REGULATOR
	help
	  Generic Power Sourcing Equipment Controller support.

	  If unsure, say no.

if PSE_CONTROLLER

config PSE_REGULATOR
	tristate "Regulator based PSE controller"
	help
	  This module provides support for simple regulator based Ethernet Power
	  Sourcing Equipment without automatic classification support. For
	  example for basic implementation of PoDL (802.3bu) specification.

config PSE_PD692X0
	tristate "PD692X0 PSE controller"
	depends on I2C
	select FW_LOADER
	select FW_UPLOAD
	help
	  This module provides support for PD692x0 regulator based Ethernet
	  Power Sourcing Equipment.

	  To compile this driver as a module, choose M here: the
	  module will be called pd692x0.

config PSE_SI3474
	tristate "Si3474 PSE controller"
	depends on I2C
	help
	  This module provides support for Si3474 regulator based Ethernet
	  Power Sourcing Equipment.
	  Only 4-pair PSE configurations are supported.

	  To compile this driver as a module, choose M here: the
	  module will be called si3474.

config PSE_TPS23881
	tristate "TPS23881 PSE controller"
	depends on I2C
	help
	  This module provides support for TPS23881 regulator based Ethernet
	  Power Sourcing Equipment.

	  To compile this driver as a module, choose M here: the
	  module will be called tps23881.
endif
