From 145408a5922139309ff606045b59a2dfe0b24287 Mon Sep 17 00:00:00 2001 From: Bevan Weiss Date: Wed, 25 Feb 2026 19:49:50 +1100 Subject: [PATCH] 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 [Make it depend on REGULATOR_SUPPORT, and !SMALL_FLASH] Link: https://github.com/openwrt/openwrt/pull/22172 Signed-off-by: Robert Marko --- package/kernel/linux/modules/pse-pd.mk | 91 ++++++++++++++++++++++++++ target/linux/generic/config-6.12 | 5 ++ 2 files changed, 96 insertions(+) create mode 100644 package/kernel/linux/modules/pse-pd.mk diff --git a/package/kernel/linux/modules/pse-pd.mk b/package/kernel/linux/modules/pse-pd.mk new file mode 100644 index 0000000000..44adb18297 --- /dev/null +++ b/package/kernel/linux/modules/pse-pd.mk @@ -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)) diff --git a/target/linux/generic/config-6.12 b/target/linux/generic/config-6.12 index df78250e54..78da675285 100644 --- a/target/linux/generic/config-6.12 +++ b/target/linux/generic/config-6.12 @@ -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