NAK: [PATCH 1/5] mfd: Add support for IO functions of AAEON devices

Kunyang Fan(范坤揚) Kunyang_Fan at asus.com
Wed May 26 10:13:50 UTC 2021


Hi Kleber,

AAEON has delegated "acelan.kao at canonical.com " to upload these patches with bug ID https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1929504. Please ignore the previous uploading patches and help review this task https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1929504.

Thank you,

Kunyang

-----Original Message-----
From: Kleber Souza <kleber.souza at canonical.com>
Sent: Wednesday, May 26, 2021 6:07 PM
To: aaeon.asus at gmail.com; kernel-team at lists.ubuntu.com
Cc: Kunyang Fan(范坤揚) <Kunyang_Fan at asus.com>; Jacob Wu(吳文傑) <Jacob_Wu at asus.com>; Edward1 Lin(林裕幼) <Edward1_Lin at asus.com>; kent.lin at canonical.com; acelan.kao at canonical.com; Frank2 Hsieh(謝秉甫) <Frank2_Hsieh at asus.com>
Subject: NAK: [PATCH 1/5] mfd: Add support for IO functions of AAEON devices

Hello Aaeon,

Thank you for your proposed contribution to the Ubuntu Kernel. However, in order for patches to be considered for acceptance, they need to follow some rules as documented in the following link:

https://wiki.ubuntu.com/Kernel/Dev/StablePatchFormat

Could you please follow the instructions and re-send the patches?

Also, if you subscribe yourself to the mailing-list the emails are sent straight away, otherwise they need to go through a moderation queue which can take some days for someone to review it.


Thank you,
Kleber

