Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp4198932pxt; Tue, 10 Aug 2021 23:39:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy3lBodnbQtGzU6MDcsXv0E0oDUryPbN5IUKXNphHGLya6w2nFPIxk6kmLzZWqt/U8uRLhN X-Received: by 2002:a17:906:1d43:: with SMTP id o3mr2205220ejh.44.1628663956932; Tue, 10 Aug 2021 23:39:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628663956; cv=none; d=google.com; s=arc-20160816; b=rtxZJPh+ZAzhFSgWYcAMnA1oHUC8PBW3PkDo2lT7XrsGXIVbvwdb9jHqOWpdUjUq08 7SW7gTJYaXm/KatcFcrbuu8mSXr/QXyAJtb349Xbu3J1efqI3NobHIzK1Y24OL2g/r87 46FbZlH06g1aVio7imm7zTiFwsr9w32WxPK1hpN5Fxv0/dogobxQ0Hwa/SIQoMxgu0Ge 24zXuTfra5wH/45ccuLgTapO2iiWpQZ1vRjZd43kU4QVugB9uJe/tGsWnxoVHdurrE77 1fT4XhdaxWP5oPtzKWtszylICLNIDUGZx8NHctDA6KzQAqpP2HViabH7pZC0BSRb1ttg mWQA== 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=VRE9M2u0jp+0a1En9erJ3/JA9TRFSQCDV3sGW6WPKGY=; b=pdtujIkQOSZLf2TkstkZF56z5VwNTRNAYiDxMHLyepv/36K97fCXT/CZQQSSeqYJyJ IfuUdlHk0xqLyfY4U29zhZfZX18/0GiKujJphEjIx8VXrxlgnFwqusgC9/jJ1mB7w+65 7iyfRNoxT1O/G/zYOuwVRjW9E2wOir6KZ+61gVigby5NnrrByRp4XwIcPdHM7czsm+SM VR4uo6JDnZdVNeo1xGURa0zTeK3PzFrcHLnmK4ISS3EocgW+66uATPxpdyIoXU6UXmRh lEiuOqCWqBhNZlyMHMvae5RCw7SwukHcROP5vf8Kg6g3aB6lcstSmGPQvnYKAFP/6Qpk f9Qg== 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 m14si4731941edc.610.2021.08.10.23.38.53; Tue, 10 Aug 2021 23:39:16 -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 S234808AbhHKGht (ORCPT + 99 others); Wed, 11 Aug 2021 02:37:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234760AbhHKGhs (ORCPT ); Wed, 11 Aug 2021 02:37:48 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 546FBC061765 for ; Tue, 10 Aug 2021 23:37:25 -0700 (PDT) Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mDhrY-0007l8-5V; Wed, 11 Aug 2021 08:37:16 +0200 Received: from ore by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1mDhrV-00058b-EE; Wed, 11 Aug 2021 08:37:13 +0200 From: Oleksij Rempel To: Andrew Lunn , Heiner Kallweit , "David S. Miller" , Jakub Kicinski , Jean Delvare , Guenter Roeck Cc: Oleksij Rempel , Pengutronix Kernel Team , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Marek Vasut , David Jander , linux-hwmon@vger.kernel.org Subject: [PATCH net-next v2 1/1] net: phy: nxp-tja11xx: log critical health state Date: Wed, 11 Aug 2021 08:37:12 +0200 Message-Id: <20210811063712.19695-1-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::7 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org TJA1102 provides interrupt notification for the critical health states like overtemperature and undervoltage. The overtemperature bit is set if package temperature is beyond 155C°. This functionality was tested by heating the package up to 200C° The undervoltage bit is set if supply voltage drops beyond some critical threshold. Currently not tested. In a typical use case, both of this events should be logged and stored (or send to some remote system) for further investigations. Signed-off-by: Oleksij Rempel --- drivers/net/phy/nxp-tja11xx.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/nxp-tja11xx.c b/drivers/net/phy/nxp-tja11xx.c index afd7afa1f498..9944cc501806 100644 --- a/drivers/net/phy/nxp-tja11xx.c +++ b/drivers/net/phy/nxp-tja11xx.c @@ -47,12 +47,14 @@ #define MII_INTSRC_LINK_FAIL BIT(10) #define MII_INTSRC_LINK_UP BIT(9) #define MII_INTSRC_MASK (MII_INTSRC_LINK_FAIL | MII_INTSRC_LINK_UP) -#define MII_INTSRC_TEMP_ERR BIT(1) #define MII_INTSRC_UV_ERR BIT(3) +#define MII_INTSRC_TEMP_ERR BIT(1) #define MII_INTEN 22 #define MII_INTEN_LINK_FAIL BIT(10) #define MII_INTEN_LINK_UP BIT(9) +#define MII_INTEN_UV_ERR BIT(3) +#define MII_INTEN_TEMP_ERR BIT(1) #define MII_COMMSTAT 23 #define MII_COMMSTAT_LINK_UP BIT(15) @@ -607,7 +609,8 @@ static int tja11xx_config_intr(struct phy_device *phydev) if (err) return err; - value = MII_INTEN_LINK_FAIL | MII_INTEN_LINK_UP; + value = MII_INTEN_LINK_FAIL | MII_INTEN_LINK_UP | + MII_INTEN_UV_ERR | MII_INTEN_TEMP_ERR; err = phy_write(phydev, MII_INTEN, value); } else { err = phy_write(phydev, MII_INTEN, value); @@ -622,6 +625,7 @@ static int tja11xx_config_intr(struct phy_device *phydev) static irqreturn_t tja11xx_handle_interrupt(struct phy_device *phydev) { + struct device *dev = &phydev->mdio.dev; int irq_status; irq_status = phy_read(phydev, MII_INTSRC); @@ -630,6 +634,11 @@ static irqreturn_t tja11xx_handle_interrupt(struct phy_device *phydev) return IRQ_NONE; } + if (irq_status & MII_INTSRC_TEMP_ERR) + dev_warn(dev, "Overtemperature error detected (temp > 155C°).\n"); + if (irq_status & MII_INTSRC_UV_ERR) + dev_warn(dev, "Undervoltage error detected.\n"); + if (!(irq_status & MII_INTSRC_MASK)) return IRQ_NONE; -- 2.30.2