diff options
author | Til Kaiser <mail@tk154.de> | 2024-04-28 15:30:54 +0200 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2024-05-25 20:36:32 +0200 |
commit | 0a861a0c0f1aaafc05dc1e1ce22bce7231bcc1a7 (patch) | |
tree | fe177228fc91ec66a8117b4910d7cb53a7fd7899 /package | |
parent | 0e56bd3eb591d6b2a3c96c7f913ea5651db7798e (diff) | |
download | openwrt-0a861a0c0f1aaafc05dc1e1ce22bce7231bcc1a7.tar.gz openwrt-0a861a0c0f1aaafc05dc1e1ce22bce7231bcc1a7.tar.bz2 openwrt-0a861a0c0f1aaafc05dc1e1ce22bce7231bcc1a7.zip |
kernel/modules/other/mlxreg: add new package
This commit adds a new mlxreg package, which allows access
to Mellanox programmable device register space through sysfs
interface for thermal control and hardware management.
It also adds required Mellanox I²C drivers and packages
for the "special" MSN4800 series and SN2201 platform.
Signed-off-by: Til Kaiser <mail@tk154.de>
Diffstat (limited to 'package')
-rw-r--r-- | package/kernel/linux/modules/i2c.mk | 36 | ||||
-rw-r--r-- | package/kernel/linux/modules/other.mk | 64 |
2 files changed, 100 insertions, 0 deletions
diff --git a/package/kernel/linux/modules/i2c.mk b/package/kernel/linux/modules/i2c.mk index 7cd69dbb95..3aaf560ea9 100644 --- a/package/kernel/linux/modules/i2c.mk +++ b/package/kernel/linux/modules/i2c.mk @@ -169,6 +169,24 @@ endef $(eval $(call KernelPackage,i2c-i801)) +I2C_MLXCPLD_MODULES:= \ + CONFIG_I2C_MLXCPLD:drivers/i2c/busses/i2c-mlxcpld + +define KernelPackage/i2c-mlxcpld + $(call i2c_defaults,$(I2C_MLXCPLD_MODULES),59) + TITLE:=Mellanox I2C driver + DEPENDS:=@TARGET_x86_64 +kmod-regmap-core +endef + +define KernelPackage/i2c-mlxcpld/description + This exposes the Mellanox platform I2C busses + to the linux I2C layer for X86 based systems. + Controller is implemented as CPLD logic. +endef + +$(eval $(call KernelPackage,i2c-mlxcpld)) + + I2C_MUX_MODULES:= \ CONFIG_I2C_MUX:drivers/i2c/i2c-mux @@ -200,6 +218,24 @@ endef $(eval $(call KernelPackage,i2c-mux-gpio)) +I2C_MUX_MLXCPLD_MODULES:= \ + CONFIG_I2C_MUX_MLXCPLD:drivers/i2c/muxes/i2c-mux-mlxcpld + +define KernelPackage/i2c-mux-mlxcpld + $(call i2c_defaults,$(I2C_MUX_MLXCPLD_MODULES),51) + TITLE:=Mellanox CPLD based I2C multiplexer + DEPENDS:=+kmod-i2c-mlxcpld +kmod-i2c-mux +endef + +define KernelPackage/i2c-mux-mlxcpld/description + This driver provides access to + I2C busses connected through a MUX, which is controlled + by a CPLD register. +endef + +$(eval $(call KernelPackage,i2c-mux-mlxcpld)) + + I2C_MUX_REG_MODULES:= \ CONFIG_I2C_MUX_REG:drivers/i2c/muxes/i2c-mux-reg diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk index 916fd08ba0..8f5c729068 100644 --- a/package/kernel/linux/modules/other.mk +++ b/package/kernel/linux/modules/other.mk @@ -266,6 +266,70 @@ endef $(eval $(call KernelPackage,mlx_wdt)) +define KernelPackage/mlxreg + SUBMENU:=$(OTHER_MENU) + TITLE:=Mellanox platform register access + DEPENDS:=@TARGET_x86 +kmod-i2c-mux-mlxcpld + KCONFIG:= \ + CONFIG_MELLANOX_PLATFORM=y \ + CONFIG_MLX_PLATFORM \ + CONFIG_MLXREG_HOTPLUG \ + CONFIG_MLXREG_IO \ + CONFIG_SENSORS_MLXREG_FAN \ + CONFIG_LEDS_MLXREG + FILES:= \ + $(LINUX_DIR)/drivers/platform/x86/mlx-platform.ko \ + $(LINUX_DIR)/drivers/platform/mellanox/mlxreg-hotplug.ko \ + $(LINUX_DIR)/drivers/platform/mellanox/mlxreg-io.ko \ + $(LINUX_DIR)/drivers/hwmon/mlxreg-fan.ko \ + $(LINUX_DIR)/drivers/leds/leds-mlxreg.ko + AUTOLOAD:=$(call AutoProbe,mlx-platform mlxreg-hotplug mlxreg-io mlxreg-fan leds-mlxreg) +endef + +define KernelPackage/mlxreg/description + Allows access to Mellanox programmable device register + space through sysfs interface. The sets of registers for sysfs access + are defined per system type bases and include the registers related + to system resets operation, system reset causes monitoring and some + kinds of mux selection. +endef + +$(eval $(call KernelPackage,mlxreg)) + + +define KernelPackage/mlxreg-lc + SUBMENU:=$(OTHER_MENU) + TITLE:=Mellanox line card platform support + DEPENDS:=kmod-mlxreg +kmod-regmap-i2c + KCONFIG:=CONFIG_MLXREG_LC + FILES:=$(LINUX_DIR)/drivers/platform/mellanox/mlxreg-lc.ko + AUTOLOAD:=$(call AutoProbe,mlxreg-lc) +endef + +define KernelPackage/mlxreg-lc/description + Provides support for the Mellanox MSN4800-XX line cards, + which are the part of MSN4800 Ethernet modular switch systems. +endef + +$(eval $(call KernelPackage,mlxreg-lc)) + + +define KernelPackage/mlxreg-sn2201 + SUBMENU:=$(OTHER_MENU) + TITLE:=Nvidia SN2201 platform support + DEPENDS:=kmod-mlxreg +kmod-regmap-i2c + KCONFIG:=CONFIG_NVSW_SN2201 + FILES:=$(LINUX_DIR)/drivers/platform/mellanox/nvsw-sn2201.ko + AUTOLOAD:=$(call AutoProbe,nvsw-sn2201) +endef + +define KernelPackage/mlxreg-sn2201/description + Provides support for the Nvidia SN2201 platform. +endef + +$(eval $(call KernelPackage,mlxreg-sn2201)) + + define KernelPackage/pinctrl-mcp23s08 SUBMENU:=$(OTHER_MENU) TITLE:=Microchip MCP23xxx I/O expander |