On 24.05.21 08:13, aaeon.asus at gmail.com wrote:
> From: Kunyang_Fan <kunyang_fan at asus.com>
>
> This adds the supports for multiple IO functions of the AAEON x86
> devices and makes use of the WMI interface to control the these IO
> devices including:
>
> - GPIO
> - LED
> - Watchdog
> - HWMON
>
> It also adds the mfd child device drivers to support the above IO
> functions.
>
> Signed-off-by: Kunyang_Fan <kunyang_fan at asus.com>
> ---
>   MAINTAINERS             | 12 +++++++
>   drivers/mfd/Kconfig     | 12 +++++++
>   drivers/mfd/Makefile    |  1 +
>   drivers/mfd/mfd-aaeon.c | 77 +++++++++++++++++++++++++++++++++++++++++
>   4 files changed, 102 insertions(+)
>   create mode 100644 drivers/mfd/mfd-aaeon.c
>
> diff --git a/MAINTAINERS b/MAINTAINERS index
> 1c19c1e2c970..49783dd44367 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -257,6 +257,18 @@ W:       http://www.adaptec.com/
>   F:  Documentation/scsi/aacraid.rst
>   F:  drivers/scsi/aacraid/
>
> +AAEON DEVICE DRIVER WITH WMI INTERFACE
> +M:   Edward Lin<edward1_lin at asus.com>
> +M:   Kunyang Fan <kunyang_fan at asus.com>
> +M:   Frank Hsieh <frank2_hsieh at asus.com>
> +M:   Jacob Wu <jacob_wu at asus.com>
> +S:   Supported
> +F:   drivers/gpio/gpio-aaeon.c
> +F:   drivers/hwmon/hwmon-aaeon.c
> +F:   drivers/leds/leds-aaeon.c
> +F:   drivers/mfd/mfd-aaeon.c
> +F:   drivers/watchdog/wdt_aaeon.c
> +
>   ABI/API
>   L:  linux-api at vger.kernel.org
>   F:  include/linux/syscalls.h
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index
> a37d7d171382..f172564eed0d 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -2053,6 +2053,18 @@ config MFD_WCD934X
>         This driver provides common support WCD934x audio codec and its
>         associated Pin Controller, Soundwire Controller and Audio codec.
>
> +
> +config MFD_AAEON
> +     tristate "AAEON WMI MFD devices"
> +     depends on ASUS_WMI
> +     help
> +       Say yes here to support mltiple IO devices on Single Board Computers
> +       produced by AAEON.
> +
> +       This driver leverages the ASUS WMI interface to access device
> +       resources.
> +
> +
>   menu "Multimedia Capabilities Port drivers"
>       depends on ARCH_SA1100
>
> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index
> 9367a92f795a..36fff3d0da7e 100644
> --- a/drivers/mfd/Makefile
> +++ b/drivers/mfd/Makefile
> @@ -264,3 +264,4 @@ obj-$(CONFIG_MFD_ROHM_BD718XX)    += rohm-bd718x7.o
>   obj-$(CONFIG_MFD_STMFX)     += stmfx.o
>
>   obj-$(CONFIG_SGI_MFD_IOC3)  += ioc3.o
> +obj-$(CONFIG_MFD_AAEON)              += mfd-aaeon.o
> diff --git a/drivers/mfd/mfd-aaeon.c b/drivers/mfd/mfd-aaeon.c new
> file mode 100644 index 000000000000..9d2efde53cad
> --- /dev/null
> +++ b/drivers/mfd/mfd-aaeon.c
> @@ -0,0 +1,77 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * UP Board main platform driver and FPGA configuration support
> + *
> + * Copyright (c) 2021, AAEON Ltd.
> + *
> + * Author: Kunyang_Fan <knuyang_fan at aaeon.com.tw>
> + *
> + * This program is free software; you can redistribute it and/or
> +modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/acpi.h>
> +#include <linux/gpio.h>
> +#include <linux/kernel.h>
> +#include <linux/mfd/core.h>
> +#include <linux/module.h>
> +#include <linux/platform_device.h>
> +#include <linux/leds.h>
> +#include <linux/wmi.h>
> +
> +#define AAEON_WMI_MGMT_GUID      "97845ED0-4E6D-11DE-8A39-0800200C9A66"
> +
> +struct aaeon_wmi_priv {
> +     const struct mfd_cell *cells;
> +     size_t ncells;
> +};
> +
> +static const struct mfd_cell aaeon_mfd_cells[] = {
> +     { .name = "gpio-aaeon" },
> +     { .name = "hwmon-aaeon"},
> +     { .name = "leds-aaeon"},
> +     { .name = "wdt-aaeon"},
> +};
> +
> +static const struct aaeon_wmi_priv aaeon_wmi_priv_data = {
> +     .cells = aaeon_mfd_cells,
> +     .ncells = ARRAY_SIZE(aaeon_mfd_cells), };
> +
> +static int aaeon_wmi_probe(struct wmi_device *wdev, const void
> +*context) {
> +     struct aaeon_wmi_priv *priv;
> +
> +     if (!wmi_has_guid(AAEON_WMI_MGMT_GUID)) {
> +             dev_info(&wdev->dev, "AAEON Management GUID not found\n");
> +             return -ENODEV;
> +     }
> +
> +
> +     priv = (struct aaeon_wmi_priv *)context;
> +     dev_set_drvdata(&wdev->dev, priv);
> +
> +     return devm_mfd_add_devices(&wdev->dev, 0, priv->cells,
> +                                 priv->ncells, NULL, 0, NULL); }
> +
> +static const struct wmi_device_id aaeon_wmi_id_table[] = {
> +     { AAEON_WMI_MGMT_GUID, (void *)&aaeon_wmi_priv_data },
> +     {}
> +};
> +
> +static struct wmi_driver aaeon_wmi_driver = {
> +     .driver = {
> +             .name = "mfd-aaeon",
> +     },
> +     .id_table = aaeon_wmi_id_table,
> +     .probe = aaeon_wmi_probe,
> +};
> +
> +module_wmi_driver(aaeon_wmi_driver);
> +
> +MODULE_DEVICE_TABLE(wmi, aaeon_wmi_id_table); MODULE_AUTHOR("Kunyang
> +Fan <kunyang_fan at aaeon.com.tw>"); MODULE_DESCRIPTION("AAEON Board WMI
> +driver"); MODULE_LICENSE("GPL v2");
>

<p></p>

===================================================================================================================================
This email and any attachments to it contain confidential information and are intended solely for the use of the individual to whom it is addressed.If you are not the intended recipient or receive it accidentally, please immediately notify the sender by e-mail and delete the message and any attachments from your computer system, and destroy all hard copies. If any, please be advised that any unauthorized disclosure, copying, distribution or any action taken or omitted in reliance on this, is illegal and prohibited. Furthermore, any views or opinions expressed are solely those of the author and do not represent those of ASUSTeK. Thank you for your cooperation.
===================================================================================================================================


More information about the kernel-team mailing list