From patchwork Thu Feb 14 03:44:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anson Huang X-Patchwork-Id: 10811693 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 83F6413A4 for ; Thu, 14 Feb 2019 03:44:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 701CE2DFCA for ; Thu, 14 Feb 2019 03:44:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 636EB2DFD4; Thu, 14 Feb 2019 03:44:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 571562DFCA for ; Thu, 14 Feb 2019 03:44:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Qh1OHN3+PUqkJ+vYPdGntu+OZiwOhLFQHaqB8QNTlKQ=; b=rYrjgASklBkC3T 557xv+wCW/ma70M4oUvw0Y6wkNgdYpT4hcf5maMoWS1PPQGsNDTB5tBywaCLunoowN2qnYJWdPLGR I3gUrCNta94yS+y3rF5YsBeiGQs7GLHikTBDiljajPdg0OPCNVPP2EjwtxCFyj6w0zYmUSCmmPfGy M4x/FM6zG4zDHRQOKgPf71DCKnYIc0Vh3unnnOBrXi17vj+zMd70SxBYK8iZ3DnhkNdwvm9ASruPI L7oCj/u4ELJvGK1hgoAPBYpgMXQuCh5H62hX2bfZkjRW7xLRvsfj3EIId0SXGOObEbN8ht+95sYDW a0uRcR2lVGc+iVWYC7Xw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gu7x0-0000iW-3M; Thu, 14 Feb 2019 03:44:38 +0000 Received: from mail-db3eur04on0620.outbound.protection.outlook.com ([2a01:111:f400:fe0c::620] helo=EUR04-DB3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gu7ww-0000au-1A for linux-arm-kernel@lists.infradead.org; Thu, 14 Feb 2019 03:44:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WVP1fyT2RmfrHwiLQ+dv6YOi7fm0E00J3Hr8/iBwVhw=; b=sVjV+lEiAoRWy5yQI7ok+j7QRenbmhwou3E1Bf0L9Dg80fO4VtjEWqY6zhJWOOwk4JAWvz6jwFCqgFbq4Kzy8SIsE8YIltokeTBdUVIikGmyyIelM2t25OVElcGvVX7hgityR94p9xC4qwRokxjNxhGaNjg88FGHRakd1/DmEtU= Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com (52.134.72.18) by DB3PR0402MB3659.eurprd04.prod.outlook.com (52.134.66.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.21; Thu, 14 Feb 2019 03:44:25 +0000 Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::14e8:6d2e:fe21:4fd5]) by DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::14e8:6d2e:fe21:4fd5%3]) with mapi id 15.20.1601.023; Thu, 14 Feb 2019 03:44:25 +0000 From: Anson Huang To: "robh+dt@kernel.org" , "mark.rutland@arm.com" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , "a.zummo@towertech.it" , "alexandre.belloni@bootlin.com" , Aisheng Dong , "ulf.hansson@linaro.org" , "sboyd@kernel.org" , Daniel Baluta , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-rtc@vger.kernel.org" Subject: [PATCH V2 1/4] dt-bindings: fsl: scu: add general interrupt support Thread-Topic: [PATCH V2 1/4] dt-bindings: fsl: scu: add general interrupt support Thread-Index: AQHUxBeU4OYcP5Aoy0y86uY2s/lN0g== Date: Thu, 14 Feb 2019 03:44:25 +0000 Message-ID: <1550115535-14488-2-git-send-email-Anson.Huang@nxp.com> References: <1550115535-14488-1-git-send-email-Anson.Huang@nxp.com> In-Reply-To: <1550115535-14488-1-git-send-email-Anson.Huang@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK0P153CA0020.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::32) To DB3PR0402MB3916.eurprd04.prod.outlook.com (2603:10a6:8:10::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=anson.huang@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f98dfc00-ec06-4adc-dffe-08d6922eb6df x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0402MB3659; x-ms-traffictypediagnostic: DB3PR0402MB3659: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; DB3PR0402MB3659; 23:paqdxpeB0UHq69oLAS3ii7PMfo5XTSNGDkVNe?= =?iso-8859-1?q?W6OHcQGI6cqhOOAwV?= =?iso-8859-1?q?f1QYDqK/4rKxChAJSHQKdghZNHq036BWht6O0kMaHg0WoUlWINs17K4zKRU6?= =?iso-8859-1?q?cL/FnUX8OppS7mccrMG0I0+K/wpLknCrTh8QshE1iOEQZuopztnOVr0shKIL?= =?iso-8859-1?q?6TZ5KyOhW/i/04S8HHsKVoYy/nRJgjVGgYwLL1LDyYlwpluXId7k6/O/Z/Wo?= =?iso-8859-1?q?aqL654aw24DMbXD+ZP5E3Y+JZUTkAO2kKYQQDcpTv6mDG2l2u9hOvEYMzmKZ?= =?iso-8859-1?q?7P+xkh3DeKTK1HHjm/uroLW9tuLLKeDmIPE10NLO3RHYSXkG2QL2e6EhyXKX?= =?iso-8859-1?q?2ekFQw/u6Sq+RuMX04vRPl4OeJAN9JeFwhDp6O3Zq99skk4CPOZQpFSCCDWJ?= =?iso-8859-1?q?NGjFre6JUu6InKNISkByadSqx9LYtvSnGBHKj7Vi7FeFLKhd47Jt2/7KtphX?= =?iso-8859-1?q?dhuqf7eYbyS6jZNAEWku1WYlZLaX/0Xpc1vJbtnYwCCd+u/5VcSEN6V1av56?= =?iso-8859-1?q?mmnZs0nv3tQtCEQ4rGY4zHYdmo9X8/x5rbFzQFlrfWbjiUpubZI36NliwNfb?= =?iso-8859-1?q?8Wujndubbxmzd5V8kasY4yKzwt8TqK6N6zffUzVhd5SZMfqzPsU+Q7JeVqLv?= =?iso-8859-1?q?9VmOhedLl6IukeSKrD2YoVyv4efxjeSztr7HnOOdxVgzgl0srSJcKgCWm+Yu?= =?iso-8859-1?q?fBY+G3kLe4Cte6tQsOY7XauZ2QRyXc5prf41LWxG08frErKZVgRqZzgzUlyF?= =?iso-8859-1?q?eSy9oVf43BnVKsrVw3xIstRtgjoHJp/0dDfbOzP5u6L+i73OrL8klOoq8TlX?= =?iso-8859-1?q?0XaQ1xWg/6gZrBP7IeUtkdUYqhRTIPWsjjgAJ9xsPygXPnWq49YcvOfMYYzx?= =?iso-8859-1?q?W33aA9gWRtmpefJbBykZLLk/TUk77vSHget5Pmu1LKRNhIIMPrrTeUfolqjk?= =?iso-8859-1?q?os+PoVJQPLNW31V7yA8oGWMVLdnVMobuREZUUOtqaifeGzQzZ3/bdz62TswY?= =?iso-8859-1?q?aCPO2g4h5f+NEhUPMEil7WKbFUOGsxcc0I+ACai5+TYOSr4y0FVPdVw/fAWG?= =?iso-8859-1?q?Ra0184YobOwbrCSZasqjiRg/EHccBEohSFZKsOu9Sb6D2cx3DqeQMAmd9ur1?= =?iso-8859-1?q?5wToGgEQq1SUdme7KbgqisvqI5zq/CV44r11nVDuyenDM0Osmz3QkEZsYauc?= =?iso-8859-1?q?J+/vEn8DK80KbS6G5BB4a5cPlqokaIqUqThF5ApdePhguheBp8kghoLpoDx/?= =?iso-8859-1?q?PAwTc=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09480768F8 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(346002)(39860400002)(376002)(396003)(136003)(199004)(189003)(476003)(2616005)(68736007)(53936002)(52116002)(66066001)(14454004)(76176011)(486006)(86362001)(50226002)(4326008)(26005)(6512007)(2201001)(478600001)(71200400001)(6436002)(8936002)(6486002)(25786009)(446003)(8676002)(71190400001)(81156014)(81166006)(11346002)(186003)(2501003)(105586002)(3846002)(6116002)(386003)(6506007)(99286004)(102836004)(7416002)(316002)(2906002)(305945005)(110136005)(97736004)(7736002)(14444005)(106356001)(256004)(36756003)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0402MB3659; H:DB3PR0402MB3916.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: sAnhMXeu+iR4uwdeGSMewJBXFK/bAZv8gSxkb2+Vj3ua5jB01vUliHITO2jan9BV+N1Mm5pcL0y3bDx679cg0xLj0dpCZZWanHfA+5iPaanfk0moOUh++foOFbBRqgRGyrfz/iSHDTOtopY2IJ/rZPeLPnBGOOuN8g0b275e+TBQsJn7I4PbI3QH/8lqXNXFOp7Fppauqs8mEKoSCf60HyL3VcxtnpSKFbQStC/HLjNRCy97wq8UXQ20JGUKJu5KVixRIOLl8upI5K2FEzmfNag26rRsY2+zRy9hOk3pKnhTL9kil9ebZ04MUQW9lS4A+uoyG48Q8CS2qmhh0Hk53JTeRSJzR3CXB4bisVYzfUDnXAWiqeDwpjcgVr28xNBQknE+xxz4xWP6QYFJH56Xa2zRSxmYYUlcg+J+2Ra54F8= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f98dfc00-ec06-4adc-dffe-08d6922eb6df X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2019 03:44:20.2393 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3659 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190213_194434_108245_9E2464A3 X-CRM114-Status: GOOD ( 10.43 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dl-linux-imx Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Add scu general interrupt function support. Signed-off-by: Anson Huang Reviewed-by: Rob Herring --- Changes since V1: no change, just update the patch based on latest next branch. --- .../devicetree/bindings/arm/freescale/fsl,scu.txt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt b/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt index 72d481c..8acdce1 100644 --- a/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt +++ b/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt @@ -22,9 +22,11 @@ Required properties: ------------------- - compatible: should be "fsl,imx-scu". - mbox-names: should include "tx0", "tx1", "tx2", "tx3", - "rx0", "rx1", "rx2", "rx3". -- mboxes: List of phandle of 4 MU channels for tx and 4 MU channels - for rx. All 8 MU channels must be in the same MU instance. + "rx0", "rx1", "rx2", "rx3", + "gi3". +- mboxes: List of phandle of 4 MU channels for tx, 4 MU channels for + rx, and 1 MU channel for general interrupt. All 9 MU channels + must be in the same MU instance. Cross instances are not allowed. The MU instance can only be one of LSIO MU0~M4 for imx8qxp and imx8qm. Users need to make sure use the one which is not conflict with other @@ -34,6 +36,7 @@ Required properties: Channel 1 must be "tx1" or "rx1". Channel 2 must be "tx2" or "rx2". Channel 3 must be "tx3" or "rx3". + General interrupt channel must be "gi3". e.g. mboxes = <&lsio_mu1 0 0 &lsio_mu1 0 1 @@ -42,7 +45,8 @@ Required properties: &lsio_mu1 1 0 &lsio_mu1 1 1 &lsio_mu1 1 2 - &lsio_mu1 1 3>; + &lsio_mu1 1 3 + &lsio_mu1 3 3>; See Documentation/devicetree/bindings/mailbox/fsl,mu.txt for detailed mailbox binding. @@ -133,7 +137,8 @@ firmware { scu { compatible = "fsl,imx-scu"; mbox-names = "tx0", "tx1", "tx2", "tx3", - "rx0", "rx1", "rx2", "rx3"; + "rx0", "rx1", "rx2", "rx3", + "gi3"; mboxes = <&lsio_mu1 0 0 &lsio_mu1 0 1 &lsio_mu1 0 2 @@ -141,7 +146,8 @@ firmware { &lsio_mu1 1 0 &lsio_mu1 1 1 &lsio_mu1 1 2 - &lsio_mu1 1 3>; + &lsio_mu1 1 3 + &lsio_mu1 3 3>; clk: clk { compatible = "fsl,imx8qxp-clk", "fsl,scu-clk"; From patchwork Thu Feb 14 03:44:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anson Huang X-Patchwork-Id: 10811695 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6CD8513A4 for ; Thu, 14 Feb 2019 03:44:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 563582DFCA for ; Thu, 14 Feb 2019 03:44:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4A5032DFD4; Thu, 14 Feb 2019 03:44:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id BEA1D2DFCA for ; Thu, 14 Feb 2019 03:44:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=u5fmI4ZD1J1MJVH1PJMqgQ63nh9etBcebHH52Ak+1eU=; b=oOcMZyz25fAgru B/96vjG65Nyp5JGi/GJeTDFy+1BA+eb+uBWlochay9f5m4I9t68qHS8PqpkS9kEryOklHegx+chWu HGd7J/gMlh4ljMqif8O/WA9E5Gk1dtihrIhHrjcLHRMo1G+er9vEWjfdFV+AWmcIpdc4BAQ8x8ZDG 8qKTrpp11iyFj+jaG+Fs37p+QybOrNNB+8q1lgiz2/qzUICzedYoZzpaocH4oQ4wf/C3ZaOQ6PAzN ycMHdlnt9S0hN9G+AIW5YH15T51XQlpXfRO7uJa1WZuRkCn2h6wXdpWJcHUHycN4WXZffqnb0jOUb zbBRZzHsZ4W9FlL/lFNQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gu7xD-000106-P4; Thu, 14 Feb 2019 03:44:51 +0000 Received: from mail-db3eur04on0620.outbound.protection.outlook.com ([2a01:111:f400:fe0c::620] helo=EUR04-DB3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gu7wy-0000au-LZ for linux-arm-kernel@lists.infradead.org; Thu, 14 Feb 2019 03:44:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kDCwze7MSZ/0VU4jDuhIzch9cw/tNFuydaj2r0ScsoA=; b=R6Cepmj76lRPTBD/W97uPfGUn5sQKWj1ogyKY9xaRGfNdgBcHRrzagjtkxLrqrWl/FHUMPO91OvYs2tXWBDtwFL8p+YY7bNtyU5L3th5w9N+XWko3ITv7sTAZ6VMiyVH2DoTuNTheEpIv3tbY7NyzccM8nYtCGKpmkjFy48ahqU= Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com (52.134.72.18) by DB3PR0402MB3659.eurprd04.prod.outlook.com (52.134.66.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.21; Thu, 14 Feb 2019 03:44:31 +0000 Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::14e8:6d2e:fe21:4fd5]) by DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::14e8:6d2e:fe21:4fd5%3]) with mapi id 15.20.1601.023; Thu, 14 Feb 2019 03:44:31 +0000 From: Anson Huang To: "robh+dt@kernel.org" , "mark.rutland@arm.com" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , "a.zummo@towertech.it" , "alexandre.belloni@bootlin.com" , Aisheng Dong , "ulf.hansson@linaro.org" , "sboyd@kernel.org" , Daniel Baluta , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-rtc@vger.kernel.org" Subject: [PATCH V2 2/4] firmware: imx: enable imx scu general irq function Thread-Topic: [PATCH V2 2/4] firmware: imx: enable imx scu general irq function Thread-Index: AQHUxBeY1ru6LM154k6AIjlXsKZZtA== Date: Thu, 14 Feb 2019 03:44:31 +0000 Message-ID: <1550115535-14488-3-git-send-email-Anson.Huang@nxp.com> References: <1550115535-14488-1-git-send-email-Anson.Huang@nxp.com> In-Reply-To: <1550115535-14488-1-git-send-email-Anson.Huang@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK0P153CA0020.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::32) To DB3PR0402MB3916.eurprd04.prod.outlook.com (2603:10a6:8:10::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=anson.huang@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 380b0b78-e477-4849-e53b-08d6922eba4b x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0402MB3659; x-ms-traffictypediagnostic: DB3PR0402MB3659: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; DB3PR0402MB3659; 23:pWUaDS72ji8SLC7HohfkmRlvBcU0VXpmcX+t9?= =?iso-8859-1?q?9WLnyYTgve7vgHj2B?= =?iso-8859-1?q?GAbDFt2kcjD6fa8MU3yeKzDEfKpjFf7M3pAXsGQuymD30DOPf4uHfGlSTeKu?= =?iso-8859-1?q?DaHWZrMsVvqyHEEMGdA+x2m2lfakeW7Kmyxkb1klxopMQ1CFNBmiOyjXMXnF?= =?iso-8859-1?q?ixWR9mGS/LEMFjMN21q9NkVtYCM9OOvp2xz11qWsQl/jPfs63iXfODsWGMsO?= =?iso-8859-1?q?yy1yeSXnDbR/WsEcRt3SWBvZ1w9WEVdFMiHvZP84teAZjeXevkbCpHTUYx+I?= =?iso-8859-1?q?HkfwReMuW2bC39oNtlQ7TWwMaCjElJ3Cyc9EaGGsUUhmjN0WzDSp/MKxPjky?= =?iso-8859-1?q?lcNtMxmjcBdPKYPOCoVjfd5zYOYAParOJiDF0OzDAHWYnPCIx4N8SPn3PGiD?= =?iso-8859-1?q?ffJEVYFAK8TN1SNT4jUpg5IIsUO3AH0vVTe1vCmx+/G8+cLKWIu2RvOHsPXq?= =?iso-8859-1?q?SSH/cUq7qgParuE8zapGGTh8nfVo5/r/f97ikviOOOvToi1C8+NpkIKSxO17?= =?iso-8859-1?q?aEg63PoxJ7MzEdfM90JfAABHVWF8JFcb+XS+gPomB2xt02U2MtUBBb0utjSM?= =?iso-8859-1?q?Jdls6GNe4DwbjpcviLUI0jL/v22TJftN9Z0rXZ0EvAL4vN/niyAVeKIbnMW5?= =?iso-8859-1?q?4U95tUvVrKPXyajQ/vxgN+EdU775N4b/s+CqQCNmWRkIx7gD0TaayvGiCT4A?= =?iso-8859-1?q?BgWVMP57DXoneOCTrv8KHmBCd8uRUnsmefy2xKVYK2IKA7FI/HoloV+A0Ddk?= =?iso-8859-1?q?Y4XrJxJx6Kt85w8x28NXUAAoj4XGqg/bmBPpZu2e9TmPz7v98hToNbRddKug?= =?iso-8859-1?q?Icdz9XzJQikNh81vYSnktpfXxxm1Ad6T6C+uqbR6GMQNhuLDoHZbymVJ84hs?= =?iso-8859-1?q?R8BXMEh9U0HefZk1y2nDfFoHIN9AmwjwmcwbSy5AnuNKNWDXnFmT/1F8QKAd?= =?iso-8859-1?q?Snl1Yjvw/zqH1D7LYRekLomLFdgigXEBvBEDB2COkyNwCveAzT61gt8gMWy5?= =?iso-8859-1?q?nHy1P13hsOZ+ORBJK0TVZUhA5/yw770XuzQalRWGLQgQbTg7XjQRQDY5ZvSa?= =?iso-8859-1?q?mmapU2XJPnogkWc8o1PKMbchoN82MKteGQXRT2+OyZtnX5zNYCkkr8wH3ai5?= =?iso-8859-1?q?3T5Ec5RK6xstG7m6+4JyKgU9h0B3eQ2Oj+uByYdKEq1BLSuMYXJiSp3CAePN?= =?iso-8859-1?q?8cKNmCiXmf7j5zMWYvubU7NShzPq0uBXEnsZiEEgVhsTuygrjZVaQr85YOEM?= =?iso-8859-1?q?1D/ibeOhVzAgU6Nz9e5hy8Nbv0Tx56+A6ps29Wl3o5lC1SiYLcWq2UPCz1JD?= =?iso-8859-1?q?RhHY3XrvORmW5GF8HAXMtlJ2409sQB4Gn3DxQJY6KBhw+hkxpVCw=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09480768F8 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(979002)(366004)(346002)(39860400002)(376002)(396003)(136003)(199004)(189003)(476003)(2616005)(68736007)(53936002)(52116002)(66066001)(14454004)(76176011)(486006)(86362001)(50226002)(4326008)(26005)(6512007)(2201001)(478600001)(71200400001)(6436002)(8936002)(6486002)(25786009)(446003)(8676002)(71190400001)(81156014)(81166006)(11346002)(186003)(2501003)(105586002)(3846002)(6116002)(386003)(6506007)(99286004)(102836004)(7416002)(316002)(2906002)(305945005)(110136005)(97736004)(7736002)(14444005)(106356001)(256004)(36756003)(921003)(1121003)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0402MB3659; H:DB3PR0402MB3916.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: LmYLh770MDOwOpkLWlNODWE0VBI+aOg5JonEmMXhELdmjdC7B3CsD3eZLmXQN1l57UcK6mWjko6DFu8FLYlwPiBNiwb8YHVkgesImb75TgEGAHyB5Z1b/ACKxT3wahtq7CD99aBFCVWyC4FtV1QeqJV2ov2UgItiXJdEYWnfUOn3IrV+SNQGlkvLmhHDP44Ly15C+ipjPqF53aNrisVU0bLGyPpzWSXAr2zxmjvaH2pxzV0Y4S/cMRAp2Z7LaVL4EW2GyYjHcz3Sd6uxYfPiKIprQCXDSu2Hcb7vI6BzS/wbyAvuhJrZEiYGSOCXH+kISZPGVk/QKPu7ktgxRH34DVkN2BZ7awkGxmV34IMSnum80KGHeNi3UMeAs6tI5nGxITHeRaaLMk252vQSb2cvqAT94cTljBRsn4za3clf6s0= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 380b0b78-e477-4849-e53b-08d6922eba4b X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2019 03:44:25.9954 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3659 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190213_194436_717327_9884473F X-CRM114-Status: GOOD ( 15.35 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dl-linux-imx Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The System Controller Firmware (SCFW) controls RTC, thermal and WDOG etc., these resources' interrupt function are managed by SCU. When any IRQ pending, SCU will notify Linux via MU general interrupt channel #3, and Linux kernel needs to call SCU APIs to get IRQ status and notify each module to handle the interrupt. Since there is no data transmission for SCU IRQ notification, so doorbell mode is used for this MU channel, and SCU driver will use notifier mechanism to broadcast to every module which registers the SCU block notifier. Signed-off-by: Anson Huang --- No change since V1. --- drivers/firmware/imx/imx-scu.c | 101 +++++++++++++++++++++++++++++++++++++++ include/linux/firmware/imx/sci.h | 3 ++ 2 files changed, 104 insertions(+) diff --git a/drivers/firmware/imx/imx-scu.c b/drivers/firmware/imx/imx-scu.c index 2bb1a19..e93bea5 100644 --- a/drivers/firmware/imx/imx-scu.c +++ b/drivers/firmware/imx/imx-scu.c @@ -7,6 +7,7 @@ * */ +#include #include #include #include @@ -21,6 +22,8 @@ #define SCU_MU_CHAN_NUM 8 #define MAX_RX_TIMEOUT (msecs_to_jiffies(30)) +#define IMX_SC_IRQ_FUNC_STATUS 2 +#define IMX_SC_IRQ_NUM_GROUP 6 struct imx_sc_chan { struct imx_sc_ipc *sc_ipc; @@ -77,7 +80,23 @@ static int imx_sc_linux_errmap[IMX_SC_ERR_LAST] = { -EIO, /* IMX_SC_ERR_FAIL */ }; +struct imx_sc_msg_irq_get_status { + struct imx_sc_rpc_msg hdr; + union { + struct { + u16 resource; + u8 group; + u8 reserved; + } send; + struct { + u32 status; + } receive; + } data; +} __packed; + static struct imx_sc_ipc *imx_sc_ipc_handle; +static struct work_struct imx_sc_general_irq_work; +static BLOCKING_NOTIFIER_HEAD(imx_scu_notifier_chain); static inline int imx_sc_to_linux_errno(int errno) { @@ -194,6 +213,86 @@ int imx_scu_call_rpc(struct imx_sc_ipc *sc_ipc, void *msg, bool have_resp) } EXPORT_SYMBOL(imx_scu_call_rpc); +int imx_scu_register_notifier(struct notifier_block *nb) +{ + return blocking_notifier_chain_register(&imx_scu_notifier_chain, nb); +} +EXPORT_SYMBOL(imx_scu_register_notifier); + +int imx_scu_unregister_notifier(struct notifier_block *nb) +{ + return blocking_notifier_chain_unregister(&imx_scu_notifier_chain, nb); +} +EXPORT_SYMBOL(imx_scu_unregister_notifier); + +static int imx_scu_notifier_call_chain(unsigned long status, u8 *group) +{ + return blocking_notifier_call_chain(&imx_scu_notifier_chain, + status, (void *)group); +} + +static void imx_scu_general_irq_work_handler(struct work_struct *work) +{ + struct imx_sc_msg_irq_get_status msg; + struct imx_sc_rpc_msg *hdr = &msg.hdr; + u32 irq_status; + int ret; + u8 i; + + for (i = 0; i < IMX_SC_IRQ_NUM_GROUP; i++) { + hdr->ver = IMX_SC_RPC_VERSION; + hdr->svc = IMX_SC_RPC_SVC_IRQ; + hdr->func = IMX_SC_IRQ_FUNC_STATUS; + hdr->size = 2; + + msg.data.send.resource = IMX_SC_R_MU_1A; + msg.data.send.group = i; + + ret = imx_scu_call_rpc(imx_sc_ipc_handle, &msg, true); + if (ret) { + pr_err("get irq status failed, ret %d\n", ret); + return; + } + + irq_status = msg.data.receive.status; + if (!irq_status) + continue; + + imx_scu_notifier_call_chain(irq_status, &i); + } +} + +static void imx_scu_rxdb_callback(struct mbox_client *c, void *msg) +{ + schedule_work(&imx_sc_general_irq_work); +} + +static int imx_scu_enable_general_irq_channel(struct device *dev) +{ + struct mbox_client *cl; + struct mbox_chan *ch; + int ret = 0; + + cl = devm_kzalloc(dev, sizeof(*cl), GFP_KERNEL); + if (!cl) + return -ENOMEM; + + cl->dev = dev; + cl->rx_callback = imx_scu_rxdb_callback; + + /* SCU general IRQ uses general interrupt channel 3 */ + ch = mbox_request_channel_byname(cl, "gi3"); + if (IS_ERR(ch)) { + ret = PTR_ERR(ch); + dev_err(dev, "failed to request mbox chan gi3, ret %d\n", ret); + return ret; + } + + INIT_WORK(&imx_sc_general_irq_work, imx_scu_general_irq_work_handler); + + return ret; +} + static int imx_scu_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -246,6 +345,8 @@ static int imx_scu_probe(struct platform_device *pdev) imx_sc_ipc_handle = sc_ipc; + imx_scu_enable_general_irq_channel(dev); + dev_info(dev, "NXP i.MX SCU Initialized\n"); return devm_of_platform_populate(dev); diff --git a/include/linux/firmware/imx/sci.h b/include/linux/firmware/imx/sci.h index ebc5509..9d608db 100644 --- a/include/linux/firmware/imx/sci.h +++ b/include/linux/firmware/imx/sci.h @@ -15,4 +15,7 @@ #include #include + +int imx_scu_register_notifier(struct notifier_block *nb); +int imx_scu_unregister_notifier(struct notifier_block *nb); #endif /* _SC_SCI_H */ From patchwork Thu Feb 14 03:44:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anson Huang X-Patchwork-Id: 10811697 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 07F9413A4 for ; Thu, 14 Feb 2019 03:45:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E6BDF2DFCA for ; Thu, 14 Feb 2019 03:45:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D93362DFD4; Thu, 14 Feb 2019 03:45:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 07A892DFD2 for ; Thu, 14 Feb 2019 03:45:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vPOsSQugGq5D5Jn9tgLDbXU3/+hrg330fHwbvNsJXbM=; b=epWFqbFCc5xrcD a4k1xRxYnwqBYyPxDctayvQj+ZsjHl7zjGWqB8avL90OtXd9xuN3jKFPsy7JinIkNoI5wzZSIwTFu Ff5QzfXj4/1j5HGFawa8j+1zp6Q6ncBRfOKJPFmD+v1LVzktaH/De6uYW9n3zdF2pzWkEatYQ3bIy q1NsCPdq9nTm9ovKP7Qy0kCy4NCBn2bJibRAVS3aFoS6MZ9hK3WLw7l49w8W2wG5PWVFyqXf8CdqY WDdR5q6DUmP1Huyq+btFvDi5yRtpyA5RdHSht5o+JYp1hsX+CKSRibrA6p9pDzu5Ziw0V1KSsz0yr 0ydSnv4OcjMvwXCEYtXQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gu7xN-0001Bg-EG; Thu, 14 Feb 2019 03:45:01 +0000 Received: from mail-eopbgr130053.outbound.protection.outlook.com ([40.107.13.53] helo=EUR01-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gu7x4-0000mE-4e for linux-arm-kernel@lists.infradead.org; Thu, 14 Feb 2019 03:44:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nXG4twRAkYaLsjmzwbjU3xDHne01mU65iLRlM2QjRzc=; b=Ccs+iViMP/2VevPmht7IOXV3Bikz5g6F1tuDKokTSIPPclsgz7Xeo5be2BcvVUuIA06JayjuKlc3MwxzH8k2alInZzW2Ur7V2e7ZzaBXmDrMQTiNlO9yS73LUYJiiUU18NSfrM7BmUmeXrndoNN8uaqOSlSQWwXTt6zOo6QKQUg= Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com (52.134.72.18) by DB3PR0402MB3675.eurprd04.prod.outlook.com (52.134.69.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.17; Thu, 14 Feb 2019 03:44:37 +0000 Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::14e8:6d2e:fe21:4fd5]) by DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::14e8:6d2e:fe21:4fd5%3]) with mapi id 15.20.1601.023; Thu, 14 Feb 2019 03:44:37 +0000 From: Anson Huang To: "robh+dt@kernel.org" , "mark.rutland@arm.com" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , "a.zummo@towertech.it" , "alexandre.belloni@bootlin.com" , Aisheng Dong , "ulf.hansson@linaro.org" , "sboyd@kernel.org" , Daniel Baluta , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-rtc@vger.kernel.org" Subject: [PATCH V2 3/4] arm64: dts: freescale: imx8qxp: enable scu general irq channel Thread-Topic: [PATCH V2 3/4] arm64: dts: freescale: imx8qxp: enable scu general irq channel Thread-Index: AQHUxBebZGnL84gchEe72CRarVHnlw== Date: Thu, 14 Feb 2019 03:44:37 +0000 Message-ID: <1550115535-14488-4-git-send-email-Anson.Huang@nxp.com> References: <1550115535-14488-1-git-send-email-Anson.Huang@nxp.com> In-Reply-To: <1550115535-14488-1-git-send-email-Anson.Huang@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK0P153CA0020.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::32) To DB3PR0402MB3916.eurprd04.prod.outlook.com (2603:10a6:8:10::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=anson.huang@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6b353fbf-88a3-4896-9da6-08d6922ebddf x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0402MB3675; x-ms-traffictypediagnostic: DB3PR0402MB3675: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; DB3PR0402MB3675; 23:fyoPuhWoUkYe/+r5AEL2b0lUc9ZCb9JWNd4c2?= =?iso-8859-1?q?OlB7h3cl6A9dgZD8i?= =?iso-8859-1?q?PSDejRTq6aEBRFggpBFKo90QbW7m9HIIYC1aWqk+jkJrUM9XmFefOZJTGYF/?= =?iso-8859-1?q?43WvMBo/Nw8nV7VkEHyXerpI3DnFI2+jWUlcQb2MenY99+yHqVLqKI7KFyI0?= =?iso-8859-1?q?tXhtKGlKJUKI0taTEtD2fZQLINnUDsPBqFitOjq1S4SyPB7PJJNbNQYVmTXi?= =?iso-8859-1?q?CX0NBtch/mUgK8GsBI8nYxu713a5sjjX+UrQPbPGN2nk5utZOW9OPsCBxx6O?= =?iso-8859-1?q?2V8eauJjb0PePAhn9QXsvQUyZOErQm9WSobk5UYRw2RmkQN//ZETiapRMW7z?= =?iso-8859-1?q?CJ93yKNkjCljOVYzZn9zkyIMh/j0T4LrNPqkAJZ1VbACvMtWnI6YEfPi1Taq?= =?iso-8859-1?q?HoIVQQehXndbSUryK1xm+rZC4Q8tebbqusRuMB7fpC62lRGX/aU3EJjT6uBL?= =?iso-8859-1?q?3lKRURmxx9g6/qVMWFIK7DUnAN+S0jBgDnGzcJitn4xGAUhsVucOzVF74/8O?= =?iso-8859-1?q?CEYapLRUh2UUKPDlv0kdr4AO5DsA0kJO1CSOVDfwOUWnkev7wiAGQ/pnIk6H?= =?iso-8859-1?q?uFHQ6yXdj8T8ZUHPrtfCuocDHrVvcAP6pAVQRmHGgaLUE62O+9GQ0s/8fZqa?= =?iso-8859-1?q?Tdn/mDpgdPnSH9FgEyaIGPtbzzi0klreVchebjQudpSO6Y5a2RmUzEAW23uG?= =?iso-8859-1?q?yM7b5qB/iAcKUTR0OTVIsEg5XfvzMCj8cBxmKGoF9in3IRVKe41RrzzHTFft?= =?iso-8859-1?q?o3am9qv5Tzk+N6urUQJcTQib3KzvoQc6HT5yTJOhTWlMuxN/zsZhcDpWBIRc?= =?iso-8859-1?q?Tr2uq9xLp9miHenajuWBdDJp8Y237PmN8qqXAF3a0MmzvL17TtMFrklPK5hE?= =?iso-8859-1?q?dD5C/3NBYw3JWv0cYd00J+VJBz0LkugIJz0HYnPozeDWgvaaXzNNV7KgmwOy?= =?iso-8859-1?q?scII+XcwTDRekTCcfaa04+c+O8R1Vn5drWuxeF6wwnq4JMCpacYusXvT1jD2?= =?iso-8859-1?q?SMxYhzZQVaJujt7LtsE8QgHi1uRtyZBvVaGuivPTiK292NIY7ERmiO6aUnZT?= =?iso-8859-1?q?XGvug/qfLQcHI4gtGS13vCcDcVuxpyHcMR1VNFe5LodNiWoQPM9hLEmnU4Yz?= =?iso-8859-1?q?Lybir5URtJdKnDyutMY7fkfGv5ZjQzHzRRG2nPjHMhmctDnKxEeb631i0cFY?= =?iso-8859-1?q?1j+o21DYLPN2dUM5tbDOKZnrwg2AIrL8eHmMp1cUiuTCcKLht7sPfu0dq6vD?= =?iso-8859-1?q?vY6fB550+NTl+o39UQlTWlqmjU?= x-microsoft-antispam-prvs: x-forefront-prvs: 09480768F8 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(136003)(366004)(376002)(346002)(39860400002)(199004)(189003)(76176011)(486006)(97736004)(4326008)(53936002)(256004)(305945005)(3846002)(6512007)(36756003)(50226002)(2906002)(476003)(106356001)(446003)(4744005)(2201001)(8936002)(6116002)(14454004)(11346002)(68736007)(52116002)(71190400001)(71200400001)(478600001)(2616005)(81166006)(7736002)(86362001)(81156014)(8676002)(386003)(7416002)(105586002)(186003)(26005)(6506007)(25786009)(6436002)(102836004)(110136005)(316002)(99286004)(2501003)(66066001)(6486002)(32563001)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0402MB3675; H:DB3PR0402MB3916.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: GPtfJLXfLRjClICA1+vkmXbOAQ1OmK+ZsjoYm3BLsUvZKwFhaAWr0NRTw/98KUWwFprCBaMiZzi+FV/4ApBMG+KqYa7c5neTzcBNHkpk/QT68X8nuRD+e/veR8w1dhH52evFSIcT5WKqC4+2FiHRB3c3ijPlfySSY/x4j+38XF0XN0RAz/+KdUqWMYXkL+kCqLB7MdUmDQujA7WEGspn1d0FoICOPmYZqnxEt2lUgkXEilg8tVFboOKBV1pKaQdaM/thBW6VM6BZE/j7XFFUEGCbA5z0UIH1ZqUR7q9HEcyiQB8WCbU/cdFOQ4kAHncfQ4meQkcTwL1UuFd9oNzw/mR3PWeYK/piDVsZab4UUxJcMV09D11bpmCK5JTFgxQqvuL22viBlbM+nCicQLEjYDQR0FWY8Yyy1/IlZzWacrY= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b353fbf-88a3-4896-9da6-08d6922ebddf X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2019 03:44:31.9576 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3675 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190213_194442_777263_C7615621 X-CRM114-Status: GOOD ( 10.95 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dl-linux-imx Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP On i.MX8QXP, SCU uses MU1 general interrupt channel #3 to notify user for IRQs of RTC alarm, thermal alarm and WDOG etc., mailbox RX doorbell mode is used for this function, this patch adds support for it. Signed-off-by: Anson Huang --- No change since V1. --- arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi index 1e08387..593e2db 100644 --- a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi @@ -112,7 +112,8 @@ scu { compatible = "fsl,imx-scu"; mbox-names = "tx0", "tx1", "tx2", "tx3", - "rx0", "rx1", "rx2", "rx3"; + "rx0", "rx1", "rx2", "rx3", + "gi3"; mboxes = <&lsio_mu1 0 0 &lsio_mu1 0 1 &lsio_mu1 0 2 @@ -120,7 +121,8 @@ &lsio_mu1 1 0 &lsio_mu1 1 1 &lsio_mu1 1 2 - &lsio_mu1 1 3>; + &lsio_mu1 1 3 + &lsio_mu1 3 3>; clk: clock-controller { compatible = "fsl,imx8qxp-clk"; From patchwork Thu Feb 14 03:44:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anson Huang X-Patchwork-Id: 10811699 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E214713BF for ; Thu, 14 Feb 2019 03:45:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CDD3E2DFCA for ; Thu, 14 Feb 2019 03:45:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C1BCE2DFD4; Thu, 14 Feb 2019 03:45:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 397482DFCA for ; Thu, 14 Feb 2019 03:45:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=gilEghW8Mab78nkdfa2Ix+OFEmc5fUnrdcAGG01kuKs=; b=mwGRHgzloC2MQZ 8/GSxxuplQ6xRUzambN0Y9qtHcMFfgzuL7EdT5SlkrNY0T5mUzzkzaCVwtom3qASH/JmE7VhsCXmX a42qXZbn6Ho0/ewfvcDXEnv2fBfvAgzk60xTq9wBmg0U3rjfy045JrwJvQjDE4bFI0NYnK87+hxLn MiswfREVt2/UpdbrVHYFRwFzlaFl8lmqF/eikljv2L81mSlPZXtK6XcQBxXGMhWhbnTa+bQMbRf1n fllHAqlD5L6K00ldgUpZBmB4CZyP5zwbwjCaMRJGWTkh8OHDFE3EuVNtsEVMdMrz0skkEuqiOw2PB Em6nLBWQkBtPPXaUZNug==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gu7xn-0002jM-Pi; Thu, 14 Feb 2019 03:45:27 +0000 Received: from mail-eopbgr40089.outbound.protection.outlook.com ([40.107.4.89] helo=EUR03-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gu7xD-0000yv-K5 for linux-arm-kernel@lists.infradead.org; Thu, 14 Feb 2019 03:45:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HW7KHpBK+2jmFigeY0ZQHsY+bVIdcppRJut0BRKyrcs=; b=lFUuD3w7jlS8f6o3KRjp7Bn+b/cd23PHcpPH8reqyA+1QkcO8JVM7kzXn2/hnf4cRGjQXIsbQBV5Lgl7Is3iwd+sMi/n2Y5047iEw4WBRLEwoCjawep1BuoOohN99jTrL8SjwhG+Uh5kf09kDDD1bG/XGHCg9bR+2KH01cnQjRs= Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com (52.134.72.18) by DB3PR0402MB3675.eurprd04.prod.outlook.com (52.134.69.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.17; Thu, 14 Feb 2019 03:44:48 +0000 Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::14e8:6d2e:fe21:4fd5]) by DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::14e8:6d2e:fe21:4fd5%3]) with mapi id 15.20.1601.023; Thu, 14 Feb 2019 03:44:48 +0000 From: Anson Huang To: "robh+dt@kernel.org" , "mark.rutland@arm.com" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , "a.zummo@towertech.it" , "alexandre.belloni@bootlin.com" , Aisheng Dong , "ulf.hansson@linaro.org" , "sboyd@kernel.org" , Daniel Baluta , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-rtc@vger.kernel.org" Subject: [PATCH V2 4/4] rtc: imx-sc: add rtc alarm support Thread-Topic: [PATCH V2 4/4] rtc: imx-sc: add rtc alarm support Thread-Index: AQHUxBei1IUMOqlWBECYcHiTQj2z0g== Date: Thu, 14 Feb 2019 03:44:48 +0000 Message-ID: <1550115535-14488-5-git-send-email-Anson.Huang@nxp.com> References: <1550115535-14488-1-git-send-email-Anson.Huang@nxp.com> In-Reply-To: <1550115535-14488-1-git-send-email-Anson.Huang@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK0P153CA0020.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::32) To DB3PR0402MB3916.eurprd04.prod.outlook.com (2603:10a6:8:10::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=anson.huang@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9797883f-f625-4fd5-0cdf-08d6922ec479 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0402MB3675; x-ms-traffictypediagnostic: DB3PR0402MB3675: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; DB3PR0402MB3675; 23:eZXMCdlmgHwNsPEmpG3Px+WZocJyAUOxAzibZ?= =?iso-8859-1?q?+28BQuykkO+65JlT5?= =?iso-8859-1?q?/HVYKRXvXnOv7AWzOwAAkQMf6cX/0hd0ODwFbGG75UJIX7mqcA74+Dy9kaMJ?= =?iso-8859-1?q?R7YD1pFdjtWNL54AaR4wCX/iKw/vELJSOkfIriycFjTHkfVgNkczX7zHF5xN?= =?iso-8859-1?q?a/hgIGvQq6B0UKRJr3qwYEOXAMMDcCQF9Ive6Ev4QnQI9Y/kFWxMAY8ZOrNf?= =?iso-8859-1?q?zhP2TEGIOHMSn8cccnDSJNzQ9Yuly3e7LFfQro552Q1Q4QrjvOGeXeUYRTfd?= =?iso-8859-1?q?/xBRNq5Lw3qMceq3X7OfaheUJVMWIobBDNFcAr/r8IAq3DBjnEARpWqVeFz6?= =?iso-8859-1?q?c5AB5vbWtFnMrujL/tDFp9Nl/lK7GxRryaDsfIWm6r5giQ6hBo1L3meCfi32?= =?iso-8859-1?q?3BAwzhGMKnxE8/NtAmJUkGrAzE1uQgPwIeBPkMdHXtwxZWzIFBypzxcdPrtZ?= =?iso-8859-1?q?lx+LqQpEYk8lIjqS7FOG0kYNX1/a4ddGR9L0TqHk5DZGWgcbISQoEfvs5/Ys?= =?iso-8859-1?q?XqrB05hdVHi/cQrNV+CknxRvEuk6lJQSrw8j3HeKtpBcguapfa3Z0NXeBkh6?= =?iso-8859-1?q?DW32iaI6Lzzrh+rX9zc8DK2IZGYADexkb2ziRxvjs7w0D+aUMuiPZOdOtOKw?= =?iso-8859-1?q?anlTOI67Yp6ucODtmDfkTviC3csEK+3Sswu8YaWwnHi70Bi5ERyk/rWBERbs?= =?iso-8859-1?q?q+SuCwqhQ5HLuFd2nqCNFp1MmoL9PksWMSJIIRhXqNcTzwxjc8oc6l9pYGbu?= =?iso-8859-1?q?EpHEpO6syDTNb4i2DMgiC328U7x3K1Ew3zODBv4iV1WwYiiSUwSI5vunPfvG?= =?iso-8859-1?q?AOqIXOvQakoYyINkXYWwgdevVnXTwNhdLxx21iPH1kM//SKCDIOcShX2KiYa?= =?iso-8859-1?q?rSZoeak2sSUYmm3W6Mo6EznUVR4zCaf1ISLmEqmpi6F2MnLpLyBdpCOLirqe?= =?iso-8859-1?q?99e/sEu0SOsvVsf9CkmGasvRXRvoX2RBX7xiKwGsesBmMlJJo9Njc1r1INxj?= =?iso-8859-1?q?GWF05kFAgv2QfP9Qbn6xPwIFr22+zEsfWiwvXZqbdac2bx9kbuLu9GS4LGjJ?= =?iso-8859-1?q?S/Ib0qFBB+4UbcMxPIm/1/JoPrz4uffO15PobnQgA+QCUsmY10QDxY/oS+7V?= =?iso-8859-1?q?hlMdhtDhD4NZ+sAJAWnFUPAVZGeCkbDMuAVS/vDSqib5980c+4P66gQSJhmX?= =?iso-8859-1?q?BYWNcECcdoqVPDBo9iczjE6/eMR45jCe/3QV+L7+bTPOmR79hrV0HuX5qOml?= =?iso-8859-1?q?nBrxk=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09480768F8 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(136003)(366004)(376002)(346002)(39860400002)(199004)(189003)(76176011)(486006)(97736004)(4326008)(53936002)(256004)(305945005)(3846002)(6512007)(14444005)(36756003)(50226002)(2906002)(476003)(106356001)(446003)(2201001)(8936002)(6116002)(14454004)(11346002)(68736007)(52116002)(71190400001)(71200400001)(478600001)(2616005)(81166006)(7736002)(86362001)(81156014)(8676002)(386003)(7416002)(105586002)(186003)(26005)(6506007)(25786009)(6436002)(102836004)(110136005)(316002)(99286004)(2501003)(66066001)(6486002)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0402MB3675; H:DB3PR0402MB3916.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: sNsRTcLHAgi7WBdL+MAVZdPv6uA0Cg1c6bg8aZEEkWufGRp7SuxRy3/1fbpC0izGw7GCGaL8knS9SD3Eh4cCkwXH9ZSA4d4zSB1CmV8y89mxkzGt0BDjlthiXEAJz1WYLXJ8Fb6M5q+Bu8cCpmK84k6NzbcHsiux/TmbD78scIGtqZbcZ6o5AFZYR/FxuPQM+NPV80myRqFUqXiRzd7YsYMpWUBZVYo3xTPo6aqVDu+tIhNVPIJoa2aq4dRraZXRJ7cuWh0/znLxTEJn/MxaOF/sMSPrlleEvtomBqPveYxZbPro7GB9SleIa3iMig5lpCythbI0ZeB1zLl+T9hVs0cgYbyNOjKvIci+WPafiZyG6+LABTjZtD9hdALsyGJuR/Ks54aZptqToItT46OBjyTeWu3ZmQ8u/8qeht4XPTE= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9797883f-f625-4fd5-0cdf-08d6922ec479 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2019 03:44:43.0385 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3675 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190213_194451_967958_132362BA X-CRM114-Status: GOOD ( 15.63 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dl-linux-imx Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Add i.MX system controller RTC alarm support, the RTC alarm is implemented via SIP(silicon provider) runtime service call and ARM-Trusted-Firmware will communicate with system controller via MU(message unit) IPC to set RTC alarm. When RTC alarm fires, system controller will generate a common MU irq event and notify system controller RTC driver to handle the irq event. Signed-off-by: Anson Huang --- No V1 patch, just add it into the i.MX SC general irq support patch series, to support system controller RTC's alarm function and also to provide an example of how to use general MU irq, this patch depends on the i.MX SC general irq support patch set, so add it into same patch series. -- drivers/rtc/rtc-imx-sc.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/drivers/rtc/rtc-imx-sc.c b/drivers/rtc/rtc-imx-sc.c index 60570a2..147545e 100644 --- a/drivers/rtc/rtc-imx-sc.c +++ b/drivers/rtc/rtc-imx-sc.c @@ -3,6 +3,7 @@ * Copyright 2018 NXP. */ +#include #include #include #include @@ -11,11 +12,17 @@ #include #define IMX_SC_TIMER_FUNC_GET_RTC_SEC1970 9 +#define IMX_SC_TIMER_FUNC_SET_RTC_ALARM 8 #define IMX_SC_TIMER_FUNC_SET_RTC_TIME 6 +#define IMX_SC_IRQ_FUNC_ENABLE 1 + #define IMX_SIP_SRTC 0xC2000002 #define IMX_SIP_SRTC_SET_TIME 0x0 +#define SC_IRQ_GROUP_RTC 2 +#define SC_IRQ_RTC 1 + static struct imx_sc_ipc *rtc_ipc_handle; static struct rtc_device *imx_sc_rtc; @@ -24,6 +31,24 @@ struct imx_sc_msg_timer_get_rtc_time { u32 time; } __packed; +struct imx_sc_msg_timer_enable_irq { + struct imx_sc_rpc_msg hdr; + u32 mask; + u16 resource; + u8 group; + u8 enable; +} __packed; + +struct imx_sc_msg_timer_rtc_set_alarm { + struct imx_sc_rpc_msg hdr; + u16 year; + u8 mon; + u8 day; + u8 hour; + u8 min; + u8 sec; +} __packed; + static int imx_sc_rtc_read_time(struct device *dev, struct rtc_time *tm) { struct imx_sc_msg_timer_get_rtc_time msg; @@ -60,9 +85,80 @@ static int imx_sc_rtc_set_time(struct device *dev, struct rtc_time *tm) return res.a0; } +static int imx_sc_rtc_alarm_irq_enable(struct device *dev, unsigned int enable) +{ + struct imx_sc_msg_timer_enable_irq msg; + struct imx_sc_rpc_msg *hdr = &msg.hdr; + int ret; + + hdr->ver = IMX_SC_RPC_VERSION; + hdr->svc = IMX_SC_RPC_SVC_IRQ; + hdr->func = IMX_SC_IRQ_FUNC_ENABLE; + hdr->size = 3; + + msg.resource = IMX_SC_R_MU_1A; + msg.group = SC_IRQ_GROUP_RTC; + msg.mask = SC_IRQ_RTC; + msg.enable = enable; + + ret = imx_scu_call_rpc(rtc_ipc_handle, &msg, true); + if (ret) { + dev_err(dev, "enable rtc irq failed, ret %d\n", ret); + return ret; + } + + return 0; +} + +static int imx_sc_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) +{ + struct imx_sc_msg_timer_rtc_set_alarm msg; + struct imx_sc_rpc_msg *hdr = &msg.hdr; + int ret; + struct rtc_time *alrm_tm = &alrm->time; + + hdr->ver = IMX_SC_RPC_VERSION; + hdr->svc = IMX_SC_RPC_SVC_TIMER; + hdr->func = IMX_SC_TIMER_FUNC_SET_RTC_ALARM; + hdr->size = 3; + + msg.year = alrm_tm->tm_year + 1900; + msg.mon = alrm_tm->tm_mon + 1; + msg.day = alrm_tm->tm_mday; + msg.hour = alrm_tm->tm_hour; + msg.min = alrm_tm->tm_min; + msg.sec = alrm_tm->tm_sec; + + ret = imx_scu_call_rpc(rtc_ipc_handle, &msg, true); + if (ret) { + dev_err(dev, "set rtc alarm failed, ret %d\n", ret); + return ret; + } + + return 0; +} + static const struct rtc_class_ops imx_sc_rtc_ops = { .read_time = imx_sc_rtc_read_time, .set_time = imx_sc_rtc_set_time, + .set_alarm = imx_sc_rtc_set_alarm, + .alarm_irq_enable = imx_sc_rtc_alarm_irq_enable, +}; + +static int imx_sc_rtc_alarm_sc_notify(struct notifier_block *nb, + unsigned long event, void *group) +{ + /* ignore non-rtc irq */ + if (!((event & SC_IRQ_RTC) && (*(u8 *)group == SC_IRQ_GROUP_RTC))) + return 0; + + rtc_update_irq(imx_sc_rtc, 1, RTC_IRQF | RTC_AF); + + return 0; +} + +static struct notifier_block imx_sc_rtc_alarm_sc_notifier = { + .notifier_call = imx_sc_rtc_alarm_sc_notify, }; static int imx_sc_rtc_probe(struct platform_device *pdev) @@ -73,6 +169,8 @@ static int imx_sc_rtc_probe(struct platform_device *pdev) if (ret) return ret; + device_init_wakeup(&pdev->dev, true); + imx_sc_rtc = devm_rtc_allocate_device(&pdev->dev); if (IS_ERR(imx_sc_rtc)) return PTR_ERR(imx_sc_rtc); @@ -87,6 +185,8 @@ static int imx_sc_rtc_probe(struct platform_device *pdev) return ret; } + imx_scu_register_notifier(&imx_sc_rtc_alarm_sc_notifier); + return 0; }