From patchwork Thu Feb 21 18: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: 10824445 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 DA4136C2 for ; Thu, 21 Feb 2019 18:04:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C747731355 for ; Thu, 21 Feb 2019 18:04:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C5AD731B50; Thu, 21 Feb 2019 18:04:04 +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 3B33E31355 for ; Thu, 21 Feb 2019 18:04:04 +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=BWTAHGKoVbbP8dkomdnHh2AadADiBzqJMIiKiE57MaA=; b=dvAmVzhoSNI0YP 4r56pNYKB1M6ux21xiWEUwriVKAfNq66vOKYd8VfreXEGlSOqi98VAhvLgHTsMB08NIdEUMi9WN2n vCW+VyqSNpoO8NTN5G0TK6iKANRcfxu5WGCHIPNKlaDKmRl5AYF2ZeDgSix252yQ2lBeD/KriGWHc 4gHV60f6lRs4qjqoM74PehONsl+BsdfdXibQxql3Vj1R419zW17a90QbtHj6Ylx1gPV+0dexAij7D 2s8MiZ+SydrprO8BtEJ5aCurrXhAXJUydS6RP0knAGFWukx9S4HssWFZiIC5NdIx/MvePrJMpOa0M vrmZNxacNPgBvrx2iRkw==; 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 1gwshX-0006cx-8K; Thu, 21 Feb 2019 18:04:03 +0000 Received: from mail-db5eur03on062e.outbound.protection.outlook.com ([2a01:111:f400:fe0a::62e] helo=EUR03-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gwshK-0006Mm-Dx for linux-arm-kernel@lists.infradead.org; Thu, 21 Feb 2019 18:03:52 +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=jL5R9WCj4omn5WNCf1ygp4iDP5b9SN7wpC82d1LsMMc=; b=cuaZnP14yVxIjupqUXQZrs/k8qFMAgNenL5acWwSoJL0mQSXbEB2l/q6ipwS3H2QtJ5EeZ9e9QlJBL3jNuvOCqkeMTwRTd1hAOTB44d5jYxuz4nNpFkoCr8XPQrCODQt7h1Bx6vXpuPjhwsuCYet+bamNMGpsVk1eWcCj/0vhBw= Received: from VI1PR04MB4222.eurprd04.prod.outlook.com (52.134.31.21) by VI1PR04MB1663.eurprd04.prod.outlook.com (10.164.85.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.18; Thu, 21 Feb 2019 18:03:44 +0000 Received: from VI1PR04MB4222.eurprd04.prod.outlook.com ([fe80::b1cb:82a5:aacb:238d]) by VI1PR04MB4222.eurprd04.prod.outlook.com ([fe80::b1cb:82a5:aacb:238d%6]) with mapi id 15.20.1643.014; Thu, 21 Feb 2019 18:03:44 +0000 From: Aisheng Dong To: "linux-clk@vger.kernel.org" Subject: [PATCH 1/4] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree Thread-Topic: [PATCH 1/4] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree Thread-Index: AQHUyg/ILVDNycVxtkiL1Tyb3hPiwQ== Date: Thu, 21 Feb 2019 18:03:43 +0000 Message-ID: <1550771836-10014-2-git-send-email-aisheng.dong@nxp.com> References: <1550771836-10014-1-git-send-email-aisheng.dong@nxp.com> In-Reply-To: <1550771836-10014-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: HK2PR04CA0044.apcprd04.prod.outlook.com (2603:1096:202:14::12) To VI1PR04MB4222.eurprd04.prod.outlook.com (2603:10a6:803:3e::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-ms-office365-filtering-correlation-id: 9e8aff01-a314-4eea-74a6-08d69826eae4 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)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB1663; x-ms-traffictypediagnostic: VI1PR04MB1663: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; VI1PR04MB1663; 23:r1RFtNaLwCf2nvHhUFPQJESoqnXRZrR1OeV3SXO?= =?iso-8859-1?q?S/3ePEbs1h1sg0w?= =?iso-8859-1?q?+voltx5JhRFril1u+2d09Y01IdAY7wPFdu0cmc+Apy9dvNOGP7sxveFrHip6?= =?iso-8859-1?q?vWcreLLNXaO+KKep/MM+fQ6mLolDCtYiYsTNsuMtsOI3qtdOwEBK4G2GmfZ1?= =?iso-8859-1?q?Er88SdT5bXcYXHww9A3u08XFuExubFxYuK8tFT6s+Ah1Njyp1TalExqCE1xD?= =?iso-8859-1?q?tQjaELLb+wKjCZQxGfWEQorxw9W3FGHicY49ijGTf5+wLQaqHzPEUInV+GjR?= =?iso-8859-1?q?HyNA/F3rL3QLUqFYXTh6IYihWF3ArDUIIRLk4Lp9UnLbK0Er1Egj1AAAIRxb?= =?iso-8859-1?q?t+G2lvCFxc8hWwzjPDS6vAithO3XHZfgvSobdhwIdvYY15uonSaWTadNM2ho?= =?iso-8859-1?q?V+YD0vAUjXb/FHW36nQxFc8n9TFmI/Zvkj1npWAGxm5VUYq/pcunWd33N0D/?= =?iso-8859-1?q?p0duQR15aBtq9tlK8kZYvWFOLoe54flrF/M5Q6RCDcVsatKQE2xb/L4GFWBa?= =?iso-8859-1?q?UGCNKa9pFVVXzdJ2gMRFjjTUZ6pY+ffVy8IArsJqQBYPuPyv1NdFSVwqHiVz?= =?iso-8859-1?q?Z2Vo/VnvBycS+Oo2/axX4/3K+7aV7g13hQcsMVukPfavhodkMYEDD3IEhjxh?= =?iso-8859-1?q?sG0h+R6C53vho29dKRK+yUYpm24WYFKxjObpyZw0PEAhzflat/GW5s3mZn9f?= =?iso-8859-1?q?/lJ3HXS4wJkihrRJ86eikLXLRtfyJQXj+4FvopXmklX9AmW2EYhiyFaIKtSa?= =?iso-8859-1?q?iyWQBDRWFTDsxtBCN1Av/oCEeU5hoNC+HlP0F2JE2e9M8df8GHblBJs+CRCm?= =?iso-8859-1?q?kLkXt9aksI73MWkLshho5atwnU2OexGZ7OYaSrL4L4gfXGNX42vlKr08yMST?= =?iso-8859-1?q?kTQ4fRt2juhc/tpemusevEwrKaTjg3jJuKFwxKev4Ce3W2hd4mjbd/h0CAya?= =?iso-8859-1?q?2w3AqTWnJmq0PbTs2VAgQQtxN9SH4Iaj8ddl70mP7l5Ogzpf2QeQER+9iz41?= =?iso-8859-1?q?UCQYkvq6knejqltnmR/ZOL0ntQTJmfw5dTCnW/xYpeGEaPfElNoN7O2nSDcy?= =?iso-8859-1?q?mEBpR1ol/izlmLG/IuBo2EwVurbK/315zQu/W5nDa4+YoCmMpNEXgqsiZYRI?= =?iso-8859-1?q?VGGDIjtvDCLz1tE6YZmZL6uyhKIz9WhG19F0dGIl1xAxFQEi77SCu1Ze/KPl?= =?iso-8859-1?q?T1PuW7eywrqOGjgUpSf99tefy+OOfFc8qSF6bv+49V+p9eUzgti/KB727/Su?= =?iso-8859-1?q?D9yLwuzju+sgldpJVh+WHumtINyFCntv8+4yHds36qVYgy5A=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09555FB1AD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(396003)(376002)(366004)(39860400002)(346002)(189003)(199004)(2906002)(8936002)(186003)(81156014)(4326008)(71200400001)(71190400001)(6506007)(97736004)(99286004)(102836004)(26005)(50226002)(2351001)(6512007)(68736007)(81166006)(386003)(3846002)(14454004)(6116002)(476003)(316002)(8676002)(5660300002)(478600001)(54906003)(2616005)(25786009)(44832011)(36756003)(305945005)(446003)(105586002)(106356001)(6486002)(486006)(76176011)(7736002)(14444005)(53936002)(66066001)(52116002)(256004)(2501003)(6436002)(5640700003)(11346002)(6916009)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB1663; H:VI1PR04MB4222.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: EAXG5fsPFZXOIG/XsMSByP1sZoh9CHr+6uiA3aoC6pn5Q/Ht/qmWs9zNnoQe/7IlbFkEDFrmVZw3UVZ+yQuLZg8E6XLMkie2YHHol5pusMnEbz1m1YIheecVFpzks+cgykgle9i3UPACCwaqlmn7PEd450hafg6Pd0OUuTwcMaocbNKe3OVggDMcP2hD86Cz7J0PCkmYdKbAwCRo/DCt2HPetvJ80fDtcSTUlS1zJaZMJJ3pK8HGZdS/0afXNaGUESUU0ITxR0G0c3SVoF6GLs7weSQjA6Ed3nNp8bxz6cxNxxqNsaHgU0TlfQuCKwBtmeK+pTwkw/NWhthXjJnzvtPVR37ev+XAGLRCV/boNEi5XCEGcLWCAGFr6mIrZ4AZROzjMJu3Ic1Invk0cuXBFTrhdLFMA0XTtgmqOhKEtnM= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e8aff01-a314-4eea-74a6-08d69826eae4 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2019 18:03:40.2800 (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: VI1PR04MB1663 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190221_100350_483360_5414E687 X-CRM114-Status: GOOD ( 16.96 ) 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 , Rob Herring , "devicetree@vger.kernel.org" , "sboyd@kernel.org" , "mturquette@baylibre.com" , dl-linux-imx , "kernel@pengutronix.de" , Fabio Estevam , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" 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 There's a few limitations on one cell clock binding (#clock-cells = <1>) that we have to define all clock IDs for device tree to reference. This may cause troubles if we want to use common clock IDs for multi platforms support when the clock of those platforms are mostly the same. e.g. Current clock IDs name are defined with SS prefix. However the device may reside in different SS across CPUs, that means the SS prefix may not valid anymore for a new SoC. Furthermore, the device availability of those clocks may also vary a bit. For such situation, We formerly planned to add all new IDs for each SS and dynamically check availability for different SoC in driver. That can be done but that may involve a lot effort and may result in more changes and duplicated code in driver, also make device tree upstreaming hard which depends on Clock IDs. To relief this situation, we want to move the clock definition into device tree which can fully decouple the dependency of Clock ID definition from device tree. And no frequent changes required in clock driver any more. Then we can use the existence of clock nodes in device tree to address the device and clock availability differences across different SoCs. For SCU clocks, only two params required, thus two new property created: rsrc-id = ; clk-type = ; And as we want to support clock set parent function, 'clocks' property is also used to pass all the possible input parents. Cc: Rob Herring Cc: Stephen Boyd Cc: Shawn Guo Cc: Sascha Hauer Cc: Michael Turquette Cc: devicetree@vger.kernel.org Signed-off-by: Dong Aisheng --- .../devicetree/bindings/arm/freescale/fsl,scu.txt | 29 ++++++++++++++++------ include/dt-bindings/firmware/imx/rsrc.h | 17 +++++++++++++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt b/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt index 72d481c..2816789 100644 --- a/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt +++ b/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt @@ -78,6 +78,19 @@ Required properties: "fsl,imx8qm-clock" "fsl,imx8qxp-clock" followed by "fsl,scu-clk" +- #clock-cells: Should be 0. +- rsrc-id: Resource ID associated with this clock +- clk-type: Type of this clock. + Refer to for + available clock types supported by SCU. +- clock-output-names: Shall be the corresponding names of the outputs. + +Optional properties: +- clocks: Shall be the input parent clock(s) phandle for the clock. + For multiplexed clocks, the list order must match the hardware + programming order. + +Legacy Clock binding (DEPRECATED): - #clock-cells: Should be 1. Contains the Clock ID value. - clocks: List of clock specifiers, must contain an entry for each required entry in clock-names @@ -129,6 +142,13 @@ lsio_mu1: mailbox@5d1c0000 { #mbox-cells = <2>; }; +uart0_clk: uart0-clock-controller { + compatible = "fsl,imx8qxp-scu-pd", "fsl,scu-clk"; + #clock-cells = <0>; + rsrc-id = ; + clk-type = ; +}; + firmware { scu { compatible = "fsl,imx-scu"; @@ -143,11 +163,6 @@ firmware { &lsio_mu1 1 2 &lsio_mu1 1 3>; - clk: clk { - compatible = "fsl,imx8qxp-clk", "fsl,scu-clk"; - #clock-cells = <1>; - }; - iomuxc { compatible = "fsl,imx8qxp-iomuxc"; @@ -175,8 +190,6 @@ serial@5a060000 { ... pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lpuart0>; - clocks = <&clk IMX8QXP_UART0_CLK>, - <&clk IMX8QXP_UART0_IPG_CLK>; - clock-names = "per", "ipg"; + clocks = <&uart0_clk>; power-domains = <&pd IMX_SC_R_UART_0>; }; diff --git a/include/dt-bindings/firmware/imx/rsrc.h b/include/dt-bindings/firmware/imx/rsrc.h index 4481f2d..f650fc3 100644 --- a/include/dt-bindings/firmware/imx/rsrc.h +++ b/include/dt-bindings/firmware/imx/rsrc.h @@ -556,4 +556,21 @@ #define IMX_SC_R_VPU 540 #define IMX_SC_R_LAST 541 +/* + * Defines for SC PM CLK + */ +#define IMX_SC_PM_CLK_SLV_BUS 0 /* Slave bus clock */ +#define IMX_SC_PM_CLK_MST_BUS 1 /* Master bus clock */ +#define IMX_SC_PM_CLK_PER 2 /* Peripheral clock */ +#define IMX_SC_PM_CLK_PHY 3 /* Phy clock */ +#define IMX_SC_PM_CLK_MISC 4 /* Misc clock */ +#define IMX_SC_PM_CLK_MISC0 0 /* Misc 0 clock */ +#define IMX_SC_PM_CLK_MISC1 1 /* Misc 1 clock */ +#define IMX_SC_PM_CLK_MISC2 2 /* Misc 2 clock */ +#define IMX_SC_PM_CLK_MISC3 3 /* Misc 3 clock */ +#define IMX_SC_PM_CLK_MISC4 4 /* Misc 4 clock */ +#define IMX_SC_PM_CLK_CPU 2 /* CPU clock */ +#define IMX_SC_PM_CLK_PLL 4 /* PLL */ +#define IMX_SC_PM_CLK_BYPASS 4 /* Bypass clock */ + #endif /* __DT_BINDINGS_RSCRC_IMX_H */ From patchwork Thu Feb 21 18: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: 10824447 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 536D91805 for ; Thu, 21 Feb 2019 18:04:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 455C730CCE for ; Thu, 21 Feb 2019 18:04:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4326531028; Thu, 21 Feb 2019 18:04:17 +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 CD90D31174 for ; Thu, 21 Feb 2019 18:04:16 +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=v9tKvdgy4YDi+U4k85W1btcUC/I4RnqrIpY5zhS8ucU=; b=IEwro64xOoIbSF 6HISONz3/8aWyhGzZpoFT4aHoxZc+ldNJTeu3B8D0pDoGbwe+U1mtsfFqH+FZdoYII8CCft3SQN9m SKClSJV/QlfB0/DhQit0uYTNglbtHbZlKKXI7zMjuZM/z26NmnWqUYL9uepuyM4MdofSgCC6+Fzrn zhf5m9ZqGTREvnBJnpjaSdhqVPxE69bRrMei1vgh6wEkUBdAmQKDbJxybtzotShepGZCfJe45SyDB XMNQysfVHYKa7bpd5wMnPPnzHk2hk9M+lEvAwUeF7ESwwE9RVdLvrxIA+DYs1jqMWhU/1QIx9qjQG pazhp6MMBO2am9p44fhQ==; 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 1gwshj-0006q9-4A; Thu, 21 Feb 2019 18:04:15 +0000 Received: from mail-db5eur03on062e.outbound.protection.outlook.com ([2a01:111:f400:fe0a::62e] helo=EUR03-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gwshM-0006Mm-QC for linux-arm-kernel@lists.infradead.org; Thu, 21 Feb 2019 18:03:56 +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=SM3wyXK7QqRPXtL580t+z3chpoHQY+tfRE63KtpCF58=; b=klFXjV4XI4p9v/IBA3n6J/Vt35HH8TsFZYbk66z4pJRfPJJjyiUx0lr3qqRlkYsswKeGVZQYgNCf8YwT/SmPnZZN6oXR41ua/8bdCqIguD2/2zksmstnBcZybEPYpx3VfcgXDgPmd/DaMWyZ41r1Ff5ZcMxniLUAAJDwmmC3PTA= Received: from VI1PR04MB4222.eurprd04.prod.outlook.com (52.134.31.21) by VI1PR04MB1663.eurprd04.prod.outlook.com (10.164.85.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.18; Thu, 21 Feb 2019 18:03:47 +0000 Received: from VI1PR04MB4222.eurprd04.prod.outlook.com ([fe80::b1cb:82a5:aacb:238d]) by VI1PR04MB4222.eurprd04.prod.outlook.com ([fe80::b1cb:82a5:aacb:238d%6]) with mapi id 15.20.1643.014; Thu, 21 Feb 2019 18:03:47 +0000 From: Aisheng Dong To: "linux-clk@vger.kernel.org" Subject: [PATCH 2/4] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree Thread-Topic: [PATCH 2/4] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree Thread-Index: AQHUyg/Kxp1YOB0bxEaB6SXWVnNLZw== Date: Thu, 21 Feb 2019 18:03:47 +0000 Message-ID: <1550771836-10014-3-git-send-email-aisheng.dong@nxp.com> References: <1550771836-10014-1-git-send-email-aisheng.dong@nxp.com> In-Reply-To: <1550771836-10014-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: HK2PR04CA0044.apcprd04.prod.outlook.com (2603:1096:202:14::12) To VI1PR04MB4222.eurprd04.prod.outlook.com (2603:10a6:803:3e::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-ms-office365-filtering-correlation-id: 44cc94d4-4b7e-48bb-334c-08d69826ed37 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)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB1663; x-ms-traffictypediagnostic: VI1PR04MB1663: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; VI1PR04MB1663; 23:eAUKPt+NWkMkgkQVo903JBsXKcrHrlCReXti5XZ?= =?iso-8859-1?q?j8dkUSrginDpPyT?= =?iso-8859-1?q?wRSM/tIMHKhfu4cHZHqJv+R/qSNJYDnHg7G+hoVeIngdEps/xZaG4oUqq6GC?= =?iso-8859-1?q?kTfe64zVwcg3IGLHvcsSjc3whz0l0V5KqcZ+QWgcTtgqbF93qd4QJsDAohVh?= =?iso-8859-1?q?fOghDTLVV4FLbTuaNeAdtwZRC1mNxzdh5rGD4XGqump27EY4YvGuIFPKca2p?= =?iso-8859-1?q?dmgbZ4JGhRWuov4lVmAD5BRHOhNsEOfe4CLk5tUW7rkqfb+euthXdREeRy93?= =?iso-8859-1?q?69cWaUcp9q9Idmx9qByjJI5MUmPH0y5GGwR6XrDNGt13HbN88M04mOFpKN2g?= =?iso-8859-1?q?q7ZDEQjBSNgYpm9w5EICQ/iBiQaoDikL+Mn+S4sOFbbT6U08XlMUHZFnVzJW?= =?iso-8859-1?q?JAajOkeLykh+8vAxZsC4xdLGHi0Bb40hUa6fZuSTj0FaJD9dDgzwADQZRBH6?= =?iso-8859-1?q?My/VSPpJbqao1oXttmYeMuP4/AGsAZtrbIG5xBXbKJaAd8iamSdl2dMRlEk+?= =?iso-8859-1?q?LQdrRBGK0ExKJcSFga1HfIx1rNbq1lPTCB6DUCmUVVClGdwgQoWUrn3HAZOY?= =?iso-8859-1?q?NqwwJ62jTpRiRcCDKu1wluxrYiBw+6vLsIgDIRdn8lDPNjqkWpwz6Z6ZN0hi?= =?iso-8859-1?q?kTQUPFXd4hy450NONg/ZArmgk690InE+Ed2couCiHE5f2tOWjOr3HkEnAbvb?= =?iso-8859-1?q?GqfjKYQwItUygqFeVlosHOLhFl93w2R60dOH0FE5MbYHkfh1ulgL1KaxoPJx?= =?iso-8859-1?q?D1smARkaKDVGwvLlPvT+v4GKziKPnSiubbXUyFMzM8pFFjd4sFpWi8sIxwLM?= =?iso-8859-1?q?eltT6T/3XBoRJsgH17hMQ35Eca84paEBPxbsza/N/Iq8L9QaXsKamvIUt0PS?= =?iso-8859-1?q?71Xyg/92bFxBncR6cEXkD9Dg3MoqaumSKxgmIxTqM7i8bhcz3QUCZT9fLwb5?= =?iso-8859-1?q?mJ8uXJIQR9Tez6Z95y78PDL+fqS9BgldRFcf4GnRbRxLs16X6Vm27Lq1UyN/?= =?iso-8859-1?q?UJ/sITcHvTP1xOa87p1Th2VzdWosfiH5PONATyn6ecbxJbV9xJAtZRlNoANK?= =?iso-8859-1?q?a+r8Li1qx0DY8v2dpXlVY2D9o6NaKVrOVpSXBSNQQZs3H06YiaYIdwZ6s1TL?= =?iso-8859-1?q?S0YqxZ7+oaWSgycsngdOVN5ArFcvTFuOGAiGUDkOXGvp0cmqo/P4f3g6hIsj?= =?iso-8859-1?q?dzRWa1EkGqmhOdpbWSpPbhufPwSklrgb6Yp3qXWzapjPSYBVDNA1TaQDABvP?= =?iso-8859-1?q?G7afVqL+41FBv50j8L+VnEf7oehxf2Wm74Z4hZKODeotEibg=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09555FB1AD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(396003)(376002)(366004)(39860400002)(346002)(189003)(199004)(2906002)(8936002)(186003)(81156014)(4326008)(71200400001)(71190400001)(6506007)(97736004)(99286004)(102836004)(26005)(50226002)(2351001)(6512007)(68736007)(81166006)(386003)(3846002)(14454004)(6116002)(476003)(316002)(8676002)(5660300002)(478600001)(54906003)(2616005)(25786009)(44832011)(36756003)(305945005)(446003)(105586002)(106356001)(6486002)(486006)(76176011)(7736002)(14444005)(53936002)(66066001)(52116002)(256004)(2501003)(6436002)(5640700003)(11346002)(6916009)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB1663; H:VI1PR04MB4222.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: 2SDIjEQn5n27gb3O42sXGRCGE+YbaRzn65wJM/GiiP93Ct9S8MLXV6EMEt9UU/qgJje+WQySQiElHfJM8iIja0siAu+n31GArqMis5TX0QYHuFBYxZ6ZUI8Be9HVHy2mHrGK5fKsfvlYNQWp7+WJu4T0QQRAAsLD4TQQnVYefMQ5h6c4X+YCLARhvBpMVko0uZOo2icE7uBLOrcxz0NobU6g+KnvIAs5gNk65ukM9EoG3Bo0hI93lAWCKSsXsA7hN9DcUebvaQzk3cLgLojwVQEdpJXt9E4C7inQIpqgb4eaph7FsPRCkHNqY8Qe1CVfyFECe1E6ZgcJeCb+XyV6zTR6luACegaVaLvLD724NN5yFz+FqlfiJOqOnHoaqrvE+usiPjq8eu12T0OLGFZmmtG6npKdT3FmJZ/nfQfEQO8= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44cc94d4-4b7e-48bb-334c-08d69826ed37 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2019 18:03:44.1767 (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: VI1PR04MB1663 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190221_100353_176487_A5F38C64 X-CRM114-Status: GOOD ( 12.59 ) 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 , Rob Herring , "devicetree@vger.kernel.org" , "sboyd@kernel.org" , "mturquette@baylibre.com" , dl-linux-imx , "kernel@pengutronix.de" , Fabio Estevam , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" 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 MX8QM and MX8QXP LPCG Clocks are mostly the same except they may reside in different subsystems across CPUs and also vary a bit on the availability. Same as SCU clock, we want to move the clock definition into device tree which can fully decouple the dependency of Clock ID definition from device tree. And no frequent changes required in clock driver any more to handle the difference. We can use the existence of clock nodes in device tree to address the device and clock availability differences across different SoCs. Cc: Rob Herring Cc: Stephen Boyd Cc: Shawn Guo Cc: Sascha Hauer Cc: Michael Turquette Cc: devicetree@vger.kernel.org Signed-off-by: Dong Aisheng --- Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt index 965cfa4..a317844 100644 --- a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt +++ b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt @@ -11,6 +11,20 @@ enabled by these control bits, it might still not be running based on the base resource. Required properties: +- compatible: Should be one of: + "fsl,imx8qxp-lpcg" + "fsl,imx8qm-lpcg" followed by "fsl,imx8qxp-lpcg". +- reg: Address and length of the register set. +- #clock-cells: Should be 1. One LPCG supports multiple clocks. +- clocks: Input parent clocks phandle array for each clock. +- bit-offset: An integer array indicating the bit offset for each clock. +- hw-autogate: Boolean array indicating whether supports HW autogate for + each clock. +- clock-output-names: Shall be the corresponding names of the outputs. + NOTE this property must be specified in the same order + as the clock bit-offset and hw-autogate property. + +Legacy binding (DEPRECATED): - compatible: Should be one of: "fsl,imx8qxp-lpcg-adma", "fsl,imx8qxp-lpcg-conn", From patchwork Thu Feb 21 18: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: 10824449 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 587AD6C2 for ; Thu, 21 Feb 2019 18:04:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 497DA31B79 for ; Thu, 21 Feb 2019 18:04:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3DDAF31C55; Thu, 21 Feb 2019 18:04:28 +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 CFA4831C19 for ; Thu, 21 Feb 2019 18:04:27 +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=D+wIXIn59hN++Hx9XbeZufFQ0zw7AoI/09XhyI6vHeI=; b=oEDlr+mgoZiDyf eevgOKjgSK0TKK/oYyPhoJ37f8XSSubrU+vB8L3YRgBp+jA5f0YucCFnSnLjwOMPbqjACSmcm2zm/ zBceX39xDDOYUqDUo6wAuIxywkr4n0QCi16ZjIl5VsWWlNB1TDlZsDzJ2LcI/xDrnHK4E98HcMrw8 +moYvr3gWbng9JojB3mNg9mWFZv4rlz2v0j+td278XU93wJRot8HGvueCkU8RfXCjuW95wW4b5AvU eYBsIeV86uwg9Ny64hljfqbhRqZVmIFffHas1sfK0ws6O9MIc3YKUY5XI/Vle7Ss9/76nmlPCyNKJ OLUEHNOlmFfMURbV4QWA==; 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 1gwsht-00076D-Pg; Thu, 21 Feb 2019 18:04:25 +0000 Received: from mail-db5eur03on062e.outbound.protection.outlook.com ([2a01:111:f400:fe0a::62e] helo=EUR03-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gwshR-0006Mm-6v for linux-arm-kernel@lists.infradead.org; Thu, 21 Feb 2019 18:03:59 +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=f4SO+A1BXfvLtvNqz7MHtp5rJIQDpE2V70yBtLw0FfU=; b=NZSq3n7Nqv8eqTIH7esFF+YpleK/YlrVX4CVbWqfJKgNuK1d5eufwoUasnNhM45rvyUx1eXUUlbfFexIxDWEuGkHW0aCZH03v2rQ8i58sv4LOWT1H0geUcci9n7w6Kfg0VjlDLf7YzGQ5HOPzbeJz1zUtqCc+gYFs+BtC8uH4G4= Received: from VI1PR04MB4222.eurprd04.prod.outlook.com (52.134.31.21) by VI1PR04MB1663.eurprd04.prod.outlook.com (10.164.85.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.18; Thu, 21 Feb 2019 18:03:51 +0000 Received: from VI1PR04MB4222.eurprd04.prod.outlook.com ([fe80::b1cb:82a5:aacb:238d]) by VI1PR04MB4222.eurprd04.prod.outlook.com ([fe80::b1cb:82a5:aacb:238d%6]) with mapi id 15.20.1643.014; Thu, 21 Feb 2019 18:03:51 +0000 From: Aisheng Dong To: "linux-clk@vger.kernel.org" Subject: [PATCH 3/4] clk: imx: imx8qxp: add parsing clocks from device tree Thread-Topic: [PATCH 3/4] clk: imx: imx8qxp: add parsing clocks from device tree Thread-Index: AQHUyg/MD67g7uqnCE2saCOKw8+KDA== Date: Thu, 21 Feb 2019 18:03:51 +0000 Message-ID: <1550771836-10014-4-git-send-email-aisheng.dong@nxp.com> References: <1550771836-10014-1-git-send-email-aisheng.dong@nxp.com> In-Reply-To: <1550771836-10014-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: HK2PR04CA0044.apcprd04.prod.outlook.com (2603:1096:202:14::12) To VI1PR04MB4222.eurprd04.prod.outlook.com (2603:10a6:803:3e::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-ms-office365-filtering-correlation-id: f9c43c61-7b6f-4d08-f68c-08d69826ef35 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)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB1663; x-ms-traffictypediagnostic: VI1PR04MB1663: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; VI1PR04MB1663; 23:f3lgCKkz5T+tVWh+N4qFW6+nRXmz1EJHbQXpUPY?= =?iso-8859-1?q?Qw4vx2u03qw48ku?= =?iso-8859-1?q?F+v5vVFetNvVo/xoC7ekgr8rjC9c7H1aJlhkVYn/H7rw0MXK+p4E6DUEh4mg?= =?iso-8859-1?q?UNheGnh0+ul8ke/jo/BowCUy+aYmGHnPGAMfKGK5SJZlzXmS1lbtkRzfihQt?= =?iso-8859-1?q?QyMM22sX6IP+BgtudVLdBnsIJ4Z2k+12OHKjrjOGYFtdKqVA7TR1Oe6H3Iyc?= =?iso-8859-1?q?9t7k8AtqXsgdjicMOJsxpIpKO2vIO6Rc/BD8uYsdsyaoPc++m35/yENfuH4n?= =?iso-8859-1?q?wTm69mExMhQjJh39fNP8WHlMiNxWZ0fquTqnUuaDXiLMcPh4jtcjUQpcPH4u?= =?iso-8859-1?q?Xx6R4TubuQrUMNfdXp3PQ6J62cPX0gAEw+Wh/Im10b/ZlHHRGDZ6LXB/VtUn?= =?iso-8859-1?q?jfQVpR0QjDBElAy7rgNbQ1+MUwgBR1eBfkKBsQB9xOAEuzT33/JE0g5kex8i?= =?iso-8859-1?q?Zgnp5Fr9Ipfpwg8kgevuWZU1Ki/KxcDLkLv3nlsibj2tkndCinTi5xJzwp8i?= =?iso-8859-1?q?xYs3BWfI97IimYY2z156VO/idZGhKIzT3e6ttV3kTDIdihkfpBlSc2MqakIk?= =?iso-8859-1?q?hn8p5N96TgIcODv1VxPnKW6azu2yYAyF7GPjcOEoGG0J+kY9cw1Zi5eWPMLj?= =?iso-8859-1?q?SZA4yNmhEl3rJU3o7BYL0jqFvW2ixmQTm/htcPIsNf1d7S9pB6A3shvzBpPf?= =?iso-8859-1?q?5GMng6+8WflsOOoFaurEK6ZJuGXjVpaSX4BbBQRHCSStK+Y4gLBTTJfcQ2nB?= =?iso-8859-1?q?4rt+Wm/eMfwqBZ0L6BCnK8/WFoW92MnECe6ZM0BHbu24V96KBfNqsBcpcVa4?= =?iso-8859-1?q?BPAfkOACMTWWCcz5SQegw6eWesm70FJCuxcoHU7hRROgzbi++fCiqxqw3vBA?= =?iso-8859-1?q?HMVZAcbkm997N3RnbYBd0Su67ERweS/kz6AQmzREeStxN71Jhm01Q5v5dqAd?= =?iso-8859-1?q?BaMtETOcUzzsKzRRM5YiHfk9WjyEtu0kqgESRMrgWcn1vWq5dRIl12dq6h/Z?= =?iso-8859-1?q?Gf8L9q5c5bktYTfo+KzKoLvOOfutTKJXdiXdEXzPd3TtJN2eyrDgJYOxStul?= =?iso-8859-1?q?mkmYizHZXWDlvVwk2Nyfy7ynmPWA9Ma8QbO6t0f1S3L7rSRkTNj9wuqwqscK?= =?iso-8859-1?q?wbTIUdHYvyj1NoMMR/PlkRzRxn+9VNWuCejtQ6zuO9d4fOMXLrM+mbiczTii?= =?iso-8859-1?q?sJ7a6uCSFRf4NqDFlmrcmBEs+NLVSF6qymsnW0hc+VvWw3lXXc/YfExJ4wLn?= =?iso-8859-1?q?EnEQ+T5YA0AlN1QUmuTOHf+k5R/JrzHN0LYTPEti8IQdMYVQ=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09555FB1AD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(396003)(376002)(366004)(39860400002)(346002)(189003)(199004)(2906002)(8936002)(186003)(81156014)(4326008)(71200400001)(71190400001)(6506007)(97736004)(99286004)(102836004)(26005)(50226002)(2351001)(6512007)(68736007)(81166006)(386003)(3846002)(14454004)(6116002)(476003)(316002)(8676002)(5660300002)(478600001)(54906003)(2616005)(25786009)(44832011)(36756003)(305945005)(446003)(105586002)(106356001)(6486002)(486006)(76176011)(7736002)(53936002)(66066001)(52116002)(256004)(2501003)(6436002)(5640700003)(11346002)(6916009)(86362001)(32563001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB1663; H:VI1PR04MB4222.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: HIlT1084QzVrH6k2yfq6f8ZcAQEwzUTp1PhGZ+B4qf3aUyMYQd5nfXbDIv8JJCvTYUmJpVAkHC0KdY3JBkaIPa0NTY4dCSJRYoehg8eXiarDV3DROP3OinBkzHfzmez1uESLZOShdmQRj7Tb5O8c54yASv0xKT6QIUtoA3qrjZVqS4F7i3D8OlMebfP6c1WAVdutxbk2iYetEa3IoCekYJk++jhhz6xmvtYZdPfSd610N9hohbJYC5BP3a/1Y3u6v7Z+rUj/ChTmHFCZvNJAnB9RrvXDcqDWC+dCqMWSJ7VRyEMAzMUHNLgnzm68cylZGH4E41NpXknAZC2yZRz27ywE2DuHSkkIAoLmZbwAQUzYdyLjhaf58fGaNkgISN6kVtuANnhB7fofI41EYVWX2JESxPWqoobr/StZYYUHpE4= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9c43c61-7b6f-4d08-f68c-08d69826ef35 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2019 18:03:48.0344 (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: VI1PR04MB1663 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190221_100357_661077_D8E3D59C X-CRM114-Status: GOOD ( 11.37 ) 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 , "sboyd@kernel.org" , "mturquette@baylibre.com" , dl-linux-imx , "kernel@pengutronix.de" , Fabio Estevam , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" 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 parsing clocks from device tree Cc: Stephen Boyd Cc: Shawn Guo Cc: Sascha Hauer Cc: Michael Turquette Signed-off-by: Dong Aisheng --- drivers/clk/imx/clk-imx8qxp.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/drivers/clk/imx/clk-imx8qxp.c b/drivers/clk/imx/clk-imx8qxp.c index 83e2ef9..7c5f8c6 100644 --- a/drivers/clk/imx/clk-imx8qxp.c +++ b/drivers/clk/imx/clk-imx8qxp.c @@ -17,17 +17,60 @@ #include #include +static int imx_scu_parse_clks_from_dt(struct device *dev, + const struct device_node *np) +{ + struct clk_hw *hw; + const char *name; + int clk_type; + int rsrc_id; + int ret; + + ret = of_property_read_u32(np, "rsrc-id", &rsrc_id); + if (ret) { + dev_err(dev, "failed to parse rsrc-id\n"); + return -EINVAL; + } + + ret = of_property_read_u32(np, "clk-type", &clk_type); + if (ret) { + dev_err(dev, "failed to parse clk-type\n"); + return -EINVAL; + } + + ret = of_property_read_string(np, "clock-output-names", &name); + if (ret) { + dev_err(dev, "failed to parse clock-output-names\n"); + return -EINVAL; + } + + hw = imx_clk_scu(name, rsrc_id, clk_type); + if (IS_ERR(hw)) { + dev_err(dev, "failed to register clock\n"); + return -EINVAL; + } + + return devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, hw); +} + static int imx8qxp_clk_probe(struct platform_device *pdev) { struct device_node *ccm_node = pdev->dev.of_node; struct clk_hw_onecell_data *clk_data; struct clk_hw **clks; + u32 clock_cells; int ret, i; ret = imx_clk_scu_init(); if (ret) return ret; + /* try new binding to parse clocks from device tree first */ + of_property_read_u32(ccm_node, "#clock-cells", &clock_cells); + + if (clock_cells == 0) + return imx_scu_parse_clks_from_dt(&pdev->dev, ccm_node); + clk_data = devm_kzalloc(&pdev->dev, struct_size(clk_data, hws, IMX_SCU_CLK_END), GFP_KERNEL); if (!clk_data) From patchwork Thu Feb 21 18:03:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aisheng Dong X-Patchwork-Id: 10824457 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 A14A96C2 for ; Thu, 21 Feb 2019 18:15:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0DBCD318CF for ; Thu, 21 Feb 2019 18:14:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 00FD2319EE; Thu, 21 Feb 2019 18:14:58 +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 7AF4D318CF for ; Thu, 21 Feb 2019 18:14: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=sYJauW0kuOCU+oILkbs6uX2Ekz2mqMYlAk6QxiqTcCo=; b=VuXRTOsh3zPVvj kd9wHdauKxWKWewRRkrN0WLQInht9jlEkQm4Xh5UZMN1D5kmfnKyN9rNcxVYfimMp2dmNoFAsUhVy 1D7ucXjDZ+Nh1NleNw2S+KAp9/HI4VQYuqoisaDlzY2o89nawY74ep3sVrWf9CmnrAanpTWJuKvOW 6y8JTiJiIYFbOV6QE4UfXGzAgVXjByuoE1hE6ZJRPW36DLBHnCJPVmkhP7CJ81IWb6f8RObfSzysD u+k23j+TeZ4dwPdgdYymRjt6Nut0ykAaN6kQzT57zYgLVyxcAgzeB75bphEPJhxH/TBzUTVHxzDCC bE4B182KvicImFCg4L6w==; 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 1gwss5-0002UD-0N; Thu, 21 Feb 2019 18:14:57 +0000 Received: from mail-db5eur03on062e.outbound.protection.outlook.com ([2a01:111:f400:fe0a::62e] helo=EUR03-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gwshU-0006Mm-DK for linux-arm-kernel@lists.infradead.org; Thu, 21 Feb 2019 18: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=dG/Lu3lEcktBKnjcHI2oMO7uD9T1zCup8IkgEFOJvWU=; b=LUvZB0TSNpex/Fzcgtpz8xLEHENIN5Lb6eAwDi2zm1yw3SUnppypMu95U2j+/FRTphLh6G2RX7R4x5GOCQ7mFhog9nVpsxwRvVKcbJCsf2vJq4DKgRnL8UUs41LavysKwLjSleP10WoWutOHEVorQ15U1va4T/4DBwrsnEdMQrY= Received: from VI1PR04MB4222.eurprd04.prod.outlook.com (52.134.31.21) by VI1PR04MB1663.eurprd04.prod.outlook.com (10.164.85.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.18; Thu, 21 Feb 2019 18:03:54 +0000 Received: from VI1PR04MB4222.eurprd04.prod.outlook.com ([fe80::b1cb:82a5:aacb:238d]) by VI1PR04MB4222.eurprd04.prod.outlook.com ([fe80::b1cb:82a5:aacb:238d%6]) with mapi id 15.20.1643.014; Thu, 21 Feb 2019 18:03:54 +0000 From: Aisheng Dong To: "linux-clk@vger.kernel.org" Subject: [PATCH 4/4] clk: imx: imx8qxp-lpcg: add parsing clocks from device tree Thread-Topic: [PATCH 4/4] clk: imx: imx8qxp-lpcg: add parsing clocks from device tree Thread-Index: AQHUyg/OXauWfdVZQ0K2EXeEbwi2Cg== Date: Thu, 21 Feb 2019 18:03:54 +0000 Message-ID: <1550771836-10014-5-git-send-email-aisheng.dong@nxp.com> References: <1550771836-10014-1-git-send-email-aisheng.dong@nxp.com> In-Reply-To: <1550771836-10014-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: HK2PR04CA0044.apcprd04.prod.outlook.com (2603:1096:202:14::12) To VI1PR04MB4222.eurprd04.prod.outlook.com (2603:10a6:803:3e::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-ms-office365-filtering-correlation-id: a685bf21-8b64-4987-2763-08d69826f139 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)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB1663; x-ms-traffictypediagnostic: VI1PR04MB1663: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1; VI1PR04MB1663; 23:J/dRCsgaxWLtgVG/bQV5bjFpCGIKYM9HUaRN29p?= =?iso-8859-1?q?2eWzOpF0ogkEHo9?= =?iso-8859-1?q?wUCLP8SkD+yTNbbOKh1lN8s+cyjrpIwlVg8iSELsSOT2Z72TfwJKn9037twF?= =?iso-8859-1?q?6K7cVlxqXFlA/5/4cxsCnejjp7q+Ad0DdAYkojLD6sJEAwS72Nx9do5MdITv?= =?iso-8859-1?q?BlNYHC7GEi9Og3z+uCnryTsz7k2aSSsycPy5mlZxH26rP/+EoMtz5VvaJfgP?= =?iso-8859-1?q?3FRtfh0iYz4ERSjL0Cu9d6o0ACo2U/zSLslbdHtV1wikXrI/DcD4fSnmx0Ug?= =?iso-8859-1?q?FqWhrnIqEOFp7ZbUy7oJ/gD/Oy73lTfDhSFJxsuqzC1ewQbntbhnVMqe3Ww7?= =?iso-8859-1?q?lYSbNGcAo+ozMr5gtmxEJgJhgLoboFnb1nG2Z+ua7ls3i7/RDfy/xOsmO0qk?= =?iso-8859-1?q?rsHaix9J897L7sYi4VtKWkHxLD0zfZZlImJnnEc27eyca+DJUlzco0FbJQ40?= =?iso-8859-1?q?YhA3aEYP7c1NVX9Oi5h1biD+4WfNAw4v3HN/dlj2RHJxtTLVRfqMiIie1Ra2?= =?iso-8859-1?q?GcGUTVMi5FthXCBcEEXEh0Apd9RRS+/NBEMNFeCT+RkMUunAJdNJCuQUlz01?= =?iso-8859-1?q?/T1QZxEha9tWil2HGbzJ/SRuMkTsa1+2X6CS0w2AS0oe2wUuq9jmRrSabIVC?= =?iso-8859-1?q?1V2WotRx30AsNVKLkFN7vfKgIEe8BWkesyVAEB63HmXTYk4Z6NcYkX2AH86F?= =?iso-8859-1?q?vEKCYGUTWe+ZABranTo9y1l0Un71gWmTahwkLteD30lZm0QQrpnLT63+SH/V?= =?iso-8859-1?q?5EUUuqj4Sd0MNnECTSxuGsEbIc6rLvKgYT8qCB/JkUwu1A8LH/ek/LVCsfSt?= =?iso-8859-1?q?Iwf8Sy81wterOp0LHWGBSaW53sbD7C/6AhE7CSkaTYKzy+G5UyEHz98r+HX4?= =?iso-8859-1?q?GheNG50NynRHx9hC7JQ7dDb7q+zY9t2ogSRkD9tjAElTXiWDNdTfrfPRL0aa?= =?iso-8859-1?q?ytK7Fx51rNYYy7atgOcoLRCsAVrkHMg2xgTRBBro29dyDPRshqJuvS2a3QMm?= =?iso-8859-1?q?MQLvFURIAJIYxWbLJoF2S+jcTTlin8Tm9fsQ9X35qLUFaPHiIRsyWgJwcRCk?= =?iso-8859-1?q?QULwN47NVBJhNB2NCtIrS2o5PjirO1ThoJYloaC0b5TgXz8+9IE1+fDpJvm5?= =?iso-8859-1?q?zlH5+4qNL94O7qNEd+yVN8Crs1nXUNxIBRXCWzIkZeGvc8W6DNPuxfGryamq?= =?iso-8859-1?q?YsENKcMREyG6T8XoGPqDvpitmLV2Xc6fXY7tHJa5bnXBjW2tvupAcE6EcuzB?= =?iso-8859-1?q?4gDYcoYJPRx4eecnBurpk++VmkjsiLtPbX6b6lpUWSxdsQFQ=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09555FB1AD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(396003)(376002)(366004)(39860400002)(346002)(189003)(199004)(2906002)(8936002)(186003)(81156014)(4326008)(71200400001)(71190400001)(6506007)(97736004)(99286004)(102836004)(26005)(50226002)(2351001)(6512007)(68736007)(81166006)(386003)(3846002)(14454004)(6116002)(476003)(316002)(8676002)(5660300002)(478600001)(54906003)(2616005)(25786009)(44832011)(36756003)(305945005)(446003)(105586002)(106356001)(6486002)(486006)(76176011)(7736002)(53936002)(66066001)(52116002)(256004)(2501003)(6436002)(5640700003)(11346002)(6916009)(86362001)(32563001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB1663; H:VI1PR04MB4222.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: eJatJiyyfYfCQEGnq2xniWLbV2m8e/m9JZ5TsfemwjrcRWzq2yT9dZsFN3Y2XZRH4Oru+pAYLLbpNARWa804Vcl7AzFFNx3Qc8hK1ZHOpVs22+z5BzoqWVKLr7Woi5WKONfyR4/AJR3fGfA/xquaPKiJ3BdklpvDHry53bk8kzIEaMN+L7grlSlNl0x666FgPIyHrYvwOkjYy2y3YFcXv4JkLwEMUu+kV34fX3tt1EZTPq7aotnaX/pMLYcCBar7Z1k+0zBXKLlVqVn1dKb/cB2JAF1/JPEgGqjl/b2GEz8asjeQ/PZx+FQ00+iUP5zle8DrnanPPKQ7bYQq9rt0palYyDnRQ2PnxJ5tv5oRaGCcxWex3GgvTIyOKFkkaZZTkzke/jPfl2fw4hzKp0+UxVeOx77kCswWr8tD6kdSa3A= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a685bf21-8b64-4987-2763-08d69826f139 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2019 18:03:51.4147 (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: VI1PR04MB1663 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190221_100400_511813_15811EB4 X-CRM114-Status: GOOD ( 15.05 ) 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 , "sboyd@kernel.org" , "mturquette@baylibre.com" , dl-linux-imx , "kernel@pengutronix.de" , Fabio Estevam , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" 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 parsing clocks from device tree. Cc: Stephen Boyd Cc: Shawn Guo Cc: Sascha Hauer Cc: Michael Turquette Signed-off-by: Dong Aisheng --- drivers/clk/imx/clk-imx8qxp-lpcg.c | 90 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/drivers/clk/imx/clk-imx8qxp-lpcg.c b/drivers/clk/imx/clk-imx8qxp-lpcg.c index 99c2508..dbbd3bd 100644 --- a/drivers/clk/imx/clk-imx8qxp-lpcg.c +++ b/drivers/clk/imx/clk-imx8qxp-lpcg.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -152,6 +153,88 @@ static const struct imx8qxp_ss_lpcg imx8qxp_ss_lsio = { .num_max = IMX_LSIO_LPCG_CLK_END, }; +#define IMX_LPCG_MAX_CLKS 8 + +static int imx_lpcg_parse_clks_from_dt(struct platform_device *pdev, + struct device_node *np) +{ + const char *output_names[IMX_LPCG_MAX_CLKS]; + const char *parent_names[IMX_LPCG_MAX_CLKS]; + unsigned int bit_offset[IMX_LPCG_MAX_CLKS]; + struct clk_hw_onecell_data *clk_data; + struct clk_hw **clk_hws; + struct resource *res; + void __iomem *base; + bool autogate; + int count; + int ret; + int i; + + if (!of_device_is_compatible(np, "fsl,imx8qxp-lpcg")) + return -EINVAL; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(base)) + return PTR_ERR(base); + + count = of_property_count_u32_elems(np, "bit-offset"); + if (count < 0) { + dev_err(&pdev->dev, "failed to count clocks\n"); + return -EINVAL; + } + + clk_data = devm_kzalloc(&pdev->dev, struct_size(clk_data, hws, count), + GFP_KERNEL); + if (!clk_data) + return -ENOMEM; + + clk_data->num = count; + clk_hws = clk_data->hws; + + ret = of_property_read_u32_array(np, "bit-offset", bit_offset, + clk_data->num); + if (ret < 0) { + dev_err(&pdev->dev, "failed to read clocks bit-offset\n"); + return -EINVAL; + } + + ret = of_clk_parent_fill(np, parent_names, clk_data->num); + if (ret != clk_data->num) { + dev_err(&pdev->dev, "failed to get clock parent names\n"); + return -EINVAL; + } + + ret = of_property_read_string_array(np, "clock-output-names", + output_names, clk_data->num); + if (ret != clk_data->num) { + dev_err(&pdev->dev, "failed to read clock-output-names\n"); + return -EINVAL; + } + + autogate = of_property_read_bool(np, "hw-autogate"); + + for (i = 0; i < clk_data->num; i++) { + if (bit_offset[i] > 31) { + dev_warn(&pdev->dev, "invalid bit offset of clock %d\n", + i); + return -EINVAL; + } + + clk_hws[i] = imx_clk_lpcg_scu(output_names[i], + parent_names[i], 0, base, + bit_offset[i], autogate); + if (IS_ERR(clk_hws[i])) { + dev_warn(&pdev->dev, "failed to register clock %d\n", + i); + return -EINVAL; + } + } + + return devm_of_clk_add_hw_provider(&pdev->dev, of_clk_hw_onecell_get, + clk_data); +} + static int imx8qxp_lpcg_clk_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -162,8 +245,14 @@ static int imx8qxp_lpcg_clk_probe(struct platform_device *pdev) struct resource *res; struct clk_hw **clks; void __iomem *base; + int ret; int i; + /* try new binding to parse clocks from device tree first */ + ret = imx_lpcg_parse_clks_from_dt(pdev, np); + if (!ret) + return 0; + ss_lpcg = of_device_get_match_data(dev); if (!ss_lpcg) return -ENODEV; @@ -201,6 +290,7 @@ static const struct of_device_id imx8qxp_lpcg_match[] = { { .compatible = "fsl,imx8qxp-lpcg-adma", &imx8qxp_ss_adma, }, { .compatible = "fsl,imx8qxp-lpcg-conn", &imx8qxp_ss_conn, }, { .compatible = "fsl,imx8qxp-lpcg-lsio", &imx8qxp_ss_lsio, }, + { .compatible = "fsl,imx8qxp-lpcg", NULL }, { /* sentinel */ } };