Werner Zeh has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/55003 )
Change subject: drivers/i2c/rx6110sa: Add a Kconfig switch to disable ACPI support ......................................................................
drivers/i2c/rx6110sa: Add a Kconfig switch to disable ACPI support
In commit b64db833d6db452c28e410f869f6527fd6971228 a basic ACPI support was added to the driver. With this support an SSDT-entry is created for this RTC and it is now visible to the OS via ACPI. In Linux the PNP-devices, which are reported over ACPI, are scanned rather early and if the entry is found, the device is claimed even if there is no driver available yet. In this case, when the native RTC-driver without ACPI-support is loaded and tries to register this device, the RTC is already blocked by the PNP-drivers and cannot be used anymore. This leads to a non-usable RTC on kernels where the needed ACPI-extension is not yet merged into the RTC driver.
This patch provides a way to disable the ACPI-support for the RTC if needed.
Change-Id: Ic65794d409d13a78d17275c86ec14ee6f04cd2a6 Signed-off-by: Werner Zeh werner.zeh@siemens.com --- M src/drivers/i2c/rx6110sa/Kconfig M src/drivers/i2c/rx6110sa/rx6110sa.c 2 files changed, 9 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/55003/1
diff --git a/src/drivers/i2c/rx6110sa/Kconfig b/src/drivers/i2c/rx6110sa/Kconfig index a5608f8..7f3febc 100644 --- a/src/drivers/i2c/rx6110sa/Kconfig +++ b/src/drivers/i2c/rx6110sa/Kconfig @@ -3,3 +3,10 @@ default n help Enable support for external RTC chip RX6110 SA. + +config RX6110SA_DISABLE_ACPI + bool + default n + help + Disable the generation of an ACPI entry for this RTC. This is helpful + when the native driver for this RTC in OS does not have ACPI support enabled. diff --git a/src/drivers/i2c/rx6110sa/rx6110sa.c b/src/drivers/i2c/rx6110sa/rx6110sa.c index 2b8b9b2..3cab8fa 100644 --- a/src/drivers/i2c/rx6110sa/rx6110sa.c +++ b/src/drivers/i2c/rx6110sa/rx6110sa.c @@ -166,7 +166,7 @@ rx6110sa_write(dev, CTRL_REG, reg); }
-#if CONFIG(HAVE_ACPI_TABLES) +#if CONFIG(HAVE_ACPI_TABLES) && !CONFIG(RX6110SA_DISABLE_ACPI) static void rx6110sa_fill_ssdt(const struct device *dev) { struct drivers_i2c_rx6110sa_config *config = dev->chip_info; @@ -227,7 +227,7 @@ .set_resources = noop_set_resources, .init = rx6110sa_init, .final = rx6110sa_final, -#if CONFIG(HAVE_ACPI_TABLES) +#if CONFIG(HAVE_ACPI_TABLES) && !CONFIG(RX6110SA_DISABLE_ACPI) .acpi_name = rx6110sa_acpi_name, .acpi_fill_ssdt = rx6110sa_fill_ssdt, #endif