<p>Richard Spiegel has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/28575">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mv/google/kahlee/variants/baseboard/gpio.c: Reset I2C slaves<br><br>Use the new I2C slave reset function and reset all slaves connected to all<br>4 I2C.<br><br>BUG=b:114479395<br>TEST=Added debug code. Build and boot grunt. Examined output, confirmed<br>GPIO pins changing as required. Removed debug code.<br><br>Change-Id: Ia78ee5d5319d3c1a7daa9c56c81d435999b3a359<br>Signed-off-by: Richard Spiegel <richard.spiegel@silverbackltd.com><br>---<br>M src/mainboard/google/kahlee/mainboard.c<br>M src/mainboard/google/kahlee/variants/baseboard/gpio.c<br>M src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h<br>3 files changed, 24 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/75/28575/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/mainboard/google/kahlee/mainboard.c b/src/mainboard/google/kahlee/mainboard.c</span><br><span>index 2540bcd..c2e0f68 100644</span><br><span>--- a/src/mainboard/google/kahlee/mainboard.c</span><br><span>+++ b/src/mainboard/google/kahlee/mainboard.c</span><br><span>@@ -31,6 +31,7 @@</span><br><span> #include <variant/ec.h></span><br><span> #include <variant/thermal.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <gpio.h></span><br><span> </span><br><span> /***********************************************************</span><br><span>  * These arrays set up the FCH PCI_INTR registers 0xC00/0xC01.</span><br><span>@@ -123,6 +124,7 @@</span><br><span> </span><br><span>      printk(BIOS_INFO, "Board ID: %d\n", boardid);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   variant_reset_i2c_devices();</span><br><span>         mainboard_ec_init();</span><br><span> </span><br><span>     gpios = variant_gpio_table(&num_gpios);</span><br><span>diff --git a/src/mainboard/google/kahlee/variants/baseboard/gpio.c b/src/mainboard/google/kahlee/variants/baseboard/gpio.c</span><br><span>index 75a8ab5..0b77e8f 100644</span><br><span>--- a/src/mainboard/google/kahlee/variants/baseboard/gpio.c</span><br><span>+++ b/src/mainboard/google/kahlee/variants/baseboard/gpio.c</span><br><span>@@ -62,9 +62,8 @@</span><br><span>     /* GPIO_74 - LPC_CLK0_EC_R */</span><br><span>        PAD_NF(GPIO_74, LPCCLK0, PULL_DOWN),</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        /* GPIO_76 - EN_PP3300_TOUCHSCREEN */</span><br><span style="color: hsl(0, 100%, 40%);">-   /* Init low to reset the chip */</span><br><span style="color: hsl(0, 100%, 40%);">-        PAD_GPO(GPIO_76, LOW),</span><br><span style="color: hsl(120, 100%, 40%);">+        /* GPIO_85 - TOUCHSCREEN_RST (Active High) */</span><br><span style="color: hsl(120, 100%, 40%);">+ PAD_GPO(GPIO_85, LOW),</span><br><span> </span><br><span>   /* GPIO_92 - WLAN_PCIE_CLKREQ_3V3_ODL */</span><br><span>     PAD_NF(GPIO_92, CLK_REQ0_L, PULL_UP),</span><br><span>@@ -164,9 +163,6 @@</span><br><span>  /* GPIO_84 - HUB_RST (Active High) */</span><br><span>        PAD_GPO(GPIO_84, LOW),</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      /* GPIO_85 - TOUCHSCREEN_RST (Active High) */</span><br><span style="color: hsl(0, 100%, 40%);">-   PAD_GPO(GPIO_85, LOW),</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>       /* GPIO_86 - Unused (TP109) */</span><br><span>       PAD_GPI(GPIO_86, PULL_UP),</span><br><span> </span><br><span>@@ -252,6 +248,20 @@</span><br><span>        PAD_NF(GPIO_148, I2C1_SDA, PULL_NONE),</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+struct soc_amd_force_toggle i2c_pins[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+  /* GPIO_85 - TOUCHSCREEN_RST (Active High) */</span><br><span style="color: hsl(120, 100%, 40%);">+ PAD_RESET_DEVICE(GPIO_85),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* GPIO_113 - APU_I2C_SCL2 (Pen & Trackpad) */</span><br><span style="color: hsl(120, 100%, 40%);">+    PAD_RESET_I2C_SLAVE(GPIO_113),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* GPIO_145 - PCH_I2C_AUDIO_SCL */</span><br><span style="color: hsl(120, 100%, 40%);">+    PAD_RESET_I2C_SLAVE(GPIO_145),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* GPIO_147 - PCH_I2C_H1_TPM_SCL */</span><br><span style="color: hsl(120, 100%, 40%);">+   PAD_RESET_I2C_SLAVE(GPIO_147),</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> const __weak</span><br><span> struct soc_amd_gpio *variant_early_gpio_table(size_t *size)</span><br><span> {</span><br><span>@@ -266,6 +276,11 @@</span><br><span>      return gpio_set_stage_ram;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+__weak void variant_reset_i2c_devices(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   sb_reset_i2c_slaves(i2c_pins, ARRAY_SIZE(i2c_pins));</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*</span><br><span>  * This function is still needed for boards that sets gevents above 23</span><br><span>  * that will generate SCI or SMI, such as kahlee. Normally this function</span><br><span>diff --git a/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h</span><br><span>index 6e89105..cc73d3e 100644</span><br><span>--- a/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h</span><br><span>+++ b/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h</span><br><span>@@ -30,6 +30,7 @@</span><br><span> const struct soc_amd_gpio *variant_early_gpio_table(size_t *size);</span><br><span> const struct soc_amd_gpio *variant_gpio_table(size_t *size);</span><br><span> void variant_romstage_entry(int s3_resume);</span><br><span style="color: hsl(120, 100%, 40%);">+void variant_reset_i2c_devices(void);</span><br><span> #if IS_ENABLED(CONFIG_HAVE_ACPI_RESUME)</span><br><span> void variant_mainboard_suspend_resume(void);</span><br><span> #endif</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/28575">change 28575</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/28575"/><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: Ia78ee5d5319d3c1a7daa9c56c81d435999b3a359 </div>
<div style="display:none"> Gerrit-Change-Number: 28575 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Richard Spiegel <richard.spiegel@silverbackltd.com> </div>