summaryrefslogtreecommitdiff
path: root/src/drivers/i2c
diff options
context:
space:
mode:
authorWerner Zeh <werner.zeh@siemens.com>2021-05-27 09:26:52 +0200
committerPatrick Georgi <pgeorgi@google.com>2021-05-30 20:20:47 +0000
commit964948d97f1c47769d29622e0a238c74cba32edc (patch)
treeb6bcc8a8f0b96d4db6ef57861a06b239a7f94d9b /src/drivers/i2c
parent50e9d3860b466388dbbbec2f67078cba0b1e1f09 (diff)
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>
Diffstat (limited to 'src/drivers/i2c')
-rw-r--r--src/drivers/i2c/rx6110sa/Kconfig7
-rw-r--r--src/drivers/i2c/rx6110sa/rx6110sa.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/src/drivers/i2c/rx6110sa/Kconfig b/src/drivers/i2c/rx6110sa/Kconfig
index a5608f82f7..7f3febc1ea 100644
--- a/src/drivers/i2c/rx6110sa/Kconfig
+++ b/src/drivers/i2c/rx6110sa/Kconfig
@@ -3,3 +3,10 @@ config DRIVERS_I2C_RX6110SA
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 2b8b9b28f0..3cab8fa1c0 100644
--- a/src/drivers/i2c/rx6110sa/rx6110sa.c
+++ b/src/drivers/i2c/rx6110sa/rx6110sa.c
@@ -166,7 +166,7 @@ static void rx6110sa_init(struct device *dev)
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 @@ static struct device_operations rx6110sa_ops = {
.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