From patchwork Thu Jan 31 08:03:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aisheng Dong X-Patchwork-Id: 10790003 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 2418291E for ; Thu, 31 Jan 2019 08:04:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 232AC29677 for ; Thu, 31 Jan 2019 08:04:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 170BE296E3; Thu, 31 Jan 2019 08:04:12 +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=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 AFC2C29677 for ; Thu, 31 Jan 2019 08:04:11 +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=RiCm60byVj6jNdeyC5yZ7m2uEESGSpEglFq58OVb2SA=; b=o4cslFAxBFbbLs IGqRcuQW7BPTqWbQM6PmnFNMKpder/Lzw7/pX9FcnHsdE8omGLiDIE7320DLg/9PmW8CE+LROK0uc j/EBlItJL+cJEVxq1JzEjaw1AIGcPR1bMDoIJy1SEaV0breY/6euJpTmkVVAT1AAsvnnk2Zb/m0KV uByAgMtBWBlTK3ZWmK3jHOd6H1M00QArfkqyXD2RPId9W9qK8ON5ACE4xPJXZlyPdeCdpq0/HcQof qhD22uVLyN54xc/l5YrcoD65koIp1ZK8Wb6CyLFqA6iXIzhTUFXLRpvYHckz4LT3GjGt/e9t/jI/a cHjNTbA5V1/+4d97jHog==; 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 1gp7KT-0005xU-0D; Thu, 31 Jan 2019 08:04:09 +0000 Received: from mail-eopbgr150059.outbound.protection.outlook.com ([40.107.15.59] helo=EUR01-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gp7K7-0005cS-0F for linux-arm-kernel@lists.infradead.org; Thu, 31 Jan 2019 08:03:50 +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=YpuQ0LSCLl+Zknilxue8oeZxIOd9yYpSy4Mj6G1za8M=; b=dHYHAsU1leSyReokHex1tcVoLw8Pzl9EYta4TeuOymnhiSew1rlwiDDZNejPvqkxMbSi5RxxscSIidPLeETNn4BiuarIIalKuH1uHpEmCqTzYZ63tMTiDnTcKxtTiGw/MX+PQurU0Cby93YRjSsTZydRVXYhHEpoO4jVaAbcXaA= Received: from AM0PR04MB4211.eurprd04.prod.outlook.com (52.134.126.21) by AM0PR04MB5298.eurprd04.prod.outlook.com (20.177.42.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.21; Thu, 31 Jan 2019 08:03:39 +0000 Received: from AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::bd44:e001:ab8d:1c51]) by AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::bd44:e001:ab8d:1c51%2]) with mapi id 15.20.1580.019; Thu, 31 Jan 2019 08:03:39 +0000 From: Aisheng Dong To: "linux-kernel@vger.kernel.org" Subject: [PATCH V3 1/4] dt-binding: irq: imx-irqsteer: use irq number instead of group number Thread-Topic: [PATCH V3 1/4] dt-binding: irq: imx-irqsteer: use irq number instead of group number Thread-Index: AQHUuTt5Spk4kSNY5kK4EHnWuE5BYA== Date: Thu, 31 Jan 2019 08:03:39 +0000 Message-ID: <1548921464-28917-2-git-send-email-aisheng.dong@nxp.com> References: <1548921464-28917-1-git-send-email-aisheng.dong@nxp.com> In-Reply-To: <1548921464-28917-1-git-send-email-aisheng.dong@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK2PR02CA0184.apcprd02.prod.outlook.com (2603:1096:201:21::20) To AM0PR04MB4211.eurprd04.prod.outlook.com (2603:10a6:208:66::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=aisheng.dong@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR04MB5298; 6:EHbWy0qkFBiqXH7t/puFTYrFiLZ9SqxjQEmMyhdwHQsbIWKpkbFQ6l33KIfGkoX8szVG8qAr/2BJ9Mmy+LIZHSlZqGXHORihwGLs336gNIkQ7g6bgtc3C03mokWNEtoBUxx1no98XL/ccVwy0vqIiRclxapJpaYG2xxOist9IYGKotTEx1OFVpWxeHy75jeKacnEtuQFiS4FYqWA/Fh771QrpmDTtm2HVWzWapn9p9oeRfAWF493RJRiRTLH7lxFm7wzRD2kb1hIesB3kmciF3uFgjZQ8XXpyuus/FJ55WU7b+31JKIgmO0BGFbwpEaQiErJVG5ydY65A4z6AdUbbpCQ/Yda7Y4pH/9Am9BPtBwTKgU5hRrg3iYFMAFrTYWQX2Tegsi25KWgAry0lQbP68i5Gm2bpT0XAYo1JnsDJTfdv0Y3H0RfL23BPUmnAdtXiZ82ydP0Dfe+L5qUyvS+0Q==; 5:ngIniz/skXjVbMjTWW6eKontw7hM3dyp+kwyNXnzL8lyx2nnMqSQpc9YqH1h5KIXTSzYGTkfBROlunu3CFD6h7lQlfnfqXcS5WBt78C0AhnhxWYdBFRcm36zxJa/BjEswnO9DRW7Cq+7tKtsXeCKpoMpq5wuuaK+uzJHD0RPGA/4Oz3Piey+LczPqILJsLvpFwTC3SbS/xzQk90oNyWV8Q==; 7:WRgQQeayfTIpUC6jotDEFUBw+o9QrneoEa1gXpitulQhFx2sj17ptvIAMd9vR+TMbrXNGrHYA+4GW0feBSZVjnb1PSICAn30xpA2fPpauyS/5Gml+9w9Fbk2N2OOujf8+OhKmdutwqnYrx0w6qdlgw== x-ms-office365-filtering-correlation-id: 9b0747b2-b95b-45f4-904a-08d687529bc9 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:AM0PR04MB5298; x-ms-traffictypediagnostic: AM0PR04MB5298: x-microsoft-antispam-prvs: x-forefront-prvs: 09347618C4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(136003)(39860400002)(346002)(396003)(376002)(189003)(199004)(54534003)(97736004)(256004)(102836004)(5640700003)(316002)(6486002)(386003)(6506007)(71200400001)(71190400001)(2351001)(36756003)(2501003)(4326008)(54906003)(2906002)(6512007)(25786009)(6436002)(99286004)(53936002)(86362001)(305945005)(52116002)(81166006)(44832011)(105586002)(8676002)(486006)(446003)(3846002)(7736002)(76176011)(6116002)(81156014)(11346002)(2616005)(8936002)(476003)(106356001)(50226002)(478600001)(6916009)(14454004)(186003)(68736007)(66066001)(26005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB5298; H:AM0PR04MB4211.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: gJRU/TufCovAqfzplbdmBxCscdB+LRt+L40vfYrulbJ1nFePjtmic4OcZXB0g52xJuvHaXxmSqoyuutHzYiDOU7RsceluplYIaFeSAOO1BsKa+XdWcdbzsvcyzr9ct1Tprgn3wWLVr1IzvXrEP2B60R469y1eG6430XQk2NcmAjznSWTNPRtMCsGEogcjDVWHxXujCB1ePDfQU9mRJqYiRzrfXWpq5IB1/PzXdgUSishWz0il7LcfBS8SjvgALMTaogw1JeXTpIl2HyUle9IBv0re1crDF3T7PiJubEvtyfPqKK/F9qiSbNfxVngR+dbvbFGj4aIH3OP0jQ6UNjrTIO//t262bKsJiowVs4YmVZOO2PVimEuzWU0Ssem4SbmuGgspNLBL2g1+444atyTQdOzxwSgEOC+RIOOg8+9Pgg= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b0747b2-b95b-45f4-904a-08d687529bc9 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jan 2019 08:03:35.7016 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5298 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190131_000347_228356_841A8435 X-CRM114-Status: GOOD ( 10.51 ) 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: Aisheng Dong , "devicetree@vger.kernel.org" , Marc Zyngier , "robh+dt@kernel.org" , dl-linux-imx , "tglx@linutronix.de" , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" , "l.stach@pengutronix.de" 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 Not all 64 interrupts may be used in one group. e.g. most irqsteer in imx8qxp and imx8qm subsystems supports only 32 interrupts. As the IP integration parameters are Channel number and interrupts number, let's use fsl,irqs-num to represents how many interrupts supported by this irqsteer channel. Cc: Marc Zyngier Cc: Rob Herring Cc: Shawn Guo Cc: devicetree@vger.kernel.org Reviewed-by: Lucas Stach Signed-off-by: Dong Aisheng --- ChangeLog: v1->v2: * change property name fsl,irqs-per-chan to fsl,num-irqs. --- .../devicetree/bindings/interrupt-controller/fsl,irqsteer.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt index 45790ce..6d0a41b 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt @@ -16,8 +16,8 @@ Required properties: - #interrupt-cells: Specifies the number of cells needed to encode an interrupt source. The value must be 1. - fsl,channel: The output channel that all input IRQs should be steered into. -- fsl,irq-groups: Number of IRQ groups managed by this controller instance. - Each group manages 64 input interrupts. +- fsl,num-irqs: Number of input interrupts of this channel. + Should be multiple of 32 input interrupts and up to 512 interrupts. Example: @@ -28,7 +28,7 @@ Example: clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; clock-names = "ipg"; fsl,channel = <0>; - fsl,irq-groups = <1>; + fsl,num-irqs = <64>; interrupt-controller; #interrupt-cells = <1>; }; From patchwork Thu Jan 31 08:03:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aisheng Dong X-Patchwork-Id: 10790009 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 4F4D391E for ; Thu, 31 Jan 2019 08:10:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 518B63028B for ; Thu, 31 Jan 2019 08:10:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 45EED3031A; Thu, 31 Jan 2019 08:10:48 +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=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 DA94E3006D for ; Thu, 31 Jan 2019 08:10:47 +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=1Wi+XjHxB1OECwCeaR/P0bVw7xAtgfpQfeQT/wx9Zd0=; b=A6z0eWm2+WMyWR YUJwzrH7BFygrBgNeRDlXnJRP9CATkgPpOOwXqbT2bKoqeefxW9BNijnuRJhvMloOzyrbLmSKpA7x iP8om/4nh/kLHbwFibelN3vI2fcZmAJnUmghSV3OxfaX+BQSN8lpBYHknYswKQiTYKb0pNxxnl3Oe YBovjx3XU6lRWJxQNvxZbgsgvJziXQq5oLFC5tRFSkXDFwpy/Zs6FF0376L+auZqn42qlWc+0ElyU bnqVhvLgDKhyJox8FNgT81KrPg99XzO2/1qzOTuev4ffaauAoo3qIE+aphvJIU3cHIyzYydlScwFH RDmwEZKhiOElTb4GwQkQ==; 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 1gp7Qr-0002P3-FX; Thu, 31 Jan 2019 08:10:45 +0000 Received: from mail-eopbgr150059.outbound.protection.outlook.com ([40.107.15.59] helo=EUR01-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gp7KA-0005cS-HG for linux-arm-kernel@lists.infradead.org; Thu, 31 Jan 2019 08:04:02 +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=VmKWgIw4oMQIxBcwlFwhdQP25iDgp5jljvMPKKX+U54=; b=llNyvUms8pE2+TrFW4Ey0ILRYdBCZBvIOSfrilydpyBLHFcTe6M4jGTnZS3uoY4p5UEHrJjNEZbWpo5B5ibxb0hhn3wM4A0+SaZFqwVQdlByvFoHdSyIz5iB1OLoIA3krqKaJsGeWjZHtuka6XMbDMuKssajD/6MSth2uiYJm60= Received: from AM0PR04MB4211.eurprd04.prod.outlook.com (52.134.126.21) by AM0PR04MB5298.eurprd04.prod.outlook.com (20.177.42.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.21; Thu, 31 Jan 2019 08:03:43 +0000 Received: from AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::bd44:e001:ab8d:1c51]) by AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::bd44:e001:ab8d:1c51%2]) with mapi id 15.20.1580.019; Thu, 31 Jan 2019 08:03:43 +0000 From: Aisheng Dong To: "linux-kernel@vger.kernel.org" Subject: [PATCH V3 2/4] dt-bindings: irq: imx-irqsteer: add multi output interrupts support Thread-Topic: [PATCH V3 2/4] dt-bindings: irq: imx-irqsteer: add multi output interrupts support Thread-Index: AQHUuTt8PgNPpOmrA0+KGlk6eJo21w== Date: Thu, 31 Jan 2019 08:03:43 +0000 Message-ID: <1548921464-28917-3-git-send-email-aisheng.dong@nxp.com> References: <1548921464-28917-1-git-send-email-aisheng.dong@nxp.com> In-Reply-To: <1548921464-28917-1-git-send-email-aisheng.dong@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK2PR02CA0184.apcprd02.prod.outlook.com (2603:1096:201:21::20) To AM0PR04MB4211.eurprd04.prod.outlook.com (2603:10a6:208:66::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=aisheng.dong@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR04MB5298; 6:v9z5sjZjDq6n3RVj1VH/2eXhtCqOzz4z7vAQ7V9WVUNlrIQWt2uwTT2pPKwkEQ2JkkTwNLKTCIwDA7H5d/QHXRdeUpMfOs4dg1YIhTMO5PZBkNuJsaA2pqlFBkfIGLNVRNFixDGzWlEv3sK5D1L4i9sifIlHmzzsF/cS6m1nVaJfhJx7hFskxREoiZbONcR5dIxbyBQFn4Z1IWvJM2Z/q7AtnOSbYH06FfUV1L7SjR1mZNEPWWPejMZc9wGg8gQtSRYMJdUqf+w3TVe7/1JsLp2I6Oa9U7nlZkTFYtwLhul0H0RVoNTDr7broC3GErJ/tDe5K3oV5TE5+oJIWs+OUWLbwocyMbSf8oW80CsjwYr8vlwDqxFmqtNE6mqEvSENlf3SFYpmQ2Nz1AdCxQ+6EyzvTKnyPF895dP6GsQ3SjJ+8YxfUEHC6UPzkjDVbS3EpMPgmc0EDPHpyoCBohCXbw==; 5:hvIEkXeqmzp7J8nVmhEMCZv0oGVPk490d3oBki9YtYm6nkJyd0FJNbsEi5sElGTPYAHU09hEIdxAdArri/1DgBltFsNziU4X/IFcxdaNl5T1hZYKVzGP3XYMqHxzJ6/xNShowFHO5C9SYvy516vuEfZqpIsP0VdIiA682dKZyejj1Ud1qJJSY4FijExGlA4ON3rzbA1zN/18Auj2nciWjA==; 7:oj8PZhsBQxyTCfhxAWT3tON2QVxxriuJXMiRxEqHM+xBHCtpkeYwcXW7J4gL0I7dmG5WmMv9WjxpBBVqQ0AR64+M8+5MtBF6B6GeZ/CldS01ouTIgNuTBAUzd4ICBRLd/zZpS8WuYb5TpmdKwQ766w== x-ms-office365-filtering-correlation-id: 14ad1edd-adf1-410e-001e-08d687529e3b 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:AM0PR04MB5298; x-ms-traffictypediagnostic: AM0PR04MB5298: x-microsoft-antispam-prvs: x-forefront-prvs: 09347618C4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(136003)(39860400002)(346002)(396003)(376002)(189003)(199004)(54534003)(97736004)(256004)(102836004)(5640700003)(316002)(6486002)(386003)(6506007)(71200400001)(71190400001)(2351001)(36756003)(2501003)(4326008)(54906003)(2906002)(6512007)(25786009)(6436002)(99286004)(53936002)(86362001)(305945005)(52116002)(81166006)(44832011)(105586002)(8676002)(486006)(446003)(3846002)(7736002)(76176011)(6116002)(81156014)(11346002)(2616005)(8936002)(476003)(106356001)(50226002)(478600001)(6916009)(14454004)(186003)(68736007)(66066001)(26005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB5298; H:AM0PR04MB4211.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: bdbsSm9fVNQBkznRyKPmw6yuFcVngdvRbLjUtZ1TjilEyq7EzGX2M0aTZTsJ5pzKJ6SF3ZlnImoUU1ri3xdOFf0WKdNyaaVeljF23J3M0+EzXvfNjvtu8IhZU7xOogktpdbRvQ7EgxazrDfFolThJ07lkd2TV+1F6gp0CvCZF7eJOucWivQ7JVh61Y+XiXY+IS2a1kFdt7IB0MTbqoNSs0pKhpevAw23Do6DzC9jnkRJyszJPKKx43ZOvS07REG7a3TPB0Tw5QIapZchhBQTpZB1EiOHDROc5MdSqJ4irxJ79Dp58erk7o0xctf2XHfjTeoGqxYd30nSSYnc1dD7acwgGNSMcanU2bZSVJGLrjYlvft07sWgbv+2WJWmAKh2/LsXpnVmGyUIs3XS7gp+WaFaXS2H1U2WYvNxkKCJu7g= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 14ad1edd-adf1-410e-001e-08d687529e3b X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jan 2019 08:03:39.8045 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5298 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190131_000350_953301_77D2F9DE X-CRM114-Status: UNSURE ( 9.64 ) X-CRM114-Notice: Please train this message. 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: Aisheng Dong , "devicetree@vger.kernel.org" , Marc Zyngier , "robh+dt@kernel.org" , dl-linux-imx , "tglx@linutronix.de" , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" , "l.stach@pengutronix.de" 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 One irqsteer channel can support up to 8 output interrupts. Cc: Marc Zyngier Cc: Rob Herring Cc: Lucas Stach Cc: Shawn Guo Cc: devicetree@vger.kernel.org Signed-off-by: Dong Aisheng Reviewed-by: Lucas Stach --- ChangeLog: v2->v3: * fix a typo v1->v2: * remove one unnecessary note. --- .../devicetree/bindings/interrupt-controller/fsl,irqsteer.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt index 6d0a41b..582991c 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt @@ -6,8 +6,9 @@ Required properties: - "fsl,imx8m-irqsteer" - "fsl,imx-irqsteer" - reg: Physical base address and size of registers. -- interrupts: Should contain the parent interrupt line used to multiplex the - input interrupts. +- interrupts: Should contain the up to 8 parent interrupt lines used to + multiplex the input interrupts. They should be specified sequentially + from output 0 to 7. - clocks: Should contain one clock for entry in clock-names see Documentation/devicetree/bindings/clock/clock-bindings.txt - clock-names: From patchwork Thu Jan 31 08:03:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aisheng Dong X-Patchwork-Id: 10790005 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 DA5B1139A for ; Thu, 31 Jan 2019 08:04:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D909629677 for ; Thu, 31 Jan 2019 08:04:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CC21C2FFFA; Thu, 31 Jan 2019 08:04:26 +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=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 3EA8329677 for ; Thu, 31 Jan 2019 08:04:26 +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=3CqJ8bMD9Uj6GCvp2zj/hF6daQASTlbtrkMBV6G1xms=; b=knPeDBVQRDLygu Ab+OD0sRoMFbNgVzfWO1M40lJtzZWWKA200ftGFA1ZydyL074dgnqIo1u9KXZKu8zXVJuW6fYKJI6 zgcmzC8dUAGlfZ3KNxbTQx7x9vYQ8gUCgf4EbhZSZ+k6Q/csoNIvqRLISGKxPYQeMR11QNtTgqIo3 FUkdsYNf8K+Z/lMssjKiAtfU0HLabzYQMLwfAZCsMdGhoEBwPzM3g+MmnXqiuWbFUZNv7TsKTSmum 7Wc149bqsCyQOcnkLfExGMyqRwCnL3/dp4esmhziQxlIrkrU7LgLroPRWzftxU5XA+ffb6jwANxZv 10CyPz3f95zK+74cEUNg==; 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 1gp7Kf-00068m-T3; Thu, 31 Jan 2019 08:04:21 +0000 Received: from mail-eopbgr150059.outbound.protection.outlook.com ([40.107.15.59] helo=EUR01-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gp7KA-0005fe-7W for linux-arm-kernel@lists.infradead.org; Thu, 31 Jan 2019 08:03:58 +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=yW2lhuIyoeeQJ+rie/Bh1DR7IkliEsQER/dZQJDLces=; b=xmZmZaeW+UMMuVUdhQacNcfJij1ghKMQLaZBTCNAjq4MQmwSWx1+hSk6CKdwsOGHMa10UHAW0SeFnY0oQ4ABqIgg2HlLxr+0uNY4CFVwj4jFtfZNYbC/KSBqphr8ceCNUz/bcNw3t89Hzn5S1dE5qTSvzzuCxj4t1c57Q2YkjKQ= Received: from AM0PR04MB4211.eurprd04.prod.outlook.com (52.134.126.21) by AM0PR04MB5796.eurprd04.prod.outlook.com (20.178.202.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.21; Thu, 31 Jan 2019 08:03:47 +0000 Received: from AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::bd44:e001:ab8d:1c51]) by AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::bd44:e001:ab8d:1c51%2]) with mapi id 15.20.1580.019; Thu, 31 Jan 2019 08:03:47 +0000 From: Aisheng Dong To: "linux-kernel@vger.kernel.org" Subject: [PATCH V3 3/4] irq: imx-irqsteer: change to use reg_num instead of irq_group Thread-Topic: [PATCH V3 3/4] irq: imx-irqsteer: change to use reg_num instead of irq_group Thread-Index: AQHUuTt+3c32KigClkm9+7rmTqo/Dg== Date: Thu, 31 Jan 2019 08:03:47 +0000 Message-ID: <1548921464-28917-4-git-send-email-aisheng.dong@nxp.com> References: <1548921464-28917-1-git-send-email-aisheng.dong@nxp.com> In-Reply-To: <1548921464-28917-1-git-send-email-aisheng.dong@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK2PR02CA0184.apcprd02.prod.outlook.com (2603:1096:201:21::20) To AM0PR04MB4211.eurprd04.prod.outlook.com (2603:10a6:208:66::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=aisheng.dong@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR04MB5796; 6:C75flqW07dOR5djipAgLXLkmODDtwXRtcPuyo1fOIw7yOYqEYusRBW9bFGI8m5mbMt0/qDxpWRH1wLEjd7VjsuF0feIvGgXVq+NAsorAP/Kz9Knhjm5C7HEt20LT7Oy4uQvGRra0raEkIRjF0IFHQgEyaK9SO68vMDM3r38m0Q+nHyNuOzi99l0X+JjufRCAAjBkT7FEudSwJMDWqxX4XeQp0U/w2lvnakhB3T+a7cspQgQdeVzna28otPqpeXxXZoCQbFVjkd0YuVtts9vYNGjmujtZ47Fv48iYAQIEGSyoo1eUAYEeyB/O1+E0Nhk/eRtJYWIddeZzwDPMRMjEDPU3LUj6YjRzdHWcNtHWzKcEQHMonyTldQ8hzgfBRwDmlWtYsJ+fgaEl0P6MXsH9FMaf8ib9JDQuuZdR7+G3RmHzGzEIrIsBHEQJqNCeiD8wAEUwKFy5YsgDLTL/rnNUKQ==; 5:T7MCPQA86BVbiZXd9riD648G8578pdxOOSzqHNaZ/at9w/9XdT+Yjen20WyWGyLK3A6zPWM0w/oujQYWcN9/noBHfOK7C2E69Xsy3p61UIosL9wepRODAJD432jbMPv3TLzz5KymHnZwQ8kjLNHq/NERavIzoewiXTlcpuyaD2YrVOShZxzHL46ZDZLiD1kf2peD8XqT52IqKOKH+Chhxg==; 7:BD3HxkpG9YC73d05NLDToOel9V04oJ337wejSe7BKxo1vkhqfhODXCzGDkOzuN4da+o5gwN+bs9RilVPDkaBWpzLv148xC6uJUohJ8JqKZWLF7+rhFSggDzh0tVFyXZE7rhGQ4HPrVzuS7Qq5f8MSg== x-ms-office365-filtering-correlation-id: 1734262b-f61c-4372-55df-08d68752a09b 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:AM0PR04MB5796; x-ms-traffictypediagnostic: AM0PR04MB5796: x-microsoft-antispam-prvs: x-forefront-prvs: 09347618C4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(136003)(376002)(346002)(39860400002)(189003)(199004)(36756003)(8936002)(71190400001)(25786009)(6512007)(106356001)(50226002)(4326008)(99286004)(14444005)(81166006)(71200400001)(8676002)(52116002)(6916009)(53936002)(76176011)(81156014)(14454004)(2906002)(256004)(478600001)(2501003)(3846002)(486006)(44832011)(476003)(102836004)(2616005)(7736002)(6436002)(316002)(6116002)(6486002)(5640700003)(68736007)(26005)(186003)(446003)(66066001)(86362001)(97736004)(6506007)(54906003)(105586002)(386003)(2351001)(11346002)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB5796; H:AM0PR04MB4211.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: CPHWHPMoERdvemyoSo2sx9Qj0++MVvvxqcV0JGDqFZVX7yLY1cQVg5B5zMpBZvXw8TIeBgmByCKIoCvOi0+awW3JPyiBz+3scy/N8fnAc8OKaQzzeG/4z/swV9DONFj69c8sknvHUR3VMXqf/gPiGag6cR6zUWtfu2qo0RHjIXfibETkZ8fRuMx4ck5tO8YdxwOQ7kj1pwQw5DJ8GmbiiDfq/tbG4B/wTeBu8TVhX5cnqMNLdG2LqhE3EIQBv9MihaqTUOqidkRspsH3H22E/qPkrtZd/Gmkw4M7sYeSswoTmMWkp0hacn5+w4JJaq0yY0XmtQMHOTRhJUt0XUh/KK9T1TDsfuLn4HLwGCrs9HDjlqMuNLW0qjMjnHnGFHNGqG7g0Uv6JqYMV2fbbmk+kDkuh6qYW3NJsITzwYPx7Dk= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1734262b-f61c-4372-55df-08d68752a09b X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jan 2019 08:03:43.8503 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5796 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190131_000350_463021_3986537C X-CRM114-Status: GOOD ( 15.18 ) 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: Aisheng Dong , "devicetree@vger.kernel.org" , Marc Zyngier , "robh+dt@kernel.org" , dl-linux-imx , "tglx@linutronix.de" , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" , "l.stach@pengutronix.de" 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 One group can manage 64 interrupts by using two registers (e.g. STATUS/SET). However, the integrated irqsteer may support only 32 interrupts which needs only one register in a group. But the current driver assume there's a mininum of two registers in a group which result in a wrong register map for 32 interrupts per channel irqsteer. Let's use the reg_num caculated by interrupts per channel instead of irq_group to cover this case. Cc: Marc Zyngier Cc: Rob Herring Cc: Shawn Guo Reviewed-by: Lucas Stach Signed-off-by: Dong Aisheng --- v2->v3: * no changes v1->v2: * The using of property name updated accordingly --- drivers/irqchip/irq-imx-irqsteer.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-irqsteer.c index 5b3f1d7..67ed862 100644 --- a/drivers/irqchip/irq-imx-irqsteer.c +++ b/drivers/irqchip/irq-imx-irqsteer.c @@ -13,7 +13,7 @@ #include #include -#define CTRL_STRIDE_OFF(_t, _r) (_t * 8 * _r) +#define CTRL_STRIDE_OFF(_t, _r) (_t * 4 * _r) #define CHANCTRL 0x0 #define CHANMASK(n, t) (CTRL_STRIDE_OFF(t, 0) + 0x4 * (n) + 0x4) #define CHANSET(n, t) (CTRL_STRIDE_OFF(t, 1) + 0x4 * (n) + 0x4) @@ -26,7 +26,7 @@ struct irqsteer_data { struct clk *ipg_clk; int irq; raw_spinlock_t lock; - int irq_groups; + int reg_num; int channel; struct irq_domain *domain; u32 *saved_reg; @@ -35,7 +35,7 @@ struct irqsteer_data { static int imx_irqsteer_get_reg_index(struct irqsteer_data *data, unsigned long irqnum) { - return (data->irq_groups * 2 - irqnum / 32 - 1); + return (data->reg_num - irqnum / 32 - 1); } static void imx_irqsteer_irq_unmask(struct irq_data *d) @@ -46,9 +46,9 @@ static void imx_irqsteer_irq_unmask(struct irq_data *d) u32 val; raw_spin_lock_irqsave(&data->lock, flags); - val = readl_relaxed(data->regs + CHANMASK(idx, data->irq_groups)); + val = readl_relaxed(data->regs + CHANMASK(idx, data->reg_num)); val |= BIT(d->hwirq % 32); - writel_relaxed(val, data->regs + CHANMASK(idx, data->irq_groups)); + writel_relaxed(val, data->regs + CHANMASK(idx, data->reg_num)); raw_spin_unlock_irqrestore(&data->lock, flags); } @@ -60,9 +60,9 @@ static void imx_irqsteer_irq_mask(struct irq_data *d) u32 val; raw_spin_lock_irqsave(&data->lock, flags); - val = readl_relaxed(data->regs + CHANMASK(idx, data->irq_groups)); + val = readl_relaxed(data->regs + CHANMASK(idx, data->reg_num)); val &= ~BIT(d->hwirq % 32); - writel_relaxed(val, data->regs + CHANMASK(idx, data->irq_groups)); + writel_relaxed(val, data->regs + CHANMASK(idx, data->reg_num)); raw_spin_unlock_irqrestore(&data->lock, flags); } @@ -94,13 +94,13 @@ static void imx_irqsteer_irq_handler(struct irq_desc *desc) chained_irq_enter(irq_desc_get_chip(desc), desc); - for (i = 0; i < data->irq_groups * 64; i += 32) { + for (i = 0; i < data->reg_num * 32; i += 32) { int idx = imx_irqsteer_get_reg_index(data, i); unsigned long irqmap; int pos, virq; irqmap = readl_relaxed(data->regs + - CHANSTATUS(idx, data->irq_groups)); + CHANSTATUS(idx, data->reg_num)); for_each_set_bit(pos, &irqmap, 32) { virq = irq_find_mapping(data->domain, pos + i); @@ -146,12 +146,15 @@ static int imx_irqsteer_probe(struct platform_device *pdev) raw_spin_lock_init(&data->lock); - of_property_read_u32(np, "fsl,irq-groups", &data->irq_groups); + of_property_read_u32(np, "fsl,num-irqs", &data->reg_num); of_property_read_u32(np, "fsl,channel", &data->channel); + /* one register bit map represents 32 input interrupts */ + data->reg_num /= 32; + if (IS_ENABLED(CONFIG_PM_SLEEP)) { data->saved_reg = devm_kzalloc(&pdev->dev, - sizeof(u32) * data->irq_groups * 2, + sizeof(u32) * data->reg_num, GFP_KERNEL); if (!data->saved_reg) return -ENOMEM; @@ -166,7 +169,7 @@ static int imx_irqsteer_probe(struct platform_device *pdev) /* steer all IRQs into configured channel */ writel_relaxed(BIT(data->channel), data->regs + CHANCTRL); - data->domain = irq_domain_add_linear(np, data->irq_groups * 64, + data->domain = irq_domain_add_linear(np, data->reg_num * 32, &imx_irqsteer_domain_ops, data); if (!data->domain) { dev_err(&pdev->dev, "failed to create IRQ domain\n"); @@ -199,9 +202,9 @@ static void imx_irqsteer_save_regs(struct irqsteer_data *data) { int i; - for (i = 0; i < data->irq_groups * 2; i++) + for (i = 0; i < data->reg_num; i++) data->saved_reg[i] = readl_relaxed(data->regs + - CHANMASK(i, data->irq_groups)); + CHANMASK(i, data->reg_num)); } static void imx_irqsteer_restore_regs(struct irqsteer_data *data) @@ -209,9 +212,9 @@ static void imx_irqsteer_restore_regs(struct irqsteer_data *data) int i; writel_relaxed(BIT(data->channel), data->regs + CHANCTRL); - for (i = 0; i < data->irq_groups * 2; i++) + for (i = 0; i < data->reg_num; i++) writel_relaxed(data->saved_reg[i], - data->regs + CHANMASK(i, data->irq_groups)); + data->regs + CHANMASK(i, data->reg_num)); } static int imx_irqsteer_suspend(struct device *dev) From patchwork Thu Jan 31 08:03:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aisheng Dong X-Patchwork-Id: 10790007 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 A23F691E for ; Thu, 31 Jan 2019 08:04:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9F70529677 for ; Thu, 31 Jan 2019 08:04:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9225B2FFFA; Thu, 31 Jan 2019 08:04:49 +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=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 0521129677 for ; Thu, 31 Jan 2019 08:04:49 +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=B8g93azmD66pZfkhL+mKgS4ggjXDxArKw2C5sKgf4Ko=; b=P6q/7yZYoWRyXq kTnxuJaz2LWCN4N8AtkeNfgA+a5rH+pJV/D5DuAWxERtTZfvnbFO8BsEhKufGDO731iwg+wdIOSaI zHGp5420nDX/PpizPDjSkYpNZrJRtR9F7gkL/LopxGMorwx/DJu6AbdAiVH4zs6qh1f8Xp2ONYpVx w1uKP2DSpZspygBMFG7oltOfXG9JL2MWwzVBwErob1nT3tKoJYDwOmNLAmY1ZK65gATU8uVNNraxW KNrsBSYWmwRj7eSTnDTCcl0NKrZHoXtpl77I4EjnU/8JVRMG24xOJJu3elsiueIsYUXzrJsjXwjL7 pOihoMerpY+6MZtGus5g==; 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 1gp7L5-0006XW-AK; Thu, 31 Jan 2019 08:04:47 +0000 Received: from mail-eopbgr150059.outbound.protection.outlook.com ([40.107.15.59] helo=EUR01-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gp7KI-0005fe-NO for linux-arm-kernel@lists.infradead.org; Thu, 31 Jan 2019 08:04:08 +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=WqCduKBcshxl+DEEKlQRby/4/v2bbF8FG40FIoXkymI=; b=JF5VEHbpPx0qhInARIZtx841OQcQ+PTRKpdhPz1inbVhKZ8HoezKLf3uyWpmW8R21w+r+PufP2+PGESUlHmFO4HEZTElerhz9ZFhDu//RqE+KnTOrQuHptMoXp9ONO75JRtRKxvf1G5V8ZYts7nnxqr36pQf7iIr7QsRxcZWMoc= Received: from AM0PR04MB4211.eurprd04.prod.outlook.com (52.134.126.21) by AM0PR04MB5796.eurprd04.prod.outlook.com (20.178.202.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.21; Thu, 31 Jan 2019 08:03:51 +0000 Received: from AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::bd44:e001:ab8d:1c51]) by AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::bd44:e001:ab8d:1c51%2]) with mapi id 15.20.1580.019; Thu, 31 Jan 2019 08:03:51 +0000 From: Aisheng Dong To: "linux-kernel@vger.kernel.org" Subject: [PATCH V3 4/4] irq: imx: irqsteer: add multi output interrupts support Thread-Topic: [PATCH V3 4/4] irq: imx: irqsteer: add multi output interrupts support Thread-Index: AQHUuTuAmCHwpO5YikqgCmsF+8ZU4g== Date: Thu, 31 Jan 2019 08:03:51 +0000 Message-ID: <1548921464-28917-5-git-send-email-aisheng.dong@nxp.com> References: <1548921464-28917-1-git-send-email-aisheng.dong@nxp.com> In-Reply-To: <1548921464-28917-1-git-send-email-aisheng.dong@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK2PR02CA0184.apcprd02.prod.outlook.com (2603:1096:201:21::20) To AM0PR04MB4211.eurprd04.prod.outlook.com (2603:10a6:208:66::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=aisheng.dong@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR04MB5796; 6:DdwLQ8LnTK4sWHvmTnIkEMkB2O61t1sYmn8sODu+7XGsVC3esDYMeveAorwItETzrt6ENjBvSLJGX9r5wDTz4uac18vHb0kV+pIweD/+GWtm5JeM5aJW0QlFIFutFIFdTbQgHZ5K+ljfXPG8wtxyQZnyQ/SWOE7sLiqTXAzW4tC/IDYEJMn/g7ISiq+Vvicht6buoU97WkFCQC85hNuNInklXo7EuMNawgj5jTUSI5Zwgvn0DX9q46+n1AUNDa2+1JeeZlzQymkC3rCu7mmS/zoFInUxpIu2N7L6laqEiF7+3blCMyngyG4MQp4L7xrE2MhE4NyNl71omuPMDEKxTmKzNMcUKNKHZlc34CNABwXTgpniRGmqAckpsId5sISSIPkV/sl+fI63HDGDvG9o8gI6o2XP+P4rqBusCgLPMOfZsWxsUiyKIvqimb54c+ji7aw4BKBlkE6sTghIeokHgg==; 5:jn5/0KP+naxlfAq8GiTl+ankb1sd2r7H7qzkyq2Ssf17j+LuWElx99UvLJrBd60nImZqZjtfk+JvzmmoP+CXCbgvn044GVWylnY33oI0v/kw83pVan17i9JsIquSeDSF3tQni/yVLhZ2uI39M+JM31ML7BV+FLsL57A1xRm4pN1I97RdDgeEiuHm9oG/hvy96PyI+avWjFncb8W+/0c5vg==; 7:qQYzCRJNkMZDqnmtDCCREy8t+vi+gDscS3SdxW/fWzguyrFtckaoWuKa+P85Z5WaXEYMHzGqyugKPdew/5Lnrv3w/EjQVaTMwkvQ/0Xp6RX7ejZJkoVoXNccVcN3gXNI/dQ7pgzv/jRFir/olbLWkA== x-ms-office365-filtering-correlation-id: 0edae114-4623-42d3-9940-08d68752a2e6 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:AM0PR04MB5796; x-ms-traffictypediagnostic: AM0PR04MB5796: x-microsoft-antispam-prvs: x-forefront-prvs: 09347618C4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(136003)(376002)(346002)(39860400002)(189003)(54534003)(199004)(36756003)(8936002)(71190400001)(25786009)(6512007)(106356001)(50226002)(4326008)(99286004)(14444005)(81166006)(71200400001)(8676002)(52116002)(6916009)(53936002)(76176011)(81156014)(14454004)(2906002)(256004)(478600001)(2501003)(3846002)(486006)(44832011)(476003)(102836004)(2616005)(7736002)(6436002)(316002)(6116002)(6486002)(5640700003)(68736007)(26005)(186003)(446003)(66066001)(86362001)(97736004)(6506007)(54906003)(105586002)(386003)(2351001)(11346002)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB5796; H:AM0PR04MB4211.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: VYS7SHiD8bwS/YMIPh6npLxqJB1zITS7OcuY7SVd7HXEF0oiAUGYLcvhuSrl/3pyJytaGvzY3pMXwJde7BvGv9JTX/P0Kr/1n50P2pEn7e1iUdBMkeoBj6s9IXxcOcUDEJvoYsXNNsj42CkRHYwkMAyvmnUU9x8x2qY6NZyf+OQvP7PprRHxMQ4C0nm7DiU8/yapS6V1EH+L5H9IteoLaJYo4Eiz/z47QWl+UoqNLIuS1KN8xo0y/cj5H05i1G0Se98ooR44Qwj2jJZMmWFVlTUYMsPCw7DkmCtzdDvVaU/MTsHYW2KS0YQ8KJFV2Ba/C+fRpxTwwqoISlQ6meqyfLN2mMCGg9wWLdoyyL2pK8dT04PlN3wce+P3SH4TMi0bjK5FD/29fdtuuiJXxLEmeDFqr9QCriCHml/+iRRFwT4= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0edae114-4623-42d3-9940-08d68752a2e6 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jan 2019 08:03:47.6860 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5796 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190131_000359_230865_AB5A0D21 X-CRM114-Status: GOOD ( 17.30 ) 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: Aisheng Dong , "devicetree@vger.kernel.org" , Marc Zyngier , "robh+dt@kernel.org" , dl-linux-imx , "tglx@linutronix.de" , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" , "l.stach@pengutronix.de" 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 One irqsteer channel can support up to 8 output interrupts. Cc: Marc Zyngier Cc: Lucas Stach Cc: Shawn Guo Signed-off-by: Dong Aisheng Reviewed-by: Lucas Stach --- ChangeLog: v2->v3: * add error check for imx_irqsteer_get_hwirq_base * use DIV_ROUND_UP * merge 'hwirq +=32' into for loop * common error path in probe to avoid replicating clk_disable_unprepare v1->v2: * calculate irq_count by fsl,num-irqs instead of parsing interrupts property from devicetree to match the input interrupts and outputs * improve output interrupt handler by searching only two registers withint the same group --- drivers/irqchip/irq-imx-irqsteer.c | 88 +++++++++++++++++++++++++++++--------- 1 file changed, 68 insertions(+), 20 deletions(-) diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-irqsteer.c index 67ed862..d1098f4 100644 --- a/drivers/irqchip/irq-imx-irqsteer.c +++ b/drivers/irqchip/irq-imx-irqsteer.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -21,10 +22,13 @@ #define CHAN_MINTDIS(t) (CTRL_STRIDE_OFF(t, 3) + 0x4) #define CHAN_MASTRSTAT(t) (CTRL_STRIDE_OFF(t, 3) + 0x8) +#define CHAN_MAX_OUTPUT_INT 0x8 + struct irqsteer_data { void __iomem *regs; struct clk *ipg_clk; - int irq; + int irq[CHAN_MAX_OUTPUT_INT]; + int irq_count; raw_spinlock_t lock; int reg_num; int channel; @@ -87,23 +91,47 @@ static const struct irq_domain_ops imx_irqsteer_domain_ops = { .xlate = irq_domain_xlate_onecell, }; +static int imx_irqsteer_get_hwirq_base(struct irqsteer_data *data, u32 irq) +{ + int i; + + for (i = 0; i < data->irq_count; i++) { + if (data->irq[i] == irq) + return i * 64; + } + + return -EINVAL; +} + static void imx_irqsteer_irq_handler(struct irq_desc *desc) { struct irqsteer_data *data = irq_desc_get_handler_data(desc); - int i; + int hwirq; + int irq, i; chained_irq_enter(irq_desc_get_chip(desc), desc); - for (i = 0; i < data->reg_num * 32; i += 32) { - int idx = imx_irqsteer_get_reg_index(data, i); + irq = irq_desc_get_irq(desc); + hwirq = imx_irqsteer_get_hwirq_base(data, irq); + if (hwirq < 0) { + pr_warn("%s: unable to get hwirq base for irq %d\n", + __func__, irq); + return; + } + + for (i = 0; i < 2; i++, hwirq += 32) { + int idx = imx_irqsteer_get_reg_index(data, hwirq); unsigned long irqmap; int pos, virq; + if (hwirq >= data->reg_num * 32) + break; + irqmap = readl_relaxed(data->regs + CHANSTATUS(idx, data->reg_num)); for_each_set_bit(pos, &irqmap, 32) { - virq = irq_find_mapping(data->domain, pos + i); + virq = irq_find_mapping(data->domain, pos + hwirq); if (virq) generic_handle_irq(virq); } @@ -117,7 +145,8 @@ static int imx_irqsteer_probe(struct platform_device *pdev) struct device_node *np = pdev->dev.of_node; struct irqsteer_data *data; struct resource *res; - int ret; + u32 irqs_num; + int i, ret; data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); if (!data) @@ -130,12 +159,6 @@ static int imx_irqsteer_probe(struct platform_device *pdev) return PTR_ERR(data->regs); } - data->irq = platform_get_irq(pdev, 0); - if (data->irq <= 0) { - dev_err(&pdev->dev, "failed to get irq\n"); - return -ENODEV; - } - data->ipg_clk = devm_clk_get(&pdev->dev, "ipg"); if (IS_ERR(data->ipg_clk)) { ret = PTR_ERR(data->ipg_clk); @@ -146,11 +169,15 @@ static int imx_irqsteer_probe(struct platform_device *pdev) raw_spin_lock_init(&data->lock); - of_property_read_u32(np, "fsl,num-irqs", &data->reg_num); + of_property_read_u32(np, "fsl,num-irqs", &irqs_num); of_property_read_u32(np, "fsl,channel", &data->channel); - /* one register bit map represents 32 input interrupts */ - data->reg_num /= 32; + /* + * There is one output irq for each group of 64 inputs. + * One register bit map can represent 32 input interrupts. + */ + data->irq_count = DIV_ROUND_UP(irqs_num, 64); + data->reg_num = irqs_num / 32; if (IS_ENABLED(CONFIG_PM_SLEEP)) { data->saved_reg = devm_kzalloc(&pdev->dev, @@ -173,23 +200,44 @@ static int imx_irqsteer_probe(struct platform_device *pdev) &imx_irqsteer_domain_ops, data); if (!data->domain) { dev_err(&pdev->dev, "failed to create IRQ domain\n"); - clk_disable_unprepare(data->ipg_clk); - return -ENOMEM; + ret = -ENOMEM; + goto out; } - irq_set_chained_handler_and_data(data->irq, imx_irqsteer_irq_handler, - data); + if (!data->irq_count || data->irq_count > CHAN_MAX_OUTPUT_INT) { + ret = -EINVAL; + goto out; + } + + for (i = 0; i < data->irq_count; i++) { + data->irq[i] = irq_of_parse_and_map(np, i); + if (!data->irq[i]) { + ret = -EINVAL; + goto out; + } + + irq_set_chained_handler_and_data(data->irq[i], + imx_irqsteer_irq_handler, + data); + } platform_set_drvdata(pdev, data); return 0; +out: + clk_disable_unprepare(data->ipg_clk); + return ret; } static int imx_irqsteer_remove(struct platform_device *pdev) { struct irqsteer_data *irqsteer_data = platform_get_drvdata(pdev); + int i; + + for (i = 0; i < irqsteer_data->irq_count; i++) + irq_set_chained_handler_and_data(irqsteer_data->irq[i], + NULL, NULL); - irq_set_chained_handler_and_data(irqsteer_data->irq, NULL, NULL); irq_domain_remove(irqsteer_data->domain); clk_disable_unprepare(irqsteer_data->ipg_clk);