From patchwork Fri May 28 10:06:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan \(OSS\)" X-Patchwork-Id: 449505 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp176801jac; Fri, 28 May 2021 02:33:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw011olXiK/XlODlBEKY3lI0MrcY88TEzzs9k5wCrncoWx2/IKl8fDcBNlpaQL/doCgdaDL X-Received: by 2002:a17:907:2bf4:: with SMTP id gv52mr8021522ejc.271.1622194405856; Fri, 28 May 2021 02:33:25 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1622194405; cv=pass; d=google.com; s=arc-20160816; b=pibdEVAD1ESLz5Vs0ZJnzkBSvM835EgWB3WUJWr1oqw/nXYVmmUQctRwNJUyfB/PEP BQFWxtL/YcqxRa75TrnIgE9S8EUxHYBWtGpMNThOB2szW5CfoTHVORmW4YwnzlTgjOEc ehCyejevEQonE/2+8pUhWw1U9E47YPu94e70Zv7l+efFaC/jq71WvW3cigIngjYL1rQv LHixNJ7rc3BC0SnxEHPHgHGVcaXPEvu+iD1BIwnom7Lj1khhEKj1fPj2tZ2Y00tLEDsu jVlmd7SttH3AeCjmc8grGQiyGArRaVSE1Tr64inQ7/QRrGZ/K1HlTKfOjR4QImm960pl z7/Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=v9Z3M2zYdIu9xaFJncZgEJKFHAzPu9nzJie1X4ZnMWU=; b=gvPpHN7sOElw18OgTRtQ7tyd84wwKilrcAPAXuxsP0M07UN26mxOSGDJ0WbT4Y5TW+ ji9XtPaOQtk4ROTjMvCOIBUyzaq/Vdo7jrS+3vZ4AtLMqGHl3WaSlFBSAM0IKRj6UshH xsykhw7vkqef6qboysjpLrB2B2iFkLHSXC7RajTsaWeONi2Co5jWFentX07Xp7RotQ0O jighoW00jfLdNbGRIc/D3WRwxwiWYrqynQN1ihYgcYPjinARBY/ZY80S3ue6Ll+0Cxa3 A2B6VU1Scdf+PEmMjZPwc+wXvGRayDvdrTg7IzLuMYpIKyX+5tRIb1MfgHbTTLDhf4Px qOMw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b=e6hcdeuC; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s25si5127505edy.339.2021.05.28.02.33.25; Fri, 28 May 2021 02:33:25 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b=e6hcdeuC; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235452AbhE1Je6 (ORCPT + 7 others); Fri, 28 May 2021 05:34:58 -0400 Received: from mail-eopbgr80040.outbound.protection.outlook.com ([40.107.8.40]:41127 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S234618AbhE1Je4 (ORCPT ); Fri, 28 May 2021 05:34:56 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JJ1EEPzHKJt/1pZICYTDewGEZq51HPC7+mXtB4saNfvPDCd6OD3VMHSRdQTC7eCIQaepeWFknEeuN6H0AttLv9hZvnWxQROcUAPf5KijCBcQp0AE+tvz9riPHBmgmSs56bfWyex0yUAQSo30DfPe8pcKSbeEuw0GDVAbZeVwiAsmgws4Miog546dcLhDuPnSgiGZ20sH7xd8KbqJFTvPHQoMsY2/wGXWXgkzTHKLwZa8ZRqyA4ekwfH3huNyy8e1ohaNEBpTqzfOdblusQbE1wDID/Sj9ffgmCIC2SkHNAxxQTdPsmd0oPEq0pqudkONZg8lraVAEYiNjY7zR8tYLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v9Z3M2zYdIu9xaFJncZgEJKFHAzPu9nzJie1X4ZnMWU=; b=S8lO6/wSNIUeyCc4ShT2J9K0oB851RClz/iuaYasfhEDxTn0n/Odz+9Utl47cmkMe3XcV9ZZNSn3QXRdIDU3MKDpRyJMBZPT2/L02lm2lAS2gyyPfZ445ZMzgRAZiWuXtNhcDiXuZN2uIPxRTVmKmIvKYNTOgo8RDD90UoHPRfm5hebUPc908Zv/gPZxOg4xDH9ntqMFFx9Ky7d7gKmpECL4JBA18vtRUbu2qzMQxO2KBeyONcLserni0sfy6pbrpbhqJ6K5pIDKhxLdsWPd88Ueg2ZsquSI6QnbuElAeqb0k1641dEdYtgS0S0VQn22hor7ElByUpvfWARH7CIOkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v9Z3M2zYdIu9xaFJncZgEJKFHAzPu9nzJie1X4ZnMWU=; b=e6hcdeuC7o53cCZ0Yq+9HUVgIZUmY7q3IPfzbeNHgaw98ZbAB9H131BYYF93+GXXR2JNwDiSZqgxKM9DuOoKLYAo2ze3+ZQ8eM4+tFjtU2Q7aPBgh4usFSF8341NtHOblkeBE0lIFCQAjmaXOnf0L0hKcUAxGKW0Sf7i+HjYIJw= Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none; gmail.com; dmarc=none action=none header.from=oss.nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DBAPR04MB7302.eurprd04.prod.outlook.com (2603:10a6:10:1a5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20; Fri, 28 May 2021 09:33:19 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64%8]) with mapi id 15.20.4173.024; Fri, 28 May 2021 09:33:19 +0000 From: "Peng Fan (OSS)" To: jassisinghbrar@gmail.com, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, o.rempel@pengutronix.de Cc: kernel@pengutronix.de, festevam@gmail.com, aisheng.dong@nxp.com, linux-imx@nxp.com, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan , Rob Herring Subject: [PATCH V2 1/4] dt-bindings: mailbox: imx-mu: add i.MX8ULP MU support Date: Fri, 28 May 2021 18:06:00 +0800 Message-Id: <20210528100603.21759-2-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210528100603.21759-1-peng.fan@oss.nxp.com> References: <20210528100603.21759-1-peng.fan@oss.nxp.com> X-Originating-IP: [119.31.174.71] X-ClientProxiedBy: SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Fri, 28 May 2021 09:33:15 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 19ab49b2-f13d-4eab-d40c-08d921bba0ed X-MS-TrafficTypeDiagnostic: DBAPR04MB7302: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3383; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JEeOEiiRkvJ/IX240E8LEMvaqTAODg7BnmW3Zns4QoEuj8SnszF8yFRBME7wV9UFNHYAKUQQHhCRE6Rn1RTBVpX+C9ANUMwARCvTg8hCN5B26REYpKSGxLSN3K0cYTogvXMs9pPGIvr2Us9Jb9MAv7JDRm4koK9HXQqVmHdeJuvdEgAiB9dtb+Slzs3+kzBCBTdMUw45czd5OlG/igdLQknXIrWrvbvLivs+119YZmF2rf/Jc3Z7AwcdCaYyd6BIippLqHrOZRfoaIeDtpFw40zDUvG9yyo1Sz+XqONTE+6tOgVe/Nef4jDSVrEbXQE7f76mPW4/bBZh+t5sCyaygjIj/YhYUsu43guKhhPLa+J2zNVM4xnu9UjOCWxTev97D+AWVMCoyp+WNfS429dfU3xlGjYFlEsYnzZZYOPJw8if9ECZ3ggEdVDhx/fC0jf3jRN5rzJp27sQxJ9+VJWtimmWL+VLz6Jibx2vl66Cm6OprAHABokhg/3Phbx3OXKAq8rSRAiAoYu0xg/6xadpTagsbMBfwIBsPJQPPNr9aA/VgR/jAv+PzTHAIMFBp/lasnEdY1cKCjirSftCtW9Jg+lYcEvw6oVXmYqMKyZTJ4l+T5nCRV2bh6XxeoudvnUXUsE033I0SPE+RrupxNGRH2cjjTq3xWiiLrYe5EHRqT8= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39860400002)(136003)(346002)(396003)(376002)(2616005)(54906003)(26005)(38350700002)(186003)(86362001)(8936002)(6666004)(8676002)(316002)(4326008)(2906002)(83380400001)(66476007)(66556008)(15650500001)(4744005)(6486002)(6506007)(52116002)(38100700002)(7416002)(956004)(5660300002)(66946007)(16526019)(478600001)(6512007)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: DI4DMDbuCx4GcV97cudWSe+xsD+y0bR+54ScAHLPnIbKdcwxeQxkHQ6bj7V3rkx2GKgfFG10cnciII2hqykMIShm0r6SqVRjVGPaKQASrmEKYs/eGrCEpBrsT9MjTYyLCG4B34z/gEL3/phUMtG5C5Gd9vvYazhKaJ+N6Oezt3mzP2yFvQO+1Fs9JzRr02YmHK28lvFYcVup871eDOirFYSLPsetbTHsEmV34Ay1U3dvh3ilTOWDXPlbi/104/YIC3IUEtIS5uOGURiflxrj6a+F+Q/AmjRPjbY9myDGZAKxvis2i6mjv1k9U6UcJr2HN+VUCH55vrzc77ktsNYnRc7EMBB6m5JD8pTSamcClB229c4h/SxKmNoRlzvIk683y24DTGVjklqkgnNH0Wv7lkDDU0/0XrC3zw0X7GHlAPGyaFO2YhdOvIbaGyLXDCcilkpqnXGRNC1Jy9kJaZdzzBb/idSiAEXtSW5csuFf9es+6kmFvkq3eRcsA53C1fuPdMczHceAYOrKQq6tUIjoch9/5Bsz3+k05AQNNFgssajrkC4IMg91s0n+SslYixE5N10dRlpmTpQq/GbvMuLxrYesg1nV/QzjyER06XTjgie7tzYhH9+V2nOr9MCtZgf1kWfJarjfYR1RsIIBLtEP+jqEdhLg3NrNkLaUaMPMzt5iqLRMrdFScWirRnu9HZkuTbcr7zkaThQ4Ou1jiGaKegZksRBUIhSYJ34UC2VCei9tKaUv8cmEbyS+3bAlIjcPQFW4tug/NHoXzuWRUNKgy6GQXd6RGvaEQv2i2yJuMSCsYW350bLXXS9c+7ZiL3PYR4pvlsbTNDeLUHmjaDtJd/z/qmqbAVWoHOYPoTupfvalraAIo1+QGRZDPVw9sosZi+x/TkT141Uyuy2eMg2CECYUsUKT3DVnXBVa50xeeA7n/KU9+P59inuP61fmvLG/rtXAclxYFtqUx2fKdn89AVEmQ/ev/eAw0+SOOC9V5iOUsh/FIvxVias2ukUwAqhoRiT+Kvh4eFPNwlTrzC4JMAaeCQWsvh8xdhgZNAqb35NkJRBDSYfNIFbeTMtXPlQl4Fzn6g7vsmWoo/zpDRdUIWnPqnfOAo92mTloRQ5EqYIaGxhZjdQR8I3f3Gur4SMeZ+cPRJg5/qMQhgv9608utVV6hCJsH7M3OIjPHngeM3A9uLtmPEDLx6Rhl/moj+8+DQNPI+NEQn9iSwaHYkjBO65pQj64ZVdGKFv+1No6+G8dd+Pi+ihSGkhugpzNvcwJofIQXZdiE9hSotLb5SgJfgBhGRz1+4VF3Nzq4FimmviUr8WJP+H6WxO1laji9HqOYaGuRNUEfw8hKGZR49QAiQ== X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19ab49b2-f13d-4eab-d40c-08d921bba0ed X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2021 09:33:19.5895 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: w+BCzrdhfXvk+8wQbu7dTJWrvTzcRhbMgTmgCoJ/B82z7FE1AYCw9ApHtk3wPEoYWXPDcic1HOISMp1M0qfmhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7302 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Peng Fan The register layout and bits definition of i.MX8ULP MU is different compared with others, let's add the compatible for the new MU. Acked-by: Rob Herring Signed-off-by: Peng Fan --- Documentation/devicetree/bindings/mailbox/fsl,mu.yaml | 1 + 1 file changed, 1 insertion(+) -- 2.30.0 diff --git a/Documentation/devicetree/bindings/mailbox/fsl,mu.yaml b/Documentation/devicetree/bindings/mailbox/fsl,mu.yaml index 1a3dff277e2b..675ad9de15bb 100644 --- a/Documentation/devicetree/bindings/mailbox/fsl,mu.yaml +++ b/Documentation/devicetree/bindings/mailbox/fsl,mu.yaml @@ -26,6 +26,7 @@ properties: oneOf: - const: fsl,imx6sx-mu - const: fsl,imx7ulp-mu + - const: fsl,imx8ulp-mu - const: fsl,imx8-mu-scu - items: - enum: From patchwork Fri May 28 10:06:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan \(OSS\)" X-Patchwork-Id: 449506 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp176856jac; Fri, 28 May 2021 02:33:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx4cAvfN10C6bqpI3gf9uRUlOwhdcmD4khtas1cUjy1PfjkXTcajlKO8xEMdcf9X4ffnK3r X-Received: by 2002:a50:ef0a:: with SMTP id m10mr8986342eds.310.1622194412051; Fri, 28 May 2021 02:33:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1622194412; cv=pass; d=google.com; s=arc-20160816; b=Uq3spt+6eURfePuvcvFSxTvyWmoXumuv3J4KpmcQ5Eq4jtx3yynXBjwFgtoUvIlmU0 vaZ18aj8lyN0SmviKn/jbMPLoCJoOqbHk4bhHImid43DSKWRbqSUkAwhJ9OXbivGfpUP 88Ux5GGPyapZ6Hu3zkRAAbcIr0hhni1J5J9dhDcQ8Dl4R3Hqt/Y7yfX41nC5I7K/WTZi oL8yOCbrjNLp0WxAQzZWs4aGonU73Gbi8weVe9ZcB9tSSOY+mF1qbX3wsfJoTMONgIYe 5CaQSBG3VQUbkd8mzsDWix9mcFgMjVSjAWUSuMrV8merD07TjfCc2fN8MsqSbzXf88HJ PUcg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=kthR1LaEBXeLffCxe1zpZe6u5BMGV8EDqpFYNFkbXVc=; b=jGuIxp/pVjtWd7y+eNwvPjAy+y8PxLYY2/TuTqYpKoD2wVLqArdyJsIsR9Z7P2euvX Ps5oFd5vQg9iBSo3jBBWZvginYINw5tNYL7pVk+XeiI3sLw624ZRSs/uMSYYZG+rE3la 3anmP2MRgYMzRaI8e1OqxQ2ldZGHv3KMOZhUT4Ww2N/fiN8foZKY2HO9UmAlsFXB4KQD 2Qkp2mzA3A32WiqQ2mTXDJDxHvc2zEFpWH2KQza5V96sHTQuOCPaGKVXr2LMa9ix4EOP yZa/eKXHYlmcSl4yTNMjs0Lb6Y6vm38d7iWusHJpyqVWfoBgPo3Ulp5ksxaiMrdpaNW+ XZxg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b=dzYUnxcm; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w12si3251012ejb.717.2021.05.28.02.33.31; Fri, 28 May 2021 02:33:32 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b=dzYUnxcm; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234618AbhE1JfE (ORCPT + 7 others); Fri, 28 May 2021 05:35:04 -0400 Received: from mail-eopbgr80051.outbound.protection.outlook.com ([40.107.8.51]:31974 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235160AbhE1JfB (ORCPT ); Fri, 28 May 2021 05:35:01 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZBGYScbT0m1u4f/nSzi2QZgxPi+n2N3f7cXk2Vk114odZku0qQrEeYQG4Ns4khkVeZ6kNqoealnSKIlauBjpYg1KsUmOnYqKbwV1IPk2JyC95i9Po44f/YYJa6vRoKXrTTVHFkw0Sb+6kJlGMzau3ldAa6QrIgoGMfxzSTv2JReSQPuin9YCSsE3G8Fk/bj/smTsLHFpF2A60dY6nG0Z376qOQOSIV7oHLOElc/j95duMnvoSAZWsvICkjbgkw9FoMJhsKIILtKDQJFwHfd1O+CQFfCGW7SS2fIkN3w/nRlB1g4pAYbLfGEJPsE9Y0Y0oqnd4au9aTbXv2wAKOq6XQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kthR1LaEBXeLffCxe1zpZe6u5BMGV8EDqpFYNFkbXVc=; b=TMnbmTaj81dgLsG2qatgLH0I2oBrKRaiKnAL9uq8BwF+gjwBeY/zXHkGlo63+78Kq3/ejivxXfaMM/yrAqOxPzPp1q/GV82hzUYh9ULgDM06OHfU7H624cTNDJ3BafbtWUMJ3wTW/0lSIbGhF9niq+S/jMQlrOUIyW8Jb2pAG/c5baaRDEurNlLQoUsnZHJeJfpjcYbP9Np2gg0qzclzC1q0ANOTqggszxA9F5pCKTU+pVxTqH+85gShTIHlXiS5BhCzkTH/Sp4jFv85AIsBzqYbZ0zB/+j6OTPe+sHrlp8NFc3r/08kvr3afBt7hFX9Eshx18xNKfcJhVglf2KKGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kthR1LaEBXeLffCxe1zpZe6u5BMGV8EDqpFYNFkbXVc=; b=dzYUnxcmRT05TXWdzOXSDqjXwJkVxxas+WH8MXdsPPPGXWi/nLo4C+7LmKVkob68QGfkVlwa9eKPQScAnWyc+q8JNxkYZRCCLE068d5wvCupyi04aZ//ik42CWgoH3IK/hbc2/1fIGMGOx7jL8GQX8/wLf7YkoN5dlUmVw7iqTw= Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none; gmail.com; dmarc=none action=none header.from=oss.nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DBAPR04MB7302.eurprd04.prod.outlook.com (2603:10a6:10:1a5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20; Fri, 28 May 2021 09:33:24 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64%8]) with mapi id 15.20.4173.024; Fri, 28 May 2021 09:33:24 +0000 From: "Peng Fan (OSS)" To: jassisinghbrar@gmail.com, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, o.rempel@pengutronix.de Cc: kernel@pengutronix.de, festevam@gmail.com, aisheng.dong@nxp.com, linux-imx@nxp.com, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan Subject: [PATCH V2 2/4] mailbox: imx: replace the xTR/xRR array with single register Date: Fri, 28 May 2021 18:06:01 +0800 Message-Id: <20210528100603.21759-3-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210528100603.21759-1-peng.fan@oss.nxp.com> References: <20210528100603.21759-1-peng.fan@oss.nxp.com> X-Originating-IP: [119.31.174.71] X-ClientProxiedBy: SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Fri, 28 May 2021 09:33:20 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 622606d0-aa70-4b43-e7c6-08d921bba3a7 X-MS-TrafficTypeDiagnostic: DBAPR04MB7302: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3383; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p+cUexT01TNj1gubYCI3zoy+ssE/E1paA1hFhGzIG2zIPhtWbF/4KmmgqA+2VcBrsKD2K0oC23yDpWcBvQtxUP2HFSxNNjUrYVo3mKTXF160Kxuh7qY6R2QTIfTPeRafJJv0KbVh7RCF6MYCsVWKks5xgAL9mMlY9conqU8XE84BNzlrLb0SS4rnxv2XoTfSC59FR+EHcTfK5A+9y2ekfiKpbUpg4LrfsoVMvrPDZRA+ChH/THJw64xLGlOzA54Z0QumfN3yymmshDybXZ4D+BKEXeQA6AB8hag2d/AkJcercAopULOdbrOu0vbXROM02z2vCG+bZzd38XupKKuwqc5qMZjX9yP/3dAbDV7QbRiIiqbc94+lLUz7W1DSh0Bg0f6oe4tmvrpUHS/AhAhIqNMKro2JoleMllGSzYtlGnXYaju4t6QneRJf+fLRagVXLcA2VNaqwslXZgNlzJ6Yi7xKMsYqjHUabmjnhn4V8TZI1hR0C6rtV3LxTKDvl/ohTP3NZCP4qAy2KPS+H68lpeirWIKyNlhFp614BPe6CSXMN2L4gRPgirG0yR6ffWC9Kknbc3DotAJDAjmfndt23JRHMeGPjejrK85AgjTR6NsknxJWfHNicRYi7gSeOECxI7PO30vIVpN9KqniBAdiNg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39860400002)(136003)(346002)(396003)(376002)(2616005)(26005)(38350700002)(186003)(86362001)(8936002)(6666004)(8676002)(316002)(4326008)(2906002)(83380400001)(66476007)(66556008)(15650500001)(6486002)(6506007)(52116002)(38100700002)(7416002)(956004)(5660300002)(66946007)(16526019)(478600001)(6512007)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 0UnMkG1iLqg9ye7awZFtWVTi2cu3zNf6GGTDD5aazgCYls/MBzJl7tjvWgxDMtE7FyDMyc58DtlqwEmREoLgHpKu92Hg2YZRDD/AjZjTaH/BqCaLQO8zIpB+nx7B3KhNChzHRXRjfIVAY8u6JxKHIEKcrLf7UHJTQyijMHwmuIkxbRk8lHdtZ90rkFHt8/pv+4qBQ8kKT5GDTaJH+K+NsqC2Qpd96VlupzXq1BMsaT0gqNYeSQHXMBfFeIgMVysl9YSkZl/BJYgMZtprYF5K/kuHPBst3pfdCTRimeq36Eq9KdA6DeyPn3z/sRDmMTXq7WcFXUmfx8aM4nXBVyiNw9pC9a/4UzHJGL8+Tfhv9GeNtNGyDcyXNh8lv12w7ih/siuUqZmea5hViFKBSNstLw22+9Yp2ZfZVPhuDcmlZd/KBIGaorQivdUNljeVXjbjfyD0r2OspoB2yDlod9zv1hw4GZTt6ksET7Lf0d/dGvkkhQSBs8X3/WviK2l3LdsmKvZ3lh9sqPSmvC1DcHAdLrZSNSfEPT9jqGl9eSKYCXmvsQet/8Df/yBeFNagPf9nSqTEfnGsu7qYOVo2LT5ZBpF9EGw0sQ6aMtFpvQTmcWL7n5WmA1iUyYpjvM+udP+nlqYnArWgqophTL+ZRBglE6WDgPGW1O9v4bvojPsQHru3fUEdpebjbvNTF/8449fa1Dha5TTrKEWjvIRqdYI3ZFcTZ5liUxbp0/k2sQA0NfoJJTpnvuoPrHEzAcNX/IuQOWDF3R+lq6bs7KnxIeAxR6zxClvqduJ3vtYsxe2QYbvrxxZQ0UMfaGJjB9nOjY0wf0AyN8RvzjA7MY7E12hvfOxp8Dq1rAoonUAxUCh6v32+UBfRzPIxC94u0EoyFJx3FvPOcyWRiOMtG9nnWGch2924Os1EPfdxkSvkBOD+6Hxt+kdNfboQwAnqGuzc8Ai9g8HkioOGBzyoH9pswXKY1vXi/iJ57EYJNldQZOBncgxSHX9O61Ux2EJACzdxwFY/ywU/GjaltftCe91rUK7l4Y8Sj3qXzdORJVo3IbBq6tb/7d2vBv3+R05Qw40kw4TRABtV9EU/QabInTTlQESH9f65uZQ6gHuOIGQu+K0U18fUd/XrQaqIEHHeeMqixWuK40ziuPvnt/bfaaT6vUA22OJZsf9CQO+c1QBSawp2d9JM+DOAc9WKCsmP/8LNbaFeW3+WgimnHbygc9AzZGX6G/r9gEbF0m/mahN0yLmuLkZR49lZOttGexJ7k1pPLqCpAEzfp+SZJkPOuuwsZQPdQybUHLzQzfQtUB+uBBaFEwMRZS6iq8oaoWW0BkBlyHKDaPgJC8QH6SMaSi+7AEwI7A== X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 622606d0-aa70-4b43-e7c6-08d921bba3a7 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2021 09:33:23.9865 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nR2zWuGzN7h+GsCnLOeAZX+Y6ixAVI4EugUdDd8Tq+V5Q51Rw8nyVjetJo1C0Zgrx5dPRsC/vh8aqavwkRUJHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7302 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Peng Fan The xTR/xRR registers are using 4 bytes stride and continuous. Considering we will support more TR and RR registers, use base + idx * 4 method to calculate register address, not hardcoding in driver. Signed-off-by: Peng Fan --- drivers/mailbox/imx-mailbox.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) -- 2.30.0 diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c index 2543c7b6948b..bd7758c32a80 100644 --- a/drivers/mailbox/imx-mailbox.c +++ b/drivers/mailbox/imx-mailbox.c @@ -76,8 +76,8 @@ struct imx_mu_dcfg { int (*tx)(struct imx_mu_priv *priv, struct imx_mu_con_priv *cp, void *data); int (*rx)(struct imx_mu_priv *priv, struct imx_mu_con_priv *cp); void (*init)(struct imx_mu_priv *priv); - u32 xTR[4]; /* Transmit Registers */ - u32 xRR[4]; /* Receive Registers */ + u32 xTR; /* Transmit Register0 */ + u32 xRR; /* Receive Register0 */ u32 xSR; /* Status Register */ u32 xCR; /* Control Register */ }; @@ -120,7 +120,7 @@ static int imx_mu_generic_tx(struct imx_mu_priv *priv, switch (cp->type) { case IMX_MU_TYPE_TX: - imx_mu_write(priv, *arg, priv->dcfg->xTR[cp->idx]); + imx_mu_write(priv, *arg, priv->dcfg->xTR + cp->idx * 4); imx_mu_xcr_rmw(priv, IMX_MU_xCR_TIEn(cp->idx), 0); break; case IMX_MU_TYPE_TXDB: @@ -140,7 +140,7 @@ static int imx_mu_generic_rx(struct imx_mu_priv *priv, { u32 dat; - dat = imx_mu_read(priv, priv->dcfg->xRR[cp->idx]); + dat = imx_mu_read(priv, priv->dcfg->xRR + (cp->idx) * 4); mbox_chan_received_data(cp->chan, (void *)&dat); return 0; @@ -172,7 +172,7 @@ static int imx_mu_scu_tx(struct imx_mu_priv *priv, } for (i = 0; i < 4 && i < msg->hdr.size; i++) - imx_mu_write(priv, *arg++, priv->dcfg->xTR[i % 4]); + imx_mu_write(priv, *arg++, priv->dcfg->xTR + (i % 4) * 4); for (; i < msg->hdr.size; i++) { ret = readl_poll_timeout(priv->base + priv->dcfg->xSR, xsr, @@ -182,7 +182,7 @@ static int imx_mu_scu_tx(struct imx_mu_priv *priv, dev_err(priv->dev, "Send data index: %d timeout\n", i); return ret; } - imx_mu_write(priv, *arg++, priv->dcfg->xTR[i % 4]); + imx_mu_write(priv, *arg++, priv->dcfg->xTR + (i % 4) * 4); } imx_mu_xcr_rmw(priv, IMX_MU_xCR_TIEn(cp->idx), 0); @@ -204,7 +204,7 @@ static int imx_mu_scu_rx(struct imx_mu_priv *priv, u32 xsr; imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_RIEn(0)); - *data++ = imx_mu_read(priv, priv->dcfg->xRR[0]); + *data++ = imx_mu_read(priv, priv->dcfg->xRR); if (msg.hdr.size > sizeof(msg) / 4) { dev_err(priv->dev, "Maximal message size (%zu bytes) exceeded on RX; got: %i bytes\n", sizeof(msg), msg.hdr.size << 2); @@ -218,7 +218,7 @@ static int imx_mu_scu_rx(struct imx_mu_priv *priv, dev_err(priv->dev, "timeout read idx %d\n", i); return ret; } - *data++ = imx_mu_read(priv, priv->dcfg->xRR[i % 4]); + *data++ = imx_mu_read(priv, priv->dcfg->xRR + (i % 4) * 4); } imx_mu_xcr_rmw(priv, IMX_MU_xCR_RIEn(0), 0); @@ -564,8 +564,8 @@ static const struct imx_mu_dcfg imx_mu_cfg_imx6sx = { .tx = imx_mu_generic_tx, .rx = imx_mu_generic_rx, .init = imx_mu_init_generic, - .xTR = {0x0, 0x4, 0x8, 0xc}, - .xRR = {0x10, 0x14, 0x18, 0x1c}, + .xTR = 0x0, + .xRR = 0x10, .xSR = 0x20, .xCR = 0x24, }; @@ -574,8 +574,8 @@ static const struct imx_mu_dcfg imx_mu_cfg_imx7ulp = { .tx = imx_mu_generic_tx, .rx = imx_mu_generic_rx, .init = imx_mu_init_generic, - .xTR = {0x20, 0x24, 0x28, 0x2c}, - .xRR = {0x40, 0x44, 0x48, 0x4c}, + .xTR = 0x20, + .xRR = 0x40, .xSR = 0x60, .xCR = 0x64, }; @@ -584,8 +584,8 @@ static const struct imx_mu_dcfg imx_mu_cfg_imx8_scu = { .tx = imx_mu_scu_tx, .rx = imx_mu_scu_rx, .init = imx_mu_init_scu, - .xTR = {0x0, 0x4, 0x8, 0xc}, - .xRR = {0x10, 0x14, 0x18, 0x1c}, + .xTR = 0x0 + .xRR = 0x10 .xSR = 0x20, .xCR = 0x24, }; From patchwork Fri May 28 10:06:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan \(OSS\)" X-Patchwork-Id: 449507 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp176890jac; Fri, 28 May 2021 02:33:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxIsYfF1e1PU+MWYTZUunon2OzIadoWWeeO3XWmF7/F9SKNCT3fPen3Uq+SEO40z9SIip9n X-Received: by 2002:aa7:d7d5:: with SMTP id e21mr8992703eds.78.1622194414747; Fri, 28 May 2021 02:33:34 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1622194414; cv=pass; d=google.com; s=arc-20160816; b=dkZAqMtZEx73AHxgeVzDkadmFG2XUwfw9r6HadbRnOIueV7qoDhVxMUuQnXmUj3bCM aRDDLKGVsmS79lCOWNxtBC4bM/pPXhLc3s9yGqmaiOO8vyK6l4R8UCIVuz4LgbdC1T68 2j3tYoUws9GNXDpQX0mmFeBWeCefR8TomlBA5aQH7lJQ63aZeKVuQTRh0m0mwUvx9PZc mN5H9kJ7/Ev+Hqtw3WAs1J7xgpP7TN2mlGCBSkMXVRPzICjYwHO48/RwnNa2I2LvxSIt 3pi4IWxnUkr7lO/cJ+sTXU3n600vnavBMFazlv5bmmRSheGJ742g5GqzWOSimvKJmVpF ystg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2s2IsQF9x1U+XldRTire0kFdqpmTCrVlVdeAlsaqg0M=; b=rP1Sd8UN1DF63R9pENHrLlWhZZdI0ski+CAJahE1lcEswvJwrPV4PxCR8o1ajrNw82 9hJ/kEvpPC7gWoWjAhrVRDe5dRnBD3vHNNL8eqMLQYsMEVx3GtUPcpTE5AT8G/XNdRXT RQLO6nvY6EPtNzhKJz4bBwUaKd8Vw04sBcB2e55gRbgRnP9XMGYNvAkMVTb7a0RmZzgG mIntY9g3y3++gvT1pcFYV1kTwD090XKd7VA0/UJXBUtWows6TyEH/1Xp0Bmv10/FKYUd A8ip2sTVuvwBNynFyvdH8ru+zJ4+qOQeZNDisCwHvz3OPWoB/qC/D6YzPiCUMO6fe1RD Yz2A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b=Avtu8iIX; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w12si3251012ejb.717.2021.05.28.02.33.34; Fri, 28 May 2021 02:33:34 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b=Avtu8iIX; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235437AbhE1JfG (ORCPT + 7 others); Fri, 28 May 2021 05:35:06 -0400 Received: from mail-eopbgr80051.outbound.protection.outlook.com ([40.107.8.51]:31974 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235393AbhE1JfF (ORCPT ); Fri, 28 May 2021 05:35:05 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a5+Xc0KXtf/PtsLEjXyFG83r3e9pnWjxuKPP2iJTX6Be+MbyZ0pLCUibuafEkFo+kDgr2xiST2E2G3Sau0XK+w0t+M0FEXYr+3aCDxr656FRyZLZU+Rxa/VbLzSOXNXWSc5e8ud/gqDx0o44MF4Dd8nN/bDChrvQryytsrqf1Vz4zlx9SwxFFNYxoazo6l0Uyoqd1g/M3X31p+Cs9MY8/Y6j3lRPEiCQ4r+soRUi1daRq/2NzSaVT8+owtKIVmCkYTY0E6zFCbnseNbk+qbN7OWMw14mzj/9JAq0xsRVMQ/W5XS6Kwnry4WaYM95f3N9ucAmcusailcgIM3lFI4DVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2s2IsQF9x1U+XldRTire0kFdqpmTCrVlVdeAlsaqg0M=; b=LCnBjowL2x/8RRa728pZi3/lszo5bKui4Znu36AqkAGmyvutnKSYo96izhroE6HLe1nvAAhKykCz7a5zl3aGrXohK//vsKoI/vallVhpm2dDmi1AWite+5X6rQCudY8DMaKvIJPyNv9eh5xIJWqNSyLH7U5nsTI6utnpZzLgMTS+6Ciw9XWDrsfN0Dz6NQt7d4oLVNsuM+TjjXHGy8y40FfN2z9aksFn5Jp5dOjHVOELLLm0AGutCHdf5bNm+rnpQTZqaYwHY9VKGg7KBlUKxGL3RTU6a6RBNTDYYDV3Tj9ChXDrrqwYO6SZV9eBUI/BYR6llebH6lWmVK4qUyOCRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2s2IsQF9x1U+XldRTire0kFdqpmTCrVlVdeAlsaqg0M=; b=Avtu8iIXmAH89FvpB8GNTovFOldZu9cAjytUImOxaNiswqDk3fJMM09f7qO2c/OJViIEFZbzxoXLj1v39lt/ZU3zdjFQiGYl6jbQW1fAvoGXK4fVSPu7+FV6V2v3iJczIL/EZQo01/+EtFXXxxUQQPSw+ShZR5vAgKYbkk2PnWU= Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none; gmail.com; dmarc=none action=none header.from=oss.nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DBAPR04MB7302.eurprd04.prod.outlook.com (2603:10a6:10:1a5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20; Fri, 28 May 2021 09:33:28 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64%8]) with mapi id 15.20.4173.024; Fri, 28 May 2021 09:33:28 +0000 From: "Peng Fan (OSS)" To: jassisinghbrar@gmail.com, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, o.rempel@pengutronix.de Cc: kernel@pengutronix.de, festevam@gmail.com, aisheng.dong@nxp.com, linux-imx@nxp.com, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan Subject: [PATCH V2 3/4] mailbox: imx: add xSR/xCR register array Date: Fri, 28 May 2021 18:06:02 +0800 Message-Id: <20210528100603.21759-4-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210528100603.21759-1-peng.fan@oss.nxp.com> References: <20210528100603.21759-1-peng.fan@oss.nxp.com> X-Originating-IP: [119.31.174.71] X-ClientProxiedBy: SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Fri, 28 May 2021 09:33:24 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 592194e9-b28d-41aa-c495-08d921bba63c X-MS-TrafficTypeDiagnostic: DBAPR04MB7302: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3276; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Tkc6OY/MP/zDz+XPXyt63hDR86oJk3f1+3DiO8zmsCEXppN1HLshCCAyEMskUcdwEkuzlgwD2IzeLV+rjBguCYpB5Qn7fDXpDCsRJMmzCQt5Zw4Uoao8nEBlAmXhliWDlrZMTIWc9Q1qH8h+NRFOwZKCUg5PW1mKMrQ9kCVtKHkV3HDaJTPsyKNOfg2uyXnc5PaldkC5hPE9gqruzyydRVZPQdpmhfR4uOE4rN8JXPRXiXu4BHZUGAwIBQNz5kqemSJaEKMbJmtBic4B9vdmZZI4ziLwDTMb/tTRW/KiIo608DvPqZRQjICKv+lrd9g3NHJHn3PYoUZLTYlzn/A3ry61jCKz8w6GfxtfjqoOtsejQ9/33mBT+ZMxmzJy98ka5/C96414N0hkyTUcTrvzclXXoygw90MwULfCTg4JDTtsp72ufO2FHPlzcs+sM3ZTqm5UC3KJX4BIA7U2mPrM4wI7ryeXYB5Y7sPIJUqjHnzI6ftcZ9XK3+lVnScDIXSe84ApCiHcoN09f0qnvReLfT+l4yErl8bWTkW1xV8wPY2yic0FzwhwAsfqOf2XtPMrjc9BmgCeaftk6YmGl42GsdkXKrbzjcDLiDhEHOFPS6VzEa3xG769N1xRb2t+ggakyffEesNClYd1YyEEi1xIU9hgB1B4Xow2hVkPEPDJnio= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39860400002)(136003)(346002)(396003)(376002)(2616005)(26005)(38350700002)(186003)(86362001)(8936002)(6666004)(8676002)(316002)(4326008)(2906002)(83380400001)(66476007)(66556008)(15650500001)(6486002)(6506007)(52116002)(38100700002)(7416002)(956004)(5660300002)(66946007)(16526019)(478600001)(6512007)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Z2deogKOe/dWGPQzkCNb9+h236JRmezU3Ytap/xeqMNR7bu+r3w19LlJiCPjM/gzsY5dhD9deHm77X0o0bD/rwW8Iw5+qZiZ2EzshmNXxA80niiPnEpre64kKC9+j9k4NmpTLUlKwiXGv+gB89CyLvgtx9HU6WHspeireFC6i6ZLjijdh62zG+RloXj93iwD4kA/9+RPtEXCIO2apMUSlXDLqPHah9hCCnO9k5t0wel4CtoWVhzDCNlm6XsbPWlVjGypbcHIhRaDCCb6m25DAcZvu2Gc5dhmif0UFhC6bgQCrHc/nJG/I5IFDYdddhrdK5Xg2XpzkDf7gU8UKWtKWkbLkMFCXZuB8XxV4D+dWrGc9F/Wnd7osN1fovZZHiIx+YepawapxW7vhDmDxNHBmZotmJiJymx6g2S3OSb6P+PbMAqpkccSI3562LafQE/RmistU2CyUdCjkdRPc1p99mC7a0KCMSvhzNTu1d8zTmd3qhR9adJGP1797kTHhGPIVF2uDGhIWULVLT0qb3NF3zzwL+FKYRU8na6KPkewX6Jcj/GIZQYz6NZSzH9D89rboZBMfXYRMI32APCtNObqXt6q3KNZNWomhwcfhgWWIoxfi6DnJzU099LheTBcnCIUR4G93FvanA3+dSz/cnWjEOhAB37ab7qF7k342k2B6B3ykzvdulX3svGHN02zW+tJy3QY7Pg5I1LHAVV7NqH6+HS2BOnY3w9Ozwpbbod/JDn4JYDZs13Whbppc8wcLpEGsqcSC7J2k16TIg9eGr3cdrtcUsjy50vHDDEejUIjhAlCVIjHpkfvGTztCv73zI8lC/0pzHmrju1lU/HmDSZJ/AFR3wrmRaSj57YM1r/dGX15fflPd4xEN8npOfBvN2yDGjQ7WkvPwYBznjdr5+ShIHr1AJcAjXoJNr/9yPUcmTj75xX0es2phbx2b8womoYyiJGvO7RqWXKll8OE4wRpWhMLwYr5hoqTsbCyskYSKsuT5bp///dMQwOuCAw+UxX9T1KL2jC/imrZITsmjCESEwJtC+tdZXyx9mpQWmxywloMyTPgzRWvJq13JC2UhHn4rj0yu8cz4e4y/jOdIG/RqvIXvvzrwDdPX4W2D49KZohIJ5dAgbiRQOjFV828AxeNJaaNVvmI9DKNZXvO9ODFnVjkWwKLp0e5853O21FrcCW2Y4luHKdla1XzLxJK6E2t8PkE1jU0Lf7XxGl65FOBmSbaQvlwBTkB3xLbg4JIV2MIIaQFIQmyuVKfBAHCV9Its0LCgkOGEDFF9KmyomIglzOKWdIHN4p81Mvk7xNV+pkDOdLQCQXc2ohGavusiS9nI+rcYpp2UV+Zcn+Dqe1+ew== X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 592194e9-b28d-41aa-c495-08d921bba63c X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2021 09:33:28.4215 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UKCxarGnAjbF3vC7Cd4SovPgWhR6ROx4wkqpihWW2zoJmmJeQJuiU4zcCGeyVoRsXF4mVYLq0exIQYpxe5Y1Zw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7302 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Peng Fan We are going to add a new platform which has 4 status registers(SR, TSR, RSR, GSR) and 4 control registers(CR, TCR, RCR, GCR), so extend xSR and xCR to register array and adapt code to use it. Signed-off-by: Peng Fan --- drivers/mailbox/imx-mailbox.c | 96 ++++++++++++++++++++++------------- 1 file changed, 61 insertions(+), 35 deletions(-) -- 2.30.0 diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c index bd7758c32a80..f5dadcc827aa 100644 --- a/drivers/mailbox/imx-mailbox.c +++ b/drivers/mailbox/imx-mailbox.c @@ -41,6 +41,21 @@ enum imx_mu_chan_type { IMX_MU_TYPE_RXDB, /* Rx doorbell */ }; +enum imx_mu_xcr { + IMX_MU_CR, + IMX_MU_GCR, + IMX_MU_TCR, + IMX_MU_RCR, + IMX_MU_xCR_MAX, +}; + +enum imx_mu_xsr { + IMX_MU_SR, + IMX_MU_GSR, + IMX_MU_TSR, + IMX_MU_RSR, +}; + struct imx_sc_rpc_msg_max { struct imx_sc_rpc_msg hdr; u32 data[7]; @@ -67,7 +82,7 @@ struct imx_mu_priv { struct clk *clk; int irq; - u32 xcr; + u32 xcr[4]; bool side_b; }; @@ -78,8 +93,8 @@ struct imx_mu_dcfg { void (*init)(struct imx_mu_priv *priv); u32 xTR; /* Transmit Register0 */ u32 xRR; /* Receive Register0 */ - u32 xSR; /* Status Register */ - u32 xCR; /* Control Register */ + u32 xSR[4]; /* Status Registers */ + u32 xCR[4]; /* Control Registers */ }; static struct imx_mu_priv *to_imx_mu_priv(struct mbox_controller *mbox) @@ -97,16 +112,16 @@ static u32 imx_mu_read(struct imx_mu_priv *priv, u32 offs) return ioread32(priv->base + offs); } -static u32 imx_mu_xcr_rmw(struct imx_mu_priv *priv, u32 set, u32 clr) +static u32 imx_mu_xcr_rmw(struct imx_mu_priv *priv, enum imx_mu_xcr type, u32 set, u32 clr) { unsigned long flags; u32 val; spin_lock_irqsave(&priv->xcr_lock, flags); - val = imx_mu_read(priv, priv->dcfg->xCR); + val = imx_mu_read(priv, priv->dcfg->xCR[type]); val &= ~clr; val |= set; - imx_mu_write(priv, val, priv->dcfg->xCR); + imx_mu_write(priv, val, priv->dcfg->xCR[type]); spin_unlock_irqrestore(&priv->xcr_lock, flags); return val; @@ -121,10 +136,10 @@ static int imx_mu_generic_tx(struct imx_mu_priv *priv, switch (cp->type) { case IMX_MU_TYPE_TX: imx_mu_write(priv, *arg, priv->dcfg->xTR + cp->idx * 4); - imx_mu_xcr_rmw(priv, IMX_MU_xCR_TIEn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_TCR, IMX_MU_xCR_TIEn(cp->idx), 0); break; case IMX_MU_TYPE_TXDB: - imx_mu_xcr_rmw(priv, IMX_MU_xCR_GIRn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_GCR, IMX_MU_xCR_GIRn(cp->idx), 0); tasklet_schedule(&cp->txdb_tasklet); break; default: @@ -174,7 +189,7 @@ static int imx_mu_scu_tx(struct imx_mu_priv *priv, for (i = 0; i < 4 && i < msg->hdr.size; i++) imx_mu_write(priv, *arg++, priv->dcfg->xTR + (i % 4) * 4); for (; i < msg->hdr.size; i++) { - ret = readl_poll_timeout(priv->base + priv->dcfg->xSR, + ret = readl_poll_timeout(priv->base + priv->dcfg->xSR[IMX_MU_TSR], xsr, xsr & IMX_MU_xSR_TEn(i % 4), 0, 100); @@ -185,7 +200,7 @@ static int imx_mu_scu_tx(struct imx_mu_priv *priv, imx_mu_write(priv, *arg++, priv->dcfg->xTR + (i % 4) * 4); } - imx_mu_xcr_rmw(priv, IMX_MU_xCR_TIEn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_TCR, IMX_MU_xCR_TIEn(cp->idx), 0); break; default: dev_warn_ratelimited(priv->dev, "Send data on wrong channel type: %d\n", cp->type); @@ -203,7 +218,7 @@ static int imx_mu_scu_rx(struct imx_mu_priv *priv, int i, ret; u32 xsr; - imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_RIEn(0)); + imx_mu_xcr_rmw(priv, IMX_MU_RCR, 0, IMX_MU_xCR_RIEn(0)); *data++ = imx_mu_read(priv, priv->dcfg->xRR); if (msg.hdr.size > sizeof(msg) / 4) { @@ -212,7 +227,7 @@ static int imx_mu_scu_rx(struct imx_mu_priv *priv, } for (i = 1; i < msg.hdr.size; i++) { - ret = readl_poll_timeout(priv->base + priv->dcfg->xSR, xsr, + ret = readl_poll_timeout(priv->base + priv->dcfg->xSR[IMX_MU_RSR], xsr, xsr & IMX_MU_xSR_RFn(i % 4), 0, 100); if (ret) { dev_err(priv->dev, "timeout read idx %d\n", i); @@ -221,7 +236,7 @@ static int imx_mu_scu_rx(struct imx_mu_priv *priv, *data++ = imx_mu_read(priv, priv->dcfg->xRR + (i % 4) * 4); } - imx_mu_xcr_rmw(priv, IMX_MU_xCR_RIEn(0), 0); + imx_mu_xcr_rmw(priv, IMX_MU_RCR, IMX_MU_xCR_RIEn(0), 0); mbox_chan_received_data(cp->chan, (void *)&msg); return 0; @@ -241,19 +256,22 @@ static irqreturn_t imx_mu_isr(int irq, void *p) struct imx_mu_con_priv *cp = chan->con_priv; u32 val, ctrl; - ctrl = imx_mu_read(priv, priv->dcfg->xCR); - val = imx_mu_read(priv, priv->dcfg->xSR); - switch (cp->type) { case IMX_MU_TYPE_TX: + ctrl = imx_mu_read(priv, priv->dcfg->xCR[IMX_MU_TCR]); + val = imx_mu_read(priv, priv->dcfg->xSR[IMX_MU_TSR]); val &= IMX_MU_xSR_TEn(cp->idx) & (ctrl & IMX_MU_xCR_TIEn(cp->idx)); break; case IMX_MU_TYPE_RX: + ctrl = imx_mu_read(priv, priv->dcfg->xCR[IMX_MU_RCR]); + val = imx_mu_read(priv, priv->dcfg->xSR[IMX_MU_RSR]); val &= IMX_MU_xSR_RFn(cp->idx) & (ctrl & IMX_MU_xCR_RIEn(cp->idx)); break; case IMX_MU_TYPE_RXDB: + ctrl = imx_mu_read(priv, priv->dcfg->xCR[IMX_MU_GCR]); + val = imx_mu_read(priv, priv->dcfg->xSR[IMX_MU_GSR]); val &= IMX_MU_xSR_GIPn(cp->idx) & (ctrl & IMX_MU_xCR_GIEn(cp->idx)); break; @@ -265,12 +283,12 @@ static irqreturn_t imx_mu_isr(int irq, void *p) return IRQ_NONE; if (val == IMX_MU_xSR_TEn(cp->idx)) { - imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_TIEn(cp->idx)); + imx_mu_xcr_rmw(priv, IMX_MU_TCR, 0, IMX_MU_xCR_TIEn(cp->idx)); mbox_chan_txdone(chan, 0); } else if (val == IMX_MU_xSR_RFn(cp->idx)) { priv->dcfg->rx(priv, cp); } else if (val == IMX_MU_xSR_GIPn(cp->idx)) { - imx_mu_write(priv, IMX_MU_xSR_GIPn(cp->idx), priv->dcfg->xSR); + imx_mu_write(priv, IMX_MU_xSR_GIPn(cp->idx), priv->dcfg->xSR[IMX_MU_GSR]); mbox_chan_received_data(chan, NULL); } else { dev_warn_ratelimited(priv->dev, "Not handled interrupt\n"); @@ -317,10 +335,10 @@ static int imx_mu_startup(struct mbox_chan *chan) switch (cp->type) { case IMX_MU_TYPE_RX: - imx_mu_xcr_rmw(priv, IMX_MU_xCR_RIEn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_RCR, IMX_MU_xCR_RIEn(cp->idx), 0); break; case IMX_MU_TYPE_RXDB: - imx_mu_xcr_rmw(priv, IMX_MU_xCR_GIEn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_GCR, IMX_MU_xCR_GIEn(cp->idx), 0); break; default: break; @@ -342,13 +360,13 @@ static void imx_mu_shutdown(struct mbox_chan *chan) switch (cp->type) { case IMX_MU_TYPE_TX: - imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_TIEn(cp->idx)); + imx_mu_xcr_rmw(priv, IMX_MU_TCR, 0, IMX_MU_xCR_TIEn(cp->idx)); break; case IMX_MU_TYPE_RX: - imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_RIEn(cp->idx)); + imx_mu_xcr_rmw(priv, IMX_MU_RCR, 0, IMX_MU_xCR_RIEn(cp->idx)); break; case IMX_MU_TYPE_RXDB: - imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_GIEn(cp->idx)); + imx_mu_xcr_rmw(priv, IMX_MU_GCR, 0, IMX_MU_xCR_GIEn(cp->idx)); break; default: break; @@ -444,7 +462,8 @@ static void imx_mu_init_generic(struct imx_mu_priv *priv) return; /* Set default MU configuration */ - imx_mu_write(priv, 0, priv->dcfg->xCR); + for (i = 0; i < IMX_MU_xCR_MAX; i++) + imx_mu_write(priv, 0, priv->dcfg->xCR[i]); } static void imx_mu_init_scu(struct imx_mu_priv *priv) @@ -466,7 +485,8 @@ static void imx_mu_init_scu(struct imx_mu_priv *priv) priv->mbox.of_xlate = imx_mu_scu_xlate; /* Set default MU configuration */ - imx_mu_write(priv, 0, priv->dcfg->xCR); + for (i = 0; i < IMX_MU_xCR_MAX; i++) + imx_mu_write(priv, 0, priv->dcfg->xCR[i]); } static int imx_mu_probe(struct platform_device *pdev) @@ -566,8 +586,8 @@ static const struct imx_mu_dcfg imx_mu_cfg_imx6sx = { .init = imx_mu_init_generic, .xTR = 0x0, .xRR = 0x10, - .xSR = 0x20, - .xCR = 0x24, + .xSR = {0x20, 0x20, 0x20, 0x20}, + .xCR = {0x24, 0x24, 0x24, 0x24}, }; static const struct imx_mu_dcfg imx_mu_cfg_imx7ulp = { @@ -576,8 +596,8 @@ static const struct imx_mu_dcfg imx_mu_cfg_imx7ulp = { .init = imx_mu_init_generic, .xTR = 0x20, .xRR = 0x40, - .xSR = 0x60, - .xCR = 0x64, + .xSR = {0x60, 0x60, 0x60, 0x60}, + .xCR = {0x64, 0x64, 0x64, 0x64}, }; static const struct imx_mu_dcfg imx_mu_cfg_imx8_scu = { @@ -586,8 +606,8 @@ static const struct imx_mu_dcfg imx_mu_cfg_imx8_scu = { .init = imx_mu_init_scu, .xTR = 0x0 .xRR = 0x10 - .xSR = 0x20, - .xCR = 0x24, + .xSR = {0x20, 0x20, 0x20, 0x20}, + .xCR = {0x24, 0x24, 0x24, 0x24}, }; static const struct of_device_id imx_mu_dt_ids[] = { @@ -601,9 +621,12 @@ MODULE_DEVICE_TABLE(of, imx_mu_dt_ids); static int __maybe_unused imx_mu_suspend_noirq(struct device *dev) { struct imx_mu_priv *priv = dev_get_drvdata(dev); + int i; - if (!priv->clk) - priv->xcr = imx_mu_read(priv, priv->dcfg->xCR); + if (!priv->clk) { + for (i = 0; i < IMX_MU_xCR_MAX; i++) + priv->xcr[i] = imx_mu_read(priv, priv->dcfg->xCR[i]); + } return 0; } @@ -611,6 +634,7 @@ static int __maybe_unused imx_mu_suspend_noirq(struct device *dev) static int __maybe_unused imx_mu_resume_noirq(struct device *dev) { struct imx_mu_priv *priv = dev_get_drvdata(dev); + int i; /* * ONLY restore MU when context lost, the TIE could @@ -620,8 +644,10 @@ static int __maybe_unused imx_mu_resume_noirq(struct device *dev) * send failed, may lead to system freeze. This issue * is observed by testing freeze mode suspend. */ - if (!imx_mu_read(priv, priv->dcfg->xCR) && !priv->clk) - imx_mu_write(priv, priv->xcr, priv->dcfg->xCR); + if (!imx_mu_read(priv, priv->dcfg->xCR[0]) && !priv->clk) { + for (i = 0; i < IMX_MU_xCR_MAX; i++) + imx_mu_write(priv, priv->xcr[i], priv->dcfg->xCR[i]); + } return 0; } From patchwork Fri May 28 10:06:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan \(OSS\)" X-Patchwork-Id: 449508 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp176963jac; Fri, 28 May 2021 02:33:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwD3MYxkW4+W4r5fd6d9QYJ4k5jRTk4sHM7txrB9Q+scKLMN/1q4UJ5ERQA4fmgb+00cxMn X-Received: by 2002:a05:6402:4414:: with SMTP id y20mr9101211eda.41.1622194421252; Fri, 28 May 2021 02:33:41 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1622194421; cv=pass; d=google.com; s=arc-20160816; b=znar7crkpqkUsutAJ8NWiuZQ25Rwrozj9gDRlhZOieVuBcZeyx1Qd10klMGnavdRzy b49Y/CfShQ9e0kwA2qlaJycD5RjwB4a/bwoOSJijrQclpc3dCQ44fc+LfynuMh4/igvG BqWfRql8W5pFWLbq7xmxU2jcz4SIU5CX9kon2T568XyUJWFK3M9xMBtVEQhS/E3gyQpP SgzzqlyYlWFPf/nmcAWcG4/5AbyyYNcFpw3CdFI97emyGnOv+J4XbmpuXrrAtK9mjWCU oqmg/AjKVkfEPvI7367CjmLS1q54DhslE2yDQ3Bi1pA4Da5BkFkmQjBP+8cR+S0rGKgJ lnVg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WHaVeFH74yfJKRUNDbWglQ9FZ92itEWWIl/o49cWxGk=; b=VY13GxAhpuRxi4Cs11YjaumLDl4Enmm8ZBIgzxFjdodewzA7keM6QnTJFMhpTxwE3A tpnBrflSjg1kIEWBZdD2KzLefhfV8cRz88Ik0/dxLRfEyJsZWPVGuEdWLEMft6hQqzYw inaa+9cQjTH4YXbP4yPshKnaltFUdslxHQbpRaBSfd5Vb2x0VSR35FkteRTer8uW82nU 6J7A9Nzw+8XHyk8SZzcUwmEaCiMhvfNtowFknUEKxqXpUsSRf35lNcX5t9rR0zKGIy/S ayM3QNLpXbHN5awByYPYnkGLCvtk1qJtne0d7CX/Uzu2rCJuw99BAuvpJ145MujmN5gR 2wIA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b=mX3pkAg5; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e9si5007334edc.514.2021.05.28.02.33.41; Fri, 28 May 2021 02:33:41 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b=mX3pkAg5; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236032AbhE1JfO (ORCPT + 7 others); Fri, 28 May 2021 05:35:14 -0400 Received: from mail-eopbgr80084.outbound.protection.outlook.com ([40.107.8.84]:20868 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235526AbhE1JfK (ORCPT ); Fri, 28 May 2021 05:35:10 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S3iV07cGPPyOWe+pwNp3dyWTujMzaCTa9TIVbBVJiemRCCjULvQD23M8Cg3MVndzof1q83xHs+uUNV3aU4QLi1qpHFxOrz7+ybSF0xVRdGZTjaUwGmXWM/LF98RLr/Zx9BDvLe2SoaaGmcaKX2nV6rz6a0o0yc1diVXTVblVO6PP1aFwA3RBYlh8PsOLBp8MR8Ak506zblt0fW5q9OMb2MaVGpW9hFBuJSHYh6QZYhf0VF35ZMKc0QEc2osk00324nbnKDbcjaKEuKka+BavAmjsdbR23fpsay+nBLaKnzqsWVoQcy5lodEQbuiY40tANGHm6Qwk8B8cGhiBLf3Pxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WHaVeFH74yfJKRUNDbWglQ9FZ92itEWWIl/o49cWxGk=; b=NTL/OkOkfdDeRaMZP2xajjwoKKA3ZoVMmeEdV++9aXYP5mBJhojfItn4l+cJVis75bhZQ9a1nMwUol/b0prExonjj62/bB+uS12PKNYyWNlTLUJPZ1EUtHTQR8Bs8E9MdqZyQTnLu0fYUylsBlhf+DnFVy23KZzcZJxxbV/iFU6cXuAJYoYa6sAPJWRfmY1DsHl2YheL4GK13neVn+FgZ4ui0WTA5lpHDsDtk9GyS3oT1i1XIY8avlyxqWgiAc6ARRcpHaQE0nRSDer6dhhEyXPFVNXaiFii9e+nJLUyWFsSrTPocaZA69iFxZNh0SRhcFMNtAjZiU2CG2mJvxoC5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WHaVeFH74yfJKRUNDbWglQ9FZ92itEWWIl/o49cWxGk=; b=mX3pkAg5Kcj2FqOSgaGmEMNAeaNypT1jUvIghSI/Qzhx8SNbodEqlEwcDe0T9ChwsCUeGRHcBx4O8lE+wS56Lap5Mgj4ERmKB4n/hOnd0On1qC9gK/O02kIdeby1H8DjC+xazTCbPhvjn+7UmU3Wv6egBvFjhxYOaxdH8LaUZgE= Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none; gmail.com; dmarc=none action=none header.from=oss.nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DBAPR04MB7302.eurprd04.prod.outlook.com (2603:10a6:10:1a5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20; Fri, 28 May 2021 09:33:33 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64%8]) with mapi id 15.20.4173.024; Fri, 28 May 2021 09:33:33 +0000 From: "Peng Fan (OSS)" To: jassisinghbrar@gmail.com, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, o.rempel@pengutronix.de Cc: kernel@pengutronix.de, festevam@gmail.com, aisheng.dong@nxp.com, linux-imx@nxp.com, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan Subject: [PATCH V2 4/4] mailbox: imx-mailbox: support i.MX8ULP MU Date: Fri, 28 May 2021 18:06:03 +0800 Message-Id: <20210528100603.21759-5-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210528100603.21759-1-peng.fan@oss.nxp.com> References: <20210528100603.21759-1-peng.fan@oss.nxp.com> X-Originating-IP: [119.31.174.71] X-ClientProxiedBy: SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Fri, 28 May 2021 09:33:29 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: be788608-4f77-402f-ad8b-08d921bba8e6 X-MS-TrafficTypeDiagnostic: DBAPR04MB7302: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3631; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xgUnBnXOvAb39nt04GnrGjx5TqlaL0tDMYA2KAlzNrmCf9WjEi9jWqgVNQ5T+2xCMKc4nlyQmVEYhnqdJaInQfzDtm6mENbuG6HCMqfStcu4YjXvsoF0LCvlgTiEQqLFg4fHJCKhwvPJ8BjOE+my8S3f7pGIGdI2bVkOxaFV+lfIQxJfhxhapt28n+pUiLJYClRbdg2XZ6JWM+skUrwYChekiXRSF2YtszUcAr6i4PxI5ONN49OjKm7tnRGzQOTYgOZ+IE9jFCkr3+JbTaZub1ETZv40JOnOOWqRVgsmJvE1FYc7wQ5+0QdIsc1Z7YE2QC8mNs0ebKElYCstOGkA7LKoFY0Hp3cTWmT51ySV18Wy+8w9J2h/5yO2AM3mqzORinZM8uos2BePdZE66eCBtRS5/UmSfGrk6+mHMARoZ3ilvN4Rz+IfZQ2gSdKnLcAW4To0XQq/Hvl6BCIAxP9gzJMBDBj3Drig1mRKpdsxV3KdTwnQ5nodu6U4m+yV2SyQBFbU02UZR22wPKEnvcWwq0gWdflJQfeD6wc3ADio1qDqcCm6AX3CvQ73txPCmDjhUN20DS99jInXQvijIptN0QBmkOWJ61TIQq8mNRR01xfgUTjm7Y8S2vSh9+NB7myntf2JTIJKefyi4X7C9TlzSTjgj6KS/WSkmACW27tX7xU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39860400002)(136003)(346002)(396003)(376002)(2616005)(26005)(38350700002)(186003)(86362001)(8936002)(6666004)(8676002)(316002)(4326008)(2906002)(83380400001)(66476007)(66556008)(15650500001)(6486002)(6506007)(52116002)(38100700002)(7416002)(956004)(5660300002)(66946007)(16526019)(478600001)(6512007)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: tfDmqrtmAilL8dsi/TVEnN+WnBDv6l7HYa92K8VWowGxuLefpzRLnANLrBM6NH7vTah/OCqAwvCC/3+fSOQhjrZVR/W6/GdWUYHX7KHgXY9s+ZLOR83VUFHp+z+2CX9coTAQH0BJGMOGMp/Eiv46hwfKgVwzqwcyK6phtmQY5jWIr7GiXf06H1xwhUHsMNI2dUX3XDP55QKLAdVyjZACrkfguOgA7qpPBXTqDgBvs/2x+oYtKm6w0dg9OpuuicPbPtDl0X8JU8atRre0KuEscWwukfsARkFiiZ+q20tzwU6MkwlDZ7AKDzDfYxy1G55m1uN58FJbpWKHxKN4Clm6b8zkaKI0pNIY4WGIH6qgqOHq1wiWndSwtMSmyWyVUDsOfT2nK5IOPT3SFFeUgN5HDtOqeaUlnaZc3iQUGiz0nxqHJwcmfSXofOyoxj04E2JH7OawEtBbOLBsD/fPYccCsJ6I+xzUrQDb43NWXVomvCbt0GAzaFaYx470UolxLTYDgF+9R6vMLZ/EoZJH27zGVbonPNXw2zr+EMHR0DlxFcawmy1F4H2U+yMoXp1h9a4Jj3vkXqcFKRdqcsXCXgw64QhCdRLyWzk0kHiU24glL96/dTlmLkPx6GqzJW5tdFS3/2dXM6sScBh1hDzUMhKdOxFguFYbLeBvBYXrTb9uzZbIZzUrJvaWxGDv370HqOJqlQqCn9seATAi9sLsTs5uI+hk6/U6ueOri+C7nCiOz70WdYnz595Q7Y2G5waQiyuLlC+XMW4o7OEhKxuYoKZGYr4f3ifi8UkFuZNC6z+5a3U5ui0iryjGu3Y3of3oxT049n0y+ORVKKxve15EZSFiChoqmzsyicMrDyKtNdNh8G+auzEVlYVw5q4F6WP0DrEKbxwxf8IxavM5ui2dp0OUyXMIB2lQlQIMal5jmWjDIHDLSX//ZM5XLR1YFeVvN1koJdn75dUA+4l+fV7yvT6lm4cRfdwOS8DY36tF/nN1z/y/gVivbt5Goc4czsvt49G/zrnCEHgdDYPQUrHWWocMTbhM4IwYICPMciMdl2KcEoE6yTUIlXTYxC1e5LKcJEMSxVbMY9FIoiNkF2RzP77HoR0m8ZP5sumByO3oQos+7dl36J/cCZuLwU02MkAyElCWL0lCs1UfdDehgM4RE6eCCStKi3KeMJgIMwsdK0Bl0VgEMwdknjRRWOOwaSGjISneDR2Use/JM+xXIaxhmE+uVsOst5Q4mcRRYoG6S5Q9y/WgcYljC4igKchZj0aB+OYR1cLglrisU5YkKyqJlMyIlQO9pDTUhCDHaxDg1tEXZFFIfpHTxFucIsujkA5HX+NZ5adw3zdTJn/wSqYqNpxhOQ== X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: be788608-4f77-402f-ad8b-08d921bba8e6 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2021 09:33:32.9125 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ad1VtqQ2cZLPQD5mhpQI2fT4RgLVHrccfWXKSRsOCsOIUo1UpCSNAd9dYxsvp/XIjTrNJtmH2UgQtkbY+qtuQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7302 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Peng Fan i.MX8ULP MU has different register layout and bit layout compared with i.MX6SX/7ULP/8. So add enum imx_mu_type to show it is IMX_MU_V2 or IMX_MU_V1. For IMX_MU_V2 mu hardware, check it when calculating bit offset to get the correct offset. Signed-off-by: Peng Fan --- drivers/mailbox/imx-mailbox.c | 104 ++++++++++++++++++++-------------- 1 file changed, 63 insertions(+), 41 deletions(-) -- 2.30.0 diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c index f5dadcc827aa..bc51bd3c1999 100644 --- a/drivers/mailbox/imx-mailbox.c +++ b/drivers/mailbox/imx-mailbox.c @@ -15,20 +15,6 @@ #include #include -#define IMX_MU_xSR_GIPn(x) BIT(28 + (3 - (x))) -#define IMX_MU_xSR_RFn(x) BIT(24 + (3 - (x))) -#define IMX_MU_xSR_TEn(x) BIT(20 + (3 - (x))) -#define IMX_MU_xSR_BRDIP BIT(9) - -/* General Purpose Interrupt Enable */ -#define IMX_MU_xCR_GIEn(x) BIT(28 + (3 - (x))) -/* Receive Interrupt Enable */ -#define IMX_MU_xCR_RIEn(x) BIT(24 + (3 - (x))) -/* Transmit Interrupt Enable */ -#define IMX_MU_xCR_TIEn(x) BIT(20 + (3 - (x))) -/* General Purpose Interrupt Request */ -#define IMX_MU_xCR_GIRn(x) BIT(16 + (3 - (x))) - #define IMX_MU_CHANS 16 /* TX0/RX0/RXDB[0-3] */ #define IMX_MU_SCU_CHANS 6 @@ -42,7 +28,7 @@ enum imx_mu_chan_type { }; enum imx_mu_xcr { - IMX_MU_CR, + IMX_MU_GIER, IMX_MU_GCR, IMX_MU_TCR, IMX_MU_RCR, @@ -87,16 +73,36 @@ struct imx_mu_priv { bool side_b; }; +enum imx_mu_type { + IMX_MU_V1, + IMX_MU_V2, +}; + struct imx_mu_dcfg { int (*tx)(struct imx_mu_priv *priv, struct imx_mu_con_priv *cp, void *data); int (*rx)(struct imx_mu_priv *priv, struct imx_mu_con_priv *cp); void (*init)(struct imx_mu_priv *priv); + enum imx_mu_type type; u32 xTR; /* Transmit Register0 */ u32 xRR; /* Receive Register0 */ u32 xSR[4]; /* Status Registers */ u32 xCR[4]; /* Control Registers */ }; +#define IMX_MU_xSR_GIPn(type, x) (type == IMX_MU_V2 ? BIT(x) : BIT(28 + (3 - (x)))) +#define IMX_MU_xSR_RFn(type, x) (type == IMX_MU_V2 ? BIT(x) : BIT(24 + (3 - (x)))) +#define IMX_MU_xSR_TEn(type, x) (type == IMX_MU_V2 ? BIT(x) : BIT(20 + (3 - (x)))) + +/* General Purpose Interrupt Enable */ +#define IMX_MU_xCR_GIEn(type, x) (type == IMX_MU_V2 ? BIT(x) : BIT(28 + (3 - (x)))) +/* Receive Interrupt Enable */ +#define IMX_MU_xCR_RIEn(type, x) (type == IMX_MU_V2 ? BIT(x) : BIT(24 + (3 - (x)))) +/* Transmit Interrupt Enable */ +#define IMX_MU_xCR_TIEn(type, x) (type == IMX_MU_V2 ? BIT(x) : BIT(20 + (3 - (x)))) +/* General Purpose Interrupt Request */ +#define IMX_MU_xCR_GIRn(type, x) (type == IMX_MU_V2 ? BIT(x) : BIT(16 + (3 - (x)))) + + static struct imx_mu_priv *to_imx_mu_priv(struct mbox_controller *mbox) { return container_of(mbox, struct imx_mu_priv, mbox); @@ -136,10 +142,10 @@ static int imx_mu_generic_tx(struct imx_mu_priv *priv, switch (cp->type) { case IMX_MU_TYPE_TX: imx_mu_write(priv, *arg, priv->dcfg->xTR + cp->idx * 4); - imx_mu_xcr_rmw(priv, IMX_MU_TCR, IMX_MU_xCR_TIEn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_TCR, IMX_MU_xCR_TIEn(priv->dcfg->type, cp->idx), 0); break; case IMX_MU_TYPE_TXDB: - imx_mu_xcr_rmw(priv, IMX_MU_GCR, IMX_MU_xCR_GIRn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_GCR, IMX_MU_xCR_GIRn(priv->dcfg->type, cp->idx), 0); tasklet_schedule(&cp->txdb_tasklet); break; default: @@ -191,7 +197,7 @@ static int imx_mu_scu_tx(struct imx_mu_priv *priv, for (; i < msg->hdr.size; i++) { ret = readl_poll_timeout(priv->base + priv->dcfg->xSR[IMX_MU_TSR], xsr, - xsr & IMX_MU_xSR_TEn(i % 4), + xsr & IMX_MU_xSR_TEn(priv->dcfg->type, i % 4), 0, 100); if (ret) { dev_err(priv->dev, "Send data index: %d timeout\n", i); @@ -200,7 +206,7 @@ static int imx_mu_scu_tx(struct imx_mu_priv *priv, imx_mu_write(priv, *arg++, priv->dcfg->xTR + (i % 4) * 4); } - imx_mu_xcr_rmw(priv, IMX_MU_TCR, IMX_MU_xCR_TIEn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_TCR, IMX_MU_xCR_TIEn(priv->dcfg->type, cp->idx), 0); break; default: dev_warn_ratelimited(priv->dev, "Send data on wrong channel type: %d\n", cp->type); @@ -218,7 +224,7 @@ static int imx_mu_scu_rx(struct imx_mu_priv *priv, int i, ret; u32 xsr; - imx_mu_xcr_rmw(priv, IMX_MU_RCR, 0, IMX_MU_xCR_RIEn(0)); + imx_mu_xcr_rmw(priv, IMX_MU_RCR, 0, IMX_MU_xCR_RIEn(priv->dcfg->type, 0)); *data++ = imx_mu_read(priv, priv->dcfg->xRR); if (msg.hdr.size > sizeof(msg) / 4) { @@ -228,7 +234,7 @@ static int imx_mu_scu_rx(struct imx_mu_priv *priv, for (i = 1; i < msg.hdr.size; i++) { ret = readl_poll_timeout(priv->base + priv->dcfg->xSR[IMX_MU_RSR], xsr, - xsr & IMX_MU_xSR_RFn(i % 4), 0, 100); + xsr & IMX_MU_xSR_RFn(priv->dcfg->type, i % 4), 0, 100); if (ret) { dev_err(priv->dev, "timeout read idx %d\n", i); return ret; @@ -236,7 +242,7 @@ static int imx_mu_scu_rx(struct imx_mu_priv *priv, *data++ = imx_mu_read(priv, priv->dcfg->xRR + (i % 4) * 4); } - imx_mu_xcr_rmw(priv, IMX_MU_RCR, IMX_MU_xCR_RIEn(0), 0); + imx_mu_xcr_rmw(priv, IMX_MU_RCR, IMX_MU_xCR_RIEn(priv->dcfg->type, 0), 0); mbox_chan_received_data(cp->chan, (void *)&msg); return 0; @@ -260,20 +266,20 @@ static irqreturn_t imx_mu_isr(int irq, void *p) case IMX_MU_TYPE_TX: ctrl = imx_mu_read(priv, priv->dcfg->xCR[IMX_MU_TCR]); val = imx_mu_read(priv, priv->dcfg->xSR[IMX_MU_TSR]); - val &= IMX_MU_xSR_TEn(cp->idx) & - (ctrl & IMX_MU_xCR_TIEn(cp->idx)); + val &= IMX_MU_xSR_TEn(priv->dcfg->type, cp->idx) & + (ctrl & IMX_MU_xCR_TIEn(priv->dcfg->type, cp->idx)); break; case IMX_MU_TYPE_RX: ctrl = imx_mu_read(priv, priv->dcfg->xCR[IMX_MU_RCR]); val = imx_mu_read(priv, priv->dcfg->xSR[IMX_MU_RSR]); - val &= IMX_MU_xSR_RFn(cp->idx) & - (ctrl & IMX_MU_xCR_RIEn(cp->idx)); + val &= IMX_MU_xSR_RFn(priv->dcfg->type, cp->idx) & + (ctrl & IMX_MU_xCR_RIEn(priv->dcfg->type, cp->idx)); break; case IMX_MU_TYPE_RXDB: - ctrl = imx_mu_read(priv, priv->dcfg->xCR[IMX_MU_GCR]); + ctrl = imx_mu_read(priv, priv->dcfg->xCR[IMX_MU_GIER]); val = imx_mu_read(priv, priv->dcfg->xSR[IMX_MU_GSR]); - val &= IMX_MU_xSR_GIPn(cp->idx) & - (ctrl & IMX_MU_xCR_GIEn(cp->idx)); + val &= IMX_MU_xSR_GIPn(priv->dcfg->type, cp->idx) & + (ctrl & IMX_MU_xCR_GIEn(priv->dcfg->type, cp->idx)); break; default: break; @@ -282,13 +288,17 @@ static irqreturn_t imx_mu_isr(int irq, void *p) if (!val) return IRQ_NONE; - if (val == IMX_MU_xSR_TEn(cp->idx)) { - imx_mu_xcr_rmw(priv, IMX_MU_TCR, 0, IMX_MU_xCR_TIEn(cp->idx)); + if ((val == IMX_MU_xSR_TEn(priv->dcfg->type, cp->idx)) && + (cp->type == IMX_MU_TYPE_TX)) { + imx_mu_xcr_rmw(priv, IMX_MU_TCR, 0, IMX_MU_xCR_TIEn(priv->dcfg->type, cp->idx)); mbox_chan_txdone(chan, 0); - } else if (val == IMX_MU_xSR_RFn(cp->idx)) { + } else if ((val == IMX_MU_xSR_RFn(priv->dcfg->type, cp->idx)) && + (cp->type == IMX_MU_TYPE_RX)) { priv->dcfg->rx(priv, cp); - } else if (val == IMX_MU_xSR_GIPn(cp->idx)) { - imx_mu_write(priv, IMX_MU_xSR_GIPn(cp->idx), priv->dcfg->xSR[IMX_MU_GSR]); + } else if ((val == IMX_MU_xSR_GIPn(priv->dcfg->type, cp->idx)) && + (cp->type == IMX_MU_TYPE_RXDB)) { + imx_mu_write(priv, IMX_MU_xSR_GIPn(priv->dcfg->type, cp->idx), + priv->dcfg->xSR[IMX_MU_GSR]); mbox_chan_received_data(chan, NULL); } else { dev_warn_ratelimited(priv->dev, "Not handled interrupt\n"); @@ -335,10 +345,10 @@ static int imx_mu_startup(struct mbox_chan *chan) switch (cp->type) { case IMX_MU_TYPE_RX: - imx_mu_xcr_rmw(priv, IMX_MU_RCR, IMX_MU_xCR_RIEn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_RCR, IMX_MU_xCR_RIEn(priv->dcfg->type, cp->idx), 0); break; case IMX_MU_TYPE_RXDB: - imx_mu_xcr_rmw(priv, IMX_MU_GCR, IMX_MU_xCR_GIEn(cp->idx), 0); + imx_mu_xcr_rmw(priv, IMX_MU_GIER, IMX_MU_xCR_GIEn(priv->dcfg->type, cp->idx), 0); break; default: break; @@ -360,13 +370,13 @@ static void imx_mu_shutdown(struct mbox_chan *chan) switch (cp->type) { case IMX_MU_TYPE_TX: - imx_mu_xcr_rmw(priv, IMX_MU_TCR, 0, IMX_MU_xCR_TIEn(cp->idx)); + imx_mu_xcr_rmw(priv, IMX_MU_TCR, 0, IMX_MU_xCR_TIEn(priv->dcfg->type, cp->idx)); break; case IMX_MU_TYPE_RX: - imx_mu_xcr_rmw(priv, IMX_MU_RCR, 0, IMX_MU_xCR_RIEn(cp->idx)); + imx_mu_xcr_rmw(priv, IMX_MU_RCR, 0, IMX_MU_xCR_RIEn(priv->dcfg->type, cp->idx)); break; case IMX_MU_TYPE_RXDB: - imx_mu_xcr_rmw(priv, IMX_MU_GCR, 0, IMX_MU_xCR_GIEn(cp->idx)); + imx_mu_xcr_rmw(priv, IMX_MU_GIER, 0, IMX_MU_xCR_GIEn(priv->dcfg->type, cp->idx)); break; default: break; @@ -600,12 +610,23 @@ static const struct imx_mu_dcfg imx_mu_cfg_imx7ulp = { .xCR = {0x64, 0x64, 0x64, 0x64}, }; +static const struct imx_mu_dcfg imx_mu_cfg_imx8ulp = { + .tx = imx_mu_generic_tx, + .rx = imx_mu_generic_rx, + .init = imx_mu_init_generic, + .type = IMX_MU_V2, + .xTR = 0x200, + .xRR = 0x280, + .xSR = {0xC, 0x118, 0x124, 0x12C}, + .xCR = {0x110, 0x114, 0x120, 0x128}, +}; + static const struct imx_mu_dcfg imx_mu_cfg_imx8_scu = { .tx = imx_mu_scu_tx, .rx = imx_mu_scu_rx, .init = imx_mu_init_scu, - .xTR = 0x0 - .xRR = 0x10 + .xTR = 0x0, + .xRR = 0x10, .xSR = {0x20, 0x20, 0x20, 0x20}, .xCR = {0x24, 0x24, 0x24, 0x24}, }; @@ -613,6 +634,7 @@ static const struct imx_mu_dcfg imx_mu_cfg_imx8_scu = { static const struct of_device_id imx_mu_dt_ids[] = { { .compatible = "fsl,imx7ulp-mu", .data = &imx_mu_cfg_imx7ulp }, { .compatible = "fsl,imx6sx-mu", .data = &imx_mu_cfg_imx6sx }, + { .compatible = "fsl,imx8ulp-mu", .data = &imx_mu_cfg_imx8ulp }, { .compatible = "fsl,imx8-mu-scu", .data = &imx_mu_cfg_imx8_scu }, { }, };