Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp128671pxy; Tue, 20 Apr 2021 22:25:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxFFKwOx45bfjntn8AggdFlFsBb+NG7wOwyZZTAyQk+ZFC0IyNIn6v/pQ0vOoZV8Ce7PjaW X-Received: by 2002:a17:90b:147:: with SMTP id em7mr8911809pjb.138.1618982710942; Tue, 20 Apr 2021 22:25:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618982710; cv=none; d=google.com; s=arc-20160816; b=pjExgtXivAGejF7PbXBhNaBpcrnxSAidsB3B3yuz2+UHQnh2em71tksHm4V/i25qYm qj7aEebtvzHIkyOulKEc6P3cyDtYL6qM4Enlza+iIULJPz5gvHzv5rH2kU6Yj+Fw8MgJ Cf6hUS87ZXHCGr2igzpy2cBRPNffLlSXNYjFquYMS5OiH3IFht5w371uzWpLJ2chO23B V8Iz6LU8e/mO1PmBh0731tGoobMxxpKV459oPBkc9LREG4gdGi3Nd8pFMT9W8RWZA2Sv 97QjplfjX+eUss+w6rQ1wSQEaFi7HJ0UcX+q40WUHho68f5oDRihTdF4G29kv58KxdMw sHjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=bgrKQPeEwSF7reOjUsZJ3I9b0Tu4GjmVlXYXzSKixJs=; b=E/hZf1yYMVjVOV+RdTRHDXrmMQUEg7qJ3O1EeeQSpELbvXdlTSvH7qCPhCaTlh6HO8 Fkl+Bu6dukFNNROygRN6fkeDLPusFJA0aWhn2mN2AFaiqtBPWCweoIa6cyN2cmtGQHsA qcAyqJmMUHNsYNMxGRI+a/KSAXzje3S0kRtK9KCFW5k6f0Itwp+1Wl4jUbphriFaP0ez W3qMr2g2iza4Vcgs/OP7z2+UqS/bJ3TUS3150r+qt3TgikS1bgJANRuWONngsMfFJMQd Gj2BHrU83JT60emMvy9xMTj8NLf7K+TdstVYr53LAnn0p5MLc9PbLd9UrjcTlmT2RjKR pbaw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q16si1394690pgg.312.2021.04.20.22.24.57; Tue, 20 Apr 2021 22:25:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234735AbhDUFIc (ORCPT + 99 others); Wed, 21 Apr 2021 01:08:32 -0400 Received: from mxout70.expurgate.net ([91.198.224.70]:56790 "EHLO mxout70.expurgate.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230440AbhDUFI3 (ORCPT ); Wed, 21 Apr 2021 01:08:29 -0400 X-Greylist: delayed 443 seconds by postgrey-1.27 at vger.kernel.org; Wed, 21 Apr 2021 01:08:28 EDT Received: from [127.0.0.1] (helo=localhost) by relay.expurgate.net with smtp (Exim 4.92) (envelope-from ) id 1lZ54j-0006TL-10; Wed, 21 Apr 2021 07:06:57 +0200 Received: from [195.243.126.94] (helo=securemail.tdt.de) by relay.expurgate.net with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lZ54i-000Lxz-50; Wed, 21 Apr 2021 07:06:56 +0200 Received: from securemail.tdt.de (localhost [127.0.0.1]) by securemail.tdt.de (Postfix) with ESMTP id 7913F240041; Wed, 21 Apr 2021 07:06:55 +0200 (CEST) Received: from mail.dev.tdt.de (unknown [10.2.4.42]) by securemail.tdt.de (Postfix) with ESMTP id D6726240040; Wed, 21 Apr 2021 07:06:54 +0200 (CEST) Received: from mschiller01.dev.tdt.de (unknown [10.2.3.20]) by mail.dev.tdt.de (Postfix) with ESMTPSA id 833D620240; Wed, 21 Apr 2021 07:06:54 +0200 (CEST) From: Martin Schiller To: hauke@hauke-m.de, martin.blumenstingl@googlemail.com, andrew.hendry@gmail.com, hkallweit1@gmail.com, linux@armlinux.org.uk, davem@davemloft.net, kuba@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Martin Schiller Subject: [PATCH net v2] net: phy: intel-xway: enable integrated led functions Date: Wed, 21 Apr 2021 07:06:27 +0200 Message-ID: <20210421050627.11250-1-ms@dev.tdt.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mail.dev.tdt.de Content-Transfer-Encoding: quoted-printable X-purgate-type: clean X-purgate-ID: 151534::1618981616-0000EC72-D3A4C568/0/0 X-purgate: clean Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Intel xway phys offer the possibility to deactivate the integrated led function and to control the leds manually. If this was set by the bootloader, it must be ensured that the integrated led function is enabled for all leds when loading the driver. Before 6e2d85ec0559 ("net: phy: Stop with excessive soft reset") the LEDs were enabled by a soft-reset of the PHY (using genphy_soft_reset). Initialize the XWAY_MDIO_LED with it's default value (which is applied during a soft reset) instead of adding back the soft reset. This brings back the default LED configuration while still preventing an excessive amount of soft resets. Fixes: 6e2d85ec0559 ("net: phy: Stop with excessive soft reset") Signed-off-by: Martin Schiller --- Changes to v1: Added additional email recipients. --- drivers/net/phy/intel-xway.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/net/phy/intel-xway.c b/drivers/net/phy/intel-xway.c index 6eac50d4b42f..d453ec016168 100644 --- a/drivers/net/phy/intel-xway.c +++ b/drivers/net/phy/intel-xway.c @@ -11,6 +11,18 @@ =20 #define XWAY_MDIO_IMASK 0x19 /* interrupt mask */ #define XWAY_MDIO_ISTAT 0x1A /* interrupt status */ +#define XWAY_MDIO_LED 0x1B /* led control */ + +/* bit 15:12 are reserved */ +#define XWAY_MDIO_LED_LED3_EN BIT(11) /* Enable the integrated function= of LED3 */ +#define XWAY_MDIO_LED_LED2_EN BIT(10) /* Enable the integrated function= of LED2 */ +#define XWAY_MDIO_LED_LED1_EN BIT(9) /* Enable the integrated function = of LED1 */ +#define XWAY_MDIO_LED_LED0_EN BIT(8) /* Enable the integrated function = of LED0 */ +/* bit 7:4 are reserved */ +#define XWAY_MDIO_LED_LED3_DA BIT(3) /* Direct Access to LED3 */ +#define XWAY_MDIO_LED_LED2_DA BIT(2) /* Direct Access to LED2 */ +#define XWAY_MDIO_LED_LED1_DA BIT(1) /* Direct Access to LED1 */ +#define XWAY_MDIO_LED_LED0_DA BIT(0) /* Direct Access to LED0 */ =20 #define XWAY_MDIO_INIT_WOL BIT(15) /* Wake-On-LAN */ #define XWAY_MDIO_INIT_MSRE BIT(14) @@ -159,6 +171,15 @@ static int xway_gphy_config_init(struct phy_device *= phydev) /* Clear all pending interrupts */ phy_read(phydev, XWAY_MDIO_ISTAT); =20 + /* Ensure that integrated led function is enabled for all leds */ + err =3D phy_write(phydev, XWAY_MDIO_LED, + XWAY_MDIO_LED_LED0_EN | + XWAY_MDIO_LED_LED1_EN | + XWAY_MDIO_LED_LED2_EN | + XWAY_MDIO_LED_LED3_EN); + if (err) + return err; + phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LEDCH, XWAY_MMD_LEDCH_NACS_NONE | XWAY_MMD_LEDCH_SBF_F02HZ | --=20 2.20.1