summaryrefslogtreecommitdiffstats
path: root/src/drivers/i2c/generic/generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/i2c/generic/generic.c')
-rw-r--r--src/drivers/i2c/generic/generic.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/drivers/i2c/generic/generic.c b/src/drivers/i2c/generic/generic.c
index 2a4acb242f48..03018eed555f 100644
--- a/src/drivers/i2c/generic/generic.c
+++ b/src/drivers/i2c/generic/generic.c
@@ -160,6 +160,25 @@ void i2c_generic_fill_ssdt(const struct device *dev,
acpi_device_add_power_res(&power_res_params);
}
+ /* Rotation Matrix */
+ if (config->has_rotation_matrix) {
+ acpigen_write_method("ROTM", 0);
+ acpigen_write_package(3);
+
+ for (int i = 0; i < 3; i++) {
+ char matrix_row[12];
+ snprintf(matrix_row, sizeof(matrix_row), "%d %d %d",
+ config->rotation_matrix[i * 3 + 0],
+ config->rotation_matrix[i * 3 + 1],
+ config->rotation_matrix[i * 3 + 2]);
+
+ acpigen_write_string(matrix_row);
+ }
+
+ acpigen_pop_len();
+ acpigen_pop_len();
+ }
+
/* Callback if any. */
if (callback)
callback(dev);