Message ID | 20211213120502.20661-1-henning.schild@siemens.com |
---|---|
Headers | show |
Series | add device drivers for Siemens Industrial PCs | expand |
Hi, On 12/13/21 13:04, Henning Schild wrote: > changes since v4: > - make everything around GPIO memory usage more verbose > - commit messages, FIXME in p1, cover-letter > > changes since v3: > > - fix io access width and region reservations > - fix style in p1 > > changes since v2: > > - remove "simatic-ipc" prefix from LED names > - fix style issues found in v2, mainly LED driver > - fix OEM specific dmi code, and remove magic numbers > - more "simatic_ipc" name prefixing > - improved pmc quirk code using callbacks > > changes since v1: > > - fixed lots of style issues found in v1 > - (debug) printing > - header ordering > - fixed license issues GPLv2 and SPDX in all files > - module_platform_driver instead of __init __exit > - wdt simplifications cleanup > - lots of fixes in wdt driver, all that was found in v1 > - fixed dmi length in dmi helper > - changed LED names to allowed ones > - move led driver to simple/ > - switched pmc_atom to dmi callback with global variable > > > This series adds support for watchdogs and leds of several x86 devices > from Siemens. > > It is structured with a platform driver that mainly does identification > of the machines. It might trigger loading of the actual device drivers > by attaching devices to the platform bus. > > The identification is vendor specific, parsing a special binary DMI > entry. The implementation of that platform identification is applied on > pmc_atom clock quirks in the final patch. > > It is all structured in a way that we can easily add more devices and > more platform drivers later. Internally we have some more code for > hardware monitoring, more leds, watchdogs etc. This will follow some > day. > > The LED as well as the watchdog drivers access GPIO memory directly. > Using pinctrl is not possible because the machines lack ACPI entries for > the pinctrl drivers. Updates to the ACPI tables are not expected. So we > can rule out a conflict where two drivers would try and access that GPIO > memory. > So we do not use those pins as "general purpose" but as "Siemens > purpose", after having identified the devices very clearly. > > Henning Schild (4): > platform/x86: simatic-ipc: add main driver for Siemens devices > leds: simatic-ipc-leds: add new driver for Siemens Industial PCs > watchdog: simatic-ipc-wdt: add new driver for Siemens Industrial PCs > platform/x86: pmc_atom: improve critclk_systems matching for Siemens > PCs Thank you for your patch-series, I've applied the series to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > > drivers/leds/Kconfig | 3 + > drivers/leds/Makefile | 3 + > drivers/leds/simple/Kconfig | 11 + > drivers/leds/simple/Makefile | 2 + > drivers/leds/simple/simatic-ipc-leds.c | 202 ++++++++++++++++ > drivers/platform/x86/Kconfig | 12 + > drivers/platform/x86/Makefile | 3 + > drivers/platform/x86/pmc_atom.c | 54 +++-- > drivers/platform/x86/simatic-ipc.c | 176 ++++++++++++++ > drivers/watchdog/Kconfig | 11 + > drivers/watchdog/Makefile | 1 + > drivers/watchdog/simatic-ipc-wdt.c | 228 ++++++++++++++++++ > .../platform_data/x86/simatic-ipc-base.h | 29 +++ > include/linux/platform_data/x86/simatic-ipc.h | 72 ++++++ > 14 files changed, 786 insertions(+), 21 deletions(-) > create mode 100644 drivers/leds/simple/Kconfig > create mode 100644 drivers/leds/simple/Makefile > create mode 100644 drivers/leds/simple/simatic-ipc-leds.c > create mode 100644 drivers/platform/x86/simatic-ipc.c > create mode 100644 drivers/watchdog/simatic-ipc-wdt.c > create mode 100644 include/linux/platform_data/x86/simatic-ipc-base.h > create mode 100644 include/linux/platform_data/x86/simatic-ipc.h >
Am Thu, 23 Dec 2021 18:17:03 +0100 schrieb Hans de Goede <hdegoede@redhat.com>: > Hi, > > On 12/13/21 13:04, Henning Schild wrote: > > changes since v4: > > - make everything around GPIO memory usage more verbose > > - commit messages, FIXME in p1, cover-letter > > > > changes since v3: > > > > - fix io access width and region reservations > > - fix style in p1 > > > > changes since v2: > > > > - remove "simatic-ipc" prefix from LED names > > - fix style issues found in v2, mainly LED driver > > - fix OEM specific dmi code, and remove magic numbers > > - more "simatic_ipc" name prefixing > > - improved pmc quirk code using callbacks > > > > changes since v1: > > > > - fixed lots of style issues found in v1 > > - (debug) printing > > - header ordering > > - fixed license issues GPLv2 and SPDX in all files > > - module_platform_driver instead of __init __exit > > - wdt simplifications cleanup > > - lots of fixes in wdt driver, all that was found in v1 > > - fixed dmi length in dmi helper > > - changed LED names to allowed ones > > - move led driver to simple/ > > - switched pmc_atom to dmi callback with global variable > > > > > > This series adds support for watchdogs and leds of several x86 > > devices from Siemens. > > > > It is structured with a platform driver that mainly does > > identification of the machines. It might trigger loading of the > > actual device drivers by attaching devices to the platform bus. > > > > The identification is vendor specific, parsing a special binary DMI > > entry. The implementation of that platform identification is > > applied on pmc_atom clock quirks in the final patch. > > > > It is all structured in a way that we can easily add more devices > > and more platform drivers later. Internally we have some more code > > for hardware monitoring, more leds, watchdogs etc. This will follow > > some day. > > > > The LED as well as the watchdog drivers access GPIO memory directly. > > Using pinctrl is not possible because the machines lack ACPI > > entries for the pinctrl drivers. Updates to the ACPI tables are not > > expected. So we can rule out a conflict where two drivers would try > > and access that GPIO memory. > > So we do not use those pins as "general purpose" but as "Siemens > > purpose", after having identified the devices very clearly. > > > > Henning Schild (4): > > platform/x86: simatic-ipc: add main driver for Siemens devices > > leds: simatic-ipc-leds: add new driver for Siemens Industial PCs > > watchdog: simatic-ipc-wdt: add new driver for Siemens Industrial > > PCs platform/x86: pmc_atom: improve critclk_systems matching for > > Siemens PCs > > > Thank you for your patch-series, I've applied the series to my > review-hans branch: > https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans > > Note it will show up in my review-hans branch once I've pushed my > local branch there, which might take a while. > > Once I've run some tests on this branch the patches there will be > added to the platform-drivers-x86/for-next branch and eventually > will be included in the pdx86 pull-request to Linus for the next > merge-window. Cool! Thanks all for the reviews and for allowing the drivers in. Stay tuned for more. regards, Henning > Regards, > > Hans > > > > > > drivers/leds/Kconfig | 3 + > > drivers/leds/Makefile | 3 + > > drivers/leds/simple/Kconfig | 11 + > > drivers/leds/simple/Makefile | 2 + > > drivers/leds/simple/simatic-ipc-leds.c | 202 > > ++++++++++++++++ drivers/platform/x86/Kconfig | > > 12 + drivers/platform/x86/Makefile | 3 + > > drivers/platform/x86/pmc_atom.c | 54 +++-- > > drivers/platform/x86/simatic-ipc.c | 176 ++++++++++++++ > > drivers/watchdog/Kconfig | 11 + > > drivers/watchdog/Makefile | 1 + > > drivers/watchdog/simatic-ipc-wdt.c | 228 > > ++++++++++++++++++ .../platform_data/x86/simatic-ipc-base.h | > > 29 +++ include/linux/platform_data/x86/simatic-ipc.h | 72 ++++++ > > 14 files changed, 786 insertions(+), 21 deletions(-) > > create mode 100644 drivers/leds/simple/Kconfig > > create mode 100644 drivers/leds/simple/Makefile > > create mode 100644 drivers/leds/simple/simatic-ipc-leds.c > > create mode 100644 drivers/platform/x86/simatic-ipc.c > > create mode 100644 drivers/watchdog/simatic-ipc-wdt.c > > create mode 100644 > > include/linux/platform_data/x86/simatic-ipc-base.h create mode > > 100644 include/linux/platform_data/x86/simatic-ipc.h >