<p>Gaggery Tsai has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/21862">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">drivers/net/r8168: Add customized LED mode<br><br>This patch is to add a function for programming<br>cusotmized LEDs setting to Realtek 81xx family.<br>It reads RT8111H_CUSTOMIZED_LED_VALUE from target<br>board config file and programs the setting to<br>offset 0x18 and 0x19.<br><br>BUG=b:65437780<br><br>TEST=Add RT8111H_CUSOMIZED_LED_VALUE in Kconfig file<br>  under target board and make sure the setting<br>  is programmed correctly to offset 0x18 and<br>    0x19. Observed the LEDs were behaving as<br>      expected. Executed suspend/resume and the LEDs<br>        were still working as expected.<br><br>Change-Id: Ib3d4f2cd98ac391e1661a891d604bdd1974d07f6<br>Signed-off-by: Gaggery Tsai <gaggery.tsai@intel.com><br>---<br>M src/drivers/net/Kconfig<br>M src/drivers/net/r8168.c<br>2 files changed, 45 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/62/21862/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/drivers/net/Kconfig b/src/drivers/net/Kconfig<br>index 67a1389..61f1788 100644<br>--- a/src/drivers/net/Kconfig<br>+++ b/src/drivers/net/Kconfig<br>@@ -18,3 +18,8 @@<br>       bool<br>  default n<br>     select REALTEK_8168_RESET<br>+<br>+config RT8111H_SET_LED_MODE<br>+   bool<br>+ default n<br>+    select REALTEK_8168_RESET<br>diff --git a/src/drivers/net/r8168.c b/src/drivers/net/r8168.c<br>index 3727ccd..a8a2500 100644<br>--- a/src/drivers/net/r8168.c<br>+++ b/src/drivers/net/r8168.c<br>@@ -36,6 +36,8 @@<br> <br> #define CMD_REG                  0x37<br> #define  CMD_REG_RESET           0x10<br>+#define CMD_LED0_LED1            0x18<br>+#define CMD_LED2_FC              0x19<br> <br> #define CFG_9346              0x50<br> #define  CFG_9346_LOCK           0x00<br>@@ -211,6 +213,41 @@<br>    printk(BIOS_DEBUG, "done\n");<br> }<br> <br>+static void r8111h_set_customized_led(u16 io_base)<br>+{<br>+#if IS_ENABLED(CONFIG_RT8111H_SET_LED_MODE)<br>+        u16 setting = 0;<br>+<br>+  /* check the VPD for the mac address */<br>+      setting = CONFIG_RT8111H_CUSTOMIZED_LED_VALUE;<br>+       printk(BIOS_DEBUG, "r8111h: Customized LED 0x%x\n", setting);<br>+<br>+   /* Disable register protection */<br>+    outb(CFG_9346_UNLOCK, io_base + CFG_9346);<br>+<br>+        /* Refer to datasheet 7.2, starting from offset 0x18<br>+  * Bit[15:12]   LED Feature Control(FC)<br>+       * Bit[11:08]   LED Select for PINLED2<br>+        * Bit[07:04]   LED Select for PINLED1<br>+        * Bit[03:00]   LED Select for PINLED0<br>+        *<br>+    * Speed        Link10M         Link100M        Link1000M       ACT/Full<br>+      * LED0         Bit0            Bit1            Bit2            Bit3<br>+  * LED1         Bit4            Bit5            Bit6            Bit7<br>+  * LED2         Bit8            Bit9            Bit10           Bit11<br>+         * FC           Bit12           Bit13           Bit14           Bit15<br>+         */<br>+<br>+       /* Set customized LED registers */<br>+   outw(setting & 0xffff, io_base + CMD_LED0_LED1);<br>+ printk(BIOS_DEBUG, "r8111h: read back LED setting as 0x%x\n",<br>+              inw(io_base + CMD_LED0_LED1));<br>+<br>+    /* Lock config regs */<br>+       outb(CFG_9346_LOCK, io_base + CFG_9346);<br>+#endif<br>+}<br>+<br> static void r8168_init(struct device *dev)<br> {<br>     /* Get the resource of the NIC mmio */<br>@@ -223,8 +260,10 @@<br> <br>       /* Program MAC address based on CBFS "macaddress" containing<br>         * a string AA:BB:CC:DD:EE:FF */<br>-     if (io_base)<br>+ if (io_base) {<br>                program_mac_address(dev, io_base);<br>+           r8111h_set_customized_led(io_base);<br>+  }<br>     else<br>          printk(BIOS_ERR, "r8168: Error cant find MMIO resource\n");<br> }<br></pre><p>To view, visit <a href="https://review.coreboot.org/21862">change 21862</a>. To unsubscribe, 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/21862"/><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: Ib3d4f2cd98ac391e1661a891d604bdd1974d07f6 </div>
<div style="display:none"> Gerrit-Change-Number: 21862 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Gaggery Tsai <gaggery.tsai@intel.com> </div>