From patchwork Fri Jul 21 13:54:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 123888 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp231899vqg; Fri, 21 Jul 2023 07:09:51 -0700 (PDT) X-Google-Smtp-Source: APBJJlF2Omjq5vvTqSMJNdbpvbrrp2fwpbYu2R0oLlsAK0DFVwPxFX+IApXp1f857wux7f5NEuO9 X-Received: by 2002:a05:6a20:117:b0:133:ee16:567f with SMTP id 23-20020a056a20011700b00133ee16567fmr1610449pzr.13.1689948591038; Fri, 21 Jul 2023 07:09:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689948591; cv=none; d=google.com; s=arc-20160816; b=LeTb7q/PER14NGVJmp2REII86GhhcY2u4C78JqEenDK6rznDWjBIIwbU3iCrbJTdGk lXMPkytITaXIYFwMhM2/p/1c6CEKX+ZEjMTLaO163Tn6KvD3g5YwKP07bPshq9pm4fEH Ea06hw6IeWn6f4SVnNjwskrT70Ftd8bxFW2YfAmDfIxqQ4UyHdFpFGLAE8+BDRMg90DQ /kvTfbnx1sD4wNwZrrGdsr+N+3v314jl8f4xm3P4xgk2MY3fjTCkf2NYAb/xDaNRFfky qkpPnUUDYI69Y0z4XnFS8uzltyfg9gwIKGJhnjV3p6CY01Hr20lib5um/aKGG93wjrT+ W2Uw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=zVNFqiAkxufnqaPIT+pjjmQFEaWrFah3r5hz41RKQq0=; fh=yFqBPFPfvYTedN4oHtE49wZifoqshSB4sZnJfcmRU3Q=; b=gQt8vWwqJIxbw2sTxYJlntZFm1v/6lVDvfV7yWNia4RNUs1HivuFPH8naWyC4mMAtY +yHA/JoBVwogMgM4AdO39mcycX427jWe7Vl4E9HeOYptDrFMPq/rSXpMYEn7E9L23QxF F3KW5XyUPWIqUInEwM8SFUCTXSpUkF2YzYjM+DSBv6xxR1XJn2wOtU43NQPVDqm7Sn00 hLrwXEpvdw1bCJwElm+qUQS97sXeDiNX4aHKiP4qCUZbusboMuaE4W08nkBsG4tx/6ny KJEKUja1Bn1gPBmxmU0Z6QMkr5xIJwnIOUqlq5qUbTA3QmKRd4dC3IMmQCs7fv+E8tJb ybaA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q24-20020a637518000000b00553851380besi3088782pgc.397.2023.07.21.07.09.31; Fri, 21 Jul 2023 07:09:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231795AbjGUN4R (ORCPT + 99 others); Fri, 21 Jul 2023 09:56:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51890 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231669AbjGUNzw (ORCPT ); Fri, 21 Jul 2023 09:55:52 -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 7CB7630E6 for ; Fri, 21 Jul 2023 06:55:34 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qMqb3-0005Ru-Vy; Fri, 21 Jul 2023 15:55:06 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qMqb1-00150f-IU; Fri, 21 Jul 2023 15:55:03 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qMqb0-0068yu-1n; Fri, 21 Jul 2023 15:55:02 +0200 From: Oleksij Rempel To: "David S. Miller" , Andrew Lunn , Eric Dumazet , Florian Fainelli , Jakub Kicinski , Paolo Abeni , Vladimir Oltean , Woojung Huh , Arun Ramadoss , Conor Dooley , Krzysztof Kozlowski , Rob Herring Cc: Oleksij Rempel , Conor Dooley , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, "Russell King (Oracle)" , devicetree@vger.kernel.org Subject: [PATCH net-next v2 1/6] dt-bindings: net: dsa: microchip: add wakeup-source property Date: Fri, 21 Jul 2023 15:54:56 +0200 Message-Id: <20230721135501.1464455-2-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230721135501.1464455-1-o.rempel@pengutronix.de> References: <20230721135501.1464455-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 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 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772039533678167197 X-GMAIL-MSGID: 1772039533678167197 Add wakeup-source property to enable Wake on Lan functionality in the switch. Since PME wake pin is not always attached to the SoC, use wakeup-source instead of wakeup-gpios Signed-off-by: Oleksij Rempel Acked-by: Conor Dooley --- Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml index e51be1ac03623..26385ba624245 100644 --- a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml +++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml @@ -49,6 +49,8 @@ properties: Set if the output SYNCLKO clock should be disabled. Do not mix with microchip,synclko-125. + wakeup-source: true + required: - compatible - reg From patchwork Fri Jul 21 13:54:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 123897 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp242130vqg; Fri, 21 Jul 2023 07:24:38 -0700 (PDT) X-Google-Smtp-Source: APBJJlGlegIyUUXuoRohzWKfaHCtWVNw2sN5ych+4tsxdaGknBBONj35pFtYfgHSypG5qRFC6hIc X-Received: by 2002:a05:6512:3088:b0:4f6:3ab6:3d9e with SMTP id z8-20020a056512308800b004f63ab63d9emr1492206lfd.59.1689949477604; Fri, 21 Jul 2023 07:24:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689949477; cv=none; d=google.com; s=arc-20160816; b=eGRQIadvF66xHZjowjA9amswTvq8pmsnN5xShkRM2/L8H/VsB2wY/RXyD4Kxbm8X5N YHYbdjfnmY336K1LuRpHQF6igUqoxhc3BVN+vnbWcOEmw3nxPiPZV/1hMx9GNEfSLd5o Mo+0SbHhbZPUMgTf98xZaKTiLD9ntb20Zo2o6BnlmEOQtDiMZPmv+pk6ZHwwdjV2F9Ny OLDjkLIDsAwHSCqbPALiQ6w+xgRVgb0wcMHIEO4Sxao1c+fhDUAc5RuWbx89v0Zn+7MI l86nmMci1G8X8O0WKk0IVZEAlSX125Xkh/WxfU64tgP5k9bIUQ1WhgT17dY8lOme39tH IpRw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=BMg5XHMdhBKdMK2uBv4J1gEnfO63+zlXXL9WCl+fLFs=; fh=yFqBPFPfvYTedN4oHtE49wZifoqshSB4sZnJfcmRU3Q=; b=oS1V1Id0w+9rA0Uqn5mZvtSDSOzPIEwQ8yenG9h/QcZPbngOz/rrt2xtQICVVyE0Bw lJ5oM03viW3FlybY2kWYuQsPyZeZtL6hGik80PbJodB59wbazkQd+uZSY0lOPy3bMCaC U+0NA/Ff6vbTj3vD/aGn/ONyTiKf4VQyYXtLnC1aCwzlh+fZjetsro0nuGkaa5MXNF+P dDKWqlNzbfhP7B+HeJrrv146m7ArDbL8ejD/rijfoUd2i9Yma4gcYm3c8muyivqItxvP F+81z5vefBxMTG7PdnfslJuA/TOkJ+9XjyRYywG0x5xp5uqQhhB2CTFLu3Rf7X5LtD9B 6YOg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dt1-20020a170906b78100b00991c46d0bb6si2155449ejb.93.2023.07.21.07.24.11; Fri, 21 Jul 2023 07:24:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231147AbjGUN4T (ORCPT + 99 others); Fri, 21 Jul 2023 09:56:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51056 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231671AbjGUNzw (ORCPT ); Fri, 21 Jul 2023 09:55:52 -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 1ADE030F0 for ; Fri, 21 Jul 2023 06:55:36 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qMqb3-0005Rs-W1; Fri, 21 Jul 2023 15:55:06 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qMqb1-00150Z-Bh; Fri, 21 Jul 2023 15:55:03 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qMqb0-0068z4-1s; Fri, 21 Jul 2023 15:55:02 +0200 From: Oleksij Rempel To: "David S. Miller" , Andrew Lunn , Eric Dumazet , Florian Fainelli , Jakub Kicinski , Paolo Abeni , Vladimir Oltean , Woojung Huh , Arun Ramadoss , Conor Dooley , Krzysztof Kozlowski , Rob Herring Cc: Oleksij Rempel , Conor Dooley , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, "Russell King (Oracle)" , devicetree@vger.kernel.org Subject: [PATCH net-next v2 2/6] dt-bindings: net: dsa: microchip: add local-mac-address property support Date: Fri, 21 Jul 2023 15:54:57 +0200 Message-Id: <20230721135501.1464455-3-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230721135501.1464455-1-o.rempel@pengutronix.de> References: <20230721135501.1464455-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 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 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772040463354240591 X-GMAIL-MSGID: 1772040463354240591 All KSZ switches have configurable MAC address support which is used for sending pause frames and for Wake on Magic Packet. So, allow local-mac-address property in the root of the switch node. Signed-off-by: Oleksij Rempel Acked-by: Conor Dooley --- Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml index 26385ba624245..fd9a10d0ba28c 100644 --- a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml +++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml @@ -50,6 +50,7 @@ properties: microchip,synclko-125. wakeup-source: true + local-mac-address: true required: - compatible From patchwork Fri Jul 21 13:54:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 123885 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp231319vqg; Fri, 21 Jul 2023 07:09:10 -0700 (PDT) X-Google-Smtp-Source: APBJJlEIbAONqawD5R2cbuhKCYg1hBk3xUBxTM/s5iHw9Qem/g6ozwOMD3EkVT9HEGvEJ1AhNZur X-Received: by 2002:a17:902:e54d:b0:1b7:f64b:379b with SMTP id n13-20020a170902e54d00b001b7f64b379bmr3597423plf.17.1689948550280; Fri, 21 Jul 2023 07:09:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689948550; cv=none; d=google.com; s=arc-20160816; b=J4ONwe6k6Da6svhzAl0VPnc0N+bDraarDOwfXk4Paircc7PpxkYsNKt2JoNl3hB3RW p2aZKyeLKnbKIUJgs+ckGb22T+VJRuG15YIBWKDXQecgLtjr+LcL2KbguDUZ2Akq3bnl jvLo5jGfqYX4cEZb0S21uksY6PC4N5cnMN6MwX0hVu94Xw6ceG2Q9sNvFCfY6TVxkVPO it42euA1li5HyXnmZdjlzclW0UBGypI8oseGRSebVyW+ELtYkuMleL5l7COtJOzICHAO 6a9C6YH/TlM/W839/EiGprY0Q3ITWW9cuyNkM5Bqk7/6QSPrqNE6CCxbMxoOSJlIncgZ BvfA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=hqbJcSv/4FAzPuDgujmouiAd80VX460nGaun5XT/kN4=; fh=d9XFsL0QiW7mB0yy/Dn7n/CVmKRQqLnFoPiaUGJewck=; b=b5EEuUIqIqvBJ4UvmJ8Zcrx4/YaSlNgmrlVmraUY76S+gbaKsrK+xo0PWtJvgzva3W KCcTxXHtNnWY+2+2AKDX1l/D0jXIP9wWtSjYZwK88Uc5KgYF/DYTl0OkpRxf39QEi+9K 3xDVbm8CvU4AjXilCT8B5Y8xrVRk2HNqu6zRmFe6nlrO90GHy2GLC3bc2DSnoOoqgAMn UosQqHs7pc6/Tx0F+iHAWHY/kcx16KU8BFx2cS/ZvcfJ6BvBE3fqR064F1liwJqo3d8I o1SBmQKx0DJmARKVuh8ZovFaX6a6bF06CEV3IEUD82YK0vUlP4cuooSHBhtoeyy8f3uT tt0A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k10-20020a170902d58a00b001b809828a8fsi3214938plh.366.2023.07.21.07.08.48; Fri, 21 Jul 2023 07:09:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231743AbjGUN4J (ORCPT + 99 others); Fri, 21 Jul 2023 09:56:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231654AbjGUNzv (ORCPT ); Fri, 21 Jul 2023 09:55:51 -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 8CCF530D7 for ; Fri, 21 Jul 2023 06:55:32 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qMqb3-0005Rx-W2; Fri, 21 Jul 2023 15:55:06 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qMqb2-00150q-0a; Fri, 21 Jul 2023 15:55:04 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qMqb0-0068zE-1x; Fri, 21 Jul 2023 15:55:02 +0200 From: Oleksij Rempel To: "David S. Miller" , Andrew Lunn , Eric Dumazet , Florian Fainelli , Jakub Kicinski , Paolo Abeni , Vladimir Oltean , Woojung Huh , Arun Ramadoss , Conor Dooley , Krzysztof Kozlowski , Rob Herring Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, "Russell King (Oracle)" , devicetree@vger.kernel.org Subject: [PATCH net-next v2 3/6] net: dsa: microchip: ksz9477: add Wake on LAN support Date: Fri, 21 Jul 2023 15:54:58 +0200 Message-Id: <20230721135501.1464455-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230721135501.1464455-1-o.rempel@pengutronix.de> References: <20230721135501.1464455-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 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 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772039491376133559 X-GMAIL-MSGID: 1772039491376133559 Add WoL support for KSZ9477 family of switches. This code was tested on KSZ8563 chip and supports only wake on Magic Packet for now. Other parts needed for fully operational WoL support are in the followup patches. Signed-off-by: Oleksij Rempel Reviewed-by: Florian Fainelli --- drivers/net/dsa/microchip/ksz9477.c | 71 ++++++++++++++++++++++++++ drivers/net/dsa/microchip/ksz9477.h | 4 ++ drivers/net/dsa/microchip/ksz_common.c | 41 +++++++++++++++ 3 files changed, 116 insertions(+) diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c index f5d48310cbe8a..d14fcc98ec1e0 100644 --- a/drivers/net/dsa/microchip/ksz9477.c +++ b/drivers/net/dsa/microchip/ksz9477.c @@ -56,6 +56,74 @@ int ksz9477_change_mtu(struct ksz_device *dev, int port, int mtu) REG_SW_MTU_MASK, frame_size); } +static int ksz9477_handle_wake_reason(struct ksz_device *dev, int port) +{ + u8 pme_status; + int ret; + + ret = ksz_pread8(dev, port, REG_PORT_PME_STATUS, &pme_status); + if (ret) + return ret; + + if (pme_status) + dev_dbg(dev->dev, "Wake event on port %d due to: %s %s %s\n", + port, + pme_status & PME_WOL_MAGICPKT ? "\"Magic Packet\"" : "", + pme_status & PME_WOL_LINKUP ? "\"Link Up\"" : "", + pme_status & PME_WOL_ENERGY ? "\"Enery detect\"" : ""); + + return ksz_pwrite8(dev, port, REG_PORT_PME_STATUS, pme_status); +} + +void ksz9477_get_wol(struct ksz_device *dev, int port, + struct ethtool_wolinfo *wol) +{ + u8 pme_ctrl, pme_conf; + int ret; + + ret = ksz_read8(dev, REG_SW_PME_CTRL, &pme_conf); + if (ret) + return; + + if (!(pme_conf & PME_ENABLE)) + return; + + wol->supported = WAKE_MAGIC; + + ret = ksz_pread8(dev, port, REG_PORT_PME_CTRL, &pme_ctrl); + if (ret) + return; + + if (pme_ctrl & PME_WOL_MAGICPKT) + wol->wolopts |= WAKE_MAGIC; +} + +int ksz9477_set_wol(struct ksz_device *dev, int port, + struct ethtool_wolinfo *wol) +{ + u8 pme_conf, pme_ctrl = 0; + int ret; + + if (wol->wolopts & ~WAKE_MAGIC) + return -EINVAL; + + ret = ksz_read8(dev, REG_SW_PME_CTRL, &pme_conf); + if (ret) + return ret; + + if (!(pme_conf & PME_ENABLE)) + return -EOPNOTSUPP; + + ret = ksz9477_handle_wake_reason(dev, port); + if (ret) + return ret; + + if (wol->wolopts & WAKE_MAGIC) + pme_ctrl |= PME_WOL_MAGICPKT; + + return ksz_pwrite8(dev, port, REG_PORT_PME_CTRL, pme_ctrl); +} + static int ksz9477_wait_vlan_ctrl_ready(struct ksz_device *dev) { unsigned int val; @@ -1004,6 +1072,9 @@ void ksz9477_port_setup(struct ksz_device *dev, int port, bool cpu_port) /* clear pending interrupts */ if (dev->info->internal_phy[port]) ksz_pread16(dev, port, REG_PORT_PHY_INT_ENABLE, &data16); + + /* clear pending wake flags */ + ksz9477_handle_wake_reason(dev, port); } void ksz9477_config_cpu_port(struct dsa_switch *ds) diff --git a/drivers/net/dsa/microchip/ksz9477.h b/drivers/net/dsa/microchip/ksz9477.h index 27171482d0556..f972b6e7f1d12 100644 --- a/drivers/net/dsa/microchip/ksz9477.h +++ b/drivers/net/dsa/microchip/ksz9477.h @@ -58,6 +58,10 @@ int ksz9477_dsa_init(struct ksz_device *dev); int ksz9477_switch_init(struct ksz_device *dev); void ksz9477_switch_exit(struct ksz_device *dev); void ksz9477_port_queue_split(struct ksz_device *dev, int port); +void ksz9477_get_wol(struct ksz_device *dev, int port, + struct ethtool_wolinfo *wol); +int ksz9477_set_wol(struct ksz_device *dev, int port, + struct ethtool_wolinfo *wol); int ksz9477_port_acl_init(struct ksz_device *dev, int port); int ksz9477_cls_flower_add(struct dsa_switch *ds, int port, diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 2d98c3055f7a0..6adc2c6537a31 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -2779,6 +2779,45 @@ static int ksz_set_mac_eee(struct dsa_switch *ds, int port, return 0; } +static void ksz_get_wol(struct dsa_switch *ds, int port, + struct ethtool_wolinfo *wol) +{ + struct ksz_device *dev = ds->priv; + + memset(wol, 0, sizeof(*wol)); + + switch (dev->chip_id) { + case KSZ8563_CHIP_ID: + case KSZ9477_CHIP_ID: + case KSZ9563_CHIP_ID: + case KSZ9567_CHIP_ID: + case KSZ9893_CHIP_ID: + case KSZ9896_CHIP_ID: + case KSZ9897_CHIP_ID: + ksz9477_get_wol(dev, port, wol); + return; + } +} + +static int ksz_set_wol(struct dsa_switch *ds, int port, + struct ethtool_wolinfo *wol) +{ + struct ksz_device *dev = ds->priv; + + switch (dev->chip_id) { + case KSZ8563_CHIP_ID: + case KSZ9477_CHIP_ID: + case KSZ9563_CHIP_ID: + case KSZ9567_CHIP_ID: + case KSZ9893_CHIP_ID: + case KSZ9896_CHIP_ID: + case KSZ9897_CHIP_ID: + return ksz9477_set_wol(dev, port, wol); + } + + return -EOPNOTSUPP; +} + static void ksz_set_xmii(struct ksz_device *dev, int port, phy_interface_t interface) { @@ -3485,6 +3524,8 @@ static const struct dsa_switch_ops ksz_switch_ops = { .get_pause_stats = ksz_get_pause_stats, .port_change_mtu = ksz_change_mtu, .port_max_mtu = ksz_max_mtu, + .get_wol = ksz_get_wol, + .set_wol = ksz_set_wol, .get_ts_info = ksz_get_ts_info, .port_hwtstamp_get = ksz_hwtstamp_get, .port_hwtstamp_set = ksz_hwtstamp_set, From patchwork Fri Jul 21 13:54:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 123874 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp223091vqg; Fri, 21 Jul 2023 06:59:07 -0700 (PDT) X-Google-Smtp-Source: APBJJlEVYmJqJxjzEcDvQghOiifdqii3cAB3B6D/gaqcWyjShfmlR06Kzwo7G55j5XOXOVLrYcAx X-Received: by 2002:a05:6a20:7d87:b0:10f:f672:6e88 with SMTP id v7-20020a056a207d8700b0010ff6726e88mr2282676pzj.4.1689947947493; Fri, 21 Jul 2023 06:59:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689947947; cv=none; d=google.com; s=arc-20160816; b=FyGHFC4ivDXHhJbum/JWJ+pTYEIqCFBh5RNeejaHlnc3rNIM7+XAg3JGyADAONQrC2 E09DTAmko1Rw0QeWayRdOxWcNXdfFi9yjsRpuAsb3ylbB0VNqspErxVVLowNVVu4YO84 8KMX8tTrMqOWIddV5eB7zOp5T0wRBqLj3GtH2I1R+nacouDWF4wctXnK37ODV0t9xDaM 1Vt/JtNfzpsYL9nLw7Sb+KaVJs7+SL5FIzMcfaPrUaKu/4nwNNrKvhrsTukr13xrWgtA ozjPCXQob/9aqjzcKwhz8CixMvElpzjyLDFjjEYsTMbx71zonSk09wzAKQYjm3n4RWwt iX2g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=vkLWy8dyGjDGji5Pw5E0MiV7CRqIjjFYWuh5RdiEnqs=; fh=d9XFsL0QiW7mB0yy/Dn7n/CVmKRQqLnFoPiaUGJewck=; b=ZwbZwIYkHscPID/rz5NEt9t4oBlAg/y914IQmRb02Bi/Fppf7LT9czPfiOdF/UIPmH CxK34aidr3TzBRiFOcOgI1Y5NTzp0JBTEfwYr8xqG0kKcf+hDeRdT4Wa3wHWTvmMflpE HDs4sRymbnzu3xL6xi6MhdO1hkoJycIFZLGViPmXNBB2Q1gJMBiSGwKKbX72y8IcUe8C dW9SUMjNmdO6l5OzLXyWueKzoHSdKuZT9oy4L7QO5nrNlybqTZ31/KlCF9pvbJqbpsgk 6nrT06sYoINyQ3NGHRPQ1AFKtJaGVVKnnIKggVlzL34wS1ws63q7wYu5pOgY1Bpe9usB A6/g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q13-20020a62e10d000000b00672ad8f038csi2903534pfh.184.2023.07.21.06.58.54; Fri, 21 Jul 2023 06:59:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231639AbjGUNz6 (ORCPT + 99 others); Fri, 21 Jul 2023 09:55:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51256 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231573AbjGUNzu (ORCPT ); Fri, 21 Jul 2023 09:55:50 -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 ACBA630D4 for ; Fri, 21 Jul 2023 06:55:31 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qMqb3-0005Rr-W2; Fri, 21 Jul 2023 15:55:06 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qMqb1-00150Y-AA; Fri, 21 Jul 2023 15:55:03 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qMqb0-0068zO-21; Fri, 21 Jul 2023 15:55:02 +0200 From: Oleksij Rempel To: "David S. Miller" , Andrew Lunn , Eric Dumazet , Florian Fainelli , Jakub Kicinski , Paolo Abeni , Vladimir Oltean , Woojung Huh , Arun Ramadoss , Conor Dooley , Krzysztof Kozlowski , Rob Herring Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, "Russell King (Oracle)" , devicetree@vger.kernel.org Subject: [PATCH net-next v2 4/6] net: dsa: microchip: ksz9477: add Wake on PHY event support Date: Fri, 21 Jul 2023 15:54:59 +0200 Message-Id: <20230721135501.1464455-5-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230721135501.1464455-1-o.rempel@pengutronix.de> References: <20230721135501.1464455-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 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 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772038858530428381 X-GMAIL-MSGID: 1772038858530428381 KSZ9477 family of switches supports multiple PHY events: - wake on Link Up - wake on Energy Detect. Since current UAPI can't differentiate between this PHY events, map all of them to WAKE_PHY. Signed-off-by: Oleksij Rempel Reviewed-by: Florian Fainelli --- drivers/net/dsa/microchip/ksz9477.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c index d14fcc98ec1e0..e3143b95a8ec9 100644 --- a/drivers/net/dsa/microchip/ksz9477.c +++ b/drivers/net/dsa/microchip/ksz9477.c @@ -88,7 +88,7 @@ void ksz9477_get_wol(struct ksz_device *dev, int port, if (!(pme_conf & PME_ENABLE)) return; - wol->supported = WAKE_MAGIC; + wol->supported = WAKE_PHY | WAKE_MAGIC; ret = ksz_pread8(dev, port, REG_PORT_PME_CTRL, &pme_ctrl); if (ret) @@ -96,6 +96,8 @@ void ksz9477_get_wol(struct ksz_device *dev, int port, if (pme_ctrl & PME_WOL_MAGICPKT) wol->wolopts |= WAKE_MAGIC; + if (pme_ctrl & (PME_WOL_LINKUP | PME_WOL_ENERGY)) + wol->wolopts |= WAKE_PHY; } int ksz9477_set_wol(struct ksz_device *dev, int port, @@ -104,7 +106,7 @@ int ksz9477_set_wol(struct ksz_device *dev, int port, u8 pme_conf, pme_ctrl = 0; int ret; - if (wol->wolopts & ~WAKE_MAGIC) + if (wol->wolopts & ~(WAKE_PHY | WAKE_MAGIC)) return -EINVAL; ret = ksz_read8(dev, REG_SW_PME_CTRL, &pme_conf); @@ -120,6 +122,8 @@ int ksz9477_set_wol(struct ksz_device *dev, int port, if (wol->wolopts & WAKE_MAGIC) pme_ctrl |= PME_WOL_MAGICPKT; + if (wol->wolopts & WAKE_PHY) + pme_ctrl |= PME_WOL_LINKUP | PME_WOL_ENERGY; return ksz_pwrite8(dev, port, REG_PORT_PME_CTRL, pme_ctrl); } From patchwork Fri Jul 21 13:55:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 123880 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp228454vqg; Fri, 21 Jul 2023 07:05:42 -0700 (PDT) X-Google-Smtp-Source: APBJJlFjUeuzuxE6K7r5Dviqez99owhgZstMCiDv/4twOCkiU2o7kicLFdS7A7LNz7HPx4siQjdh X-Received: by 2002:a05:6a21:7895:b0:138:64d4:b055 with SMTP id bf21-20020a056a21789500b0013864d4b055mr858959pzc.55.1689948341718; Fri, 21 Jul 2023 07:05:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689948341; cv=none; d=google.com; s=arc-20160816; b=FEFmqyBTreT3i38+TaELpMk48LY0tVkYsw/DYuAa/qg+1avb0MCPlNRfvc+UZnLQas I093m7YAY2QWr36djT8GNk3iXKgKxEYz7vLTywSgr+MjCm9IS7RD10tBI63WA5slupLc GACpro2fM1OXa/B16pAgx6POSO/UZhE3AQdZYHkBuGY50ovA9QOMh/PmzcXNgw6DCdmP zvur3xgGcRGnkO+X+c7lBrBbiL5fyIOO9CNTGOepEjvXGPV+fFFHQpaGC2952no1Ibdm OjTP2DqbqB7428Xi29WI0Nmax490C4oje9eEEY1gylFvkFQ76FBfK+bjW0fMJCd+lyuJ 5c1g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=3Z1FKR+/1JvmcC33c0fmPTzx8mWQpUYeQ4CeFCVF3uQ=; fh=d9XFsL0QiW7mB0yy/Dn7n/CVmKRQqLnFoPiaUGJewck=; b=DMGmHbBbARmR+vwhoRGo7JCxWALbyXIXl70mQjkM+00ZBEDCnj0SaDAHnguh5SYBfi ZG6fg/PfIKxWImhNu1PpMJRPfQ8jOtfwLwZooKdi7wad06n0TR2AGyWrba0AJzwdPpk2 3cEkXW03GwHBvq5OZm1HxNm524Qo40f9oxtpnODqOAVhtO7PpuafeNrB6kRWP8BsdZF4 kMYqeflYjvXi7c22Is3LvbN56UM9QySf+uwGLwIBnJqwXYml9mJmr6jG7Ko0A5pnl1qW cxaPlvBNwS2ppPe/FuZJ2QzZj9pIes3pfAxymgg+2CmGLmkBZ0TKb8Sxm2M8ES7Ecvkl XW+w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cq27-20020a056a00331b00b00682850547afsi2941796pfb.193.2023.07.21.07.05.10; Fri, 21 Jul 2023 07:05:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231768AbjGUN4N (ORCPT + 99 others); Fri, 21 Jul 2023 09:56:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231591AbjGUNzw (ORCPT ); Fri, 21 Jul 2023 09:55:52 -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 1C1A930E4 for ; Fri, 21 Jul 2023 06:55:34 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qMqb3-0005Rw-W3; Fri, 21 Jul 2023 15:55:06 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qMqb1-00150n-Og; Fri, 21 Jul 2023 15:55:03 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qMqb0-0068zY-25; Fri, 21 Jul 2023 15:55:02 +0200 From: Oleksij Rempel To: "David S. Miller" , Andrew Lunn , Eric Dumazet , Florian Fainelli , Jakub Kicinski , Paolo Abeni , Vladimir Oltean , Woojung Huh , Arun Ramadoss , Conor Dooley , Krzysztof Kozlowski , Rob Herring Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, "Russell King (Oracle)" , devicetree@vger.kernel.org Subject: [PATCH net-next v2 5/6] net: dsa: microchip: use wakeup-source DT property to enable PME output Date: Fri, 21 Jul 2023 15:55:00 +0200 Message-Id: <20230721135501.1464455-6-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230721135501.1464455-1-o.rempel@pengutronix.de> References: <20230721135501.1464455-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 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 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772039272031550977 X-GMAIL-MSGID: 1772039272031550977 KSZ switches with WoL support signals wake event over PME pin. If this pin is attached to some external PMIC or System Controller can't be described as GPIO, the only way to describe it in the devicetree is to use wakeup-source property. So, add support for this property and enable PME switch output if this property is present. Signed-off-by: Oleksij Rempel Reviewed-by: Florian Fainelli --- drivers/net/dsa/microchip/ksz9477.c | 3 +++ drivers/net/dsa/microchip/ksz_common.c | 3 +++ drivers/net/dsa/microchip/ksz_common.h | 1 + 3 files changed, 7 insertions(+) diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c index e3143b95a8ec9..69909241b1f44 100644 --- a/drivers/net/dsa/microchip/ksz9477.c +++ b/drivers/net/dsa/microchip/ksz9477.c @@ -1208,6 +1208,9 @@ int ksz9477_setup(struct dsa_switch *ds) /* enable global MIB counter freeze function */ ksz_cfg(dev, REG_SW_MAC_CTRL_6, SW_MIB_COUNTER_FREEZE, true); + if (dev->wakeup_source) + ksz_write8(dev, REG_SW_PME_CTRL, PME_ENABLE); + return 0; } diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 6adc2c6537a31..a7b298838932c 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -3715,6 +3715,9 @@ int ksz_switch_register(struct ksz_device *dev) dev_err(dev->dev, "inconsistent synclko settings\n"); return -EINVAL; } + + dev->wakeup_source = of_property_read_bool(dev->dev->of_node, + "wakeup-source"); } ret = dsa_register_switch(dev->ds); diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h index 6dca488fbc5f2..589f8b582a415 100644 --- a/drivers/net/dsa/microchip/ksz_common.h +++ b/drivers/net/dsa/microchip/ksz_common.h @@ -158,6 +158,7 @@ struct ksz_device { phy_interface_t compat_interface; bool synclko_125; bool synclko_disable; + bool wakeup_source; struct vlan_table *vlan_cache; From patchwork Fri Jul 21 13:55:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 123883 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp230493vqg; Fri, 21 Jul 2023 07:08:04 -0700 (PDT) X-Google-Smtp-Source: APBJJlH6hNpxAvfuGAk+7XxFkfZg8ElThQ9idj9cIbXNuBSU+w9xpuFTpPYzF1LsgR4rURzaQgXr X-Received: by 2002:a05:6a00:2191:b0:668:83b6:bfe8 with SMTP id h17-20020a056a00219100b0066883b6bfe8mr201011pfi.9.1689948484417; Fri, 21 Jul 2023 07:08:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689948484; cv=none; d=google.com; s=arc-20160816; b=y5aeXYZC4A8e/K9FlXKxRaulVxxdG0OEN36wFnGkMEnlmlR6li46E2yYtKdjMMJkbU ShVePgjuVJjmNtJIH6JM3Nv1lihVDScbuSGCQWFv2fnPCz/2LpaneDBY750lCCwV3L7K 2PFD1/fJgTnR88ijUcolkoq6eRckxhKj8N9XQTHXekOq1MuAnP+LRzQWELZJc5sPkJ0Y EpIeQJSeZAz4Uzapt0Y7bxzamJ1MVBbcFoSAg/N8xnCQA9YWtVaIySfJRJ4vMFnG3gUQ OK6m8Gc2Erq8XLzk8LcQ5Cczg03xb1ZNW8ALtdluws+FoFVAALT7GDeD4NOCa9jzPAn8 QJRw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=T4vNAC/E026Y+XWj9QNO95YMB3KUobeaIzAQ2G9fpZA=; fh=d9XFsL0QiW7mB0yy/Dn7n/CVmKRQqLnFoPiaUGJewck=; b=QFK2UgPxcelL3y3b50rPuWvmK5nYu6+TYOS++4P238vn4S3fQqVLmFRSKoDuVo2PSB BN5k3002hXObLvw8QSoQrVFvIs6iz/33pX7COufbGwC9SkNYDzYWUFAUYAh/f2EUkcc9 AaeFVufLZ7Tb26eO5smeZeN9NtQAycTI9qLBZIbeXHomXiU6daHbdSgiedIVoJA0awlX oA8yviT4r3uhPTRNvqsj6QGCXrGQo/zXXukajKGiB72aHWf6//aceQULFSj9f6wXYF6R NSzaMJ+nLViKpCf1rDYgD0WqjFFdpTaS9Hj3+ioU/UKIqKPKtyKmuqdCPrjPJjdF0MW+ bzNg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l25-20020a635b59000000b0056387def1d2si1010557pgm.413.2023.07.21.07.07.49; Fri, 21 Jul 2023 07:08:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231715AbjGUN4F (ORCPT + 99 others); Fri, 21 Jul 2023 09:56:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231652AbjGUNzu (ORCPT ); Fri, 21 Jul 2023 09:55:50 -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 ACAB130D2 for ; Fri, 21 Jul 2023 06:55:31 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qMqb3-0005Rt-W0; Fri, 21 Jul 2023 15:55:06 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qMqb1-00150e-Ii; Fri, 21 Jul 2023 15:55:03 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qMqb0-0068zi-29; Fri, 21 Jul 2023 15:55:02 +0200 From: Oleksij Rempel To: "David S. Miller" , Andrew Lunn , Eric Dumazet , Florian Fainelli , Jakub Kicinski , Paolo Abeni , Vladimir Oltean , Woojung Huh , Arun Ramadoss , Conor Dooley , Krzysztof Kozlowski , Rob Herring Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, "Russell King (Oracle)" , devicetree@vger.kernel.org Subject: [PATCH net-next v2 6/6] net: dsa: microchip: ksz9477: make switch MAC address configurable Date: Fri, 21 Jul 2023 15:55:01 +0200 Message-Id: <20230721135501.1464455-7-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230721135501.1464455-1-o.rempel@pengutronix.de> References: <20230721135501.1464455-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 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 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772039422033756153 X-GMAIL-MSGID: 1772039422033756153 The switch MAC address is used for sending pause frames and for Wake on Magic Packet. So, make use of local-mac-address property in the switch node root and configure it in the HW. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz9477.c | 8 ++++++++ drivers/net/dsa/microchip/ksz_common.c | 7 +++++++ drivers/net/dsa/microchip/ksz_common.h | 2 ++ 3 files changed, 17 insertions(+) diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c index 69909241b1f44..427176c1441f7 100644 --- a/drivers/net/dsa/microchip/ksz9477.c +++ b/drivers/net/dsa/microchip/ksz9477.c @@ -1211,6 +1211,14 @@ int ksz9477_setup(struct dsa_switch *ds) if (dev->wakeup_source) ksz_write8(dev, REG_SW_PME_CTRL, PME_ENABLE); + if (is_valid_ether_addr(dev->mac_addr)) { + int i; + + for (i = 0; i < ETH_ALEN; i++) + ksz_write8(dev, REG_SW_MAC_ADDR_0 + i, + dev->mac_addr[i]); + } + return 0; } diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index a7b298838932c..4de2456b5a349 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -3684,6 +3684,8 @@ int ksz_switch_register(struct ksz_device *dev) for (port_num = 0; port_num < dev->info->port_cnt; ++port_num) dev->ports[port_num].interface = PHY_INTERFACE_MODE_NA; if (dev->dev->of_node) { + const u8 *mac; + ret = of_get_phy_mode(dev->dev->of_node, &interface); if (ret == 0) dev->compat_interface = interface; @@ -3718,6 +3720,11 @@ int ksz_switch_register(struct ksz_device *dev) dev->wakeup_source = of_property_read_bool(dev->dev->of_node, "wakeup-source"); + + mac = of_get_property(dev->dev->of_node, "local-mac-address", + NULL); + if (mac) + memcpy(dev->mac_addr, mac, ETH_ALEN); } ret = dsa_register_switch(dev->ds); diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h index 589f8b582a415..bdfcd1dc02ee9 100644 --- a/drivers/net/dsa/microchip/ksz_common.h +++ b/drivers/net/dsa/microchip/ksz_common.h @@ -171,6 +171,8 @@ struct ksz_device { struct mutex lock_irq; /* IRQ Access */ struct ksz_irq girq; struct ksz_ptp_data ptp_data; + + u8 mac_addr[ETH_ALEN]; }; /* List of supported models */