From patchwork Sat Mar 23 22:18:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 1062631 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Z8c0YnRP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44RZgf22zGz9sSq for ; Sun, 24 Mar 2019 09:19:10 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727680AbfCWWTH (ORCPT ); Sat, 23 Mar 2019 18:19:07 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:36068 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727114AbfCWWTH (ORCPT ); Sat, 23 Mar 2019 18:19:07 -0400 Received: by mail-wr1-f65.google.com with SMTP id y13so6088706wrd.3 for ; Sat, 23 Mar 2019 15:19:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=vFGbPmtZ+c4TPsDKYYxijH+z/GpDF3IDMbL9JtRSbBQ=; b=Z8c0YnRPjUIi+yyNo8Cre46TQRDkW4BctIooyqwwD6aqsG4ZCjDiUuGCwpnSOTklWU 4zZWnd4u2hZSUdFpE/hyNPguOdWYeXkWylkSY1v9bO5YFARolFwOnmG8DHRG58s679+a d4i8PAIBygBTPLqFUG2c0r4c8wuklWyMTmi7PR2H6Vxrd7NZ8XjWNk32pcVvnW1nXviy VLdkZ5htSrMNENg/IjQClQhvWYJcs4siGIA5NnECaw0NRs8vAb+lXOxjgNbW6IWvuQxy rmtaYig19epgx13K9NBjZY91DsgjgAoiD1CNVBmTzAxEmW/4Ux2YlThmb6vAOMxw66P7 yzeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=vFGbPmtZ+c4TPsDKYYxijH+z/GpDF3IDMbL9JtRSbBQ=; b=ARE0OM6v+gKMV86PuVFqRZ9dF5bEWKiIs2pxl/ykOu9+AKhElPLMB3FueFKQnIkqFb BqdnGsBhcaUplB2p5NHbXjUB17Opr65Ws94ZSYD2SZTY/rFZaGCU6zI4mEs39etWfgw8 yeVaR04sBtvot/ue3joMg0Rvivr9lNER7feXX5nV6MPUtfKfmVNiXf5eC4BUPk5X8dJe H99NJPyDILmfEWegnITtyyAH1o+lOBHanP+8MraBptHocU0PbMdYDA5ir60ZgCzadAqJ BLuAygwxXBjx2YUbHouWcouWgvAAxfuUyy9d9cQ8DSLCVieQj9tXIIQWF1xRt9oMA+k2 J5Zg== X-Gm-Message-State: APjAAAWS5zoNbShDXC2JTpZTLa+eoH8zuCKy9QwOgi6RV4JUB+M7YxNb Njlf1ra9g4+FIEQp/sS7AAI= X-Google-Smtp-Source: APXvYqzp/VwxfYZRn5qliCHVmlhu3zrqDs6CtY8GoWoB+XLEXmPF+6M4ttUTYGMG3SjFZsmHlLWYAQ== X-Received: by 2002:adf:ee07:: with SMTP id y7mr10465097wrn.219.1553379545584; Sat, 23 Mar 2019 15:19:05 -0700 (PDT) Received: from localhost.localdomain ([188.26.228.227]) by smtp.gmail.com with ESMTPSA id a9sm16649269wmm.10.2019.03.23.15.19.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 23 Mar 2019 15:19:04 -0700 (PDT) From: Vladimir Oltean To: davem@davemloft.net, netdev@vger.kernel.org Cc: andrew@lunn.ch, f.fainelli@gmail.com, hkallweit1@gmail.com, Vladimir Oltean Subject: [PATCH] net: phy: bcm54xx: Encode link speed and activity into LEDs Date: Sun, 24 Mar 2019 00:18:46 +0200 Message-Id: <20190323221846.1905-1-olteanv@gmail.com> X-Mailer: git-send-email 2.17.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Previously the green and amber LEDs on this quad PHY were solid, to indicate an encoding of the link speed (10/100/1000). This keeps the LEDs always on just as before, but now they flash on Rx/Tx activity. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli --- drivers/net/phy/broadcom.c | 13 +++++++++++++ include/linux/brcmphy.h | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index 9605d4fe540b..cb86a3e90c7d 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c @@ -323,6 +323,19 @@ static int bcm54xx_config_init(struct phy_device *phydev) bcm54xx_phydsp_config(phydev); + /* Encode link speed into LED1 and LED3 pair (green/amber). + * Also flash these two LEDs on activity. This means configuring + * them for MULTICOLOR and encoding link/activity into them. + */ + val = BCM5482_SHD_LEDS1_LED1(BCM_LED_SRC_MULTICOLOR1) | + BCM5482_SHD_LEDS1_LED3(BCM_LED_SRC_MULTICOLOR1); + bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val); + + val = BCM_LED_MULTICOLOR_IN_PHASE | + BCM5482_SHD_LEDS1_LED1(BCM_LED_MULTICOLOR_LINK_ACT) | + BCM5482_SHD_LEDS1_LED3(BCM_LED_MULTICOLOR_LINK_ACT); + bcm_phy_write_exp(phydev, BCM_EXP_MULTICOLOR, val); + return 0; } diff --git a/include/linux/brcmphy.h b/include/linux/brcmphy.h index 9cd00a37b8d3..6db2d9a6e503 100644 --- a/include/linux/brcmphy.h +++ b/include/linux/brcmphy.h @@ -148,6 +148,22 @@ #define BCM_LED_SRC_OFF 0xe /* Tied high */ #define BCM_LED_SRC_ON 0xf /* Tied low */ +/* + * Broadcom Multicolor LED configurations (expansion register 4) + */ +#define BCM_EXP_MULTICOLOR (MII_BCM54XX_EXP_SEL_ER + 0x04) +#define BCM_LED_MULTICOLOR_IN_PHASE BIT(8) +#define BCM_LED_MULTICOLOR_LINK_ACT 0x0 +#define BCM_LED_MULTICOLOR_SPEED 0x1 +#define BCM_LED_MULTICOLOR_ACT_FLASH 0x2 +#define BCM_LED_MULTICOLOR_FDX 0x3 +#define BCM_LED_MULTICOLOR_OFF 0x4 +#define BCM_LED_MULTICOLOR_ON 0x5 +#define BCM_LED_MULTICOLOR_ALT 0x6 +#define BCM_LED_MULTICOLOR_FLASH 0x7 +#define BCM_LED_MULTICOLOR_LINK 0x8 +#define BCM_LED_MULTICOLOR_ACT 0x9 +#define BCM_LED_MULTICOLOR_PROGRAM 0xa /* * BCM5482: Shadow registers