<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>