Commit b8af7795 authored by xingtong.wu's avatar xingtong.wu Committed by Hans de Goede

platform/x86/siemens: simatic-ipc: add new models BX-56A/BX-59A

This adds support for the Siemens Simatic IPC models BX-56A/BX-59A,
led/watchdog/battery on these models are same, actual drivers for
models will be sent in separate patches.
Signed-off-by: default avatarxingtong.wu <xingtong.wu@siemens.com>
Link: https://lore.kernel.org/r/20230731071424.4663-2-xingtong_wu@163.comReviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 1598e3f6
...@@ -78,6 +78,12 @@ static struct { ...@@ -78,6 +78,12 @@ static struct {
{SIMATIC_IPC_IPCBX_21A, {SIMATIC_IPC_IPCBX_21A,
SIMATIC_IPC_DEVICE_BX_21A, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_21A, SIMATIC_IPC_DEVICE_BX_21A, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_21A,
{ "emc1403", NULL }}, { "emc1403", NULL }},
{SIMATIC_IPC_IPCBX_56A,
SIMATIC_IPC_DEVICE_BX_59A, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_59A,
{ "emc1403", "w83627hf_wdt" }},
{SIMATIC_IPC_IPCBX_59A,
SIMATIC_IPC_DEVICE_BX_59A, SIMATIC_IPC_DEVICE_NONE, SIMATIC_IPC_DEVICE_BX_59A,
{ "emc1403", "w83627hf_wdt" }},
}; };
static int register_platform_devices(u32 station_id) static int register_platform_devices(u32 station_id)
...@@ -103,7 +109,9 @@ static int register_platform_devices(u32 station_id) ...@@ -103,7 +109,9 @@ static int register_platform_devices(u32 station_id)
pdevname = KBUILD_MODNAME "_batt_apollolake"; pdevname = KBUILD_MODNAME "_batt_apollolake";
if (battmode == SIMATIC_IPC_DEVICE_BX_21A) if (battmode == SIMATIC_IPC_DEVICE_BX_21A)
pdevname = KBUILD_MODNAME "_batt_elkhartlake"; pdevname = KBUILD_MODNAME "_batt_elkhartlake";
if (battmode == SIMATIC_IPC_DEVICE_227G || battmode == SIMATIC_IPC_DEVICE_BX_39A) if (battmode == SIMATIC_IPC_DEVICE_227G ||
battmode == SIMATIC_IPC_DEVICE_BX_39A ||
battmode == SIMATIC_IPC_DEVICE_BX_59A)
pdevname = KBUILD_MODNAME "_batt_f7188x"; pdevname = KBUILD_MODNAME "_batt_f7188x";
platform_data.devmode = battmode; platform_data.devmode = battmode;
ipc_batt_platform_device = ipc_batt_platform_device =
...@@ -121,7 +129,7 @@ static int register_platform_devices(u32 station_id) ...@@ -121,7 +129,7 @@ static int register_platform_devices(u32 station_id)
pdevname = KBUILD_MODNAME "_leds"; pdevname = KBUILD_MODNAME "_leds";
if (ledmode == SIMATIC_IPC_DEVICE_127E) if (ledmode == SIMATIC_IPC_DEVICE_127E)
pdevname = KBUILD_MODNAME "_leds_gpio_apollolake"; pdevname = KBUILD_MODNAME "_leds_gpio_apollolake";
if (ledmode == SIMATIC_IPC_DEVICE_227G) if (ledmode == SIMATIC_IPC_DEVICE_227G || SIMATIC_IPC_DEVICE_BX_59A)
pdevname = KBUILD_MODNAME "_leds_gpio_f7188x"; pdevname = KBUILD_MODNAME "_leds_gpio_f7188x";
if (ledmode == SIMATIC_IPC_DEVICE_BX_21A) if (ledmode == SIMATIC_IPC_DEVICE_BX_21A)
pdevname = KBUILD_MODNAME "_leds_gpio_elkhartlake"; pdevname = KBUILD_MODNAME "_leds_gpio_elkhartlake";
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#define SIMATIC_IPC_DEVICE_227G 5 #define SIMATIC_IPC_DEVICE_227G 5
#define SIMATIC_IPC_DEVICE_BX_21A 6 #define SIMATIC_IPC_DEVICE_BX_21A 6
#define SIMATIC_IPC_DEVICE_BX_39A 7 #define SIMATIC_IPC_DEVICE_BX_39A 7
#define SIMATIC_IPC_DEVICE_BX_59A 8
struct simatic_ipc_platform { struct simatic_ipc_platform {
u8 devmode; u8 devmode;
......
...@@ -36,6 +36,8 @@ enum simatic_ipc_station_ids { ...@@ -36,6 +36,8 @@ enum simatic_ipc_station_ids {
SIMATIC_IPC_IPCBX_39A = 0x00001001, SIMATIC_IPC_IPCBX_39A = 0x00001001,
SIMATIC_IPC_IPCPX_39A = 0x00001002, SIMATIC_IPC_IPCPX_39A = 0x00001002,
SIMATIC_IPC_IPCBX_21A = 0x00001101, SIMATIC_IPC_IPCBX_21A = 0x00001101,
SIMATIC_IPC_IPCBX_56A = 0x00001201,
SIMATIC_IPC_IPCBX_59A = 0x00001202,
}; };
static inline u32 simatic_ipc_get_station_id(u8 *data, int max_len) static inline u32 simatic_ipc_get_station_id(u8 *data, int max_len)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment