[PATCH 2/2] platform/x86/siemens: simatic-ipc: add fan monitoring support for BX-59A

From: Benedikt Niedermayr

Date: Thu Aug 20 2026 - 07:35:18 EST


Some fans on the BX59-A are connected to the ADT7475 fan controller
which is connected to the NCT6126D Super I/O chip's SMBus interface
(supported by the i2c-nct6126 driver).

Other fans on the BX59-A are connected to the NCT6126Ds hwmon interface
which is controlled by the nct6775 driver.

This patch enables the required drivers.

Signed-off-by: Benedikt Niedermayr <benedikt.niedermayr@xxxxxxxxxxx>
---
drivers/platform/x86/siemens/simatic-ipc.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/platform/x86/siemens/simatic-ipc.c b/drivers/platform/x86/siemens/simatic-ipc.c
index 7039874d8f11..132a899c8752 100644
--- a/drivers/platform/x86/siemens/simatic-ipc.c
+++ b/drivers/platform/x86/siemens/simatic-ipc.c
@@ -33,7 +33,7 @@ static const struct dmi_system_id simatic_ipc_whitelist[] = {

static struct simatic_ipc_platform platform_data;

-#define SIMATIC_IPC_MAX_EXTRA_MODULES 2
+#define SIMATIC_IPC_MAX_EXTRA_MODULES 5

static struct {
u32 station_id;
@@ -53,10 +53,10 @@ static struct {
{ "emc1403", NULL }},
{SIMATIC_IPC_IPC227G,
SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227G,
- { "nct6775", "w83627hf_wdt" }},
+ { "nct6775", "w83627hf_wdt", NULL }},
{SIMATIC_IPC_IPC277G,
SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227G,
- { "nct6775", "w83627hf_wdt" }},
+ { "nct6775", "w83627hf_wdt", NULL }},
{SIMATIC_IPC_IPC277E,
SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227E, SIMATIC_IPC_DEVICE_227E,
{ "emc1403", NULL }},
@@ -71,19 +71,19 @@ static struct {
{ "emc1403", NULL }},
{SIMATIC_IPC_IPCBX_39A,
SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_39A,
- { "nct6775", "w83627hf_wdt" }},
+ { "nct6775", "w83627hf_wdt", NULL }},
{SIMATIC_IPC_IPCPX_39A,
SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_39A,
- { "nct6775", "w83627hf_wdt" }},
+ { "nct6775", "w83627hf_wdt", NULL }},
{SIMATIC_IPC_IPCBX_21A,
SIMATIC_IPC_DEVICE_BX_21A, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_21A,
{ "emc1403", NULL }},
{SIMATIC_IPC_IPCBX_56A,
SIMATIC_IPC_DEVICE_BX_59A, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_59A,
- { "emc1403", "w83627hf_wdt" }},
+ { "emc1403", "w83627hf_wdt", NULL }},
{SIMATIC_IPC_IPCBX_59A,
SIMATIC_IPC_DEVICE_BX_59A, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_59A,
- { "emc1403", "w83627hf_wdt" }},
+ { "i2c-nct6126", "nct6775", "adt7475", "emc1403", "w83627hf_wdt" }},
};

static int register_platform_devices(u32 station_id)
--
2.43.0