From patchwork Mon May 1 22:31:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Judith Mendez X-Patchwork-Id: 89190 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp218724vqo; Mon, 1 May 2023 15:41:08 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5vLL1XmIxET3t7DP1+QKY9JOtCH8t+DbEP/ajT73JDzzfepkOOiX7c2wdrxzxM2MHXh+Db X-Received: by 2002:a05:6a00:a0a:b0:63f:1c78:4049 with SMTP id p10-20020a056a000a0a00b0063f1c784049mr20303804pfh.31.1682980868419; Mon, 01 May 2023 15:41:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682980868; cv=none; d=google.com; s=arc-20160816; b=ahJnykKm/BcfumHR4Wc+A1A0+8rBFolUmCPkCvMiMUJNqEjQX19Bg4vAndKf+lXQ4X F379Kk/ATr58yiUOH5DXbE8kAZnfZipEFOrmEOYqnvn0GCZEI5H3wvcJe9CHgMtYpoll qCTzclDCOeusk0tJS6Tm6c3/ibX0rMOJBIetBVPtSC1xtV0fsqzd1r7YlcZ0Sxc70hGz M+zmiSMPrzP8d6mv0n0iyF5pLQ1KoiU5vm5t1Nk0Hl8ednevg8fcuJItOH9J2REm6vRP Xy8dhZ8k1TpoOHxuBmxy6ch6mzpmcoD3tPCqJ0UM7SUEDovVlK4dIc/ccnDERS9MPVAO K/tQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=sJojSr8Wpe0gZ6WbySQHjNOucNb6OIRfQCVF8zDaBpM=; b=VsEa8VMR3JqO+ntx9VYuIlONylNKXfO65d8OFdZhIAa5XnHEO2chDfcGJl3Me569fI FjZrAWycWHgaoct2Al/q8ytWPSEJmrzg8YcwWZgLiDgk/Uh7rZ8b1YrlNbL2BYu1bi+Z KzULEbEg1kYL5OWnHogyu8DcVj7FORbA4+7yyeKvKVjyyjMb9hzbJFb8Rl59d2pUd4zO rQRuQCE+bjcW/4frL+4m42MaAM8JYU1hqMMWRG0J8dg9m4x8ZD4hnerzSEGte1nM77It J9I32m6x680Bwr5N52ZLeu9hVuIYyW8QfxCtEfCIJ5ZmhT0A9Yi0T+WmDOvbrZGa3p4i T6sQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=l02eWcsc; 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=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t6-20020a625f06000000b0063806e9892fsi26255698pfb.243.2023.05.01.15.40.54; Mon, 01 May 2023 15:41:08 -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; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=l02eWcsc; 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=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233095AbjEAWcW (ORCPT + 99 others); Mon, 1 May 2023 18:32:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232627AbjEAWcK (ORCPT ); Mon, 1 May 2023 18:32:10 -0400 Received: from lelv0142.ext.ti.com (lelv0142.ext.ti.com [198.47.23.249]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F1F4830E4; Mon, 1 May 2023 15:32:07 -0700 (PDT) Received: from lelv0265.itg.ti.com ([10.180.67.224]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 341MVMEs014801; Mon, 1 May 2023 17:31:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1682980282; bh=sJojSr8Wpe0gZ6WbySQHjNOucNb6OIRfQCVF8zDaBpM=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=l02eWcsc3PheABDBW5Rpsq9hAUkyYI6WMy5ylB8N0YEpLX46m2hmVFddbiamvyCHC wvKTn1bR6vtpoyxa9hNAFb63krE3HDNSsCId2CuwRoIMrvk8Ri4sXaO84KE48hZzNQ G7+8VDwW8fKZxmV6Kw3s+vKoiVuvl/7jPg1R2WlE= Received: from DFLE112.ent.ti.com (dfle112.ent.ti.com [10.64.6.33]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 341MVMNU027912 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 1 May 2023 17:31:22 -0500 Received: from DFLE107.ent.ti.com (10.64.6.28) by DFLE112.ent.ti.com (10.64.6.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 1 May 2023 17:31:21 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DFLE107.ent.ti.com (10.64.6.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Mon, 1 May 2023 17:31:22 -0500 Received: from a0498204.dal.design.ti.com (ileaxei01-snat.itg.ti.com [10.180.69.5]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 341MVLEH023009; Mon, 1 May 2023 17:31:21 -0500 From: Judith Mendez To: Chandrasekar Ramakrishnan , Wolfgang Grandegger , Marc Kleine-Budde , Krzysztof Kozlowski CC: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , , , , Schuyler Patton , Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , , , Oliver Hartkopp , Simon Horman Subject: [PATCH v3 1/4] dt-bindings: net: can: Add poll-interval for MCAN Date: Mon, 1 May 2023 17:31:18 -0500 Message-ID: <20230501223121.21663-2-jm@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230501223121.21663-1-jm@ti.com> References: <20230501223121.21663-1-jm@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764733346963676894?= X-GMAIL-MSGID: =?utf-8?q?1764733346963676894?= On AM62x SoC, MCANs on MCU domain do not have hardware interrupt routed to A53 Linux, instead they will use software interrupt by hrtimer. To enable timer method, interrupts should be optional so remove interrupts property from required section and introduce poll-interval property. Signed-off-by: Judith Mendez --- Changelog: v3: 1. Move binding patch to first in series 2. Update description for poll-interval 3. Add oneOf to specify using interrupts/interrupt-names or poll-interval 4. Fix example property: add comment below 'example' v2: 1. Add poll-interval property to enable timer polling method 2. Add example using poll-interval property .../bindings/net/can/bosch,m_can.yaml | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml b/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml index 67879aab623b..c024ee49962c 100644 --- a/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml +++ b/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml @@ -14,6 +14,13 @@ maintainers: allOf: - $ref: can-controller.yaml# +oneOf: + - required: + - interrupts + - interrupt-names + - required: + - poll-interval + properties: compatible: const: bosch,m_can @@ -40,6 +47,14 @@ properties: - const: int1 minItems: 1 + poll-interval: + $ref: /schemas/types.yaml#/definitions/flag + description: Enable hrtimer polling method for an M_CAN device. + If this property is defined in MCAN node, it tells the driver to + enable polling method for an MCAN device. If for an MCAN device, + hardware interrupt is found and hrtimer polling method is enabled, + the driver will use hardware interrupt method. + clocks: items: - description: peripheral clock @@ -122,8 +137,6 @@ required: - compatible - reg - reg-names - - interrupts - - interrupt-names - clocks - clock-names - bosch,mram-cfg @@ -132,6 +145,7 @@ additionalProperties: false examples: - | + // Example with interrupts #include can@20e8000 { compatible = "bosch,m_can"; @@ -149,4 +163,22 @@ examples: }; }; + - | + // Example with timer polling + #include + can@20e8000 { + compatible = "bosch,m_can"; + reg = <0x020e8000 0x4000>, <0x02298000 0x4000>; + reg-names = "m_can", "message_ram"; + poll-interval; + clocks = <&clks IMX6SX_CLK_CANFD>, + <&clks IMX6SX_CLK_CANFD>; + clock-names = "hclk", "cclk"; + bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; + + can-transceiver { + max-bitrate = <5000000>; + }; + }; + ... From patchwork Mon May 1 22:31:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Judith Mendez X-Patchwork-Id: 89191 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp218943vqo; Mon, 1 May 2023 15:41:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6s3dbvGMC2ggDPHx3PIPABiKFoT4z8rqZsCW9ylvvrKXQqERfd9TiUAvFBVZF6cPEh/EAf X-Received: by 2002:a05:6a00:2d9b:b0:633:8cc7:bbd5 with SMTP id fb27-20020a056a002d9b00b006338cc7bbd5mr18636363pfb.11.1682980909280; Mon, 01 May 2023 15:41:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682980909; cv=none; d=google.com; s=arc-20160816; b=MIBVUh8GmtROQzNRHznwmpPleNAsREO9nUZsxfhbOhH3zibtX9Kqbm9HnMhIGMWjt7 lVnUh2G77sXFY0Ord6lw1eao9FraJ9MjEnTJH4p4lAfDTANtCo3L7HrVy21C0RLGbYIe 0e7tFUFYoc05TauqZJSW4U49Ey5DL094/kEcQNBwvkrT5A9ACxTaUmy4E7YARuj71zto pEIUQsExEo7ya0OOKGYSHSx9Efve13nv4aBOziOS7LFhvLSg71ZL8tHwwsNVXu6vOHeA qUJ+52b7hiEzGc5iHsPUxo0YZEAPNXQBJMQa7qwtfvheLYkVFZkYTSQsUTlv/xiNHhSV oOtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=QbE1TH3sVfoluwJIROm95neyUgLF++CTx3j/cYwtMZ4=; b=CbBqPFrdoO0PYe89YzXpPTxMz1/As7WTIz0gcDjgehPSS3xOpA9LOqohh7jAlRVyUu 58NBAgz60DVo9fe7lc/vWVyTztXqeV177MwvUqg29D+Oc8uy1lfaSAguZcA1KkANp6xa UT9ie945YEIfR87SI8iHaJ+18mOGHmrUmSIXYyt1mtiNBsQlC243GDbFBktwKlhlX6eo tId1h6tMJSBUShIt34yYCAY9PrHuQRQqpU7pJzV//5Li5B+48oAPjNQOA3Ql+7yG91yw fdvoJlGH8QifrVFDqzm0EjXao8GLSkRc/Qr5Cvl3Qr0w3CpNWcl+QOhavXHtTDsBvRyj E7zQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=lmfhPw6Y; 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=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j7-20020a625507000000b006423f1949c3si4123588pfb.389.2023.05.01.15.41.36; Mon, 01 May 2023 15:41:49 -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; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=lmfhPw6Y; 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=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232969AbjEAWcO (ORCPT + 99 others); Mon, 1 May 2023 18:32:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230391AbjEAWcK (ORCPT ); Mon, 1 May 2023 18:32:10 -0400 Received: from fllv0016.ext.ti.com (fllv0016.ext.ti.com [198.47.19.142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3F05D26BC; Mon, 1 May 2023 15:32:07 -0700 (PDT) Received: from lelv0265.itg.ti.com ([10.180.67.224]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id 341MVM4B048701; Mon, 1 May 2023 17:31:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1682980282; bh=QbE1TH3sVfoluwJIROm95neyUgLF++CTx3j/cYwtMZ4=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=lmfhPw6Yzy5TAc3C2F345PzgukaiKwljSj7vA/WABaE9RuGunQv3qMNCT5Gi117Nt 2nHrBWteZRndJriIeLtSplQLrgnW0U9PHNORkCJU8AjYExO7unUs3X0K2vzydOUFfi Pmf2mA+aZizr16eDQMz/Pt0HdrjMjxi/+Te64NYU= Received: from DFLE113.ent.ti.com (dfle113.ent.ti.com [10.64.6.34]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 341MVM3s027917 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 1 May 2023 17:31:22 -0500 Received: from DFLE105.ent.ti.com (10.64.6.26) by DFLE113.ent.ti.com (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 1 May 2023 17:31:22 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DFLE105.ent.ti.com (10.64.6.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Mon, 1 May 2023 17:31:21 -0500 Received: from a0498204.dal.design.ti.com (ileaxei01-snat.itg.ti.com [10.180.69.5]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 341MVLEI023009; Mon, 1 May 2023 17:31:21 -0500 From: Judith Mendez To: Chandrasekar Ramakrishnan , Wolfgang Grandegger , Marc Kleine-Budde , Krzysztof Kozlowski CC: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , , , , Schuyler Patton , Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , , , Oliver Hartkopp , Simon Horman Subject: [PATCH v3 2/4] can: m_can: Add hrtimer to generate software interrupt Date: Mon, 1 May 2023 17:31:19 -0500 Message-ID: <20230501223121.21663-3-jm@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230501223121.21663-1-jm@ti.com> References: <20230501223121.21663-1-jm@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764733390056126915?= X-GMAIL-MSGID: =?utf-8?q?1764733390056126915?= Add an hrtimer to MCAN class device. Each MCAN will have its own hrtimer instantiated if there is no hardware interrupt found and poll-interval property is defined in device tree M_CAN node. The hrtimer will generate a software interrupt every 1 ms. In hrtimer callback, we check if there is a transaction pending by reading a register, then process by calling the isr if there is. Signed-off-by: Judith Mendez --- Changelog: v1: 1. Sort list of includes 2. Create a define for HR_TIMER_POLL_INTERVAL 3. Fix indentations and style issues/warnings 4. Change polling variable to type bool 5. Change platform_get_irq to optional so not to print error msg 6. Move error check for addr directly after assignment 7. Print appropriate error msg with dev_err_probe insead of dev_dbg v2: 1. Add poll-interval to MCAN class device to check if poll-interval propery is present in MCAN node, this enables timer polling method. 2. Add 'polling' flag to MCAN class device to check if a device is using timer polling method 3. Check if both timer polling and hardware interrupt are enabled for a MCAN device, default to hardware interrupt mode if both are enabled. 4. Change ms_to_ktime() to ns_to_ktime() 5. Remove newlines, tabs, and restructure if/else section. drivers/net/can/m_can/m_can.c | 29 ++++++++++++++++++++-- drivers/net/can/m_can/m_can.h | 4 ++++ drivers/net/can/m_can/m_can_platform.c | 33 +++++++++++++++++++++++--- 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index a5003435802b..e1ac0c1d85a3 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -308,6 +309,9 @@ enum m_can_reg { #define TX_EVENT_MM_MASK GENMASK(31, 24) #define TX_EVENT_TXTS_MASK GENMASK(15, 0) +/* Hrtimer polling interval */ +#define HRTIMER_POLL_INTERVAL 1 + /* The ID and DLC registers are adjacent in M_CAN FIFO memory, * and we can save a (potentially slow) bus round trip by combining * reads and writes to them. @@ -1587,6 +1591,11 @@ static int m_can_close(struct net_device *dev) if (!cdev->is_peripheral) napi_disable(&cdev->napi); + if (cdev->polling) { + dev_dbg(cdev->dev, "Disabling the hrtimer\n"); + hrtimer_cancel(&cdev->hrtimer); + } + m_can_stop(dev); m_can_clk_stop(cdev); free_irq(dev->irq, dev); @@ -1793,6 +1802,18 @@ static netdev_tx_t m_can_start_xmit(struct sk_buff *skb, return NETDEV_TX_OK; } +static enum hrtimer_restart hrtimer_callback(struct hrtimer *timer) +{ + struct m_can_classdev *cdev = container_of(timer, struct + m_can_classdev, hrtimer); + + m_can_isr(0, cdev->net); + + hrtimer_forward_now(timer, ms_to_ktime(HRTIMER_POLL_INTERVAL)); + + return HRTIMER_RESTART; +} + static int m_can_open(struct net_device *dev) { struct m_can_classdev *cdev = netdev_priv(dev); @@ -1827,13 +1848,17 @@ static int m_can_open(struct net_device *dev) } INIT_WORK(&cdev->tx_work, m_can_tx_work_queue); - err = request_threaded_irq(dev->irq, NULL, m_can_isr, IRQF_ONESHOT, dev->name, dev); - } else { + } else if (!cdev->polling) { err = request_irq(dev->irq, m_can_isr, IRQF_SHARED, dev->name, dev); + } else { + dev_dbg(cdev->dev, "Start hrtimer\n"); + cdev->hrtimer.function = &hrtimer_callback; + hrtimer_start(&cdev->hrtimer, ms_to_ktime(HRTIMER_POLL_INTERVAL), + HRTIMER_MODE_REL_PINNED); } if (err < 0) { diff --git a/drivers/net/can/m_can/m_can.h b/drivers/net/can/m_can/m_can.h index a839dc71dc9b..e9db5cce4e68 100644 --- a/drivers/net/can/m_can/m_can.h +++ b/drivers/net/can/m_can/m_can.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -93,6 +94,9 @@ struct m_can_classdev { int is_peripheral; struct mram_cfg mcfg[MRAM_CFG_NUM]; + + struct hrtimer hrtimer; + bool polling; }; struct m_can_classdev *m_can_class_allocate_dev(struct device *dev, int sizeof_priv); diff --git a/drivers/net/can/m_can/m_can_platform.c b/drivers/net/can/m_can/m_can_platform.c index 9c1dcf838006..ec2277d89c73 100644 --- a/drivers/net/can/m_can/m_can_platform.c +++ b/drivers/net/can/m_can/m_can_platform.c @@ -5,6 +5,7 @@ // // Copyright (C) 2018-19 Texas Instruments Incorporated - http://www.ti.com/ +#include #include #include @@ -96,12 +97,38 @@ static int m_can_plat_probe(struct platform_device *pdev) goto probe_fail; addr = devm_platform_ioremap_resource_byname(pdev, "m_can"); - irq = platform_get_irq_byname(pdev, "int0"); - if (IS_ERR(addr) || irq < 0) { - ret = -EINVAL; + if (IS_ERR(addr)) { + ret = PTR_ERR(addr); goto probe_fail; } + irq = platform_get_irq_byname_optional(pdev, "int0"); + if (irq == -EPROBE_DEFER) { + ret = -EPROBE_DEFER; + goto probe_fail; + } + + if (device_property_present(mcan_class->dev, "poll-interval")) + mcan_class->polling = 1; + + if (!mcan_class->polling && irq < 0) { + ret = -ENXIO; + dev_err_probe(mcan_class->dev, ret, "IRQ int0 not found and polling not + activated\n"); + goto probe_fail; + } + + if (mcan_class->polling) { + if (irq > 0) { + mcan_class->polling = 0; + dev_dbg(mcan_class->dev, "Polling enabled and hardware IRQ found, use hardware IRQ\n"); + } else { + dev_dbg(mcan_class->dev, "Polling enabled, initialize hrtimer"); + hrtimer_init(&mcan_class->hrtimer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL_PINNED); + } + } + /* message ram could be shared */ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "message_ram"); if (!res) { From patchwork Mon May 1 22:31:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Judith Mendez X-Patchwork-Id: 89188 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp216077vqo; Mon, 1 May 2023 15:33:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5fTgnt8InmeqT3i7r3bBQdmqmLPyfx/aILq/zWBFs2f0qOlgbMzYPdLdBJp8ur9qARgO2q X-Received: by 2002:a17:90a:5511:b0:24e:165d:8f65 with SMTP id b17-20020a17090a551100b0024e165d8f65mr2177851pji.5.1682980386989; Mon, 01 May 2023 15:33:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682980386; cv=none; d=google.com; s=arc-20160816; b=p5H0iASslIFPkgaOE6A/RDsGqqkjbZSr9oZA2EgXIzs96W7RtGdHZBJ4nsDLwAfHN9 c8nJ1u460EH6c5yQ+FZdykr8/EzEI6yBB7MlobQbMVcCeyZ8o/GyrSBXZ0ghKslRTZB8 Vmcv8k/w6p/rrwNgTats0lK4b0ytAxp6sTEbf0Et0D2itcy0Rygu2nns459Aba/qC6vw uYRz9XPziwOiedq+fX9fpPSukV4annK+ZmqGymXEyaSsU/vz4DNAS8ucVhItqINq0Xfp vhO5NuM9YeofKExXDzwe42eF3otR6yH8+sxIJ7DTHGDy8SAQ5dimUyJ0lJDrvUajkXr0 O0jA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=m4At6dI4q1cQOeSFrbOq0//aBB7AqRHGOJIWxm6eOTs=; b=OUdj0jjyZ5Wn7TV0CMm6W7BtywnWPoFv104oCogKfj7PC4J7n8Jtx35MxJ5ICFlJH2 koQJEOcqzLLVF0ZjpDFzQHaJwB4EDXAMXszzl/w4EG1R5a7bJJ1zd0Y9/xTr8m31bUFi h9MifnRB1C8lJwJuG0Tphu482fm07clJMV5/bwJqnBfz8W87Pfaw17OxU3KDqjLIjKog Gi7b3z8VzPJEeBE8+qusgFfm5UO9FnJZVBXHVqPMlZb/twXpdC+b0ogYX1CJdiBEMiBj DhV+NFHJSrFxloL2wilEIZeqmUFyw70RBubINxprwHdTbUWcRKPf9fhGgGPn3qhATB9x l5cg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=lJiM743v; 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=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t12-20020a63eb0c000000b0051f15bd7215si29357879pgh.342.2023.05.01.15.32.54; Mon, 01 May 2023 15:33:06 -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; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=lJiM743v; 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=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232966AbjEAWcT (ORCPT + 99 others); Mon, 1 May 2023 18:32:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232580AbjEAWcK (ORCPT ); Mon, 1 May 2023 18:32:10 -0400 Received: from lelv0142.ext.ti.com (lelv0142.ext.ti.com [198.47.23.249]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F1B402D63; Mon, 1 May 2023 15:32:07 -0700 (PDT) Received: from lelv0265.itg.ti.com ([10.180.67.224]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 341MVM1H014805; Mon, 1 May 2023 17:31:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1682980282; bh=m4At6dI4q1cQOeSFrbOq0//aBB7AqRHGOJIWxm6eOTs=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=lJiM743vHys8RZB0EnWJnPuI11Q+88jP+3eWB/jmbnqOu0WMwZjo1EI6hady55O9m UW8Bp5UdSxH/8ky9oQdMbaKQAHR2QSHE5BHXPBuidAF0UkH3gOs07uAi2IwhkFQHAY tKRIdvmZFAQ5Q9wTyMj6/cHkG8BgSn6bZLfRva8s= Received: from DLEE107.ent.ti.com (dlee107.ent.ti.com [157.170.170.37]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 341MVMkk027924 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 1 May 2023 17:31:22 -0500 Received: from DLEE111.ent.ti.com (157.170.170.22) by DLEE107.ent.ti.com (157.170.170.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 1 May 2023 17:31:22 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DLEE111.ent.ti.com (157.170.170.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Mon, 1 May 2023 17:31:22 -0500 Received: from a0498204.dal.design.ti.com (ileaxei01-snat.itg.ti.com [10.180.69.5]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 341MVLEJ023009; Mon, 1 May 2023 17:31:21 -0500 From: Judith Mendez To: Chandrasekar Ramakrishnan , Wolfgang Grandegger , Marc Kleine-Budde , Krzysztof Kozlowski CC: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , , , , Schuyler Patton , Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , , , Oliver Hartkopp , Simon Horman Subject: [PATCH v3 3/4] DO_NOT_MERGE arm64: dts: ti: Add AM62x MCAN MAIN domain transceiver overlay Date: Mon, 1 May 2023 17:31:20 -0500 Message-ID: <20230501223121.21663-4-jm@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230501223121.21663-1-jm@ti.com> References: <20230501223121.21663-1-jm@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764732842454755776?= X-GMAIL-MSGID: =?utf-8?q?1764732842454755776?= Add an overlay for main domain MCAN on AM62x SK. The AM62x SK board does not have on-board CAN transceiver so instead of changing the DTB permanently, add an overlay to enable MAIN domain MCAN and support for 1 CAN transceiver. This DT overlay can be used with the following EVM: Link: https://www.ti.com/tool/TCAN1042DEVM Signed-off-by: Judith Mendez --- Changelog: v3: 1. Add link for specific board arch/arm64/boot/dts/ti/Makefile | 2 ++ .../boot/dts/ti/k3-am625-sk-mcan-main.dtso | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 arch/arm64/boot/dts/ti/k3-am625-sk-mcan-main.dtso diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index c83c9d772b81..abe15e76b614 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -9,8 +9,10 @@ # alphabetically. # Boards with AM62x SoC +k3-am625-sk-mcan-dtbs := k3-am625-sk.dtb k3-am625-sk-mcan-main.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb dtb-$(CONFIG_ARCH_K3) += k3-am625-sk.dtb +dtb-$(CONFIG_ARCH_K3) += k3-am625-sk-mcan.dtb dtb-$(CONFIG_ARCH_K3) += k3-am62-lp-sk.dtb # Boards with AM62Ax SoC diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk-mcan-main.dtso b/arch/arm64/boot/dts/ti/k3-am625-sk-mcan-main.dtso new file mode 100644 index 000000000000..0a7b2f394f87 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am625-sk-mcan-main.dtso @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0 +/** + * DT overlay for MCAN transceiver in main domain on AM625 SK + * + * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/ + */ + +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" + +&{/} { + transceiver1: can-phy0 { + compatible = "ti,tcan1042"; + #phy-cells = <0>; + max-bitrate = <5000000>; + }; +}; + +&main_pmx0 { + main_mcan0_pins_default: main-mcan0-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x1dc, PIN_INPUT, 0) /* (E15) MCAN0_RX */ + AM62X_IOPAD(0x1d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */ + >; + }; +}; + +&main_mcan0 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&main_mcan0_pins_default>; + phys = <&transceiver1>; +}; From patchwork Mon May 1 22:31:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Judith Mendez X-Patchwork-Id: 89189 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp216246vqo; Mon, 1 May 2023 15:33:33 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5UwKuGhLc/v/iVs8jTEmQsvt6mQLf7KAmctbrhdtT1CLbztOI6j7mKsc5G4XHDH+SX7MOn X-Received: by 2002:a17:90a:8687:b0:24e:789:1faf with SMTP id p7-20020a17090a868700b0024e07891fafmr3560209pjn.22.1682980412904; Mon, 01 May 2023 15:33:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682980412; cv=none; d=google.com; s=arc-20160816; b=NHBBWztuHS7vFaNyzZ1J3kSehjIb+u1vSbNb+90PaZb+ZtuAjS6W54AKS1a12BoStS /KkP1N/7fi2YVWyKfhMAMaZQpNXnn27QLvHFbKw05vnFNIy8xyCgfp4sFEh3QiwW0i0u 5Osbhw8oG1jgu0pn2OsFb5M4fmoPW+QX1+HhNE/KWTeJ3sOQCvBXkFLW71UqcTxUgSjF J0UXIV3kwSVURs4Mr5HDmJRjth+MKxCxZME7bd1kYPThjyRZR0MHVNw5yWzy8V68xZqD 3HFQlffCJB8PywbdGVBp9fYG6ZpaE7dM0XIcGhN0SB21qPhce6pETwNzb6kQGzODXWeH HGNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=0vr6OTb6WAGKkCzclnyhUo3rW3Mr6nZ8oCbIk9ryJFg=; b=HBE2umQk/cgLOzzQnk5fVrBJtZUH5eIHuOpIpAD2j9GhDR6+ApbAgtYZjyIZoyecnh pYVS0VCQ5IVJvHJQsqlN0lLDz9i0pim4lm8GaNZbn1CYGyQRaGDxBbVJz2SO8DYt17up +htL2YUnGcCKZIbUOY0Y/OKTtdlrRG/dGPcCKLVoLw/d2AP3YfiWRBxPLUm4BfQankOZ gmWC8XHtDJgBaFKtBAKyXub8YnLr931Mba7s0dlC0zlpK8BZjsQdgCLDdNKlw510vF8S 6zKcJjwlt4TdkM4mbZ7zZHyc5bXFT/VNPHk+7LCJSeBfVgdk9uaLFNNorJIHEqsffOKY 4xew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b="SCrstEr/"; 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=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t17-20020a17090ad15100b002369d39671fsi9465331pjw.160.2023.05.01.15.33.18; Mon, 01 May 2023 15:33:32 -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; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b="SCrstEr/"; 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=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233102AbjEAWcb (ORCPT + 99 others); Mon, 1 May 2023 18:32:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232625AbjEAWcK (ORCPT ); Mon, 1 May 2023 18:32:10 -0400 Received: from fllv0015.ext.ti.com (fllv0015.ext.ti.com [198.47.19.141]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 856EE271E; Mon, 1 May 2023 15:32:07 -0700 (PDT) Received: from lelv0266.itg.ti.com ([10.180.67.225]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id 341MVMvA088224; Mon, 1 May 2023 17:31:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1682980282; bh=0vr6OTb6WAGKkCzclnyhUo3rW3Mr6nZ8oCbIk9ryJFg=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=SCrstEr/Pilh7FKg6/pAt1HLDO56BT+KobGpXL4hlH3XQuvzkhX2JY0pnursz8v8j kPYjwjVbHHjdyxce+eK8TS1nntHYqkq945HEpkIPlhCOm4a3gih1UX4NtqI/DVeHyh SZECQceFtJUGeTmPokigarWWaJAPK90uz9W1aCPA= Received: from DLEE106.ent.ti.com (dlee106.ent.ti.com [157.170.170.36]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 341MVMtd058504 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 1 May 2023 17:31:22 -0500 Received: from DLEE106.ent.ti.com (157.170.170.36) by DLEE106.ent.ti.com (157.170.170.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 1 May 2023 17:31:22 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DLEE106.ent.ti.com (157.170.170.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Mon, 1 May 2023 17:31:22 -0500 Received: from a0498204.dal.design.ti.com (ileaxei01-snat.itg.ti.com [10.180.69.5]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 341MVLEK023009; Mon, 1 May 2023 17:31:22 -0500 From: Judith Mendez To: Chandrasekar Ramakrishnan , Wolfgang Grandegger , Marc Kleine-Budde , Krzysztof Kozlowski CC: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , , , , Schuyler Patton , Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , , , Oliver Hartkopp , Simon Horman Subject: [PATCH v3 4/4] arm64: dts: ti: Enable MCU MCANs for AM62x Date: Mon, 1 May 2023 17:31:21 -0500 Message-ID: <20230501223121.21663-5-jm@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230501223121.21663-1-jm@ti.com> References: <20230501223121.21663-1-jm@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764732869036148726?= X-GMAIL-MSGID: =?utf-8?q?1764732869036148726?= On AM62x there are no hardware interrupts routed to A53 GIC interrupt controller for MCU MCAN IPs, so MCU MCANs were not added to the MCU dtsi. In this patch series an hrtimer is introduced to MCAN driver to generate software interrupts. Now add MCU MCAN nodes to the MCU dtsi but disable the MCAN devices by default. AM62x does not carry on-board CAN transceivers, so instead of changing DTB permanently use an overlay to enable MCU MCANs and to add CAN transceiver nodes. If there is no hardware interrupt and timer method is used, remove interrupt properties and add poll-interval to enable the hrtimer per MCAN node. This DT overlay can be used with the following EVM: Link: https://www.ti.com/tool/TCAN1042DEVM Signed-off-by: Judith Mendez --- Changelog: v3: 1. Add link for specific board arch/arm64/boot/dts/ti/Makefile | 2 +- arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi | 24 ++++++++ .../boot/dts/ti/k3-am625-sk-mcan-mcu.dtso | 57 +++++++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 arch/arm64/boot/dts/ti/k3-am625-sk-mcan-mcu.dtso diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index abe15e76b614..c76be3888e4d 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -9,7 +9,7 @@ # alphabetically. # Boards with AM62x SoC -k3-am625-sk-mcan-dtbs := k3-am625-sk.dtb k3-am625-sk-mcan-main.dtbo +k3-am625-sk-mcan-dtbs := k3-am625-sk.dtb k3-am625-sk-mcan-main.dtbo k3-am625-sk-mcan-mcu.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb dtb-$(CONFIG_ARCH_K3) += k3-am625-sk.dtb dtb-$(CONFIG_ARCH_K3) += k3-am625-sk-mcan.dtb diff --git a/arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi index 076601a41e84..20462f457643 100644 --- a/arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi @@ -141,4 +141,28 @@ /* Tightly coupled to M4F */ status = "reserved"; }; + + mcu_mcan1: can@4e00000 { + compatible = "bosch,m_can"; + reg = <0x00 0x4e00000 0x00 0x8000>, + <0x00 0x4e08000 0x00 0x200>; + reg-names = "message_ram", "m_can"; + power-domains = <&k3_pds 188 TI_SCI_PD_EXCLUSIVE>; + clocks = <&k3_clks 188 6>, <&k3_clks 188 1>; + clock-names = "hclk", "cclk"; + bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>; + status = "disabled"; + }; + + mcu_mcan2: can@4e10000 { + compatible = "bosch,m_can"; + reg = <0x00 0x4e10000 0x00 0x8000>, + <0x00 0x4e18000 0x00 0x200>; + reg-names = "message_ram", "m_can"; + power-domains = <&k3_pds 189 TI_SCI_PD_EXCLUSIVE>; + clocks = <&k3_clks 189 6>, <&k3_clks 189 1>; + clock-names = "hclk", "cclk"; + bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>; + status = "disabled"; + }; }; diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk-mcan-mcu.dtso b/arch/arm64/boot/dts/ti/k3-am625-sk-mcan-mcu.dtso new file mode 100644 index 000000000000..5145b3de4f9b --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am625-sk-mcan-mcu.dtso @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: GPL-2.0 +/** + * DT overlay for MCAN in MCU domain on AM625 SK + * + * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/ + */ + +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" + +&{/} { + transceiver2: can-phy1 { + compatible = "ti,tcan1042"; + #phy-cells = <0>; + max-bitrate = <5000000>; + }; + + transceiver3: can-phy2 { + compatible = "ti,tcan1042"; + #phy-cells = <0>; + max-bitrate = <5000000>; + }; +}; + +&mcu_pmx0 { + mcu_mcan1_pins_default: mcu-mcan1-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */ + AM62X_IOPAD(0x034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */ + >; + }; + + mcu_mcan2_pins_default: mcu-mcan2-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x040, PIN_INPUT, 0) /* (D4) MCU_MCAN1_RX */ + AM62X_IOPAD(0x03C, PIN_OUTPUT, 0) /* (E5) MCU_MCAN1_TX */ + >; + }; +}; + +&mcu_mcan1 { + poll-interval; + pinctrl-names = "default"; + pinctrl-0 = <&mcu_mcan1_pins_default>; + phys = <&transceiver2>; + status = "okay"; +}; + +&mcu_mcan2 { + poll-interval; + pinctrl-names = "default"; + pinctrl-0 = <&mcu_mcan2_pins_default>; + phys = <&transceiver3>; + status = "okay"; +};