]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: pinctrl: Add multi-ACPI control
authorSimon Glass <sjg@chromium.org>
Wed, 8 Jul 2020 03:32:21 +0000 (21:32 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Fri, 17 Jul 2020 06:32:24 +0000 (14:32 +0800)
Add a Kconfig to control whether pinctrl is represented as a single ACPI
device or as multiple devices. In the latter case (the default) we should
return the pin number relative to the pinctrl device.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
drivers/pinctrl/intel/Kconfig
drivers/pinctrl/intel/pinctrl.c

index e62a2e034944bb75e415d566db9bb806ce6aeb7c..1acc5dabb016fe4c3fe8e1d98f6d8c42bb5b5894 100644 (file)
@@ -15,6 +15,18 @@ config INTEL_PINCTRL_IOSTANDBY
        bool
        default y
 
+config INTEL_PINCTRL_MULTI_ACPI_DEVICES
+       bool
+       default y
+       help
+         Enable this if the pinctrl devices are modelled as multiple,
+         separate ACPI devices in the ACPI tables. If enabled, the ACPI
+         devices match the U-Boot pinctrl devices and the pin 'offset' is
+         relatove to a particular pinctrl device. If disabled, there is a
+         single ACPI pinctrl device which includes all U-Boot pinctrl devices
+         and the pin 'offset' is in effect a global pin number.
+
+
 config PINCTRL_INTEL_APL
        bool "Support Intel Apollo Lake (APL)"
        help
index bf3989bf327635e4065b18ef8661832faeebad37..32ca303b2797c6b6ab125d48d6110b755be6e76a 100644 (file)
@@ -427,6 +427,8 @@ int intel_pinctrl_get_acpi_pin(struct udevice *dev, uint offset)
        const struct pad_community *comm = priv->comm;
        int group;
 
+       if (IS_ENABLED(CONFIG_INTEL_PINCTRL_MULTI_ACPI_DEVICES))
+               return offset;
        group = pinctrl_group_index(comm, offset);
 
        /* If pad base is not set then use GPIO number as ACPI pin number */