There are a few users that would like to utilize P2SB mechanism of hiding and unhiding a device from the PCI configuration space. Here is the series to consolidate p2sb handling code for existing users and to provide a generic way for new comer(s). It also includes a patch to enable GPIO controllers on Apollo Lake when it's used with ABL bootloader w/o ACPI support. The patch that brings the helper ("platform/x86/intel: Add Primary to Sideband (P2SB) bridge support") has a commit message that sheds a light on what the P2SB is and why this is needed. I have tested this on Apollo Lake platform (I'm able to see SPI NOR and since we have an ACPI device for GPIO I do not see any attempts to recreate one). The series is ready to be merged via MFD tree, but see below. The series also includes updates for Simatic IPC drivers that partially tagged by respective maintainers (the main question is if Pavel is okay with the last three patches, since I believe Hans is okay with removing some code under PDx86). Hence the first 8 patches can be merged right away and the rest when Pavel does his review. Changes in v6: - added tag to patch 5 (Lee) - incorporated Henning's series on top of v5 Changes in v5: - rewritten patch 1 to use pci_scan_single_device() (Lukas, Bjorn) - rebased patch 2 on top of the new Intel SPI NOR codebase - fixed a potential bug and rewritten resource filling in patch 5 (Lee) - added many different tags in a few patches (Jean, Wolfram, Henning) Changes in v4: - added tag to the entire series (Hans) - added tag to pin control patch (Mika) - dropped PCI core changes (PCI core doesn't want modifications to be made) - as a consequence of the above merged necessary bits into p2sb.c - added a check that p2sb is really hidden (Hans) - added EDAC patches (reviewed by maintainer internally) Changes in v3: - resent with cover letter Changes in v2: - added parentheses around bus in macros (Joe) - added tag (Jean) - fixed indentation and wrapping in the header (Christoph) - moved out of PCI realm to PDx86 as the best common denominator (Bjorn) - added a verbose commit message to explain P2SB thingy (Bjorn) - converted first parameter from pci_dev to pci_bus - made first two parameters (bus and devfn) optional (Henning, Lee) - added Intel pin control patch to the series (Henning, Mika) - fixed English style in the commit message of one of MFD patch (Lee) - added tags to my MFD LPC ICH patches (Lee) - used consistently (c) (Lee) - made indexing for MFD cell and resource arrays (Lee) - fixed the resource size in i801 (Jean) Andy Shevchenko (6): pinctrl: intel: Check against matching data instead of ACPI companion mfd: lpc_ich: Factor out lpc_ich_enable_spi_write() mfd: lpc_ich: Switch to generic p2sb_bar() i2c: i801: convert to use common P2SB accessor EDAC, pnd2: Use proper I/O accessors and address space annotation EDAC, pnd2: convert to use common P2SB accessor Henning Schild (4): watchdog: simatic-ipc-wdt: convert to use P2SB accessor leds: simatic-ipc-leds: convert to use P2SB accessor platform/x86: simatic-ipc: drop custom P2SB bar code leds: simatic-ipc-leds-gpio: add GPIO version of Siemens driver Jonathan Yong (1): platform/x86/intel: Add Primary to Sideband (P2SB) bridge support Tan Jui Nee (1): mfd: lpc_ich: Add support for pinctrl in non-ACPI system drivers/edac/Kconfig | 1 + drivers/edac/pnd2_edac.c | 62 +++---- drivers/i2c/busses/Kconfig | 1 + drivers/i2c/busses/i2c-i801.c | 39 +---- drivers/leds/simple/Kconfig | 6 +- drivers/leds/simple/Makefile | 1 + drivers/leds/simple/simatic-ipc-leds-gpio.c | 105 ++++++++++++ drivers/leds/simple/simatic-ipc-leds.c | 80 +-------- drivers/mfd/Kconfig | 1 + drivers/mfd/lpc_ich.c | 161 ++++++++++++++---- drivers/pinctrl/intel/pinctrl-intel.c | 14 +- drivers/platform/x86/intel/Kconfig | 12 ++ drivers/platform/x86/intel/Makefile | 2 + drivers/platform/x86/intel/p2sb.c | 133 +++++++++++++++ drivers/platform/x86/simatic-ipc.c | 43 +---- drivers/watchdog/Kconfig | 1 + drivers/watchdog/simatic-ipc-wdt.c | 15 +- include/linux/platform_data/x86/p2sb.h | 28 +++ .../platform_data/x86/simatic-ipc-base.h | 2 - 19 files changed, 464 insertions(+), 243 deletions(-) create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c create mode 100644 drivers/platform/x86/intel/p2sb.c create mode 100644 include/linux/platform_data/x86/p2sb.h base-commit: 40b58e42584bf5bd9230481dc8946f714fb387de -- 2.35.1