packages: add PSE (PoE) packages

There are a number of pse chips already present in upstream Linux.
OpenWrt is starting to support a number of devices can contain various pse
chips.  But having all the pse chip combinations defined at the target
level will result in bloat on images.
Present the current upstream Linux pse drivers as packages so that they
can be selectively included per board (rather than per target).

Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
[Make it depend on REGULATOR_SUPPORT, and !SMALL_FLASH]
Link: https://github.com/openwrt/openwrt/pull/22172
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Bevan Weiss 2026-02-25 19:49:50 +11:00 committed by Robert Marko
parent 17139e35b1
commit 145408a592
2 changed files with 96 additions and 0 deletions

View file

@ -0,0 +1,91 @@
#
# Copyright (C) 2006-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
PSE_MENU:=PSE-PD / PoE support
define KernelPackage/pse-pd
SUBMENU:=$(PSE_MENU)
TITLE:=PSE-PD Support
DEPENDS:=@REGULATOR_SUPPORT @!SMALL_FLASH
KCONFIG:=CONFIG_PSE_CONTROLLER=y
endef
define KernelPackage/pse-pd/description
Kernel module for PSE-PD support.
endef
$(eval $(call KernelPackage,pse-pd))
define AddDepends/pse-pd
SUBMENU:=$(PSE_MENU)
DEPENDS+=kmod-pse-pd $(1)
endef
define KernelPackage/pse-regulator
SUBMENU:=$(PSE_MENU)
TITLE:=Regulator based PSE controller support
KCONFIG:=CONFIG_PSE_REGULATOR
FILES:=$(LINUX_DIR)/drivers/net/pse-pd/pse_regulator.ko
AUTOLOAD:=$(call AutoProbe,pse_regulator)
$(call AddDepends/pse-pd)
endef
define KernelPackage/pse-regulator/description
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.
endef
$(eval $(call KernelPackage,pse-regulator))
define KernelPackage/pse-pd692x0
SUBMENU:=$(PSE_MENU)
TITLE:=PD692X0 PSE controller support
KCONFIG:=CONFIG_PSE_PD692X0
DEPENDS:=+kmod-i2c-core
FILES:=$(LINUX_DIR)/drivers/net/pse-pd/pd692x0.ko
AUTOLOAD:=$(call AutoProbe,pd692x0)
$(call AddDepends/pse-pd)
endef
define KernelPackage/pse-pd692x0/description
Kernel module for PD692X0 PSE controller chips
endef
$(eval $(call KernelPackage,pse-pd692x0))
define KernelPackage/pse-si3474
SUBMENU:=$(PSE_MENU)
TITLE:=Si3474 PSE controller support
KCONFIG:=CONFIG_PSE_SI3474
DEPENDS:=+kmod-i2c-core
FILES:=$(LINUX_DIR)/drivers/net/pse-pd/si3474.ko
AUTOLOAD:=$(call AutoProbe,si3474)
$(call AddDepends/pse-pd)
endef
define KernelPackage/pse-si3474/description
Kernel module for Si3474 PSE controller chips
endef
$(eval $(call KernelPackage,pse-si3474))
define KernelPackage/pse-tps23881
SUBMENU:=$(PSE_MENU)
TITLE:=TPS23881 PSE controller support
KCONFIG:=CONFIG_PSE_TPS23881
DEPENDS:=+kmod-i2c-core
FILES:=$(LINUX_DIR)/drivers/net/pse-pd/tps23881.ko
AUTOLOAD:=$(call AutoProbe,tps23881)
$(call AddDepends/pse-pd)
endef
define KernelPackage/pse-tps23881/description
Kernel module for TPS23881 PSE controller chips
endef
$(eval $(call KernelPackage,pse-tps23881))

View file

@ -2823,6 +2823,7 @@ CONFIG_INPUT_MISC=y
# CONFIG_INTEL_PMC_CORE is not set
# CONFIG_INTEL_PUNIT_IPC is not set
# CONFIG_INTEL_RST is not set
# CONFIG_INTEL_SKL_INT3472 is not set
# CONFIG_INTEL_SMARTCONNECT is not set
# CONFIG_INTEL_SOC_PMIC is not set
# CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set
@ -4911,6 +4912,10 @@ CONFIG_PROC_SYSCTL=y
# CONFIG_PSAMPLE is not set
# CONFIG_PSB6970_PHY is not set
# CONFIG_PSE_CONTROLLER is not set
# CONFIG_PSE_REGULATOR is not set
# CONFIG_PSE_PD692X0 is not set
# CONFIG_PSE_SI3474 is not set
# CONFIG_PSE_TPS23881 is not set
# CONFIG_PSI is not set
# CONFIG_PSI_DEFAULT_DISABLED is not set
# CONFIG_PSTORE is not set