[coreboot-gerrit] Change in coreboot[master]: drivers/i2c/generic: Support additional device properties

Duncan Laurie (Code Review) gerrit at coreboot.org
Tue Aug 29 17:45:34 CEST 2017


Duncan Laurie has uploaded this change for review. ( https://review.coreboot.org/21270


Change subject: drivers/i2c/generic: Support additional device properties
......................................................................

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 at google.com>
---
M src/drivers/i2c/generic/chip.h
M src/drivers/i2c/generic/generic.c
2 files changed, 11 insertions(+), 1 deletion(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/70/21270/1

diff --git a/src/drivers/i2c/generic/chip.h b/src/drivers/i2c/generic/chip.h
index c5d458b..8b285f0 100644
--- a/src/drivers/i2c/generic/chip.h
+++ b/src/drivers/i2c/generic/chip.h
@@ -19,6 +19,8 @@
 #include <arch/acpi_device.h>
 #include <device/i2c_simple.h>
 
+#define MAX_GENERIC_PROPERTY_LIST 10
+
 struct drivers_i2c_generic_config {
 	const char *hid;	/* ACPI _HID (required) */
 	const char *cid;	/* ACPI _CID */
@@ -59,6 +61,10 @@
 	struct acpi_gpio enable_gpio;
 	/* Delay to be inserted after device is enabled. */
 	unsigned enable_delay_ms;
+
+	/* Generic properties for exporting device-specific data to the OS */
+	struct acpi_dp property_list[MAX_GENERIC_PROPERTY_LIST];
+	int property_count;
 };
 
 /*
diff --git a/src/drivers/i2c/generic/generic.c b/src/drivers/i2c/generic/generic.c
index b7a535e..fa27b0e 100644
--- a/src/drivers/i2c/generic/generic.c
+++ b/src/drivers/i2c/generic/generic.c
@@ -116,7 +116,8 @@
 	}
 
 	/* 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 @@
 			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);
 	}
 

-- 
To view, visit https://review.coreboot.org/21270
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2b8ceb208f4aba01053746547def6d07c8f8f3a2
Gerrit-Change-Number: 21270
Gerrit-PatchSet: 1
Gerrit-Owner: Duncan Laurie <dlaurie at chromium.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20170829/8dc5953f/attachment.html>


More information about the coreboot-gerrit mailing list