lkml.org 
[lkml]   [2022]   [Aug]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 7/7] platform/x86: simatic-ipc: add new model 427G
    Date
    This adds support for the Siemens Simatic IPC427G. A board which
    basically works like the 227G added in a previous patch. So all there is
    to do is to add the station_id and make it take all the 227G branches.

    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Henning Schild <henning.schild@siemens.com>
    ---
    drivers/platform/x86/simatic-ipc.c | 11 +++++++----
    include/linux/platform_data/x86/simatic-ipc.h | 1 +
    2 files changed, 8 insertions(+), 4 deletions(-)

    diff --git a/drivers/platform/x86/simatic-ipc.c b/drivers/platform/x86/simatic-ipc.c
    index 8dd686d1c9f1..ca76076fc706 100644
    --- a/drivers/platform/x86/simatic-ipc.c
    +++ b/drivers/platform/x86/simatic-ipc.c
    @@ -41,11 +41,12 @@ static struct {
    {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)
    @@ -82,6 +83,11 @@ 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 =
    @@ -96,9 +102,6 @@ static int register_platform_devices(u32 station_id)
    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",
    diff --git a/include/linux/platform_data/x86/simatic-ipc.h b/include/linux/platform_data/x86/simatic-ipc.h
    index 7a2e79f3be0b..632320ec8f08 100644
    --- a/include/linux/platform_data/x86/simatic-ipc.h
    +++ b/include/linux/platform_data/x86/simatic-ipc.h
    @@ -32,6 +32,7 @@ enum simatic_ipc_station_ids {
    SIMATIC_IPC_IPC477E = 0x00000A02,
    SIMATIC_IPC_IPC127E = 0x00000D01,
    SIMATIC_IPC_IPC227G = 0x00000F01,
    + SIMATIC_IPC_IPC427G = 0x00001001,
    };

    static inline u32 simatic_ipc_get_station_id(u8 *data, int max_len)
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-08-25 12:45    [W:3.262 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site