Re: [PATCH v2] mfd: kempld-core: Add support for additional devices

From: Guenter Roeck
Date: Wed Nov 25 2020 - 21:06:24 EST


On Mon, Nov 23, 2020 at 03:53:27PM +0000, Michael Brunner wrote:
> This update includes DMI IDs for the following Kontron modules and
> systems:
> COMe-bDV7, COMe-cDV7, COMe-m4AL, COMe-mCT10, SMARC-sXAL, SMARC-sXA4,
> Qseven-Q7AL, mITX-APL, pITX-APL and KBox A-203
>
> Furthermore the ACPI HID KEM0000 is added, as it is also reserved for
> kempld devices.
>
> Instead of also adding the newly supported devices to the Kconfig
> description this patch removes the lengthy list. With future usage of
> the ACPI HIDs it will not be necessary to explicitly add support for
> each individual device to the driver and therefore the list would
> become incomplete anyway.
>
> Signed-off-by: Michael Brunner <michael.brunner@xxxxxxxxxxx>

Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>

> ---
>
> v2: Corrected a board name, only use 4 digits for IDs
>
> drivers/mfd/Kconfig | 30 ++--------------
> drivers/mfd/kempld-core.c | 76 +++++++++++++++++++++++++++++++++++++--
> 2 files changed, 77 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index 8b99a13669bf..befd19da8562 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -720,33 +720,9 @@ config MFD_KEMPLD
> select MFD_CORE
> help
> This is the core driver for the PLD (Programmable Logic Device) found
> - on some Kontron ETX and COMexpress (ETXexpress) modules. The PLD
> - device may provide functions like watchdog, GPIO, UART and I2C bus.
> -
> - The following modules are supported:
> - * COMe-bBD#
> - * COMe-bBL6
> - * COMe-bHL6
> - * COMe-bSL6
> - * COMe-bIP#
> - * COMe-bKL6
> - * COMe-bPC2 (ETXexpress-PC)
> - * COMe-bSC# (ETXexpress-SC T#)
> - * COMe-cAL6
> - * COMe-cBL6
> - * COMe-cBT6
> - * COMe-cBW6
> - * COMe-cCT6
> - * COMe-cDC2 (microETXexpress-DC)
> - * COMe-cHL6
> - * COMe-cKL6
> - * COMe-cPC2 (microETXexpress-PC)
> - * COMe-cSL6
> - * COMe-mAL10
> - * COMe-mBT10
> - * COMe-mCT10
> - * COMe-mTT10 (nanoETXexpress-TT)
> - * ETX-OH
> + on some Kontron ETX and nearly all COMexpress (ETXexpress) modules as
> + well as on some other Kontron products. The PLD device may provide
> + functions like watchdog, GPIO, UART and I2C bus.
>
> This driver can also be built as a module. If so, the module
> will be called kempld-core.
> diff --git a/drivers/mfd/kempld-core.c b/drivers/mfd/kempld-core.c
> index ecd26271b9a4..9166075c1f32 100644
> --- a/drivers/mfd/kempld-core.c
> +++ b/drivers/mfd/kempld-core.c
> @@ -552,6 +552,7 @@ static int kempld_remove(struct platform_device *pdev)
>
> #ifdef CONFIG_ACPI
> static const struct acpi_device_id kempld_acpi_table[] = {
> + { "KEM0000", (kernel_ulong_t)&kempld_platform_data_generic },
> { "KEM0001", (kernel_ulong_t)&kempld_platform_data_generic },
> {}
> };
> @@ -584,6 +585,14 @@ static const struct dmi_system_id kempld_dmi_table[] __initconst = {
> },
> .driver_data = (void *)&kempld_platform_data_generic,
> .callback = kempld_create_platform_device,
> + }, {
> + .ident = "BDV7",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "COMe-bDV7"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> }, {
> .ident = "BHL6",
> .matches = {
> @@ -648,6 +657,14 @@ static const struct dmi_system_id kempld_dmi_table[] __initconst = {
> },
> .driver_data = (void *)&kempld_platform_data_generic,
> .callback = kempld_create_platform_device,
> + }, {
> + .ident = "CDV7",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "COMe-cDV7"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> }, {
> .ident = "CHL6",
> .matches = {
> @@ -767,6 +784,22 @@ static const struct dmi_system_id kempld_dmi_table[] __initconst = {
> },
> .driver_data = (void *)&kempld_platform_data_generic,
> .callback = kempld_create_platform_device,
> + }, {
> + .ident = "A203",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "KBox A-203"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> + }, {
> + .ident = "M4A1",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "COMe-m4AL"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> }, {
> .ident = "MAL1",
> .matches = {
> @@ -775,6 +808,14 @@ static const struct dmi_system_id kempld_dmi_table[] __initconst = {
> },
> .driver_data = (void *)&kempld_platform_data_generic,
> .callback = kempld_create_platform_device,
> + }, {
> + .ident = "MAPL",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "mITX-APL"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> }, {
> .ident = "MBR1",
> .matches = {
> @@ -823,6 +864,30 @@ static const struct dmi_system_id kempld_dmi_table[] __initconst = {
> },
> .driver_data = (void *)&kempld_platform_data_generic,
> .callback = kempld_create_platform_device,
> + }, {
> + .ident = "PAPL",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "pITX-APL"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> + }, {
> + .ident = "SXAL",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "SMARC-sXAL"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> + }, {
> + .ident = "SXAL4",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "SMARC-sXA4"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> }, {
> .ident = "UNP1",
> .matches = {
> @@ -863,8 +928,7 @@ static const struct dmi_system_id kempld_dmi_table[] __initconst = {
> },
> .driver_data = (void *)&kempld_platform_data_generic,
> .callback = kempld_create_platform_device,
> - },
> - {
> + }, {
> .ident = "UTH6",
> .matches = {
> DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> @@ -872,6 +936,14 @@ static const struct dmi_system_id kempld_dmi_table[] __initconst = {
> },
> .driver_data = (void *)&kempld_platform_data_generic,
> .callback = kempld_create_platform_device,
> + }, {
> + .ident = "Q7AL",
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Kontron"),
> + DMI_MATCH(DMI_BOARD_NAME, "Qseven-Q7AL"),
> + },
> + .driver_data = (void *)&kempld_platform_data_generic,
> + .callback = kempld_create_platform_device,
> },
> {}
> };
> --
> 2.25.1
>