From nobody Wed May 8 00:33:33 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=quarantine dis=quarantine) header.from=ti.com ARC-Seal: i=1; a=rsa-sha256; t=1620624383; cv=none; d=zohomail.com; s=zohoarc; b=K+zhN8Jfjsr7He3tpTfpKEdRRGrX4/BXlcg0yHrEMtJIsifNqBZFNjkYwgbc7Yj89/aUHjLTx6H2teOOqksQ6XzgZhLzSVOdG7nQDNerAF9IdkzFpfBWeL0MPHYPWAXNvn1r0UK8rLkXt14+8NpmaNG3sYyf1El53Db8igvIxfU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620624383; h=Content-Type:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=enRc7RAWZYWWXCGcJnJQ/Ayc5meEKxS/gtm2L2XI474=; b=Cpms4l7+pNk9/OaULA3kjYLfpBvXTcEaG1dIJ6T35SMcvO7RzssUBCSKVNKCTZMgpq6nRhFQA2gwqbdgdQQpNRIrPmCFF35Dhcx2OUKtrdlKFMhI6QlYnhYdFcsUomyaAQ2toj+/iA56/bKOISdizxezhbTvlhfS5IVXF+9E5Lg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail header.from= (p=quarantine dis=quarantine) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 16206243830091.2169252381758042; Sun, 9 May 2021 22:26:23 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230137AbhEJF1W (ORCPT ); Mon, 10 May 2021 01:27:22 -0400 Received: from fllv0016.ext.ti.com ([198.47.19.142]:40824 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230045AbhEJF1O (ORCPT ); Mon, 10 May 2021 01:27:14 -0400 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id 14A5Q1rd086333; Mon, 10 May 2021 00:26:01 -0500 Received: from DFLE103.ent.ti.com (dfle103.ent.ti.com [10.64.6.24]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 14A5Q1J0084152 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 10 May 2021 00:26:01 -0500 Received: from DFLE108.ent.ti.com (10.64.6.29) by DFLE103.ent.ti.com (10.64.6.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.2; Mon, 10 May 2021 00:26:01 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DFLE108.ent.ti.com (10.64.6.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.2 via Frontend Transport; Mon, 10 May 2021 00:26:01 -0500 Received: from gsaswath-HP-ProBook-640-G5.dal.design.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0039.itg.ti.com (8.15.2/8.15.2) with ESMTP id 14A5PfCn045426; Mon, 10 May 2021 00:25:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1620624361; bh=enRc7RAWZYWWXCGcJnJQ/Ayc5meEKxS/gtm2L2XI474=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=lLWE1Y1YUHYCZS5QwWxLEdWNWYFGdJCgfpw7faviVQiJuo9Gw7q+slb+S8asKvB0j kvFQHbKx08uUG33YEs9py/iRuN2u6vgR959BvqVM+Pl7b9OIwg0P6xE20lE69g/8dM D//0A0wUC1JOav7v7EDOE9KQ034499VSDU6oU8hQ= From: Aswath Govindraju CC: Chandrasekar Ramakrishnan , Wolfgang Grandegger , Marc Kleine-Budde , "David S . Miller" , Jakub Kicinski , Rob Herring , , , , , Vignesh Raghavendra , Lokesh Vutla , Kishon Vijay Abraham I , Aswath Govindraju Subject: [PATCH v4 1/2] dt-bindings: net: can: Document transceiver implementation as phy Date: Mon, 10 May 2021 10:55:40 +0530 Message-ID: <20210510052541.14168-2-a-govindraju@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210510052541.14168-1-a-govindraju@ti.com> References: <20210510052541.14168-1-a-govindraju@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Faiz Abbas Some transceivers need a configuration step (for example, pulling the standby or enable lines) for them to start sending messages. The transceiver can be implemented as a phy with the configuration done in the phy driver. The bit rate limitation can the be obtained by the driver using the phy node. Document the above implementation in the bosch mcan bindings Signed-off-by: Faiz Abbas Signed-off-by: Aswath Govindraju Acked-by: Rob Herring --- Documentation/devicetree/bindings/net/can/bosch,m_can.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml b/D= ocumentation/devicetree/bindings/net/can/bosch,m_can.yaml index 798fa5fb7bb2..25f74db46bae 100644 --- a/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml +++ b/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml @@ -109,6 +109,9 @@ properties: can-transceiver: $ref: can-transceiver.yaml# =20 + phys: + maxItems: 1 + required: - compatible - reg --=20 2.17.1 From nobody Wed May 8 00:33:33 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=quarantine dis=quarantine) header.from=ti.com ARC-Seal: i=1; a=rsa-sha256; t=1620624398; cv=none; d=zohomail.com; s=zohoarc; b=X38HtVluo+4/p9smtsO9zYDip9xxnqzIvwHbfLrcSkEfsBKE2lshCI+3jX+xD+e2mhUzBYxGEpCnpeffChYVcBxJwsilEfmOVD/t8znzZFqZARCtgSGmVYPZ305Gwi2yJrCL/qSkpk42HuBZp4jaoCaeAW7QTJ+LueNJZMf/PQs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620624398; h=Content-Type:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=+LgbeEpcGAX1uaIBoLFr6F1+kThw6gjG8L/0QWGfkRY=; b=PT18vtqMynWadYqLRuL/O//hB6S2sx8dHivTAzs33paaKcDhLEzDjHBNSWX2z2iNGdhy73ySyYMTF0vK9JnI3hDXSfwLY4xsq2CrS9QukdeDcoZce9JzA1Vh8nhQUijm535yVksUEb+JLkW27nRarNBHiWZvfXc3fv4z56uKSvQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail header.from= (p=quarantine dis=quarantine) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620624398602753.7501143645625; Sun, 9 May 2021 22:26:38 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230187AbhEJF1h (ORCPT ); Mon, 10 May 2021 01:27:37 -0400 Received: from fllv0015.ext.ti.com ([198.47.19.141]:53424 "EHLO fllv0015.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230157AbhEJF1X (ORCPT ); Mon, 10 May 2021 01:27:23 -0400 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id 14A5QAEu078564; Mon, 10 May 2021 00:26:10 -0500 Received: from DFLE114.ent.ti.com (dfle114.ent.ti.com [10.64.6.35]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 14A5QAEE084465 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 10 May 2021 00:26:10 -0500 Received: from DFLE106.ent.ti.com (10.64.6.27) by DFLE114.ent.ti.com (10.64.6.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.2; Mon, 10 May 2021 00:26:09 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DFLE106.ent.ti.com (10.64.6.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.2 via Frontend Transport; Mon, 10 May 2021 00:26:09 -0500 Received: from gsaswath-HP-ProBook-640-G5.dal.design.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0039.itg.ti.com (8.15.2/8.15.2) with ESMTP id 14A5PfCo045426; Mon, 10 May 2021 00:26:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1620624370; bh=+LgbeEpcGAX1uaIBoLFr6F1+kThw6gjG8L/0QWGfkRY=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=eSZHJG0wsxYsO7+qEgWymP9/SgPkv3IiMY4IJy3toL3JjIXqUHoKnklzmcCY/q8dF oqwEBX4UoS2yLab//TfZksBdHwqsafaEdLmT6XJ77KQ9RtdcsvBmNTiXkPQznquemV z/zAOlbSvjiFt1lG7NrKDnldv9ZVjuQVGjgWj3rU= From: Aswath Govindraju CC: Chandrasekar Ramakrishnan , Wolfgang Grandegger , Marc Kleine-Budde , "David S . Miller" , Jakub Kicinski , Rob Herring , , , , , Vignesh Raghavendra , Lokesh Vutla , Kishon Vijay Abraham I , Aswath Govindraju Subject: [PATCH v4 2/2] can: m_can: Add support for transceiver as phy Date: Mon, 10 May 2021 10:55:41 +0530 Message-ID: <20210510052541.14168-3-a-govindraju@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210510052541.14168-1-a-govindraju@ti.com> References: <20210510052541.14168-1-a-govindraju@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Faiz Abbas Add support for implementing transceiver node as phy. The max_bitrate is obtained by getting a phy attribute. Signed-off-by: Faiz Abbas Signed-off-by: Aswath Govindraju --- drivers/net/can/m_can/m_can.c | 11 +++++++++++ drivers/net/can/m_can/m_can.h | 2 ++ drivers/net/can/m_can/m_can_platform.c | 13 +++++++++++++ 3 files changed, 26 insertions(+) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index 3cf6de21d19c..afbecc35d3b6 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -21,6 +21,7 @@ #include #include #include +#include =20 #include "m_can.h" =20 @@ -1514,6 +1515,7 @@ static void m_can_stop(struct net_device *dev) static int m_can_close(struct net_device *dev) { struct m_can_classdev *cdev =3D netdev_priv(dev); + int err; =20 netif_stop_queue(dev); =20 @@ -1536,6 +1538,10 @@ static int m_can_close(struct net_device *dev) close_candev(dev); can_led_event(dev, CAN_LED_EVENT_STOP); =20 + err =3D phy_power_off(cdev->transceiver); + if (err) + return err; + return 0; } =20 @@ -1721,6 +1727,10 @@ static int m_can_open(struct net_device *dev) struct m_can_classdev *cdev =3D netdev_priv(dev); int err; =20 + err =3D phy_power_on(cdev->transceiver); + if (err) + return err; + err =3D m_can_clk_start(cdev); if (err) return err; @@ -1781,6 +1791,7 @@ static int m_can_open(struct net_device *dev) close_candev(dev); exit_disable_clks: m_can_clk_stop(cdev); + phy_power_off(cdev->transceiver); return err; } =20 diff --git a/drivers/net/can/m_can/m_can.h b/drivers/net/can/m_can/m_can.h index ace071c3e58c..38cad068abad 100644 --- a/drivers/net/can/m_can/m_can.h +++ b/drivers/net/can/m_can/m_can.h @@ -28,6 +28,7 @@ #include #include #include +#include =20 /* m_can lec values */ enum m_can_lec_type { @@ -82,6 +83,7 @@ struct m_can_classdev { struct workqueue_struct *tx_wq; struct work_struct tx_work; struct sk_buff *tx_skb; + struct phy *transceiver; =20 struct can_bittiming_const *bit_timing; struct can_bittiming_const *data_timing; diff --git a/drivers/net/can/m_can/m_can_platform.c b/drivers/net/can/m_can= /m_can_platform.c index 599de0e08cd7..f102d532b7f0 100644 --- a/drivers/net/can/m_can/m_can_platform.c +++ b/drivers/net/can/m_can/m_can_platform.c @@ -6,6 +6,7 @@ // Copyright (C) 2018-19 Texas Instruments Incorporated - http://www.ti.co= m/ =20 #include +#include =20 #include "m_can.h" =20 @@ -67,6 +68,7 @@ static int m_can_plat_probe(struct platform_device *pdev) struct resource *res; void __iomem *addr; void __iomem *mram_addr; + struct phy *transceiver; int irq, ret =3D 0; =20 mcan_class =3D m_can_class_allocate_dev(&pdev->dev, @@ -101,6 +103,16 @@ static int m_can_plat_probe(struct platform_device *pd= ev) goto probe_fail; } =20 + transceiver =3D devm_phy_optional_get(&pdev->dev, NULL); + if (IS_ERR(transceiver)) { + ret =3D PTR_ERR(transceiver); + dev_err_probe(&pdev->dev, ret, "failed to get phy\n"); + return ret; + } + + if (transceiver) + mcan_class->can.bitrate_max =3D transceiver->attrs.max_link_rate; + priv->base =3D addr; priv->mram_base =3D mram_addr; =20 @@ -108,6 +120,7 @@ static int m_can_plat_probe(struct platform_device *pde= v) mcan_class->pm_clock_support =3D 1; mcan_class->can.clock.freq =3D clk_get_rate(mcan_class->cclk); mcan_class->dev =3D &pdev->dev; + mcan_class->transceiver =3D transceiver; =20 mcan_class->ops =3D &m_can_plat_ops; =20 --=20 2.17.1