On Fri, 21 Apr 2017, Hans de Goede wrote: > The Crystal Cove PMIC provides an ACPI OPRegion handler, which must be > available before other drivers using it are loaded, which is why > INTEL_SOC_PMIC is a bool. > > Just having the driver is not enough, the driver for the i2c-bus must > also be built in, to ensure this, this patch adds a select for it. > > This fixes errors like these during boot: > > mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA > ACPI Error: No handler for Region [REGS] (ffff93543b0cc3a8) > [UserDefinedRegion] (20170119/evregion-166) > ACPI Error: Region UserDefinedRegion (ID=143) has no handler > (20170119/exfldio-299) > ACPI Error: Method parse/execution failed [\_SB.PCI0.I2C7.PMI5.GET] (Node > ffff93543b0cde10), AE_NOT_EXIST (20170119/psparse-543) > ACPI Error: Method parse/execution failed [\_SB.PCI0.SHC1._PS0] (Node > ffff93543b0b5cd0), AE_NOT_EXIST (20170119/psparse-543) > acpi 80860F14:02: Failed to change power state to D0 > > While at it this patch also changes the human readable name of the Kconfig > option to make clear the INTEL_SOC_PMIC option selects support for the > Intel Crystal Cove PMIC and documents why this is a bool. > > Cc: Andy Shevchenko <[email protected]> > Signed-off-by: Hans de Goede <[email protected]> > --- > Note this patch will partially conflicts with (contains the same changes as) > a patch in Andy Shevchenko's tree. > --- > Changes in v2: > -Fix Kconfig depends and selects to fix warning reported by kbuild test robot > -Improve commit msg (add example of ACPI errors this avoids) > Changes in v3: > -No changes > --- > drivers/mfd/Kconfig | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig > index 2c34574..4eb044e 100644 > --- a/drivers/mfd/Kconfig > +++ b/drivers/mfd/Kconfig > @@ -425,14 +425,21 @@ config LPC_SCH > System Management Bus and General Purpose I/O. > > config INTEL_SOC_PMIC > - bool "Support for Intel Atom SoC PMIC" > - depends on GPIOLIB > - depends on I2C=y > + # This is a bool as it provides an ACPI Opregion which must be > + # available as soon as possible > + bool "Support for Intel Crystal Cove PMIC" > + select GPIOLIB > select MFD_CORE > select REGMAP_I2C > select REGMAP_IRQ > + # In order for the ACPI Opregion to be available the i2c-adapter > + # driver must be builtin too, select it and its deps
You can either write this up in the commit log or make a brief mention to it in the 'help' section below, but please don't comment the Kconfig this way, it's ugly as sin! > + depends on HAS_IOMEM > + select I2C > + select COMMON_CLK > + select I2C_DESIGNWARE_PLATFORM > help > - Select this option to enable support for the PMIC device > + Select this option to enable support for the Crystal Cove PMIC > on some Intel SoC systems. The PMIC provides ADC, GPIO, > thermal, charger and related power management functions > on these systems. -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog

