Patrick Georgi has submitted this change. ( 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 b64db833d6 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/55003 Reviewed-by: Mario Scheithauer mario.scheithauer@siemens.com Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/drivers/i2c/rx6110sa/Kconfig M src/drivers/i2c/rx6110sa/rx6110sa.c 2 files changed, 9 insertions(+), 2 deletions(-)
Approvals: build bot (Jenkins): Verified Mario Scheithauer: Looks good to me, approved
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