From patchwork Thu Jan 7 20:59:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 359257 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FD21C433E6 for ; Thu, 7 Jan 2021 21:00:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6527523447 for ; Thu, 7 Jan 2021 21:00:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726410AbhAGVAK (ORCPT ); Thu, 7 Jan 2021 16:00:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726073AbhAGVAJ (ORCPT ); Thu, 7 Jan 2021 16:00:09 -0500 Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A4C8C0612F4; Thu, 7 Jan 2021 12:59:29 -0800 (PST) Received: by mail-qk1-x72c.google.com with SMTP id p14so6759882qke.6; Thu, 07 Jan 2021 12:59:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=nEfwopL7NpPolFEYELpz+EkzQcRyvHWwBEWEGTr7pOY=; b=SsImQMKdM74wq73O2vuQD2bnyE5eyy+b6w7qYMpaVt2YUmxHZAnBO6oYw0YIaoo2qR tzYa/ZxTWf4yomGC7qUJ3sTABGIX2BwLEAODFPEey9ZswllUC9SbyMXCZrSAL3/AgtTy yAeU1EORz24wBp00DfKFPb70uFXDgDm5hYM6tFCd5u8kYhEXnMdeF1kOpodUq1NHMse9 9Mm08FmOq2sYU0MUxpKDtE/C8DSGxO5Ow6cUiipd1gA2ejJppLDZxIHGiYIgZtQe4IVf eAUEhd5JdoDHEc478tVSMVFVOLIWA/Z8IjqKk6dyhu2a0cnL3w0meB3+ObeAgZDdZY5n sEog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=nEfwopL7NpPolFEYELpz+EkzQcRyvHWwBEWEGTr7pOY=; b=mHb8mRXoo3hQvD+ShvtQnomMA3hl34a4zGJs/fCG+BhwXLk/MI8sN8KKgKVELFE8GH oJxqdoZva3sWHw8upheqy9sF9mkSJaxgYUOrKJ14VBinwcxVZMfaFXOChZ3xIM+H3cd/ 3TeY8QeP86ZZc5tnrR1t4C9cYla/8ZsksZE5EolC6EUo5WLa9YUNQ7SGLbP6l1j71VjU vtdEMPlRRDoC1NT/pmLNDHtQnQS5kV4gjkZ3XveYIeToSk1WyTH6X9VNpmrMjsYTeU/y xzPhYO0bNz0ECrhGi6Pltnv0ViyTFLSz2tibXJVx8p7mtWx+fNR5okHtHFfAwBSbFKAD 5AcA== X-Gm-Message-State: AOAM531YAOCI1vIHPefuhEAEnImhePtdH3eCuk3rCwRtreE4ooNUwzQc Jch5bSvEf3IgyCVa2xYfdC0= X-Google-Smtp-Source: ABdhPJxfJGbJEj8qaX10SHPU7zJw+t+4bROcJSDUNHWpec71ztBgtrwpcRotHKxF3sN73VmEridwqA== X-Received: by 2002:a05:620a:11ab:: with SMTP id c11mr864642qkk.282.1610053168329; Thu, 07 Jan 2021 12:59:28 -0800 (PST) Received: from localhost.localdomain ([2804:14c:482:a80::1001]) by smtp.gmail.com with ESMTPSA id u5sm3939152qka.86.2021.01.07.12.59.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jan 2021 12:59:27 -0800 (PST) From: Fabio Estevam To: mkl@pengutronix.de Cc: linux-can@vger.kernel.org, qiangqing.zhang@nxp.com, robh+dt@kernel.org, devicetree@vger.kernel.org, Fabio Estevam Subject: [PATCH 1/2] dt-bindings: can: fsl, flexcan.yaml: introduce the stb-gpios property Date: Thu, 7 Jan 2021 17:59:14 -0300 Message-Id: <20210107205915.7602-1-festevam@gmail.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org It is very common to have an STB pin in CAN transceivers, which allows putting the transceiver in standby or normal operation mode. Add a new optional 'stb-gpios' property to describe this. Signed-off-by: Fabio Estevam --- Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml b/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml index 0d2df30f19db..64f904c4b3d5 100644 --- a/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml +++ b/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml @@ -66,6 +66,9 @@ properties: xceiver-supply: description: Regulator that powers the CAN transceiver. + stb-gpios: + description: GPIO that controls the STB CAN transceiver pin. + big-endian: $ref: /schemas/types.yaml#/definitions/flag description: | From patchwork Thu Jan 7 20:59:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 358396 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F43EC433E0 for ; Thu, 7 Jan 2021 21:00:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F0AD0233CF for ; Thu, 7 Jan 2021 21:00:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726477AbhAGVAM (ORCPT ); Thu, 7 Jan 2021 16:00:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726073AbhAGVAM (ORCPT ); Thu, 7 Jan 2021 16:00:12 -0500 Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com [IPv6:2607:f8b0:4864:20::830]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE981C0612F5; Thu, 7 Jan 2021 12:59:31 -0800 (PST) Received: by mail-qt1-x830.google.com with SMTP id u21so5218530qtw.11; Thu, 07 Jan 2021 12:59:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=h0t6RvEuK3QC6pz1reDucxNqeTNUSSiK/dbpy6+pD6w=; b=Bm/BWLXW5+F0jWLfRKXwxYmsKPRDC5tw1SEf8EPuuOfDVaihns0/dsxbn3psU8RG4N W2s0B5oiSdeQNPVOjnDh24hJqFw1U6NbiCOR8nHrpwPIGCxYvNlY7Z+n+AfhLJDt/BIJ wmCqtSiNmi3kjRBeJPZhhC5hh8cjbxymkZo2lLYllxElVXmFq0xNsMQzm0oFVoMsFa/m k5c3PpJaV+8dw9XOBUCpHZMUAN8KHSVLCtLVeeTNsBKLkvmzywjEjzflGvs1gzU/GELs GWwu2Ey6FlIAaHQENKNdkK9YAbgk7kRlBe9ILB/fjsiLHDWCCWnMsSadbHNunli1EFOB UD4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=h0t6RvEuK3QC6pz1reDucxNqeTNUSSiK/dbpy6+pD6w=; b=aIfJgxQ3rSLKvOktylGKPnFMgZVRCAUu9ng8vM7yegLisJKKA4snBA/718fiKdHhmj jgBJ9/x8SGzGaEIxdKVO8kdltkBWlKAFdeCBIV566PwZ21OJyde7IWAtYKL2zkHeFfz5 CYyZiacZTOXsmtUQxELow5kI5QTQKmPW/WLBR0q7Z2X7rZD9l6sa/OQitfYr1qWC1d8D xJrLvyVgrwx4CiTqD2KRgALFv599yJFMAiaKUl4o0++ede2jKuuXgHYnRg0Z1g+Yadeu dZB1wAA1AjHQMaSU9LWEgT0xW5sDFsxsqkVawKgh0IrN/M0ZSJXZynIC8x+auCw+ZQHf dGtA== X-Gm-Message-State: AOAM532D9JFDqLiBjK+lUdlQVEmShSJ73Ip++FbkD2wI5uCYGGuOcAVX 0On1Q9Qki0yheveNh6YuvZI= X-Google-Smtp-Source: ABdhPJwF69FgQ75hRmgpUCrb+PYdQ3qs/Xmk+jdaIfMPtDpkzOQrqIEDMQM6Yst3HYdpIVPV20FfTA== X-Received: by 2002:ac8:588c:: with SMTP id t12mr508159qta.184.1610053171188; Thu, 07 Jan 2021 12:59:31 -0800 (PST) Received: from localhost.localdomain ([2804:14c:482:a80::1001]) by smtp.gmail.com with ESMTPSA id u5sm3939152qka.86.2021.01.07.12.59.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jan 2021 12:59:30 -0800 (PST) From: Fabio Estevam To: mkl@pengutronix.de Cc: linux-can@vger.kernel.org, qiangqing.zhang@nxp.com, robh+dt@kernel.org, devicetree@vger.kernel.org, Fabio Estevam Subject: [PATCH 2/2] can: flexcan: allow the control of the STB CAN transceiver pin Date: Thu, 7 Jan 2021 17:59:15 -0300 Message-Id: <20210107205915.7602-2-festevam@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210107205915.7602-1-festevam@gmail.com> References: <20210107205915.7602-1-festevam@gmail.com> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org It is very common to have an STB pin in CAN transceivers, which allows putting the transceiver in standby or normal operation mode. Add support for handling the STB pin. Signed-off-by: Fabio Estevam --- drivers/net/can/flexcan.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c index 038fe1036df2..094050b4b461 100644 --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -358,6 +359,8 @@ struct flexcan_priv { struct regulator *reg_xceiver; struct flexcan_stop_mode stm; + struct gpio_desc *stb; + /* Read and Write APIs */ u32 (*read)(void __iomem *addr); void (*write)(u32 val, void __iomem *addr); @@ -617,6 +620,8 @@ static void flexcan_clks_disable(const struct flexcan_priv *priv) static inline int flexcan_transceiver_enable(const struct flexcan_priv *priv) { + gpiod_set_value_cansleep(priv->stb, 0); + if (!priv->reg_xceiver) return 0; @@ -625,6 +630,8 @@ static inline int flexcan_transceiver_enable(const struct flexcan_priv *priv) static inline int flexcan_transceiver_disable(const struct flexcan_priv *priv) { + gpiod_set_value_cansleep(priv->stb, 1); + if (!priv->reg_xceiver) return 0; @@ -2044,6 +2051,10 @@ static int flexcan_probe(struct platform_device *pdev) priv->can.bittiming_const = &flexcan_bittiming_const; } + priv->stb = devm_gpiod_get_optional(&pdev->dev, "stb", GPIOD_OUT_HIGH); + if (IS_ERR(priv->stb)) + return PTR_ERR(priv->stb); + pm_runtime_get_noresume(&pdev->dev); pm_runtime_set_active(&pdev->dev); pm_runtime_enable(&pdev->dev);