Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp9262124rwl; Wed, 11 Jan 2023 03:39:43 -0800 (PST) X-Google-Smtp-Source: AMrXdXtBgRDq7FWwHRAYwKtNiebW0SrM3RIQrVqgglgog5dTAj93uGLBXpjkli0603Q8obNf7Mlp X-Received: by 2002:a17:907:c28f:b0:83f:5f77:8ff9 with SMTP id tk15-20020a170907c28f00b0083f5f778ff9mr62225384ejc.12.1673437183607; Wed, 11 Jan 2023 03:39:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673437183; cv=none; d=google.com; s=arc-20160816; b=DfZnkvGKnEqnow3Zuc6aj9AzSQ48xX3+7g5/nqnoe5djtl+WT2RXaOqODuHIr2UhKo h/3qe05EyZbRMiLIOsGMubGRBoXIz/SBHUtv7cbYfIJhN7NWrxIVWRvPYkQAOKMjBTbA IcSyOv58IuE7m8UtsUc+dQN+fqKK1RkFLUcK+oHYiHqwHwEuwf7sqz+TE0s4R7Urzrs5 rp46fm4A5bKTe23qIbstpbg/KLjeopQmjNFG9A2WKHFappWOhDbe7nI5a1QXnG15SD8U RuhKqEKxxhFgWC+vNzlmxwg3yMCpCNQKXIcRuzx/sY6DYeSindgTB+oVOGyelAQi7noc eMkA== 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=BkPrecdgrR3b0Zn1YRgmmd3I/dP7Z74WRRmS7mk66ds=; b=LRthZWtnTm2XnG6Q1hsp7AEzSpBBDQVz6V3HySGmmBZyERlZzuHID/zQMjm7GgVAuo bU8ylemOk3CBuJkZAiPwWdN0I7ToBmRTvfc6VjMvtCeFFmbOyn2k6kU21BI3WQI+EKJE aFVxsnleR64miN0WvgPmLxb1fGxjonrcoxOFoWBMSiIL1fKJEc3feIV65ZvSzswQ2c1+ 8yOlz74cFUVfO8tOU4ykQJG4AhCT5aIoNx7NoiJaU+aHgtVqAgVk+O7B3kwJ80sdX9+1 dYTANCXAIkCu3OeVZPFmGdi7vxb8ALsP/VCqgQ2B8UONMVwlH4DITHwv4e9cIu6ODDlE s8Pg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mistralsolutions.com header.s=google header.b="mN/1G5z6"; 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=mistralsolutions.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sa1-20020a1709076d0100b00812e75e5250si16397784ejc.351.2023.01.11.03.39.29; Wed, 11 Jan 2023 03:39:43 -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=@mistralsolutions.com header.s=google header.b="mN/1G5z6"; 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=mistralsolutions.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232766AbjAKLQW (ORCPT + 55 others); Wed, 11 Jan 2023 06:16:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233315AbjAKLPB (ORCPT ); Wed, 11 Jan 2023 06:15:01 -0500 Received: from egress-ip33b.ess.de.barracuda.com (egress-ip33b.ess.de.barracuda.com [18.185.115.237]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EA43F178A4 for ; Wed, 11 Jan 2023 03:14:22 -0800 (PST) Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx-outbound45-59.eu-central-1c.ess.aws.cudaops.com (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 11 Jan 2023 11:14:20 +0000 Received: by mail-pl1-f200.google.com with SMTP id y8-20020a170902b48800b00192a600df83so10395823plr.15 for ; Wed, 11 Jan 2023 03:14:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mistralsolutions.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BkPrecdgrR3b0Zn1YRgmmd3I/dP7Z74WRRmS7mk66ds=; b=mN/1G5z6IeHzR0ihluySvAN5QNjYJ+qje7EMK6DCW0ewl5L270keiG8IVDtw/FMAdn /ImAXFmn0aHVdkqwb+6Ht2TBpKfACvCU2PBY56Ddv+Nx1LlMRAfS9/Oqbl0r24tCUz3k BhKEq3YDKT0Mc3h8z3KHCuJST9JwCRezUu3ws= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BkPrecdgrR3b0Zn1YRgmmd3I/dP7Z74WRRmS7mk66ds=; b=Fp6pQYC3ACrFCKUs9qL1O/r+HF9H+OR3powZ/pVtfGdNEbCiAftFBeLnpb4+FKfClR Q114pUlZakoZU/fVDHd09yZALsirFv35/YdRJIESFDbtKmLWzPlhrb43Mvqhl5FY0xHi Bn5W5nNGWThw8W3oGucGa4tCPnMGcWuiiPr+42YRB1hNagwQl1fqPG1tS/doiUrNWjAg Xxvuv0NV/K8j0mSXFLj0sQ4hoF46b+Gx9xdqTygxbrs/dJuHm2P6PT0b6m0LcEOzV7kJ H4Ffa18E8eOMu1Rs4ieX8HK2q1VL3AsKra6XT45aT6mt63y6IQwkC37DQLAsJkjTwKwJ Nu8g== X-Gm-Message-State: AFqh2kq3qboCgRRHY4VW2ZbaFT6irnI2J8UISbBgaz91jUh81FsvyHga iOjDF4CIx/iZ0MfajwN0yGUsIHtFXh/EewSmAPhv01tWyDAYus3BCnfpU+9BY3ViDOyl91Np4i+ 2cjUfHbO04+gRqTf++pQFqe6SSFGovM//wjfBHZTAGg7qnFDD7DFfdqwz3AdV X-Received: by 2002:a05:6a00:1d03:b0:580:149a:5650 with SMTP id a3-20020a056a001d0300b00580149a5650mr73276192pfx.22.1673435658896; Wed, 11 Jan 2023 03:14:18 -0800 (PST) X-Received: by 2002:a05:6a00:1d03:b0:580:149a:5650 with SMTP id a3-20020a056a001d0300b00580149a5650mr73276181pfx.22.1673435658626; Wed, 11 Jan 2023 03:14:18 -0800 (PST) Received: from LAP568U.mistral.in ([106.51.227.150]) by smtp.gmail.com with ESMTPSA id d206-20020a621dd7000000b00589ed7ae132sm4235666pfd.13.2023.01.11.03.14.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 03:14:18 -0800 (PST) From: Sinthu Raja X-Google-Original-From: Sinthu Raja To: Roger Quadros , Vinod Koul , Ravi Gunasekaran , Siddharth Vadapalli Cc: Vignesh Raghavendra , linux-phy@lists.infradead.org, linux-kernel@vger.kernel.org, Sinthu Raja Subject: [PATCH V3 1/2] phy: ti: j721e-wiz: Manage TypeC lane swap if typec-dir-gpios not specified Date: Wed, 11 Jan 2023 16:43:55 +0530 Message-Id: <20230111111356.17392-2-sinthu.raja@ti.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20230111111356.17392-1-sinthu.raja@ti.com> References: <20230111111356.17392-1-sinthu.raja@ti.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BESS-ID: 1673435659-311579-5583-381-1 X-BESS-VER: 2019.1_20221214.2106 X-BESS-Apparent-Source-IP: 209.85.214.200 X-BESS-Outbound-Spam-Score: 0.50 X-BESS-Outbound-Spam-Report: Code version 3.2, rules version 3.2.2.245393 [from cloudscan14-111.eu-central-1a.ess.aws.cudaops.com] Rule breakdown below pts rule name description ---- ---------------------- -------------------------------- 0.00 BSF_SC0_MISMATCH_TO META: Envelope rcpt doesn't match header 0.50 BSF_RULE7568M META: Custom Rule 7568M 0.00 BSF_BESS_OUTBOUND META: BESS Outbound X-BESS-Outbound-Spam-Status: SCORE=0.50 using account:ESS91090 scores of KILL_LEVEL=7.0 tests=BSF_SC0_MISMATCH_TO, BSF_RULE7568M, BSF_BESS_OUTBOUND X-BESS-BRTS-Status: 1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,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 From: Sinthu Raja It's possible that the Type-C plug orientation on the DIR line will be implemented through hardware design. In that situation, there won't be an external GPIO line available, but the driver still needs to address this since the DT won't use the typec-dir-gpios property. Add code to handle LN10 Type-C swap if typec-dir-gpios property is not specified in DT. Signed-off-by: Sinthu Raja Reviewed-by: Roger Quadros --- Changes in V3: ============= - Added Reviewed-by tag. Changes in V2: ============= Address review comments: - Update commit description as per review comments. - Restore code to check only debounce delay only if typec-dir-gpios property is specified in DT. - Rename lane_phy_reg variable as master_lane_num. - Update inline comments. drivers/phy/ti/phy-j721e-wiz.c | 39 +++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/drivers/phy/ti/phy-j721e-wiz.c b/drivers/phy/ti/phy-j721e-wiz.c index ddce5ef7711c..571f0ca18874 100644 --- a/drivers/phy/ti/phy-j721e-wiz.c +++ b/drivers/phy/ti/phy-j721e-wiz.c @@ -376,6 +376,7 @@ struct wiz { struct gpio_desc *gpio_typec_dir; int typec_dir_delay; u32 lane_phy_type[WIZ_MAX_LANES]; + u32 master_lane_num[WIZ_MAX_LANES]; struct clk *input_clks[WIZ_MAX_INPUT_CLOCKS]; struct clk *output_clks[WIZ_MAX_OUTPUT_CLOCKS]; struct clk_onecell_data clk_data; @@ -1234,15 +1235,31 @@ static int wiz_phy_reset_deassert(struct reset_controller_dev *rcdev, struct wiz *wiz = dev_get_drvdata(dev); int ret; - /* if typec-dir gpio was specified, set LN10 SWAP bit based on that */ - if (id == 0 && wiz->gpio_typec_dir) { - if (wiz->typec_dir_delay) - msleep_interruptible(wiz->typec_dir_delay); - - if (gpiod_get_value_cansleep(wiz->gpio_typec_dir)) - regmap_field_write(wiz->typec_ln10_swap, 1); - else - regmap_field_write(wiz->typec_ln10_swap, 0); + if (id == 0) { + /* if typec-dir gpio was specified, set LN10 SWAP bit based on that */ + if (wiz->gpio_typec_dir) { + if (wiz->typec_dir_delay) + msleep_interruptible(wiz->typec_dir_delay); + + if (gpiod_get_value_cansleep(wiz->gpio_typec_dir)) + regmap_field_write(wiz->typec_ln10_swap, 1); + else + regmap_field_write(wiz->typec_ln10_swap, 0); + } else { + /* if no typec-dir gpio was specified and PHY type is + * USB3 with master lane number is '0', set LN10 SWAP + * bit to '1' + */ + u32 num_lanes = wiz->num_lanes; + int i; + + for (i = 0; i < num_lanes; i++) { + if ((wiz->lane_phy_type[i] == PHY_TYPE_USB3) + && wiz->master_lane_num[i] == 0) { + regmap_field_write(wiz->typec_ln10_swap, 1); + } + } + } } if (id == 0) { @@ -1386,8 +1403,10 @@ static int wiz_get_lane_phy_types(struct device *dev, struct wiz *wiz) dev_dbg(dev, "%s: Lanes %u-%u have phy-type %u\n", __func__, reg, reg + num_lanes - 1, phy_type); - for (i = reg; i < reg + num_lanes; i++) + for (i = reg; i < reg + num_lanes; i++) { + wiz->master_lane_num[i] = reg; wiz->lane_phy_type[i] = phy_type; + } } return 0; -- 2.36.1