{SIMATIC_IPC_IPC127E, SIMATIC_IPC_DEVICE_127E, SIMATIC_IPC_DEVICE_NONE},
        {SIMATIC_IPC_IPC227D, SIMATIC_IPC_DEVICE_227D, SIMATIC_IPC_DEVICE_NONE},
        {SIMATIC_IPC_IPC227E, SIMATIC_IPC_DEVICE_427E, SIMATIC_IPC_DEVICE_227E},
-       {SIMATIC_IPC_IPC227G, SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_NONE},
+       {SIMATIC_IPC_IPC227G, SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_227G},
        {SIMATIC_IPC_IPC277E, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_227E},
        {SIMATIC_IPC_IPC427D, SIMATIC_IPC_DEVICE_427E, SIMATIC_IPC_DEVICE_NONE},
        {SIMATIC_IPC_IPC427E, SIMATIC_IPC_DEVICE_427E, SIMATIC_IPC_DEVICE_427E},
        {SIMATIC_IPC_IPC477E, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_427E},
+       {SIMATIC_IPC_IPC427G, SIMATIC_IPC_DEVICE_227G, SIMATIC_IPC_DEVICE_227G},
 };
 
 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 =
                         ipc_wdt_platform_device->name);
        }
 
-       if (station_id == SIMATIC_IPC_IPC227G)
-               request_module("w83627hf_wdt");
-
        if (ledmode == SIMATIC_IPC_DEVICE_NONE &&
            wdtmode == SIMATIC_IPC_DEVICE_NONE) {
                pr_warn("unsupported IPC detected, station id=%08x\n",