summaryrefslogtreecommitdiff
path: root/src/drivers/i2c/generic/generic.c
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@google.com>2017-08-29 08:28:58 -0700
committerDuncan Laurie <dlaurie@chromium.org>2017-08-30 15:36:54 +0000
commit1533a3cae8cdeeef8ed397c4965e7deca3c73adc (patch)
tree4e88248c84cc22ffc86930b9f234b5f0d4fbfbcd /src/drivers/i2c/generic/generic.c
parentb3023b697adb3d7049a6d9ed98a313c356739d91 (diff)
downloadcoreboot-1533a3cae8cdeeef8ed397c4965e7deca3c73adc.tar.xz
drivers/i2c/generic: Support additional device properties
Add support for providing additional free form device properties via devicetree in order to make this driver suitable for kernel drivers that need additional board-specific device properties. This currently allows adding up to 10 additional properties to a device. BUG=b:63413023 TEST=manual testing to ensure that newly added properties are in SSDT Change-Id: I2b8ceb208f4aba01053746547def6d07c8f8f3a2 Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: https://review.coreboot.org/21270 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/drivers/i2c/generic/generic.c')
-rw-r--r--src/drivers/i2c/generic/generic.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/drivers/i2c/generic/generic.c b/src/drivers/i2c/generic/generic.c
index b7a535e47f..fa27b0e9fd 100644
--- a/src/drivers/i2c/generic/generic.c
+++ b/src/drivers/i2c/generic/generic.c
@@ -116,7 +116,8 @@ void i2c_generic_fill_ssdt(struct device *dev,
}
/* DSD */
- if (config->probed || (reset_gpio_index != -1) ||
+ if (config->probed || config->property_count ||
+ (reset_gpio_index != -1) ||
(enable_gpio_index != -1) || (irq_gpio_index != -1)) {
dsd = acpi_dp_new_table("_DSD");
if (config->probed)
@@ -134,6 +135,9 @@ void i2c_generic_fill_ssdt(struct device *dev,
acpi_dp_add_gpio(dsd, "enable-gpios", path,
enable_gpio_index, 0,
config->enable_gpio.polarity);
+ /* Add generic property list */
+ acpi_dp_add_property_list(dsd, config->property_list,
+ config->property_count);
acpi_dp_write(dsd);
}