From patchwork Wed Jan 4 08:43:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arun Ramadoss X-Patchwork-Id: 38802 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp5038052wrt; Wed, 4 Jan 2023 00:52:38 -0800 (PST) X-Google-Smtp-Source: AMrXdXumUgQE2BLPMMcB0rQbNydEndF2WU6RzmcgK0SwcHIgAgwVQPrzk4pxzjmLSfdDsaHHoTuN X-Received: by 2002:a17:907:d68b:b0:7c1:691a:6d2c with SMTP id wf11-20020a170907d68b00b007c1691a6d2cmr54416048ejc.7.1672822358094; Wed, 04 Jan 2023 00:52:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672822358; cv=none; d=google.com; s=arc-20160816; b=LUp24v4Ez/hhvU8HkVHM4NzcgWBR4Lwk3rzdXAqrrzMBJyifHyP94A3vuuMl1Spima ggkk2z2ecpCOLpnf6Hf/xhKgllRMjq9XV7iMSi+dUbQf7q+7usnpPg8UZivE1cqwzmok Djftb5o2nr24Q0MH/G+8zTPjhwBu3MLbDA6z69Nh1gjlpa6qDHOcnJvVqBj03PmQG/4N wIWrnPmevtZN7GukIwyIpHcKM+uDRiFqrVJzOJTvtkx97bI+PUw7LTHdIKgFm64Ktdo1 xwgEB9MKEoL1aRbTq59EjCFrPFu3GC2z99eH/WnwuLrPXooe3Dq8y2hEzvJEdBC+GxGs mlSw== 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 :dkim-signature; bh=dazouIMWwtqscEI2FCegs6ODqGR36ck4xrdvZleTS4k=; b=Npe0Aucq0BTucmhhxOH6dS6v+xGrDItWM1Y7lrmOEBOIiuaZPNV72kM5rsTeCTgtXp VrDzrnOd+NluiI5+CncZCBWe/7lB0q9DihySTpEkmQKLus2GlgCKMamka2Sig2FhcT10 3T/b5BJG0w9qvHG0l53Ny9nfXDW6j4ddvuEevJ1xtSE1QihTBRDnSJOMTPo0mCEpw28/ NYa1ueLtF9BPieNmrGSkRBaSNdWndPJCMw21xrrC+0ZkLcsg5uC6GeXNfpj80KS8VuDJ PvFSMCIPw5g1eBX4Gm/ApZ31uWf2tCLrkJwYg+ZX4WRXFP/yQWVkp6PgIrXHTkRZ4EMz tlhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=I0DcaLzs; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hu9-20020a170907a08900b0084cd9dba34asi5192685ejc.969.2023.01.04.00.52.14; Wed, 04 Jan 2023 00:52:38 -0800 (PST) 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; dkim=pass header.i=@microchip.com header.s=mchp header.b=I0DcaLzs; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234371AbjADIs6 (ORCPT + 99 others); Wed, 4 Jan 2023 03:48:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238403AbjADIsc (ORCPT ); Wed, 4 Jan 2023 03:48:32 -0500 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7473E1DF20; Wed, 4 Jan 2023 00:46:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1672822005; x=1704358005; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=W2X6hd2YoYJaGLzxWhc78FUyCit417xk/t76AdZRdTM=; b=I0DcaLzsFcJuumP0GjvCwzqpyU8p8qEDXm/KGC7torrg7j+XB9jEYZa+ DdHrb7RXTbliLcYsOUJMRSPiAPhaShP31Ugw8h3I+RprnlgtEx6fWYTNe n1uQVYvgIDiE3XbyHnaS52Le/G43afd4vShdcK5Izie4SqdhdyGpzFWqp d+qay9LOU7RRx5RGN3EU/5uzxEqdTDjl8Gm89QaSfutkFGRs3drjlxG0v ge9ZPeOOw+awSSaCkySwTCgkf5O/C7pgxG7gPQahRoe8Ii8A7UVagXG7C ccmDEHBSb6gWDasUryqhRWZwCj3Cl+k7mPTjZeQvmneYwPR4lx41Ukz+T A==; X-IronPort-AV: E=Sophos;i="5.96,299,1665471600"; d="scan'208";a="194178463" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa2.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 04 Jan 2023 01:46:40 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 4 Jan 2023 01:46:38 -0700 Received: from CHE-LT-I17769U.microchip.com (10.10.115.15) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.16 via Frontend Transport; Wed, 4 Jan 2023 01:46:32 -0700 From: Arun Ramadoss To: , CC: , , , , , , , , , , , , , Subject: [Patch net-next v7 13/13] net: dsa: microchip: ptp: lan937x: Enable periodic output in LED pins Date: Wed, 4 Jan 2023 14:13:16 +0530 Message-ID: <20230104084316.4281-14-arun.ramadoss@microchip.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20230104084316.4281-1-arun.ramadoss@microchip.com> References: <20230104084316.4281-1-arun.ramadoss@microchip.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754081377414606937?= X-GMAIL-MSGID: =?utf-8?q?1754081377414606937?= There is difference in implementation of per_out pins between KSZ9563 and LAN937x. In KSZ9563, Timestamping control register (0x052C) bit 6, if 1 - timestamp input and 0 - trigger output. But it is opposite for LAN937x 1 - trigger output and 0 - timestamp input. As per per_out gpio pins, KSZ9563 has four Led pins and two dedicated gpio pins. But in LAN937x dedicated gpio pins are removed instead there are up to 10 LED pins out of which LED_0 and LED_1 can be mapped to PTP tou 0, 1 or 2. This patch sets the bit 6 in 0x052C register and configure the LED override and source register for LAN937x series of switches alone. Signed-off-by: Arun Ramadoss --- drivers/net/dsa/microchip/ksz_ptp.c | 26 +++++++++++++++++++++++++ drivers/net/dsa/microchip/ksz_ptp_reg.h | 8 ++++++++ 2 files changed, 34 insertions(+) diff --git a/drivers/net/dsa/microchip/ksz_ptp.c b/drivers/net/dsa/microchip/ksz_ptp.c index 3ba36d33e830..a66a256f8814 100644 --- a/drivers/net/dsa/microchip/ksz_ptp.c +++ b/drivers/net/dsa/microchip/ksz_ptp.c @@ -32,6 +32,28 @@ #define KSZ_PTP_INT_START 13 +static int ksz_ptp_tou_gpio(struct ksz_device *dev) +{ + int ret; + + if (!is_lan937x(dev)) + return 0; + + ret = ksz_rmw32(dev, REG_PTP_CTRL_STAT__4, GPIO_OUT, + GPIO_OUT); + if (ret) + return ret; + + ret = ksz_rmw32(dev, REG_SW_GLOBAL_LED_OVR__4, LED_OVR_1 | LED_OVR_2, + LED_OVR_1 | LED_OVR_2); + if (ret) + return ret; + + return ksz_rmw32(dev, REG_SW_GLOBAL_LED_SRC__4, + LED_SRC_PTP_GPIO_1 | LED_SRC_PTP_GPIO_2, + LED_SRC_PTP_GPIO_1 | LED_SRC_PTP_GPIO_2); +} + static int ksz_ptp_tou_reset(struct ksz_device *dev, u8 unit) { u32 data; @@ -224,6 +246,10 @@ static int ksz_ptp_enable_perout(struct ksz_device *dev, if (ret) return ret; + ret = ksz_ptp_tou_gpio(dev); + if (ret) + return ret; + ret = ksz_ptp_tou_start(dev, request->index); if (ret) return ret; diff --git a/drivers/net/dsa/microchip/ksz_ptp_reg.h b/drivers/net/dsa/microchip/ksz_ptp_reg.h index c5c76b9a4329..d71e85510cda 100644 --- a/drivers/net/dsa/microchip/ksz_ptp_reg.h +++ b/drivers/net/dsa/microchip/ksz_ptp_reg.h @@ -6,6 +6,14 @@ #ifndef __KSZ_PTP_REGS_H #define __KSZ_PTP_REGS_H +#define REG_SW_GLOBAL_LED_OVR__4 0x0120 +#define LED_OVR_2 BIT(1) +#define LED_OVR_1 BIT(0) + +#define REG_SW_GLOBAL_LED_SRC__4 0x0128 +#define LED_SRC_PTP_GPIO_1 BIT(3) +#define LED_SRC_PTP_GPIO_2 BIT(2) + /* 5 - PTP Clock */ #define REG_PTP_CLK_CTRL 0x0500