<p>Enrico Granata has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27172">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">google/poppy: Add SX9310 support<br><br>Prepare a driver for the Semtech SX9310, with the purpose of<br>allowing the device's calibration to be stored in firmware, and<br>then passed on to the kernel via ACPI.<br><br>Use this new driver in the devicetree for Nocturne.<br><br>Change-Id: I7358ee34df873098a86d692cc8a909b0ec5023a8<br>Signed-off-by: Enrico Granata <egranata@chromium.org><br>---<br>A src/drivers/i2c/sx9310/Kconfig<br>A src/drivers/i2c/sx9310/Makefile.inc<br>A src/drivers/i2c/sx9310/chip.h<br>A src/drivers/i2c/sx9310/registers.h<br>A src/drivers/i2c/sx9310/sx9310.c<br>M src/mainboard/google/poppy/Kconfig<br>M src/mainboard/google/poppy/variants/nocturne/devicetree.cb<br>7 files changed, 262 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/72/27172/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/drivers/i2c/sx9310/Kconfig b/src/drivers/i2c/sx9310/Kconfig</span><br><span>new file mode 100644</span><br><span>index 0000000..887cbcf</span><br><span>--- /dev/null</span><br><span>+++ b/src/drivers/i2c/sx9310/Kconfig</span><br><span>@@ -0,0 +1,6 @@</span><br><span style="color: hsl(120, 100%, 40%);">+config DRIVERS_I2C_SX9310</span><br><span style="color: hsl(120, 100%, 40%);">+   bool</span><br><span style="color: hsl(120, 100%, 40%);">+  default n</span><br><span style="color: hsl(120, 100%, 40%);">+     help</span><br><span style="color: hsl(120, 100%, 40%);">+    Board has a Semtech SX9310 proximity sensor</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/src/drivers/i2c/sx9310/Makefile.inc b/src/drivers/i2c/sx9310/Makefile.inc</span><br><span>new file mode 100644</span><br><span>index 0000000..0516df9</span><br><span>--- /dev/null</span><br><span>+++ b/src/drivers/i2c/sx9310/Makefile.inc</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+ramstage-$(CONFIG_DRIVERS_I2C_SX9310) += sx9310.c</span><br><span>diff --git a/src/drivers/i2c/sx9310/chip.h b/src/drivers/i2c/sx9310/chip.h</span><br><span>new file mode 100644</span><br><span>index 0000000..e7b2d8f</span><br><span>--- /dev/null</span><br><span>+++ b/src/drivers/i2c/sx9310/chip.h</span><br><span>@@ -0,0 +1,36 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright 2018 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef __DRIVERS_I2C_SX9310_CHIP_H__</span><br><span style="color: hsl(120, 100%, 40%);">+#define __DRIVERS_I2C_SX9310_CHIP_H__</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <drivers/i2c/generic/chip.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define I2C_SX9310_ACPI_ID   "SX9310"</span><br><span style="color: hsl(120, 100%, 40%);">+#define I2C_SX9310_ACPI_NAME        "Semtech SX9310"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define REGISTER(NAME) uint8_t NAME</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct drivers_i2c_sx9310_config {</span><br><span style="color: hsl(120, 100%, 40%);">+       const char *desc;       /* Device Description */</span><br><span style="color: hsl(120, 100%, 40%);">+      unsigned int uid;       /* ACPI _UID */</span><br><span style="color: hsl(120, 100%, 40%);">+       enum i2c_speed speed;   /* Bus speed in Hz, default is I2C_SPEED_FAST */</span><br><span style="color: hsl(120, 100%, 40%);">+      struct acpi_irq irq;    /* Interrupt */</span><br><span style="color: hsl(120, 100%, 40%);">+#include "registers.h"</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#undef REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#endif /* __DRIVERS_I2C_SX9310_CHIP_H__ */</span><br><span>diff --git a/src/drivers/i2c/sx9310/registers.h b/src/drivers/i2c/sx9310/registers.h</span><br><span>new file mode 100644</span><br><span>index 0000000..459d1ea</span><br><span>--- /dev/null</span><br><span>+++ b/src/drivers/i2c/sx9310/registers.h</span><br><span>@@ -0,0 +1,42 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright 2018 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+#error "define REGISTER(TYPE, NAME) before including this file"</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl0);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl1);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl2);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl3);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl4);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl5);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl6);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl7);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl8);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl9);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl10);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl11);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl12);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl13);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl14);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl15);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl16);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl17);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl18);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_prox_ctrl19);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_sar_ctrl0);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_sar_ctrl1);</span><br><span style="color: hsl(120, 100%, 40%);">+REGISTER(reg_sar_ctrl2);</span><br><span>diff --git a/src/drivers/i2c/sx9310/sx9310.c b/src/drivers/i2c/sx9310/sx9310.c</span><br><span>new file mode 100644</span><br><span>index 0000000..200834f</span><br><span>--- /dev/null</span><br><span>+++ b/src/drivers/i2c/sx9310/sx9310.c</span><br><span>@@ -0,0 +1,112 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright 2016 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <arch/acpi_device.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <arch/acpigen.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <console/console.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <device/i2c_simple.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <device/device.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <device/path.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <stdint.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "chip.h"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_HAVE_ACPI_TABLES)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define REGISTER(NAME) acpi_dp_add_integer(dsd, \</span><br><span style="color: hsl(120, 100%, 40%);">+                                   I2C_SX9310_ACPI_ID "," #NAME, \</span><br><span style="color: hsl(120, 100%, 40%);">+                                     config->NAME)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void i2c_sx9310_fill_ssdt(struct device *dev)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   struct drivers_i2c_sx9310_config *config = dev->chip_info;</span><br><span style="color: hsl(120, 100%, 40%);">+ const char *scope = acpi_device_scope(dev);</span><br><span style="color: hsl(120, 100%, 40%);">+   struct acpi_i2c i2c = {</span><br><span style="color: hsl(120, 100%, 40%);">+               .address = dev->path.i2c.device,</span><br><span style="color: hsl(120, 100%, 40%);">+           .mode_10bit = dev->path.i2c.mode_10bit,</span><br><span style="color: hsl(120, 100%, 40%);">+            .speed = config->speed ? : I2C_SPEED_FAST,</span><br><span style="color: hsl(120, 100%, 40%);">+         .resource = scope,</span><br><span style="color: hsl(120, 100%, 40%);">+    };</span><br><span style="color: hsl(120, 100%, 40%);">+    struct acpi_dp *dsd = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!dev->enabled || !scope || !config)</span><br><span style="color: hsl(120, 100%, 40%);">+            return;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Device */</span><br><span style="color: hsl(120, 100%, 40%);">+  acpigen_write_scope(scope);</span><br><span style="color: hsl(120, 100%, 40%);">+   acpigen_write_device(acpi_device_name(dev));</span><br><span style="color: hsl(120, 100%, 40%);">+  acpigen_write_name_string("_HID", I2C_SX9310_ACPI_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      acpigen_write_name_integer("_UID", config->uid);</span><br><span style="color: hsl(120, 100%, 40%);">+ acpigen_write_name_string("_DDN", config->desc);</span><br><span style="color: hsl(120, 100%, 40%);">+ acpigen_write_STA(ACPI_STATUS_DEVICE_ALL_ON);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Resources */</span><br><span style="color: hsl(120, 100%, 40%);">+       acpigen_write_name("_CRS");</span><br><span style="color: hsl(120, 100%, 40%);">+ acpigen_write_resourcetemplate_header();</span><br><span style="color: hsl(120, 100%, 40%);">+      acpi_device_write_i2c(&i2c);</span><br><span style="color: hsl(120, 100%, 40%);">+      acpi_device_write_interrupt(&config->irq);</span><br><span style="color: hsl(120, 100%, 40%);">+     acpigen_write_resourcetemplate_footer();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* DSD */</span><br><span style="color: hsl(120, 100%, 40%);">+     dsd = acpi_dp_new_table("_DSD");</span><br><span style="color: hsl(120, 100%, 40%);">+#include "registers.h"</span><br><span style="color: hsl(120, 100%, 40%);">+  acpi_dp_write(dsd);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ acpigen_pop_len(); /* Device */</span><br><span style="color: hsl(120, 100%, 40%);">+       acpigen_pop_len(); /* Scope */</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#undef REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static const char *i2c_sx9310_acpi_name(const struct device *dev)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  static char name[12] = {0};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ snprintf(name, sizeof(name), "%sD%03.3X",</span><br><span style="color: hsl(120, 100%, 40%);">+            I2C_SX9310_ACPI_ID, dev->path.i2c.device);</span><br><span style="color: hsl(120, 100%, 40%);">+        return name;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static struct device_operations i2c_sx9310_ops = {</span><br><span style="color: hsl(120, 100%, 40%);">+ .read_resources           = DEVICE_NOOP,</span><br><span style="color: hsl(120, 100%, 40%);">+      .set_resources            = DEVICE_NOOP,</span><br><span style="color: hsl(120, 100%, 40%);">+      .enable_resources         = DEVICE_NOOP,</span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_HAVE_ACPI_TABLES)</span><br><span style="color: hsl(120, 100%, 40%);">+     .acpi_name                = &i2c_sx9310_acpi_name,</span><br><span style="color: hsl(120, 100%, 40%);">+        .acpi_fill_ssdt_generator = &i2c_sx9310_fill_ssdt,</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void i2c_sx9310_enable(struct device *dev)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    struct drivers_i2c_sx9310_config *config = dev->chip_info;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       if (!config) {</span><br><span style="color: hsl(120, 100%, 40%);">+                dev->enabled = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+          return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   dev->ops = &i2c_sx9310_ops;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  if (config->desc)</span><br><span style="color: hsl(120, 100%, 40%);">+          dev->name = config->desc;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct chip_operations drivers_i2c_sx9310_ops = {</span><br><span style="color: hsl(120, 100%, 40%);">+       CHIP_NAME(I2C_SX9310_ACPI_NAME)</span><br><span style="color: hsl(120, 100%, 40%);">+       .enable_dev = &i2c_sx9310_enable</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span>diff --git a/src/mainboard/google/poppy/Kconfig b/src/mainboard/google/poppy/Kconfig</span><br><span>index 2d9c187..c9a1812 100644</span><br><span>--- a/src/mainboard/google/poppy/Kconfig</span><br><span>+++ b/src/mainboard/google/poppy/Kconfig</span><br><span>@@ -172,6 +172,7 @@</span><br><span> config VARIANT_SPECIFIC_OPTIONS_NOCTURNE</span><br><span>      def_bool n</span><br><span>   select CHROMEOS_WIFI_SAR if CHROMEOS</span><br><span style="color: hsl(120, 100%, 40%);">+  select DRIVERS_I2C_SX9310 if CHROMEOS_WIFI_SAR</span><br><span>       select DRIVERS_I2C_MAX98373</span><br><span>  select DRIVERS_I2C_DA7219</span><br><span>    select DRIVERS_SPI_ACPI</span><br><span>diff --git a/src/mainboard/google/poppy/variants/nocturne/devicetree.cb b/src/mainboard/google/poppy/variants/nocturne/devicetree.cb</span><br><span>index f746c08..25fe4a7 100644</span><br><span>--- a/src/mainboard/google/poppy/variants/nocturne/devicetree.cb</span><br><span>+++ b/src/mainboard/google/poppy/variants/nocturne/devicetree.cb</span><br><span>@@ -298,7 +298,38 @@</span><br><span>                          device i2c 0a on end</span><br><span>                         end</span><br><span>          end # I2C #0 - Touchscreen</span><br><span style="color: hsl(0, 100%, 40%);">-              device pci 15.1 on  end # I2C #1 - Trackpad</span><br><span style="color: hsl(120, 100%, 40%);">+           device pci 15.1 on</span><br><span style="color: hsl(120, 100%, 40%);">+                    chip drivers/i2c/sx9310</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "desc" = ""Left SAR Proximity Sensor""</span><br><span style="color: hsl(120, 100%, 40%);">+                         register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D9_IRQ)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         register "speed" = "I2C_SPEED_FAST_PLUS"</span><br><span style="color: hsl(120, 100%, 40%);">+                          register "uid" = "1"</span><br><span style="color: hsl(120, 100%, 40%);">+                              register "reg_prox_ctrl0" = "0x1A"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl1" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl2" = "0x84"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl3" = "0x0E"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl4" = "0x07"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl5" = "0xC6"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl6" = "0x20"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl7" = "0x0D"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl8" = "0x8D"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl9" = "0x43"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl10" = "0x11"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl11" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl12" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl13" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl14" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl15" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl16" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl17" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl18" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl19" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_sar_ctrl0" = "0x50"</span><br><span style="color: hsl(120, 100%, 40%);">+                         register "reg_sar_ctrl1" = "0x8A"</span><br><span style="color: hsl(120, 100%, 40%);">+                         register "reg_sar_ctrl2" = "0x3C"</span><br><span style="color: hsl(120, 100%, 40%);">+                         device i2c 28 on end</span><br><span style="color: hsl(120, 100%, 40%);">+                  end</span><br><span style="color: hsl(120, 100%, 40%);">+           end # I2C #1</span><br><span>                 device pci 15.2 off end # I2C #2</span><br><span>             device pci 15.3 on  end # I2C #3 - Camera</span><br><span>            device pci 16.0 on  end # Management Engine Interface 1</span><br><span>@@ -308,7 +339,38 @@</span><br><span>               device pci 16.4 off end # Management Engine Interface 3</span><br><span>              device pci 17.0 off end # SATA</span><br><span>               device pci 19.0 on  end # UART #2</span><br><span style="color: hsl(0, 100%, 40%);">-               device pci 19.1 on  end # I2C #5</span><br><span style="color: hsl(120, 100%, 40%);">+              device pci 19.1 on</span><br><span style="color: hsl(120, 100%, 40%);">+                    chip drivers/i2c/sx9310</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "desc" = ""Left SAR Proximity Sensor""</span><br><span style="color: hsl(120, 100%, 40%);">+                         register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D10_IRQ)"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "speed" = "I2C_SPEED_FAST_PLUS"</span><br><span style="color: hsl(120, 100%, 40%);">+                          register "uid" = "1"</span><br><span style="color: hsl(120, 100%, 40%);">+                              register "reg_prox_ctrl0" = "0x1A"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl1" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl2" = "0x84"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl3" = "0x0E"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl4" = "0x07"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl5" = "0xC6"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl6" = "0x20"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl7" = "0x0D"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl8" = "0x8D"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl9" = "0x43"</span><br><span style="color: hsl(120, 100%, 40%);">+                                register "reg_prox_ctrl10" = "0x11"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl11" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl12" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl13" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl14" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl15" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl16" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl17" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl18" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_prox_ctrl19" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+                               register "reg_sar_ctrl0" = "0x50"</span><br><span style="color: hsl(120, 100%, 40%);">+                         register "reg_sar_ctrl1" = "0x8A"</span><br><span style="color: hsl(120, 100%, 40%);">+                         register "reg_sar_ctrl2" = "0x3C"</span><br><span style="color: hsl(120, 100%, 40%);">+                         device i2c 28 on end</span><br><span style="color: hsl(120, 100%, 40%);">+                  end</span><br><span style="color: hsl(120, 100%, 40%);">+           end # I2C #5</span><br><span>                 device pci 19.2 on</span><br><span>                   chip drivers/i2c/max98373</span><br><span>                            register "vmon_slot_no" = "4"</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27172">change 27172</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/27172"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I7358ee34df873098a86d692cc8a909b0ec5023a8 </div>
<div style="display:none"> Gerrit-Change-Number: 27172 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Enrico Granata <egranata@chromium.org> </div>