From patchwork Wed Nov 9 10:09:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vivek Yadav X-Patchwork-Id: 623093 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4212FC4332F for ; Wed, 9 Nov 2022 10:53:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230398AbiKIKx1 (ORCPT ); Wed, 9 Nov 2022 05:53:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39816 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230405AbiKIKww (ORCPT ); Wed, 9 Nov 2022 05:52:52 -0500 Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA8B927FD6 for ; Wed, 9 Nov 2022 02:52:47 -0800 (PST) Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20221109105246epoutp04eeceee8867f43562ac1b1574599e1154~l5SDh8sqU0125201252epoutp040 for ; Wed, 9 Nov 2022 10:52:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20221109105246epoutp04eeceee8867f43562ac1b1574599e1154~l5SDh8sqU0125201252epoutp040 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1667991166; bh=cuGZVz4FIhuzdAfWl8rgVOUhOMLdb5/nmbhIZx7irik=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AgOE4oYh60AX5ZvHuqEBC6uCEgNrVF3FZcMHlubYoCdPcbbvoB1tGCFr0Djx0hNrJ 8zpnEdWigN60R/4kDZS0SVZpc0KTL9dXroyxxIA25PPbNH6ehmVzkGiLXdVOU6G/aO UCfVl+gS2iE6Ue1LyCG63+T+uwZxvRJ+Ky1YteoA= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20221109105245epcas5p40fff769aac1c87b0724955c96166dd07~l5SC1wPwg0925809258epcas5p4w; Wed, 9 Nov 2022 10:52:45 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.175]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4N6hd71dtRz4x9Pt; Wed, 9 Nov 2022 10:52:43 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id C9.31.01710.B768B636; Wed, 9 Nov 2022 19:52:43 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20221109100245epcas5p38a01aed025f491d39a09508ebcdcef84~l4mYcPO1F0950009500epcas5p33; Wed, 9 Nov 2022 10:02:45 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20221109100245epsmtrp2af633d327b72b3b0316ecf51ffd72eac~l4mYa3idD1470214702epsmtrp2O; Wed, 9 Nov 2022 10:02:45 +0000 (GMT) X-AuditID: b6c32a49-c9ffa700000006ae-4b-636b867b85aa Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id A3.E0.14392.4CA7B636; Wed, 9 Nov 2022 19:02:45 +0900 (KST) Received: from cheetah.sa.corp.samsungelectronics.net (unknown [107.109.115.53]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20221109100242epsmtip23606948220b4375261e0ec2d7bee2dea~l4mViXYTC1466814668epsmtip2X; Wed, 9 Nov 2022 10:02:41 +0000 (GMT) From: Vivek Yadav To: rcsekar@samsung.com, krzysztof.kozlowski+dt@linaro.org, wg@grandegger.com, mkl@pengutronix.de, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, pankaj.dubey@samsung.com, ravi.patel@samsung.com, alim.akhtar@samsung.com, linux-fsd@tesla.com, robh+dt@kernel.org Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, aswani.reddy@samsung.com, sriranjani.p@samsung.com, Vivek Yadav Subject: [PATCH v2 1/6] dt-bindings: Document the SYSREG specific compatibles found on FSD SoC Date: Wed, 9 Nov 2022 15:39:23 +0530 Message-Id: <20221109100928.109478-2-vivek.2311@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221109100928.109478-1-vivek.2311@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WTe0xbVRzHPbe3twVEL6/uSCaWbkMGAdpR8GCousjwzldItsA0S0pTbigB 2qa3VaskDsZYqCmPCQERoZ3gBiNslscKo4g89jIDpjzcGIQKi4QgIs8pj9nSov99ft/f73t+ +f3OOVyWbz8RyM1QammNUpYlIDzx9r7DYRGfFWTKha12LpquaSdQb0sbB1UP5eOotn+QjR7f /I2DiubsLDTcXsRGlpkxNmrcKGch+3wK+qWzmkCVQ90YunqxDEc3TTy0/tMCQBfbVjnIvtTF QVXDVjY6Z+vnoImFZjb6x9yHo/qpDvYbPKq14QFGmSw66q+fJwBlaSwkqEdjXQTVUvc5Vbwt pP7sHiWootZGQO3kfcOhVixBSV4fZsYraFkareHTSrkqLUOZLhG8c0L6pjQmViiKEMWhVwR8 pSyblggS3k2KSMzIcowq4H8ky9I5pCQZwwiiXovXqHRamq9QMVqJgFanZanF6khGls3olOmR Slr7qkgoPBLjKEzNVIz+UIyrewI+MeR142dApY8BeHAhKYbWIQPhZF/yBoATtREG4OngZQD7 zAvAFawD2DI7z95zNJ//w52wAZibf4njCs5h0FxuBM4qggyDM4Um3JnwJ69gsHXFvmthkVUY rDv7EHdW+ZGpsLF2eNeBk4dg/epXu7o3GQ+Nl8Y5rn4vwSvXelgGwOV6kBJoNwud50Bymgvz Lj911yTAne/73ewH52+1ujkQrizaCBfLoXWn0D2DAppKu4CLX4c9I9W483wWeRhe7YxyyS/C 8rvNmJNZ5HPQuDmLuXRvaK3Z44NwbqWE7bQ6WxkH/VwyBcdvN7g3VAJg54wdKwFBVf93MAHQ CF6g1Ux2Os3EqEVK+uP/bk2uyraA3eccdtwKJqeXInsBxgW9AHJZAn9vr9BMua93mkz/Ka1R STW6LJrpBTGO9ZWyAgPkKsd/UGqlInGcUBwbGyuOi44VCfZ5f1sZJvcl02VaOpOm1bRmz4dx PQLPYPrVY2RqtHyzoNJzUd0Wknt64FaF8fcLZ/cPbT0zNmeu1SZjPxY8PmkJsl27PrrmbxrI RWvKKrOkI3/t1DgjDJ7UJN7IGFF/+d7t8ooHpen3LkQPH03bnvKpTgrf+GDS2tQS/vfRy8Xx 0yljkT7g9OiBhLeJkwFd8ZyNrRPjXzQ8uT97TPWoQdfGucOTxuk8Q3rudS3Xfyfb3L/YCRW8 5oz7qwnPS3jbp/ThFYalasryZGHQa9rz5Z3gkILNubLe9bsDox0p4uRDbz0rD72jr5sKXU4u 1B7ZirLl2Eak7/+6OFgj1D/MyeGfP3ggOBHjzTY1afd9fbxMH/d02Fx+3T/CKMAZhUwUxtIw sn8B1FM45lcEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRmVeSWpSXmKPExsWy7bCSvO7Rquxkg8fPGC0ezNvGZnFo81Z2 iznnW1gs5h85x2rx9Ngjdou+Fw+ZLS5s62O12PT4GqvFqu9TmS0evgq3uLxrDpvFjPP7mCzW L5rCYnFsgZjFt9NvGC0Wbf3CbvHwwx52i1kXdrBatO49wm5x+806VotfCw+zWCy9t5PVQcxj y8qbTB4LNpV6fLx0m9Fj06pONo871/aweWxeUu/R/9fA4/2+q2wefVtWMXr8a5rL7vF5k1wA dxSXTUpqTmZZapG+XQJXxtX9/SwFB0Qrupr2sTQwzhDsYuTkkBAwkVjX/pYRxBYS2M0ocWSq N0RcSmLKmZcsELawxMp/z9m7GLmAapqZJOZsfcwEkmAT0JJ43LmABSQhIrCbSeJt91ywKmaB RUwSL6/0MoNUCQvESVx6vZ8VxGYRUJVY+mUm2FheARuJ3uXX2SFWyEus3nAAqJ6Dg1PAVuLh QgOIi2wknt9exDiBkW8BI8MqRsnUguLc9NxiwwLDvNRyveLE3OLSvHS95PzcTYzg+NHS3MG4 fdUHvUOMTByMhxglOJiVRHi5NbKThXhTEiurUovy44tKc1KLDzFKc7AoifNe6DoZLySQnliS mp2aWpBaBJNl4uCUamDatn7zp1jPq5NsXhrlpU0KmOjQrcZl/sDl259LT9S/1/2Wbv9wybV+ +bt1744lSIudM4w/oPjvamTBjx/m99J2iq+1ZT1mxcJg3PfLccX1isQ7YT/6XBrcO493xLs6 LMprNHC/t//pUlv5u/NXih2YdyXuXWl4Xn7kdalLE547tue/fBCwdXVp0cEn9eLbP4qIcrkH 7v0X6bH4IU/BzIQp7Qc5ZD7YmekWpMiquHyYsX19yv6zUyrX3H+Q8lFLzHXF7EcZqh5BSfus ZgYd5w6Yc/vXoSzOBZYcH91YAzXclS5ZTC+15H42Q2PDzZoT5+Lk/sVXF1+Z3ix9Wq1l+eO2 3TvEGthO9055s7muNThbiaU4I9FQi7moOBEA3FLSUQ4DAAA= X-CMS-MailID: 20221109100245epcas5p38a01aed025f491d39a09508ebcdcef84 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20221109100245epcas5p38a01aed025f491d39a09508ebcdcef84 References: <20221109100928.109478-1-vivek.2311@samsung.com> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Sriranjani P Describe the compatible properties for SYSREG controllers found on FSD SoC. Signed-off-by: Alim Akhtar Signed-off-by: Pankaj Kumar Dubey Signed-off-by: Ravi Patel Signed-off-by: Vivek Yadav Cc: devicetree@vger.kernel.org Cc: Krzysztof Kozlowski Cc: Rob Herring Signed-off-by: Sriranjani P --- .../devicetree/bindings/arm/tesla-sysreg.yaml | 50 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 51 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/tesla-sysreg.yaml diff --git a/Documentation/devicetree/bindings/arm/tesla-sysreg.yaml b/Documentation/devicetree/bindings/arm/tesla-sysreg.yaml new file mode 100644 index 000000000000..bbcc6dd75918 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/tesla-sysreg.yaml @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/tesla-sysreg.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Tesla Full Self-Driving platform's system registers + +maintainers: + - Alim Akhtar + +description: | + This is a system control registers block, providing multiple low level + platform functions like board detection and identification, software + interrupt generation. + +properties: + compatible: + oneOf: + - items: + - enum: + - tesla,sysreg_fsys0 + - tesla,sysreg_peric + - const: syscon + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + soc { + #address-cells = <2>; + #size-cells = <2>; + + sysreg_fsys0: system-controller@15030000 { + compatible = "tesla,sysreg_fsys0", "syscon"; + reg = <0x0 0x15030000 0x0 0x1000>; + }; + + sysreg_peric: system-controller@14030000 { + compatible = "tesla,sysreg_peric", "syscon"; + reg = <0x0 0x14030000 0x0 0x1000>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index a198da986146..56995e7d63ad 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2943,6 +2943,7 @@ M: linux-fsd@tesla.com L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-samsung-soc@vger.kernel.org S: Maintained +F: Documentation/devicetree/bindings/arm/tesla-sysreg.yaml F: arch/arm64/boot/dts/tesla* ARM/TETON BGA MACHINE SUPPORT From patchwork Wed Nov 9 10:09:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vivek Yadav X-Patchwork-Id: 623092 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E299DC43219 for ; Wed, 9 Nov 2022 10:54:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231270AbiKIKyF (ORCPT ); Wed, 9 Nov 2022 05:54:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231280AbiKIKxX (ORCPT ); Wed, 9 Nov 2022 05:53:23 -0500 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9BDC28E3D for ; Wed, 9 Nov 2022 02:53:02 -0800 (PST) Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20221109105301epoutp039dfb261839bccaa5ca5f25066037f878~l5SReLfm51388913889epoutp03- for ; Wed, 9 Nov 2022 10:53:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20221109105301epoutp039dfb261839bccaa5ca5f25066037f878~l5SReLfm51388913889epoutp03- DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1667991181; bh=8tJbVmcalInqjr8002K5YdNiHoVQ5bDHN1OlG4dZ7VI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RRW7xcU44/JeDzX96KgulpOCsqqZ7jcaqm9PLoI2IJ+ZqjC+erVy2cPh4O5I5dF9C MheGYW7sWxVpGopJRk8UI1Hw34GdPgtjEr0Ospch3yJQTR97DNJszCQ00gX6YtbU43 /Pfp4LFaOBNrXgH6IYGHIDvUfp5Kx/XY/bNhgolw= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20221109105300epcas5p3dc38c1dce7325d8eaa97f320febd5d5b~l5SQ5vusB0093000930epcas5p3X; Wed, 9 Nov 2022 10:53:00 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.181]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4N6hdQ4ZVfz4x9Q1; Wed, 9 Nov 2022 10:52:58 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id DC.37.39477.A868B636; Wed, 9 Nov 2022 19:52:58 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20221109100249epcas5p142a0a9f7e822c466f7ca778cd341e6d9~l4mc1Pwen0651406514epcas5p10; Wed, 9 Nov 2022 10:02:49 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20221109100249epsmtrp20d91aa3791ac1d0547d711acfc0def13~l4mc0PmRO1459514595epsmtrp2f; Wed, 9 Nov 2022 10:02:49 +0000 (GMT) X-AuditID: b6c32a4a-007ff70000019a35-df-636b868a50c7 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id F5.E0.14392.9CA7B636; Wed, 9 Nov 2022 19:02:49 +0900 (KST) Received: from cheetah.sa.corp.samsungelectronics.net (unknown [107.109.115.53]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20221109100246epsmtip275237e780508fbf6ad5796f05eaae93c~l4mZ_LXyt1466814668epsmtip2a; Wed, 9 Nov 2022 10:02:46 +0000 (GMT) From: Vivek Yadav To: rcsekar@samsung.com, krzysztof.kozlowski+dt@linaro.org, wg@grandegger.com, mkl@pengutronix.de, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, pankaj.dubey@samsung.com, ravi.patel@samsung.com, alim.akhtar@samsung.com, linux-fsd@tesla.com, robh+dt@kernel.org Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, aswani.reddy@samsung.com, sriranjani.p@samsung.com, Vivek Yadav Subject: [PATCH v2 2/6] dt-bindings: can: mcan: Add ECC functionality to message ram Date: Wed, 9 Nov 2022 15:39:24 +0530 Message-Id: <20221109100928.109478-3-vivek.2311@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221109100928.109478-1-vivek.2311@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VTe0xTVxjPubcvanBXcHggzJGmC9hZaLF0B0aHyXTeDTabGHRxRryWS0v6 XG/RMZeJTNzAycOMABXlIZuIG2Ip74e8AmFMYIrEzQ0oMDWkG0gdRDfcWgrbf7/v9/1+3/ed 75zDw/26OUG8VIOFNhsonYDDZzX2bgsT55zRqiQrthA0damRg3rqG7iodOQ0C5X1DbPRb/3T XJT7yIGj0cZcNrLNjLNRzXIhjhxzB9Cd1lIOKh7pxND1yq9YqL88AC0NOQGqbHjCRY6Fdi6y jjazUVZHHxfdd9ay0bOKXhb6eqKFvTOAtF/9CSPLbWnk49v3AWmryeaQv4y3c8j6qpNk3oqE nO+8yyFz7TWAfJ55kUu6bFuVGw5qYzU0lUybQ2iDypicalArBPH7kt5MipJLpGJpNHpNEGKg 9LRCsCtBKX4rVec+qiDkGKVLc1NKimEEEW/Emo1pFjpEY2QsCgFtStaZZKZwhtIzaQZ1uIG2 xEglksgot/CIVrM4KjI5/T+aWzqeASpeyAE+PEjIYMkpB8eD/Yg2AIebA3IA340XASxbzMC9 wRKAp3/PAuuOW65altfRAaC9DfOKsjA40/KM60lwCBGcyS5neRKbiWsYtLscwBPghBWDVZ/9 vGr3J/bD+czzq5hFvAIfDHnL+hKxsHOkjuNt9zK8VtflnoPH8yEU0FEh8dSBxD0etFqn1jS7 4IWqvrXx/OHcgJ3rxUHQ9UfHmkYFm59ns71YA8sL2tf0cbBrrJTlqY8T2+D11ggv/RIs/L4W 82Cc2AjP/TWLeXlf2HxpHQvhI1c+22P1tDo37O+lSThSf2ZtKfkATuR9juWDrdb/O5QDUAMC aROjV9NMlCnSQB//78pURr0NrL5l0TvNwDG1EN4DMB7oAZCHCzb7bgjTqvx8k6n0j2mzMcmc pqOZHhDlXl8BHvSiyuj+DAZLklQWLZHJ5XJZ9A65VLDF93KxSOVHqCkLraVpE21e92E8n6AM rKJ3YvbOseDEjjpHsPKb+u7qwBuTxZPx3/3z9wq/YTdmzroy2ZEw+F6KPfSI7df2W2eteGJR tFD84Ze1R19/9UBK8rzzkO0D5+Ul6l1hyWDTQf6KQ/xDUcbNp9q7uU2x6fPkJ/du7DtRaUpg NNoBxY7BnqIEIO8OTslTLz/sGyfV+oWYvbtXph/6X0nfMttqFZXF9wcruqqpocLEk+JM3bdP fZrY7eM/njhv2/T+8oRy/mhk/8AX+slQy8Dj0KVD+xe18j03meWz2NuB2gjhxsMVeekXkgJP jZW4Yg4XbK92/NkyfbUgrpO/c/HTB+m3K7fLlsPgkynGGdO2t07YMEbGaQUsRkNJRbiZof4F 92BkxFQEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFLMWRmVeSWpSXmKPExsWy7bCSvO7Jquxkg+u7DS0ezNvGZnFo81Z2 iznnW1gs5h85x2rx9Ngjdou+Fw+ZLS5s62O12PT4GqvFqu9TmS0evgq3uLxrDpvFjPP7mCzW L5rCYnFsgZjFt9NvGC0Wbf3CbvHwwx52i1kXdrBatO49wm5x+806VotfCw+zWCy9t5PVQcxj y8qbTB4LNpV6fLx0m9Fj06pONo871/aweWxeUu/R/9fA4/2+q2wefVtWMXr8a5rL7vF5k1wA dxSXTUpqTmZZapG+XQJXxqcLWgVvhCtefStvYFzI38XIySEhYCJx9vM6li5GLg4hgd2MEoe2 P2aBSEhJTDnzEsoWllj57zk7RFEzk8TMY6vYQBJsAloSjzsXgHWLCOxmknjbPResillgEZPE yyu9zCBVwgIhEq/uHQCzWQRUJZ6dXgc2llfARmLf+Q1sECvkJVZvAKnh4OAUsJV4uNAAJCwE VPL89iLGCYx8CxgZVjFKphYU56bnFhsWGOallusVJ+YWl+al6yXn525iBEePluYOxu2rPugd YmTiYDzEKMHBrCTCy62RnSzEm5JYWZValB9fVJqTWnyIUZqDRUmc90LXyXghgfTEktTs1NSC 1CKYLBMHp1QD0zneHJbI2p/R+wRkm4NMHt0Tqf5x8M0T7g0OcUvTvuxMSzvktlydYc+XTIe+ F16MczUebXQ/rDT7wU2hKpvXPyaK6UzQ3cS20GUt4/zJO4xYDsades3D5WUxQWzf48dvv3N3 LH476U1PxpvYU1ZF90rvmC2qqLld+XJ5r129e9rPtQ/kDk/dy+9fZVOwi7vgHMNO40B+ke9F rVyyUWbXdgQuSNhcftZZKOIl/4S13AfuXRAu3HrkTsG2A/XxMTdush1x35mtNEtO191d7sa3 ynWit4zl7qc9Ptan9K5sc8vZpfaOmcVqQb+tePek3TmlzzTft00og92Z/xSrWqG77+lw9c06 93c5aujp2N0oVGIpzkg01GIuKk4EAIgOjpcNAwAA X-CMS-MailID: 20221109100249epcas5p142a0a9f7e822c466f7ca778cd341e6d9 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20221109100249epcas5p142a0a9f7e822c466f7ca778cd341e6d9 References: <20221109100928.109478-1-vivek.2311@samsung.com> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Whenever the data is transferred or stored on message ram, there are inherent risks of it being lost or corruption known as single-bit errors. ECC constantly scans data as it is processed to the message ram, using a method known as parity checking and raise the error signals for corruption. Add error correction code config property to enable/disable the error correction code (ECC) functionality for Message RAM used to create valid ECC checksums. Signed-off-by: Chandrasekar R Cc: devicetree@vger.kernel.org Cc: Krzysztof Kozlowski Cc: Rob Herring Signed-off-by: Vivek Yadav --- .../bindings/net/can/bosch,m_can.yaml | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml b/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml index 26aa0830eea1..91dc458ec33f 100644 --- a/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml +++ b/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml @@ -50,6 +50,12 @@ properties: - const: hclk - const: cclk + tesla,mram-ecc-cfg: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + Handle to system control region that contains the ECC INIT register + and register offset to the ECC INIT register. + bosch,mram-cfg: description: | Message RAM configuration data. @@ -149,4 +155,29 @@ examples: }; }; + # Example 2: m_can on the FSD SoC + - | + #include + #include + + soc { + #address-cells = <2>; + #size-cells = <2>; + can@14088000 { + compatible = "bosch,m_can"; + reg = <0x0 0x14088000 0x0 0x0200>, + <0x0 0x14080000 0x0 0x8000>; + reg-names = "m_can", "message_ram"; + interrupts = , + ; + interrupt-names = "int0", "int1"; + pinctrl-names = "default"; + pinctrl-0 = <&m_can0_bus>; + clocks = <&clock_peric PERIC_MCAN0_IPCLKPORT_PCLK>, + <&clock_peric PERIC_MCAN0_IPCLKPORT_CCLK>; + clock-names = "hclk", "cclk"; + tesla,mram-ecc-cfg = <&sysreg_peric 0x708>; + bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>; + }; + }; ... From patchwork Wed Nov 9 10:09:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vivek Yadav X-Patchwork-Id: 623091 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C0F60C3A589 for ; Wed, 9 Nov 2022 10:54:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230203AbiKIKy3 (ORCPT ); Wed, 9 Nov 2022 05:54:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38646 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230118AbiKIKxw (ORCPT ); Wed, 9 Nov 2022 05:53:52 -0500 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3520D29C87 for ; Wed, 9 Nov 2022 02:53:11 -0800 (PST) Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20221109105310epoutp034c5c0d3aaa85f313a3ef17c1e41751e6~l5SZs896J1388913889epoutp03D for ; Wed, 9 Nov 2022 10:53:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20221109105310epoutp034c5c0d3aaa85f313a3ef17c1e41751e6~l5SZs896J1388913889epoutp03D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1667991190; bh=Yg7bj+1oR0s3uoN78lwOUQr34dho0dl7WMgCJv7J+58=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=diHUslnDY6PbRV93sXByOSLVms/bX/N2YC4CUOLY3wXUWU2i+zfQ/0wkByx2faMhD qs8mEfi7XVP/VrRhnzU/m+Fci+hFFgSEoj5GRMx+SnaogFImJQG3jH6jE8ZdvipU4u WuzeCCufGgAhHwDaal+gtdmlnH65Gnlr/a+rYYyc= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20221109105309epcas5p4859d3eb3c677bf03883da2f4c8c20a20~l5SYo2V221241612416epcas5p4Y; Wed, 9 Nov 2022 10:53:09 +0000 (GMT) Received: from epsmges5p3new.samsung.com (unknown [182.195.38.183]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4N6hdZ6HF7z4x9Pr; Wed, 9 Nov 2022 10:53:06 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id C8.03.56352.2968B636; Wed, 9 Nov 2022 19:53:06 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20221109100302epcas5p276282a3a320649661939dcb893765fbf~l4mov7Trg0099800998epcas5p22; Wed, 9 Nov 2022 10:03:02 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20221109100302epsmtrp267d47c8412f496527ce804231bb00928~l4motTZSR1459514595epsmtrp2t; Wed, 9 Nov 2022 10:03:02 +0000 (GMT) X-AuditID: b6c32a4b-383ff7000001dc20-56-636b8692b85d Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id CC.E0.14392.6DA7B636; Wed, 9 Nov 2022 19:03:02 +0900 (KST) Received: from cheetah.sa.corp.samsungelectronics.net (unknown [107.109.115.53]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20221109100259epsmtip2eca411ad2f4291996797af9a74a2b4f9~l4mlzakIl1918919189epsmtip2C; Wed, 9 Nov 2022 10:02:59 +0000 (GMT) From: Vivek Yadav To: rcsekar@samsung.com, krzysztof.kozlowski+dt@linaro.org, wg@grandegger.com, mkl@pengutronix.de, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, pankaj.dubey@samsung.com, ravi.patel@samsung.com, alim.akhtar@samsung.com, linux-fsd@tesla.com, robh+dt@kernel.org Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, aswani.reddy@samsung.com, sriranjani.p@samsung.com, Vivek Yadav Subject: [PATCH v2 5/6] can: m_can: Add ECC functionality for message RAM Date: Wed, 9 Nov 2022 15:39:27 +0530 Message-Id: <20221109100928.109478-6-vivek.2311@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221109100928.109478-1-vivek.2311@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VTf1CTdRj3u/fduwFRb4D4hc6xe40C7oBNYH0xpl6ivYUWF0R32TXXeA92 G9tuG6LVlDbF4BKh4EScgKAlg4Am7PgpNsyK7oA07YDZOTRAREFH6FFgjBfrv8/zPJ/nx+d5 vl8+FtBHhPKVGiOj18jVFOGLO/oiI6K/LFApRI3VInSzykEg5/k2HrIOHsJR9aUBLvrz8hgP FU+6MTTkKOYi+63rXGR7VI4h99R76GqnlUAVgxc4qLm2DEeXa4LR/C/TANW2zfGQe7abhyqH 2rnocM8lHhqdbuKihdN9ODr7Rwd3azDdWj/MoWvsufSDK6OAttsKCdp1vZugz585SB9bFNEz F64RdHGrDdBL5lM82mMXpPq9r0rKZuSZjF7IaBTaTKUmS0qlpMm2yRIkInG0OBG9Qgk18hxG SiXvTI3eoVQvS6WEe+Xq3GVXqtxgoGI3J+m1uUZGmK01GKUUo8tU6+J1MQZ5jiFXkxWjYYyb xCLRxoRl4h5Vdkd/E6Fr2byv4Csnng9+2FgE+HxIxkNbnbQI+PIDyC4Af574HGONhwB+01hN sMY8gJ85rZwi4LOS4bjzD4cN9AA4V7awyjrMgb/Olq+wCDIK3iqswb2BILKBA1s9buA1MLKS A89YRnAvK5B8A7Z+30l4MU6Gwwb3OObF/mQSXKo+yWP7hcGGlouYd1ofUgrdp0XeOpB08eG9 48dwVkUytPUmsvRAOPVj62pqKPTc7yFYrIDtS4VcFmfDmtJuwOIt8OJv1pUyGBkJmztjWfd6 WN7ftKIFI5+FR/++vareH7ZXPcUvwklPCZedIBQeHQhk3TS03JjgsjspAdB81c0rAYLK/zvU AGADIYzOkJPFGBJ0cRom77+jKbQ5drDymqNS2sHYzdkYJ+DwgRNAPkYF+ftFqBQB/pny/R8z eq1Mn6tmDE6QsLy9Uix0rUK7/B00Rpk4PlEUL5FI4hPjJGJqnX9dRZQigMySGxkVw+gY/dM8 Dt8nNJ9jFfg9o6x/LTGiV7LrnqVY4VdueuHEWvfAnjVf80xvespMxuE08ifd7+G+Yk9WNMh/ vlb5XXLjjeMhT14fj0wJ4Nm/6KKbD7mYiZmhR7Yr1odr8P0w+EhLhebxbcXQp127hx9/WziR zj9XZY693/WcxTGS/4EzxfWR65RgXeC5jLnqawPvHhD0vyOd7nuV6t2wXsedGhF3HLEd9FVP p6cnMXszxqS7heatd1UpL+Xlvf2yURxSYimltn/iW+CMCLu7JRC48F0LD1RR5rK0v8bVk4Mz pn0yvGhx8cOlOOXJ5v4nbzU19J8NC28bNW2a3JG2bXJ7/azAVDcfFLPzDhlzICSDwg3ZcnEU pjfI/wWCSvVIVgQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRmVeSWpSXmKPExsWy7bCSvO61quxkgxsPlCwezNvGZnFo81Z2 iznnW1gs5h85x2rx9Ngjdou+Fw+ZLS5s62O12PT4GqvFqu9TmS0evgq3uLxrDpvFjPP7mCzW L5rCYnFsgZjFt9NvGC0Wbf3CbvHwwx52i1kXdrBatO49wm5x+806VotfCw+zWCy9t5PVQcxj y8qbTB4LNpV6fLx0m9Fj06pONo871/aweWxeUu/R/9fA4/2+q2wefVtWMXr8a5rL7vF5k1wA dxSXTUpqTmZZapG+XQJXxs5T69gKNthVtE0+xNLAeNSoi5GTQ0LARGLbyz9MXYxcHEICuxkl ZvWtZ4dISElMOfOSBcIWllj57zk7RFEzk8TEF1vYQBJsAloSjzsXsIAkRAR2M0m87Z4LVsUs sIhJ4uWVXmaQKmEBT4ktB3eBdbAIqEqsfvgMLM4rYCPxb/5sqHXyEqs3HACKc3BwCthKPFxo ABIWAip5fnsR4wRGvgWMDKsYJVMLinPTc4sNCwzzUsv1ihNzi0vz0vWS83M3MYIjSEtzB+P2 VR/0DjEycTAeYpTgYFYS4eXWyE4W4k1JrKxKLcqPLyrNSS0+xCjNwaIkznuh62S8kEB6Yklq dmpqQWoRTJaJg1OqgSnmbnHNzF0VnC37OzOb8teGz7/Rxr/j0xcOnfMZ4j9OLjISE7HnPfV4 4qttqzYoO265Yf/dqrjoiUTJu3gPqb9KVgtObOivqPr0Ufn22j32577naLm2pXYZNRc37U6d U7WAT1ckx+uYDvNnRfEwbXGb0uU1LDOiEjqcJ08Lfh9y5ff7fY9klnZUrlm2Xz3K3TtnwYEL fw9VSgoln9t6bJFZc5h+5qbJWvmrvk5avi3YnG1fYr3S7bvV1YF5Jfe1yg5dKdvydmrp1r9r RSd6tezpux+jJNnwbi2Pat3MgsMcm7btmX5MXGzXIsWkhz6CTsfjVHT7JDm6BQxn7Az51qNS sZxN6KmUjJKrXn/3aSWW4oxEQy3mouJEAKVQEtwPAwAA X-CMS-MailID: 20221109100302epcas5p276282a3a320649661939dcb893765fbf X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20221109100302epcas5p276282a3a320649661939dcb893765fbf References: <20221109100928.109478-1-vivek.2311@samsung.com> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Whenever MCAN Buffers and FIFOs are stored on message ram, there are inherent risks of corruption known as single-bit errors. Enable error correction code (ECC) data integrity check for Message RAM to create valid ECC checksums. ECC uses a respective number of bits, which are added to each word as a parity and that will raise the error signal on the corruption in the Interrupt Register(IR). This indicates either bit error detected and Corrected(BEC) or No bit error detected when reading from Message RAM. Signed-off-by: Chandrasekar R Signed-off-by: Vivek Yadav --- drivers/net/can/m_can/m_can.c | 48 +++++++++++++++- drivers/net/can/m_can/m_can.h | 17 ++++++ drivers/net/can/m_can/m_can_platform.c | 76 ++++++++++++++++++++++++-- 3 files changed, 135 insertions(+), 6 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index a776cab1a5a4..ddff615ccad4 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -307,6 +307,14 @@ enum m_can_reg { #define TX_EVENT_MM_MASK GENMASK(31, 24) #define TX_EVENT_TXTS_MASK GENMASK(15, 0) +/* ECC Config Bits */ +#define MCAN_ECC_CFG_VALID BIT(5) +#define MCAN_ECC_ENABLE BIT(3) +#define MCAN_ECC_INIT_ENABLE BIT(1) +#define MCAN_ECC_INIT_DONE BIT(0) +#define MCAN_ECC_REG_MASK GENMASK(5, 0) +#define MCAN_ECC_INIT_TIMEOUT 100 + /* 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. @@ -1516,9 +1524,9 @@ static int m_can_dev_setup(struct m_can_classdev *cdev) } if (cdev->ops->init) - cdev->ops->init(cdev); + err = cdev->ops->init(cdev); - return 0; + return err; } static void m_can_stop(struct net_device *dev) @@ -1535,6 +1543,39 @@ static void m_can_stop(struct net_device *dev) cdev->can.state = CAN_STATE_STOPPED; } +int m_can_config_mram_ecc_check(struct m_can_classdev *cdev, bool enable) +{ + struct m_can_ecc_regmap *ecc_cfg = &cdev->ecc_cfg_sys; + int val, ret; + + val = FIELD_PREP(MCAN_ECC_REG_MASK, MCAN_ECC_ENABLE | + MCAN_ECC_CFG_VALID | MCAN_ECC_INIT_ENABLE); + regmap_clear_bits(ecc_cfg->syscon, ecc_cfg->reg, val); + + if (enable) { + val = FIELD_PREP(MCAN_ECC_REG_MASK, MCAN_ECC_ENABLE | + MCAN_ECC_INIT_ENABLE); + regmap_set_bits(ecc_cfg->syscon, ecc_cfg->reg, val); + } + + /* after enable or disable, valid flag need to be set*/ + val = FIELD_PREP(MCAN_ECC_REG_MASK, MCAN_ECC_CFG_VALID); + regmap_set_bits(ecc_cfg->syscon, ecc_cfg->reg, val); + + if (enable) { + /* Poll for completion */ + ret = regmap_read_poll_timeout(ecc_cfg->syscon, ecc_cfg->reg, + val, + (val & MCAN_ECC_INIT_DONE), 5, + MCAN_ECC_INIT_TIMEOUT); + + if (ret) + return ret; + } + + return 0; +} + static int m_can_close(struct net_device *dev) { struct m_can_classdev *cdev = netdev_priv(dev); @@ -1557,6 +1598,9 @@ static int m_can_close(struct net_device *dev) if (cdev->is_peripheral) can_rx_offload_disable(&cdev->offload); + if (cdev->ops->deinit) + cdev->ops->deinit(cdev); + close_candev(dev); phy_power_off(cdev->transceiver); diff --git a/drivers/net/can/m_can/m_can.h b/drivers/net/can/m_can/m_can.h index 401410022823..9821b135a2be 100644 --- a/drivers/net/can/m_can/m_can.h +++ b/drivers/net/can/m_can/m_can.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -26,6 +27,7 @@ #include #include #include +#include #include #include @@ -52,12 +54,23 @@ enum m_can_mram_cfg { MRAM_CFG_NUM, }; +enum m_can_ecc_cfg { + ECC_DISABLE = 0, + ECC_ENABLE, +}; + /* address offset and element number for each FIFO/Buffer in the Message RAM */ struct mram_cfg { u16 off; u8 num; }; +struct m_can_ecc_regmap { + struct regmap *syscon; /* for mram ecc ctrl. reg. access */ + unsigned int reg; /* register index within syscon */ + u8 ecc_cfg_flag; +}; + struct m_can_classdev; struct m_can_ops { /* Device specific call backs */ @@ -68,6 +81,7 @@ struct m_can_ops { int (*write_fifo)(struct m_can_classdev *cdev, int addr_offset, const void *val, size_t val_count); int (*init)(struct m_can_classdev *cdev); + int (*deinit)(struct m_can_classdev *cdev); }; struct m_can_classdev { @@ -92,7 +106,9 @@ struct m_can_classdev { int pm_clock_support; int is_peripheral; + struct m_can_ecc_regmap ecc_cfg_sys; /* ecc config via syscon regmap */ struct mram_cfg mcfg[MRAM_CFG_NUM]; + u8 mram_cfg_flag; }; struct m_can_classdev *m_can_class_allocate_dev(struct device *dev, int sizeof_priv); @@ -104,4 +120,5 @@ int m_can_init_ram(struct m_can_classdev *priv); int m_can_class_suspend(struct device *dev); int m_can_class_resume(struct device *dev); +int m_can_config_mram_ecc_check(struct m_can_classdev *cdev, bool enable); #endif /* _CAN_M_H_ */ diff --git a/drivers/net/can/m_can/m_can_platform.c b/drivers/net/can/m_can/m_can_platform.c index b5a5bedb3116..1281214a3f43 100644 --- a/drivers/net/can/m_can/m_can_platform.c +++ b/drivers/net/can/m_can/m_can_platform.c @@ -67,11 +67,83 @@ static int iomap_write_fifo(struct m_can_classdev *cdev, int offset, return 0; } +static int m_can_plat_init(struct m_can_classdev *cdev) +{ + struct m_can_ecc_regmap *ecc_cfg = &cdev->ecc_cfg_sys; + struct device_node *np = cdev->dev->of_node; + int ret = 0; + + if (cdev->mram_cfg_flag != ECC_ENABLE) { + /* Initialize mcan message ram */ + ret = m_can_init_ram(cdev); + + if (ret) + return ret; + + cdev->mram_cfg_flag = ECC_ENABLE; + } + + if (ecc_cfg->ecc_cfg_flag != ECC_ENABLE) { + /* configure error code check for mram */ + if (!ecc_cfg->syscon) { + ecc_cfg->syscon = + syscon_regmap_lookup_by_phandle_args(np, + "tesla,mram-ecc-cfg" + , 1, + &ecc_cfg->reg); + } + + if (IS_ERR(ecc_cfg->syscon)) { + dev_err(cdev->dev, "couldn't get the syscon reg!\n"); + goto ecc_failed; + } + + if (!ecc_cfg->reg) { + dev_err(cdev->dev, + "couldn't get the ecc init reg. offset!\n"); + goto ecc_failed; + } + + /* Enable error code check functionality for message ram */ + if (m_can_config_mram_ecc_check(cdev, ECC_ENABLE)) + goto ecc_failed; + + ecc_cfg->ecc_cfg_flag = ECC_ENABLE; + } + + return 0; + +ecc_failed: + dev_err(cdev->dev, "Message ram ecc enable config failed\n"); + + return 0; +} + +static int m_can_plat_deinit(struct m_can_classdev *cdev) +{ + struct m_can_ecc_regmap *ecc_cfg = &cdev->ecc_cfg_sys; + + if (ecc_cfg->ecc_cfg_flag == ECC_ENABLE) { + /* Disable error code check functionality for message ram */ + if (m_can_config_mram_ecc_check(cdev, ECC_DISABLE)) { + dev_err(cdev->dev, + "Message ram ecc disable config failed\n"); + return 0; + } + + ecc_cfg->ecc_cfg_flag = ECC_DISABLE; + } + + return 0; +} + static struct m_can_ops m_can_plat_ops = { .read_reg = iomap_read_reg, .write_reg = iomap_write_reg, .write_fifo = iomap_write_fifo, .read_fifo = iomap_read_fifo, + .init = m_can_plat_init, + .deinit = m_can_plat_deinit, }; static int m_can_plat_probe(struct platform_device *pdev) @@ -140,10 +212,6 @@ static int m_can_plat_probe(struct platform_device *pdev) platform_set_drvdata(pdev, mcan_class); - ret = m_can_init_ram(mcan_class); - if (ret) - goto probe_fail; - pm_runtime_enable(mcan_class->dev); ret = m_can_class_register(mcan_class); if (ret)