summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/platform/x86/simatic-ipc.c42
1 files changed, 19 insertions, 23 deletions
diff --git a/drivers/platform/x86/simatic-ipc.c b/drivers/platform/x86/simatic-ipc.c
index f7d744f5feff..13c857316c7f 100644
--- a/drivers/platform/x86/simatic-ipc.c
+++ b/drivers/platform/x86/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 1
+#define SIMATIC_IPC_MAX_EXTRA_MODULES 2
static struct {
u32 station_id;
@@ -44,40 +44,40 @@ static struct {
} device_modes[] = {
{SIMATIC_IPC_IPC127E,
SIMATIC_IPC_DEVICE_127E, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_127E,
- { "emc1403" }},
+ { "emc1403", NULL }},
{SIMATIC_IPC_IPC227D,
SIMATIC_IPC_DEVICE_227D, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_NONE,
- { "emc1403" }},
+ { "emc1403", NULL }},
{SIMATIC_IPC_IPC227E,
SIMATIC_IPC_DEVICE_427E, SIMATIC_IPC_DEVICE_227E, SIMATIC_IPC_DEVICE_227E,
- { "emc1403" }},
+ { "emc1403", NULL }},
{SIMATIC_IPC_IPC227G,
- SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_227G,
- { "nct6775" }},
+ SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227G,
+ { "nct6775", "w83627hf_wdt" }},
{SIMATIC_IPC_IPC277G,
- SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_227G,
- { "nct6775" }},
+ SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227G,
+ { "nct6775", "w83627hf_wdt" }},
{SIMATIC_IPC_IPC277E,
SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227E, SIMATIC_IPC_DEVICE_227E,
- { "emc1403" }},
+ { "emc1403", NULL }},
{SIMATIC_IPC_IPC427D,
SIMATIC_IPC_DEVICE_427E, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_NONE,
- { "emc1403" }},
+ { "emc1403", NULL }},
{SIMATIC_IPC_IPC427E,
SIMATIC_IPC_DEVICE_427E, SIMATIC_IPC_DEVICE_427E, SIMATIC_IPC_DEVICE_NONE,
- { "emc1403" }},
+ { "emc1403", NULL }},
{SIMATIC_IPC_IPC477E,
SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_427E, SIMATIC_IPC_DEVICE_NONE,
- { "emc1403" }},
+ { "emc1403", NULL }},
{SIMATIC_IPC_IPCBX_39A,
- SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_BX_39A,
- { "nct6775" }},
+ SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_39A,
+ { "nct6775", "w83627hf_wdt" }},
{SIMATIC_IPC_IPCPX_39A,
- SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_BX_39A,
- { "nct6775" }},
+ SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_39A,
+ { "nct6775", "w83627hf_wdt" }},
{SIMATIC_IPC_IPCBX_21A,
SIMATIC_IPC_DEVICE_BX_21A, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_21A,
- { "emc1403" }},
+ { "emc1403", NULL }},
};
static int register_platform_devices(u32 station_id)
@@ -138,11 +138,6 @@ static int register_platform_devices(u32 station_id)
ipc_led_platform_device->name);
}
- if (wdtmode == SIMATIC_IPC_DEVICE_227G) {
- request_module("w83627hf_wdt");
- return 0;
- }
-
if (wdtmode != SIMATIC_IPC_DEVICE_NONE) {
platform_data.devmode = wdtmode;
ipc_wdt_platform_device =
@@ -158,7 +153,8 @@ static int register_platform_devices(u32 station_id)
}
if (ledmode == SIMATIC_IPC_DEVICE_NONE &&
- wdtmode == SIMATIC_IPC_DEVICE_NONE) {
+ wdtmode == SIMATIC_IPC_DEVICE_NONE &&
+ battmode == SIMATIC_IPC_DEVICE_NONE) {
pr_warn("unsupported IPC detected, station id=%08x\n",
station_id);
return -EINVAL;