From patchwork Thu Aug 16 19:21:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jolly Shah X-Patchwork-Id: 10568073 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 BBF4C913 for ; Thu, 16 Aug 2018 19:24:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A96332B92C for ; Thu, 16 Aug 2018 19:24:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9B59B2B938; Thu, 16 Aug 2018 19:24:54 +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=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE 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 854702B92C for ; Thu, 16 Aug 2018 19:24:53 +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:References:In-Reply-To: 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=L5FR+kbIkEh2RVqIGjpTd8bF+sOpHz4bT2bIUnHtHWk=; b=MjGXaCKPEMO9oc d4HuNq8gvjAVgbBV0RkFy7lJYBpoDVInsP8oo32OFot99A0TWkxF8Z8kH3l06G+wf/XtGCSNB6OVE k3IIIfRJ9qKRrTlpd74h/ETZbZBiUCXlWxJMByBEJxvaxU5cnq1c1b4lFbCwPyPlE1OESi4GqGW74 GV4yIEhPB86p2QNWGT3atHVQ/OFulFpxv3UIygYOjZfgTyA/5ipoOL52hez92GC3I5moNX6oTtNa7 Lz06uPcdPuESfN3sFZHjSU7JNbW/Xn44CbU/R987zr6r0O2WT+qv3jP4mFHhNuwqIRhxju+IHjq/0 +cxkM2vLMlkcObBzsP8w==; 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 1fqNt6-00016R-Su; Thu, 16 Aug 2018 19:24:52 +0000 Received: from mail-eopbgr720086.outbound.protection.outlook.com ([40.107.72.86] helo=NAM05-CO1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fqNqX-0000Ly-Et for linux-arm-kernel@lists.infradead.org; Thu, 16 Aug 2018 19:22:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pfLcw2e0ApDIPHs8ILsNkSjPcH7L3ncuq8/dk3Zg5Mc=; b=i4h4JPSV4nq5JBaAWnDKW8OvNNmn/f9qoOQnK6T0pM2tNiREnQsAjPWoQuFNGgT50hXv7J2e5wwLjshjSTsZFzhDvA9xFcdQpFxuN2wrzmROypBbaHWWjZy9vRHvX5+UBUDoRbKDAyTMOZ/BHhpTg5PfOND89ApheNpc91Lo8gE= Received: from SN4PR0201CA0008.namprd02.prod.outlook.com (2603:10b6:803:2b::18) by BYAPR02MB4455.namprd02.prod.outlook.com (2603:10b6:a03:57::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1038.25; Thu, 16 Aug 2018 19:22:00 +0000 Received: from BL2NAM02FT062.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::207) by SN4PR0201CA0008.outlook.office365.com (2603:10b6:803:2b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1059.20 via Frontend Transport; Thu, 16 Aug 2018 19:21:59 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BL2NAM02FT062.mail.protection.outlook.com (10.152.77.57) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1059.14 via Frontend Transport; Thu, 16 Aug 2018 19:21:59 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1fqNqI-0005jt-RC; Thu, 16 Aug 2018 12:21:58 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1fqNqD-0007wo-LA; Thu, 16 Aug 2018 12:21:53 -0700 Received: from xsj-pvapsmtp01 (xsj-smtp1.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id w7GJLoaZ021520; Thu, 16 Aug 2018 12:21:50 -0700 Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1fqNqA-0007vv-0M; Thu, 16 Aug 2018 12:21:50 -0700 From: Jolly Shah To: , , , , , , , , , Subject: [PATCH v2 1/3] dt-bindings: power: Add ZynqMP power domain bindings Date: Thu, 16 Aug 2018 12:21:42 -0700 Message-ID: <1534447304-12919-2-git-send-email-jollys@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1534447304-12919-1-git-send-email-jollys@xilinx.com> References: <1534447304-12919-1-git-send-email-jollys@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39860400002)(396003)(136003)(346002)(376002)(2980300002)(438002)(199004)(189003)(50226002)(110136005)(186003)(316002)(356003)(11346002)(106002)(72206003)(446003)(48376002)(8676002)(77096007)(36386004)(2906002)(476003)(426003)(336012)(50466002)(478600001)(36756003)(305945005)(26005)(486006)(81166006)(81156014)(16586007)(8936002)(2616005)(54906003)(9786002)(126002)(2201001)(76176011)(7696005)(7416002)(39060400002)(106466001)(107886003)(44832011)(51416003)(47776003)(5660300001)(63266004)(6666003)(4326008)(921003)(107986001)(83996005)(1121003)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR02MB4455; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; BL2NAM02FT062; 1:fz3qC0kOgTL41+2paMC7wMyVnpI9gK2lo9nwni01NQ4u4dTl2CVmKVIwtvM6qT7RY2H/LLoTfwQd7TOvIcVlqd/rdAzArbD2ahTiamLTFLZrDsv0O2EN7XJhBFgq/Mmt MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1f50c531-c3b4-4734-a30a-08d603ad89d4 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060); SRVR:BYAPR02MB4455; X-Microsoft-Exchange-Diagnostics: 1; BYAPR02MB4455; 3:Fo6DotdGUhdNT6xxowV4zIyDAaafVpjfTPOQvNSbNdW/Q9E6jb7ovhsgiwm52b95MGVxHOV1pRLOEl0tDI9/U3wsHvMwi2L/WFSl6IpIRKjpCrVwx5Sdlcu8ROtbeRdIWE899+lnGrHctaJVEBuhSCw2l7ruQX7MrqdoNC3OXklmNnRxxW2Gglycz6c5GY5poAgkwNfos7n/eUaV0b1SOuksk3jDZDtywpaZ2f1BrXzMQFHdBWh81AZ7vLN+2VGoZ2pcT/X7bbYUiJPvmcPTCtmI1rcGE28sr2PPGbg225jh+yfF8x2YBun3Wvuqm8gPzKjC7NP8kWCWZOGLcZJ+lM4Z2vdwLU+na+hQzQymo7A=; 25:bG74AAvdwwpe5hoyGgPKK92k9PObIsRFl1GsGIl2AawW53CuSoxOKFfmf3FbsWINi7WNI7ENuqku9WdEoXqTdvCJFtyaG64ky72/e/WnN94Dhp/5FODdluDE1QuoF1G24ThDPMbLHs1PeISMnYH+C8nDkjNaAfraRXx4a1YA+lbiiZrDUfKYH3Nti1A5hlu0WfeRgoM+7++71UnFPtPgvvvzochDpJqlsTcVrJNEt/fhWFb2gQKiEjshRnKoPmC5fsuSkA3ZEhDcO5y3r8gfAi7gcYmBsiqVOXMr0+/1RJAw3ox4vwyFWd40HiTWH6SfSPE+MKsXxGxoZi7QmlU2PA== X-MS-TrafficTypeDiagnostic: BYAPR02MB4455: X-Microsoft-Exchange-Diagnostics: 1; BYAPR02MB4455; 31:6b3FlSe0yv35755gHE6XMJtyZjLsCTQVmhvOVLkxbOTK8giUAnn/9vdYBrMjRQ0WcG5NGu7UNjunAbuYmT/5ZnCMC3nf8Uwt910dk2oILaSxW+R73LCHDBViBPAzS3Jgd7Ng8oSQ47NoSQbxSDvHNbJ1/wiVfGo8TQHABhQbrxU3w/hPCmFQ6FawioN6Vepy7gPfNsaS5PCkom4NSHsW7Z9CVVvRViJ0lVq4V+tNlNY=; 20:b/wCG/2UgQB6eCBAok4MXlsIIsyT4zDSNkG4AbTwGrWzHOIUGOxXolad2/bGQjBejFNoUkUN63MC2ETYJ7spQWxJ8SzTL0S8Hrj8pXO+DU0zQgh7fYWcq3Z9/Sl129Vc6THv32rXzQvFjy1YX80JNzE7LZslYmAB94v9jejg9AxNrn5nHSrpk1jpbMlMLMaFK1NYTH3MN9qZoT4UZZmOF0edbMJlajN8RrIE35G8s+lyqM/tEwkedTWPyFNN3Wz8l+nRkgGTp+QMbLedKmeP0diL7pq0aeaUJ2esNY2ldknF9MkXcoT7KU58Ndtd4+T9oxMERLyHPkMFPo6v4Y2DlCgulyOVnns9mVp8NNN+dAdROG/r2GTud4RR0XNKn2zN6XBL8rQ76fVolyByvj/c5Y675Nnb0v4wb3ovxyg4hmo15JfYKyGFRegpeSkVSnxSas9CPWYm6E2FWyLStVxtNykeA/lzvuUtK6V2m9v40xmr75Pn8h8FN3GQcYdRHoxr X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231311)(944501410)(52105095)(10201501046)(93006095)(93004095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(201708071742011)(7699016); SRVR:BYAPR02MB4455; BCL:0; PCL:0; RULEID:; SRVR:BYAPR02MB4455; X-Microsoft-Exchange-Diagnostics: 1; BYAPR02MB4455; 4:tSOAUbb9nWGKLf7TE26jZB7nY8jxGjnmUBPacs+ZjGYbuSsIvX/FNdZfaedG/C36IkUtdpyH2BArzctR1FfRto4rbBCaPPVMgN57wFTlGiWMhNVCkJheD8V74lQzILWTglZlzRnpCaXNPNz2ZB3HWXIPUiW3lOgXfjS0O/LvxMbwwbDpUkGNuFXBuk1Ehf31dsfY/EP8mQs7AvShQv86quehn783wtwhxNRBgW7KTfic2TeHkVbGVVKDQWvSs4c7oKaTwktUf9mmYWaAmYIYtKGyuHekDKv3SKkuFYKwHMwAMIyiXOGvQdsiLG57v2EC X-Forefront-PRVS: 07665BE9D1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BYAPR02MB4455; 23:lB8rR/rioQatnVq8AIKt2U7f1sveDbvfpTDevn40Y?= qKhUKEIr+AmhfKPiy6R0ZZtg64Qt2VxoXfRhDJKCGn6yJQlq4vWiduoaEQj+1oIi8Cc07UzWAbCOYRmmNHvidTXDC1MjHPG7DH3XDBT/XKBCbjIRyN0zzC6AZPipRZg9UyKL5DIcQFU6RsX+BHbhxyu+WH6B3Rmfl/AmarS9zIb6DAhD2BGF6QsCsYFBsVI+MJlTDfKakz75Jpu6Msj4q978xpBr+5s2T68hePyqJLZoZewPRcuAdUegLa/YHevUjWByv3IFW5jVArXtBxyE3MTp6tUBWzOYHWaUk+dpSsJI35hK7Gj4BmffeDXlpqeH3hj0azDM0zq6YbcFQ77mxf1doadw7Yq3DzFi2ks4agAehiZblN550p2PRG4xPg0dclE5FfZfNSZ/Bhj7qzHNMB76UnvW1HUi4dmKx5D825qdZ63ryJxLF5YCuTbPzkqb4NxIGYeYlcy0OmboR3CKY5PfbmuJ+k8LRY8MPlz91Lnv7tFBRBuDRr9NmYyiS6F8tAKIhCSPdtKIRukXhlm1aJmH+iBetpbKtkt1Z16BRuS2L12i1mA2nTRwp4I1kq7Ob57XvpqGQbA/e/HutZr6VVV5TFxY0w0j7MmCxBIz6Lwg4KoA+hdGaVSoq82BTjVO4oTS5wMdE8tFq6RGCFH+fRUQ2lQfs7n8F5BOnhBZudvEXeeaHB/KmEya6varyqMj7fbRM1ZvjyJUpvQ8p6N8vZmyATqA5DXk+Ub30PV34L+yWbT5FZnU4ZAWxMjQ5Wlja+g8jWzg4P7t+S7EvGePZuXVWiQlkUbMfyvC06qM6f/JrkVCKT1LIoU5cn3YNx3HBvyUzFbPhMzkyTEPwznd2FWXGuyRWjL8IAIXYc+qsQA9C93DP/Ou+uKspT2TMEXOlXOL2ixqXZR/A2ehRHhMp0MPJe44vocTYBevce8FcxHW1zheohRVPFVsgY+WhBiMotuL9Um9Y8ifarYnKwBNow7ZzPEKI8T+hzoryhZ2TXRbrvOnKsyUrDnvQk/+0EqB2JZwfywtLV8Vt0mSPS8fb4+TmJnMuFv7aO0kYlgpU4XtXNQ3GtY/YR0q+Rfx2r+rR/TeBr9XcrCw5KAA8XPuSFQ1AGH/0HVNTlyYGXYOqw767xg8/q/PyoewAAFKwxLSZ7FSooSaRlcyP19X6InPFTyd/V+/Cbxdgw4oKBx+S1gYnCGWnq244umfrebG1+iXHVGrSHILKjwSOwnixb7QHa66haOghhQNZCQzfL7KwLLdg== X-Microsoft-Antispam-Message-Info: mTgW7jaDsKcYcYtYfIzLe8ZyADFC52LSPlPlZfph6OufXcv/Lor4uNyjZ+yEBOeyPT5er+4aPdE7uRBOhszl6KNBoscQMC8uK+fOZKwSnUkMnfSH/81bhwXvrFo9pR6diHz5nyNEl5cMtP999Ex/NAVG1gZWfMygSW79ZEP1ivTdvlyboiTOrThPNylEYmhPT0ofjcf/UfaJAOSn5Col0g8rkqvVZpq1WtrZCAEih81a40/6gPeX4VhhXY5XRdY7GKbMJHYNKdVXzoIGI+F/x308IszMztCHaCmNPCm5I2dFfW8PkFGdt0+wnArvBJkXUJZ5wewHU5OaRXycc8iKhp/VBX4NqimPoLVgjMwQjzI= X-Microsoft-Exchange-Diagnostics: 1; BYAPR02MB4455; 6:bt/amV7qXKgibDQe9LE0NSCSnmQhMaU6slvWpDX7QeiQxIRhhcB+nS5gFDQPvJa8IjpRBDZRkMOKO5+1DLBkHDGyMa4u+EwROyr/iCLp9IkKv71GjKqFmBURuZHgZsVql9lTb5mqxM8Zf3xNCeFSrlT02A7FIIjL3kPHhoegmCtnV2j9L8aZ1t98hmxnCBj5fHmF1AmyRQ2A2mxggkMNZII/lIh5kReRRFpRzTUhDGwSCmKvFnDz1UTAiRAfdZgz3xF8p/E4LKCTaG/pmsO0GU/njZX1t4CmiybRXiHTqCaEY4pCzmz2UvCr+0WnyCaH/CF78pheQksiuo3Aua+oKInrM0Zh6h150+o1WznZS456Y62Kn1iNrZ5lMW+37Ruo34kR6m4wbazhnVzn4KK+XKPCsZCZrTqecPu/unIGPnkf2+VajbyzcMz6aEQ9ieGvAocgD7hF0U/9r2ftS//Rsg==; 5:jHiOZ9Ky2cxhzxQyw8W6amTqV9YAOyXqEbfA/Ils9JWsNHvZRLh/OjnKWMJlpg/uNrkB+vq2OfcIU4ftO670pVIU91isq6PiMvcB8G2vFEdBYEKflCRpWD+e2KYHcv757nLUxe+urfYkJLTITvNE72kGaGdfSdCp9yVaxSDYeLk=; 7:HkRRPRyTi4IJLPyF7jazhgpLAz/sAOFea/3BsW4tU7bEdObsf2QjdGRWdXkT6qzi7GyKLhxK2A2Qt6sw4UjrjAQ8xntroyvmuFIaA/BJK55LtRqIFqKqxwJGZuEi8V9ZluDJ9xDcbmUrLVrza0r0xq+kSAujf+iVS8E2Y/ObkBX0bseQ2JZOjQrtQGqRHXmqst6jHp+jReZn0R/ut+SLgYo/OOc3XU/QvwbNOZraKpsp6P1gqhfh4sOaPpe4B98F SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2018 19:21:59.4424 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1f50c531-c3b4-4734-a30a-08d603ad89d4 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR02MB4455 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180816_122213_522084_AA18D1B4 X-CRM114-Status: UNSURE ( 9.57 ) 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: devicetree@vger.kernel.org, Rajan Vaja , linux-kernel@vger.kernel.org, Jolly Shah , rajanv@xilinx.com, 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 From: Rajan Vaja Add documentation to describe ZynqMP power domain bindings. Signed-off-by: Rajan Vaja Signed-off-by: Jolly Shah --- .../firmware/xilinx/xlnx,zynqmp-firmware.txt | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt index d215d15..5fa10a0 100644 --- a/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt +++ b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt @@ -64,6 +64,29 @@ Output clocks are registered based on clock information received from firmware. Output clocks indexes are mentioned in include/dt-bindings/clock/xlnx,zynqmp-clk.h. +----------------------------------------------------------- +Device Tree Bindings for the Xilinx Zynq MPSoC PM domains +----------------------------------------------------------- +The binding for zynqmp-power-controller follow the common +generic PM domain binding[1]. + +[1] Documentation/devicetree/bindings/power/power_domain.txt + +== Zynq MPSoC Generic PM Domain Node == + +Required properties: + - compatible: Must be: "xlnx,zynqmp-power-controller" + +This node contains a number of subnodes, each representing a single PM domain +that PM domain consumer devices reference. + +== PM Domain Nodes == + +Required properties: + - #power-domain-cells: Number of cells in a PM domain specifier. Must be 0. + - pd-id: Domain identifier as defined by platform firmware. + This identifier is passed to the PM firmware. + ------- Example ------- @@ -78,5 +101,29 @@ firmware { clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, <&aux_ref_clk>, <>_crx_ref_clk>; clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk"; }; + zynqmp-power-controller { + compatible = "xlnx,zynqmp-power-controller"; + + pd_usb0: pd-usb0 { + pd-id = <22>; + #power-domain-cells = <0>; + }; + + pd_sata: pd-sata { + pd-id = <28>; + #power-domain-cells = <0>; + }; + + pd_gpu : pd-gpu { + pd-id = <58 20 21>; + #power-domain-cells = <0>; + }; + }; }; }; + +sata0: ahci@SATA_AHCI_HBA { + ... + power-domains = <&pd_sata>; + ... +}; From patchwork Thu Aug 16 19:21:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jolly Shah X-Patchwork-Id: 10568071 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 B0D98913 for ; Thu, 16 Aug 2018 19:22:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9DF932B928 for ; Thu, 16 Aug 2018 19:22:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 922152B934; Thu, 16 Aug 2018 19:22:27 +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=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE 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 123232B928 for ; Thu, 16 Aug 2018 19:22: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:References:In-Reply-To: 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=+wpt1sZlMSsIdkYt0WDIRCAcnSX6a0+CYwLbe+u28jw=; b=jBC6djCBvQqjo1 YE4BDWUudD+5mRZwwjdXbLlapl1yn9DlXLkPwxDLG4v6M8yMDEpuPSzDTQLFFKea7T/sXWjLC42vC 84lFw2DPUuqXsBVaGu4rYWpIc73EkJWn1alxjduLgYYVCQvZmZZCi0dW2cUZbbS06lOtVQRY6sg7e 0JDXWBjME8BGJCY0Hp+gcn58XlLjLlgmwHMFr+qBGXgmy5ES2opn6aFH53RwVrSBoRYmyoD2nD0Px P65OUfegFV+WhpNqVtbiU5gGGtGAaJ5QG69suqgD818MSPCxMbKi/7OyB93Qe3CRyd65JJL2FFhJt cIbrZjbX06cQIaOWk3Ww==; 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 1fqNqg-0000Vt-MJ; Thu, 16 Aug 2018 19:22:22 +0000 Received: from mail-eopbgr730088.outbound.protection.outlook.com ([40.107.73.88] helo=NAM05-DM3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fqNqW-0000Ls-QL for linux-arm-kernel@lists.infradead.org; Thu, 16 Aug 2018 19:22:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BLqKXyL5su2qIqbnNM1aGY3Ng16mCd3HPg67nVctZwQ=; b=GEsWA7nJty9dNtn1frlTUkuWz6bTkzZTa7YWh2/NVx5tlA9oxYJcWMOUamjgK6eSb8cR2RonG9Gzt3zX0kervFuSzrWwU8I4DVCbiJu/8RvKzgBXITsgQOf/L6cQj622uKZf0ZlxVI7RmP6OnvInrOOV/l33WnMM8NqogwvIKTU= Received: from CY4PR02CA0021.namprd02.prod.outlook.com (2603:10b6:903:18::31) by MWHPR0201MB3516.namprd02.prod.outlook.com (2603:10b6:301:77::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1059.20; Thu, 16 Aug 2018 19:22:00 +0000 Received: from SN1NAM02FT050.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::205) by CY4PR02CA0021.outlook.office365.com (2603:10b6:903:18::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1059.20 via Frontend Transport; Thu, 16 Aug 2018 19:21:59 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by SN1NAM02FT050.mail.protection.outlook.com (10.152.72.128) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1059.14 via Frontend Transport; Thu, 16 Aug 2018 19:21:59 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1fqNqI-0005ju-S6; Thu, 16 Aug 2018 12:21:58 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1fqNqD-0007wo-Mj; Thu, 16 Aug 2018 12:21:53 -0700 Received: from xsj-pvapsmtp01 (smtp2.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id w7GJLoLn021523; Thu, 16 Aug 2018 12:21:50 -0700 Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1fqNqA-0007vv-2Y; Thu, 16 Aug 2018 12:21:50 -0700 From: Jolly Shah To: , , , , , , , , , Subject: [PATCH v2 2/3] firmware: xilinx: Add APIs to control node status/power Date: Thu, 16 Aug 2018 12:21:43 -0700 Message-ID: <1534447304-12919-3-git-send-email-jollys@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1534447304-12919-1-git-send-email-jollys@xilinx.com> References: <1534447304-12919-1-git-send-email-jollys@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39860400002)(396003)(346002)(376002)(136003)(2980300002)(438002)(199004)(189003)(336012)(6666003)(186003)(72206003)(486006)(476003)(2616005)(50226002)(14444005)(110136005)(2201001)(36386004)(76176011)(7696005)(9786002)(26005)(478600001)(7416002)(305945005)(107886003)(77096007)(54906003)(39060400002)(5660300001)(11346002)(16586007)(51416003)(426003)(446003)(126002)(36756003)(50466002)(106466001)(44832011)(316002)(4326008)(48376002)(81156014)(81166006)(8676002)(106002)(356003)(2906002)(47776003)(63266004)(8936002)(107986001)(921003)(1121003)(2101003)(83996005); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR0201MB3516; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT050; 1:jJ5jpY1eB+1y8wGLXJCqtj3CPCZsOFVVCz+Hy2+RJ82vc3x7XzaTHgfQrDGP8svckryOh1ZbnvR/FP9eLUO8u0gJsnyyR2U/CY5ONWTKXajAf26SHWck8wgOXzPdb8AI MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1bbe2061-7c2c-4368-8837-08d603ad89e1 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(5600074)(711020)(4608076)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060); SRVR:MWHPR0201MB3516; X-Microsoft-Exchange-Diagnostics: 1; MWHPR0201MB3516; 3:uwheLtm9ZjLoaPgHSN3WjbNd6UivPjAdSDDO0dSCLqgPrpbryVp3SdiujFGAfO9GMAbFWWTTCRvpaPzK8hZSD7zhUg+vNKOewxSkIzHw0yQtJkStfm0NOKTq6s4JCc3xZ7xNcs8lNwTrW4tNsNZMObvO58AzNS9i9E5PP9q5/wOgXHzVuSPHhlShHUbVJRe9bhp3EhS/iulT8SnogRH016sbOfhODcgOEkKede+eb0iB4C7Mbsf0TwIWwx5fVqIft6yrT4lxAc/2h3OFIcnAEOML/1JwWR4IRIuVmFGTzZVcVecIsNhUOqFAwpRUoiOP47VD3dghXN4NCrWvhYo180ajVpKn/9xOtU2JPJOGlKU=; 25:meWymfO0F+OXAL+RjGq91FOiP/82tOzgza9t+RRRNN/IBxWiymeriLS45lkkvMKEnWJaiYHBZ5b3fE4WLH7n5wmCM0Xd/Pp6tZ2SwbHJJws/jKBS+FmdYrbtzT/KaGvkss9rgwAYstXlBpiWfQ7NSRu3I/eFlMV+p+Ij79QRF2arlBNioFpgP1yqzX4+a/ENC300gOMLDkjAGx0EIelZ7PD9BNpdvgZtwhLWgqWWcPO6Tb8o9FrlX473cgpINnb8Jfi+07MkuTFJXAbc0Uw31e0m5PhgufDZXUdU5UscvAqiT3nKdYA7I0BiAbPUTwxYTyRDtsGa1aFr315wp0Cw8g== X-MS-TrafficTypeDiagnostic: MWHPR0201MB3516: X-Microsoft-Exchange-Diagnostics: 1; MWHPR0201MB3516; 31:M1PxZ6rto2Rzyy+oVJ1a/+S7j30H2ER5lKX/lGA6xrDSnHOg2GJ0N4+u91zX1Qoo8nS4iaFRVH9ME1FQG79UApnipmST/dShcbC/IF9XErhLJ9mJ8ZOnFH0zvj7deUPvML7aY2ukDnt3MLt1+gnXnDOiX48MwLB2YF460wulxLHe309tcoA61loJsRFjxf6KpqKRYPEQ1IcFQM4lAAntrOWyVJN+SWdFiUKBssrX9lc=; 20:7xHkJiCSmgw8ctK2Jl2GRXdu0gNNXapQ7Vicx1KSdfw1iQpvvQl7m6feE2BtMjkHyVf0yGnsYcdsjuqLFRWVOLJLOgzFt8u0myZbg9HX2U7AIXwbEw5Fu0Vy86KMJvtHS6YDUkU+KIwRKt0VliJ/73/nQ6Q6kEDCNb6VFh+tA40ccY56kY8YiPdY/t5TPzFGqpKFZyHV2EeMUb0BGsXipixZ2JBaLmdEE9TMEbPlZSMpVIS9w6R9NDWeKBgOMvozpQrUQVqXUJ5+bGfhLs7QN0n/bY+BwI/T5YZU87rbPHf1Rh8V8g7PF8V6oGFeFhF7gQ1lGNMUEUJgQvkHj0JrVojZdf4yWwLH3DGThVLl5XPxW02PdxSLUltWsoY8Vjuqh0CAVFmCBjsDKRpQIaSqr/6PxsbIoGymDnPoAd8VzsjyQxQZytJL5tfW+ma1/mvpWa3ayVjfC6TJeZh0F6Sf7tFHkNqzF8B34h/fecNhBinDvDX9deh4FXfbF6WvSqXR X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231311)(944501410)(52105095)(10201501046)(93006095)(93004095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699016); SRVR:MWHPR0201MB3516; BCL:0; PCL:0; RULEID:; SRVR:MWHPR0201MB3516; X-Microsoft-Exchange-Diagnostics: 1; MWHPR0201MB3516; 4:uZz9G6FkbU+E7qdKGk1ktDeZM7SwGqyoMC2OQduFQw7KkXbnsCuNCC9Z8QMPAu6Lzh4ZJwfBuwM5/WJlgKJuUDG7lh8Pc7qePSd7nptl1eNEFnmWyB3zqMa89sMpk2krZwN9pGYqdJYU6NRqcmM0Rs3A0spG/Iea6h0PP/g5lkSB852RdJqzUh+khgLoJgJ24geaLtHb7cU87puun23WHPn0kw83SbrS93+x+fvxW20r/pkcTyBmyOd1lG+yM3SdG8yj44PTqlNSbn248yRAU41MKVi9n0WlQNfqnZTF0+lnYr+cpjn7EXX5+2d8RoKm X-Forefront-PRVS: 07665BE9D1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR0201MB3516; 23:j1eVJfcHI8AkXvqQQSHNrUzEntM+Mr5u70027+u?= qX3eboCSybA1Zbw5lj9WxMo6HAKK/CviyUBAhKlQTnMCOdNnXVY7qy0MiK/AicwgzRaIWtlmASXS47E2n9iqRPEtFFbr0GgRaBAzIP1R6P6Xie/enMVajW0WOaTczKFZJW+1yTXMd2PYcUeuoMrlsKSliBUUWc5we+LQT5OBSt9yKfyDS6rFUMtScMBiV6wVbK2CIR6/tpnJxZ3mv5IU36VNwLR90DIOhRlrJz1C3IazxNt+ru6hr1TU/wwDxhGkpHlyoBFyhiFtBTATDME/KaHA95qzHNOISbAXDJQbWX4pt79KAn83zQig9eS+UfzhbHZbJk7AkI6C3WV22/8UdmwpFkWR/A05kZ37pvy+Xat7iGB5ap/7T488f6Q8u9291q7mE9k/Tl9Th+2yr90ZCubnHZ8Ywha8TtG/QpDyamz6q2Bydbw3ervdDTn/iUWq0QKRlY2oySq10cNoVu5TZ1o6UEsxILWazcttGLYThxYxtQlfYRMQTTdWNBI0PIQg7pAwBbj/v0d/KTMynAZ/Tpr6Rg3o5SduVsTPi/P20O7ay7PGkug2q9Cldms9Yl/jtnmnCuuL2QYOgPvEOWNXvhQLFmQcuNrx1129owOYyY/ZjhU1lD5fMuMTPFwJn/G5kOpLxHRECRXPc7AbHjmDefhGtVOCLEs+WAWACrbGyJMwbUK6xAXbEsLweyHY0m1HuAR5Y+fZEMtXVdvdsycoEfkqCGaNZA5BcjXJ6hnMM3ISI4JeNdDFktUTxMt+nlRf8RN3xGFUrtEnyxoqimFJStndCgcm1yxTBCpSSFfZbD+nuHKN2XUqSgh6vcuaRaC/sEYbWMP5OMy8OQrExQWzXBRS9gHQC1wjWL4irQ2t3mvQz9HZ4Yds4oBZuaJCrsJtmkGq0V0GzYo0VqJxRbt81nSKLsjihyKdj+7osuXmrvIoYgqEu8Uy8D3AKN8i2iRz6EGkDwwr0ocSUEL6czgxnpOaP+OKQ++28ng3YAjfwDf82rxHCWQwWZSIZkxNAL8pcUci1Y6mOfdynup2XbhHppdwCKbGoHFjPRtsOsCXwgCqJsfxUH8tcvRtt25d+xfzzsgovYDgwlLAGZctse44m77mM4bpFpVQAGu8LmL7dhjNK/0C99pSHsmPAGiAGTbzvsou1eKIRDaVSJgM0mcm88oy3nB1RD4nrsmVG624E48Qz/esu8aEA075qAVxJ2rPMn6JpqREHp6Axs01PxfpCuQrJScfD+vunY6WKmbQrNBLJMZPXljHzdToQL6Z3ntJ/u60= X-Microsoft-Antispam-Message-Info: 32kkQqeX89Dd4PpR5dIw+tzTFrRx2Gpk2vsVAJ4Wp9+wSNao33x6aO920Syky5mF6vxNSYsM9g8dvrDWKz+5KFWNO6jJHH6NAVpEfu1Q8JMvXIOh8gUL6jP02NaI9wO1ieEP3Dwtu3qX8bmn3YeSOylenLmkq5aPaeVuS9nQf4fMN5lLTcJr8W2c/fSEnP4CN1+dFcOg3YzSkoz+CbiKE0Ox6jQPVNDaFojSCuo0RfFZts4OyR+FuyeBkSTzdHk3cgedT+cwv3d1E94vzkMTOddB0dGvceqMcezZtKVzV+5oC49g1d4Py6dcoLj/sb2P80sCGL+8o6mM+sCoH60n8WaRGCrZdjpJk9Qh8ec1oyQ= X-Microsoft-Exchange-Diagnostics: 1; MWHPR0201MB3516; 6:85KxmM99+0j3/hmW4PLikzm+hYMW2pTwUdxZQftKE0xfUJz/xPqhYeR6nOKzjg672gXzBQVCpSqrxnbmLJ6UWh9hZqQLfTCve1T1Aoe18i7zDF6mPkj6j+8z8L6Q4WGPnYLO+Prp/Dfnq52iEnTpDft89X92AHvJLfyrnqJHCYRwHEesoaEZuOdUNgtF4Nc7q/aI8sX9ZgVVAaKBNcrKF39KZTs7YKEJrrAVLKSwjC72vAoj+tkEbU4IpK94fzTmN/g+AKdyDHPtjoEkiDlWjoLgnTF/5Dui0o+c6VtszqZapmykYrN11yBax6icvsOHf0rOaoNF5cWp5FWrE1+BVlH7mlwdyWTd9mFV7wkS2dor8jtNoMzzY5aLIq+W0CgbiuXtagHSy3Y27OZJJyVVT/njRCZmppBB8HoSLAU8Kv5FdvTTr7uxkKnUm16ZtOaZx4eO1o79suzspM0viVt84w==; 5:ImBKQcnTK9k6idrmng+XA7Tzgg6Ew7zV6Hn19m5fnusPiRm7g5sEicsKLODmlPHc8OToxDFdRSFRU9u1whCkR8kjFXrgPGn0D0WlmNZTtnhLemzOytKb4qTmmGCwdD+jY/icoLFuokQGgRGiBDQVJ8WfFS35bZ/LzvyAzVrLY08=; 7:nlucYtYcFGvy9v6b5ddyDp3lk2JXBknxIYRcyqYOpomNI4zR7V0uH7tPEVQLvrEYLOV5hCDu696dghW1zwzdNA43I1AklP3dZXD8OoiEeklOTk/KsUpslum87q3rdlDpTTt/lfa63kcMAhORnJd32WsYou5goaJpjFv2HeKfCR28hu4QKMGltspiNLw2f/nTziN06VkpkzLlZCa4FEC9B1/VUi6W2UUP/Ar8K9yPZzVrVFuLl+VyGkmu5ptxckid SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2018 19:21:59.2144 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1bbe2061-7c2c-4368-8837-08d603ad89e1 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR0201MB3516 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180816_122212_901312_3E181948 X-CRM114-Status: GOOD ( 11.83 ) 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: devicetree@vger.kernel.org, Rajan Vaja , linux-kernel@vger.kernel.org, Jolly Shah , rajanv@xilinx.com, 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 From: Rajan Vaja Add Xilinx ZynqMP firmware APIs to control node status and power. These APIs allows turning on/off power domain and setting capabilities of devices present in power domain. Signed-off-by: Rajan Vaja Signed-off-by: Jolly Shah --- drivers/firmware/xilinx/zynqmp.c | 58 ++++++++++++++++++++++++++++++++++++ include/linux/firmware/xlnx-zynqmp.h | 26 ++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c index ce6c746..c54696f 100644 --- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c @@ -447,6 +447,61 @@ static int zynqmp_pm_clock_getparent(u32 clock_id, u32 *parent_id) return ret; } +/** + * zynqmp_pm_request_node() - Request a node with specific capabilities + * @node: Node ID of the slave + * @capabilities: Requested capabilities of the slave + * @qos: Quality of service (not supported) + * @ack: Flag to specify whether acknowledge is requested + * + * This function is used by master to request particular node from firmware. + * Every master must request node before using it. + * + * Return: Returns status, either success or error+reason + */ +static int zynqmp_pm_request_node(const u32 node, const u32 capabilities, + const u32 qos, + const enum zynqmp_pm_request_ack ack) +{ + return zynqmp_pm_invoke_fn(PM_REQUEST_NODE, node, capabilities, + qos, ack, NULL); +} + +/** + * zynqmp_pm_release_node() - Release a node + * @node: Node ID of the slave + * + * This function is used by master to inform firmware that master + * has released node. Once released, master must not use that node + * without re-request. + * + * Return: Returns status, either success or error+reason + */ +static int zynqmp_pm_release_node(const u32 node) +{ + return zynqmp_pm_invoke_fn(PM_RELEASE_NODE, node, 0, 0, 0, NULL); +} + +/** + * zynqmp_pm_set_requirement() - PM call to set requirement for PM slaves + * @node: Node ID of the slave + * @capabilities: Requested capabilities of the slave + * @qos: Quality of service (not supported) + * @ack: Flag to specify whether acknowledge is requested + * + * This API function is to be used for slaves a PU already has requested + * to change its capabilities. + * + * Return: Returns status, either success or error+reason + */ +static int zynqmp_pm_set_requirement(const u32 node, const u32 capabilities, + const u32 qos, + const enum zynqmp_pm_request_ack ack) +{ + return zynqmp_pm_invoke_fn(PM_SET_REQUIREMENT, node, capabilities, + qos, ack, NULL); +} + static const struct zynqmp_eemi_ops eemi_ops = { .get_api_version = zynqmp_pm_get_api_version, .ioctl = zynqmp_pm_ioctl, @@ -460,6 +515,9 @@ static const struct zynqmp_eemi_ops eemi_ops = { .clock_getrate = zynqmp_pm_clock_getrate, .clock_setparent = zynqmp_pm_clock_setparent, .clock_getparent = zynqmp_pm_clock_getparent, + .request_node = zynqmp_pm_request_node, + .release_node = zynqmp_pm_release_node, + .set_requirement = zynqmp_pm_set_requirement, }; /** diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h index a3ef7d6..6a1bdcb 100644 --- a/include/linux/firmware/xlnx-zynqmp.h +++ b/include/linux/firmware/xlnx-zynqmp.h @@ -32,8 +32,19 @@ /* Number of 32bits values in payload */ #define PAYLOAD_ARG_CNT 4U +#define ZYNQMP_PM_MAX_QOS 100U + +/* Node capabilities */ +#define ZYNQMP_PM_CAPABILITY_ACCESS 0x1U +#define ZYNQMP_PM_CAPABILITY_CONTEXT 0x2U +#define ZYNQMP_PM_CAPABILITY_WAKEUP 0x4U +#define ZYNQMP_PM_CAPABILITY_POWER 0x8U + enum pm_api_id { PM_GET_API_VERSION = 1, + PM_REQUEST_NODE = 13, + PM_RELEASE_NODE, + PM_SET_REQUIREMENT, PM_IOCTL = 34, PM_QUERY_DATA, PM_CLOCK_ENABLE, @@ -75,6 +86,12 @@ enum pm_query_id { PM_QID_CLOCK_GET_NUM_CLOCKS = 12, }; +enum zynqmp_pm_request_ack { + ZYNQMP_PM_REQUEST_ACK_NO = 1, + ZYNQMP_PM_REQUEST_ACK_BLOCKING, + ZYNQMP_PM_REQUEST_ACK_NON_BLOCKING, +}; + /** * struct zynqmp_pm_query_data - PM query data * @qid: query ID @@ -102,6 +119,15 @@ struct zynqmp_eemi_ops { int (*clock_getrate)(u32 clock_id, u64 *rate); int (*clock_setparent)(u32 clock_id, u32 parent_id); int (*clock_getparent)(u32 clock_id, u32 *parent_id); + int (*request_node)(const u32 node, + const u32 capabilities, + const u32 qos, + const enum zynqmp_pm_request_ack ack); + int (*release_node)(const u32 node); + int (*set_requirement)(const u32 node, + const u32 capabilities, + const u32 qos, + const enum zynqmp_pm_request_ack ack); }; #if IS_REACHABLE(CONFIG_ARCH_ZYNQMP) From patchwork Thu Aug 16 19:21:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jolly Shah X-Patchwork-Id: 10568075 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 5992913B6 for ; Thu, 16 Aug 2018 19:25:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 44E2F2B937 for ; Thu, 16 Aug 2018 19:25:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 362312B93C; Thu, 16 Aug 2018 19:25:08 +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=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE 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 467182B937 for ; Thu, 16 Aug 2018 19:25:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: 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=ahU/DeHT5Cm2gCnk95DBEz/iJKxdqajWYhTY6tReyMg=; b=XTLYVfE6j7dbG3 DSrS7n5VuYWucZe8yNqLXDZFWwbiuuYI8KUbOzLt3W9JtOLPkGBep3w4VqOcm441H0LKFKWJrriCm Zbr9WztO2EBtslvXMR+MhRU1NECS9zQBdA/iPft/KkOJ5n3YIWPrFpT5x/4tK/ygV9i39OVmmAHLJ RuQpsTg9l+qqXEA3EuqCYWUJ8Y8W34HCRakILyncU6RVrqyRYFixlulD3gwf0Q2JmmHzNHPxdVbCl /QwUkP462VUVQQSvYxVbSHw9iijzO10bWjMfjqtW2h7njc7t9kXCjxVz8IYBUhqQ6IUYthyE4G3TM nCavYwbpbBT83GB9my8A==; 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 1fqNtE-0001Hh-Qf; Thu, 16 Aug 2018 19:25:00 +0000 Received: from mail-eopbgr700047.outbound.protection.outlook.com ([40.107.70.47] helo=NAM04-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fqNqX-0000M1-VU for linux-arm-kernel@lists.infradead.org; Thu, 16 Aug 2018 19:22:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+QeUO18yvdbsruVpw+dlEcBZmWwxYMvwAtSRqC3aEY4=; b=Ax3xTPqvL6XjN9aaWC/6TK2niIsX4OgIpBQ4IBlr/Lr5Aik589n1FVtKwS1SMbc8gQaqe3JsGRbt8hTMYV+fDYlJT0ZHKzRzcUMqoDpNBS86z4QOFx+2quGBtrBnq2HphMbqO42GJcR4kvG7mHRCUpSI9Iq7C0+LS1zqPddIrWU= Received: from BL0PR02CA0042.namprd02.prod.outlook.com (2603:10b6:207:3d::19) by DM5PR0201MB3510.namprd02.prod.outlook.com (2603:10b6:4:77::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1038.25; Thu, 16 Aug 2018 19:22:01 +0000 Received: from CY1NAM02FT041.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::201) by BL0PR02CA0042.outlook.office365.com (2603:10b6:207:3d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1059.19 via Frontend Transport; Thu, 16 Aug 2018 19:22:00 +0000 Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by CY1NAM02FT041.mail.protection.outlook.com (10.152.74.156) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1059.14 via Frontend Transport; Thu, 16 Aug 2018 19:21:59 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1fqNqI-0005jv-VB; Thu, 16 Aug 2018 12:21:58 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1fqNqD-0007wo-Pq; Thu, 16 Aug 2018 12:21:53 -0700 Received: from xsj-pvapsmtp01 (smtp.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id w7GJLoMw021522; Thu, 16 Aug 2018 12:21:50 -0700 Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1fqNqA-0007vv-4t; Thu, 16 Aug 2018 12:21:50 -0700 From: Jolly Shah To: , , , , , , , , , Subject: [PATCH v2 3/3] drivers: soc: xilinx: Add ZynqMP power domain driver Date: Thu, 16 Aug 2018 12:21:44 -0700 Message-ID: <1534447304-12919-4-git-send-email-jollys@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1534447304-12919-1-git-send-email-jollys@xilinx.com> References: <1534447304-12919-1-git-send-email-jollys@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(39860400002)(346002)(136003)(376002)(2980300002)(438002)(50944005)(189003)(199004)(63266004)(106002)(8936002)(77096007)(9786002)(110136005)(54906003)(316002)(16586007)(106466001)(50226002)(50466002)(7416002)(6666003)(5660300001)(36386004)(5024004)(2201001)(14444005)(186003)(107886003)(336012)(36756003)(51416003)(6346003)(48376002)(356003)(39060400002)(26005)(305945005)(478600001)(8676002)(81156014)(81166006)(47776003)(72206003)(4326008)(7696005)(126002)(2906002)(76176011)(11346002)(486006)(446003)(2616005)(476003)(426003)(44832011)(921003)(107986001)(83996005)(2101003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR0201MB3510; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT041; 1:jWAyC+SFYohGTFydzOqih/9DspBbThKm6DGWzoBfnU+26+nSQLhZ5I351lSSUGfisYsO52ey4wBJ84Fq+h6SLOerQHm5mntVtrA35bk0Bs9pB+b17wShwD5+utwXCYCS MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5ae4c5d5-fcef-4b47-c7b9-08d603ad8a3d X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060); SRVR:DM5PR0201MB3510; X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3510; 3:pg3gzIct4gnwYNAwNK4Y7nWo7wMCcJDvdxnKbdrKVux7b0hvHJQPkjeo6GAGYJoDmMp+oFNQB8HnLHBLDT868+DKhGdFtwhOeC0SEeHXlHrKTjR6oBoLRbQyj1ku6CxXHaQUyRTMYOH9Ncr6SOFeMMDgnyEMbKCvlB2M2vCGKHm0cmVClZUNr8Ohy8Q+8BCDu5GepzmGYRhhuKkhI8+6h0ktLW3MgwJRS2VG4h2/5ysy6Z/UqzfV+X/xU6goKuQ8hLty9aqvmkHr6Y9xflK9xM4wUZfom/NbTy6v2YqjFH232d8FDqDyH03YZw9RCPgzF0tE/j0oMpDP57KEqXEXqqIegTWPR4WnwkFL/e5hoc4=; 25:+yxGinwHR1BRCL4LeM7oiXS6wzL2/Dad/T6AYM/pgxGTnsuuN4/jr5UaqssaMpXG64DMQF+NWQUn16Ppj4jfPWwA9yt4c7ZiHKhPPzEjUO+6wtCFsrhEDzsrwkvkBeRg3sW765aDcRaTtHvvryw/oXyIJpyBrWh3k8M4zW6t4F/atMu9jnHP2a5wdJn5fbkwyJzPxXTUr6262n5bf0wod6SnweaVzlNouAXed5SCBEsfAtRvL1KSthQxWGH69MSxAfaDdBFcwypqCxU6BnVkwzCsbDy0euaZrqwduQ1ftMr92AM+OY8cjyNm3mw58bhs/sFQvLtib9PadOyImLF+1Q== X-MS-TrafficTypeDiagnostic: DM5PR0201MB3510: X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3510; 31:UE3Y+Tj+Gt5jb0I+538E5svv3iGMYiFY2vC2QQXlTF3eSw1QLrOCKts6cHXa3bL+zgr5kJ/MhG9BW4CSRs0TSgUgBY61shdhtNqv7LoBBD7SSkP59/+CbTKUqXbuFLr4tR9vavlKEAd00bnN1m0Z5ti/5SgrpmyL1aaN2MtdtWz6v+gnykGBKEWCaYat70S9m8cyjGRg2LEt2fslKEF/d8HsUGHzHi7m389MAm9Oafw=; 20:qMy/VldNp67b8Sc0Spf7+96U9GqtDJ+3HPbpTB0lXNhf18FpYh7SJP6OPlGIjQ1JWpsS0EZd5zjC1Bq5O4wyIp+/MrR2MiK6pOISPmNtcao2ABeGy1pcz4PLUtBt7PeC20cKMvwKPez0Fep9GTURi0HvupdhH/5iE2oqheNgtuxL80h07EgJE+/v/k0fLFgOWRZUFWq+Skxl3eeZ+NYMBj6eYY80NEMjtFGGzkWfYm2beNo+UNNiGSul19if9TSDPjke1QDA61Wbunva8NFU0qb8b4Pb8g6bdC/HdbyaxY5PFck01tr2nCm4sRJXx9eVty05v5430NeL6eqiyAtN67T/Sxl6K2yip6lfMyqz96LzBFIUdt5bu98jQnVaP58jnvKZWUMXINU8g3378L00s0BX1WqLNuYKJAUegsiF9XGHVfy16+0BgBguXoIkm4lmYyLJw2u0qX/N53czXF4tcPM+ddFt/1RJeedzTFnvoNYmebJ4WOp5nF+9A1OVCwpD X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592)(17755550239193); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93004095)(10201501046)(3002001)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699016); SRVR:DM5PR0201MB3510; BCL:0; PCL:0; RULEID:; SRVR:DM5PR0201MB3510; X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3510; 4:pgq3Qma7muayJQUmuSMFvhvWhaurfu4pRaV/76uMgvyWZ8h2R+QJ0rajEa7pGtmLC2wRjQptqa3oauo1aOtFvPu9YTxUmtTb8XFvJspD2Nn98NaaPXeB5KQzljM8Yt++WYlpWigPFq/sO2O0IwaX7oP5XMxF8NFJKiQsvr4cjFycg2sJk9+Tn01AzjIJUZ0dWbwJcHmufpSpEREIcFf90kdc7gmzRflt7NQiJl/QKROkzSm4XgrDIKuxeCqPO29J4adtSTWgPJQALOX3QIKGCRAqexuImIIH2Sp/jUCTF+y6RSD+BR+upuYF7qJewsB2efcW1gPGbmGi7Xpt+U6uUc4G7eq5BNkX8k9rA29fCDU= X-Forefront-PRVS: 07665BE9D1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR0201MB3510; 23:nG5jTwNJkv5YpBvcSkPjynkED+IrXOhskdOdYse?= rEL6hOV5i3e1ZBAe3vr1EtedZ6zlr9byQc+n/HcUZj0Lzp881c7HpTlU2ofp6pY8E/mPHpriVm4M5LAOYZHOKQCEnfs9PP+GsNImgc7qaWwZZRw1eUXY9IaxXgeWVCQjlaE0ggzGnveRTaE6MPyvGsq7Far29Ac05dUANR5odmzIL7aPimUfwpnBWWUcDUnF01gjLLhlhEzvSZMbGTyolc/S3Jbo2uk02XxWmktEooBAL0Aa/KIWzV8C7Vqylh3+AbrBsz5WL2vZf4PJafgsZ0O2v5z+TWbgECAG5QL6QDhWgmtibefyZcnYulFVqNdn+txuddHyH1v8m8wFHDiqFTNK6VN0cTe7jX8Xun58RXxLhHYHgIcY0IQ3j2kX44SXXpLLK2LbZuSoQORBhbe7pz7NfAO2jZu7KBBnue1FkQyDwlTTS1mPEWYTksexkrjAnaizdWbsiIY3mwYoMmrMuKrusJkLkerIlElD81uoqTyDjVvHq4g6wFbjvQea6RfIHH0b54xKWzaqFQ4n9y/EPq1z1yUoUpZY7wu1IvrBJt3KzAAbr7NAzOaREFOHxiVyXr0moO9+Cw1CnHxUyzjsm0gzizJo4eZp/dy2tbXVnGZINHcP0g4BjafoLay4TizgQK2EAygGrpT0OSMCRbmWyEvILSNmQG9T4p41/UBlJ95y09KlvihbguIpv8UPewGrVZSz3YxSSsTEclcnsAeTCwuAWu2s6YWDvV+imbEtVA7V8o7RypXRYsliWpzEOTeuXlLd2SaZBdcR//grLyAuHNQLa3uRGXMIeyi/AKBCukZncoy/VRtoQWhJSrg4PAmrmHuJkACN04MLd5zMUN4jvtxErHpADWyKfR04Drdindst8R3tXLMNeRbO0vF2b5r0cNBnJRtYcNRAKndKQM38zAXQM5vfqWbkbQvw8ZDCedNbzE8u5nkNDwSQqD7cGIpACDuVR1G1nynBrfcFZ56anVVmZz+ypXJ/4fBh8Tq8kSFDonArnd7nStFjZGuCG3LTpHk84CqexanAsE9Iz4fn1t4ZVgQPmersY1v9fLU5AT8oSCUTIM/VveIjBqfaj0C1XB03zD7VzF/uXhTBUj+AcKw0xD3hi9XVlBxvvRWZvC/MLkSldrK57kSvr1b73n3EDc9OrRuJ/lp0m4Da47D+K4TBjk/9DcUYKw6G5YJmSkZ/hMljao24byL4JJFo+4rCQb8Cv3VhudR7JWV7rCvv5NNKM6reCxec+ZV5mjEyrCS7ZB3Pi+qDkL6e5ra8YTplPp9SF3AnUNAvkaGhmYY3PxK44GLkbFuUKnxmAwZOyQu6zsg== X-Microsoft-Antispam-Message-Info: 7DZZQe78xIbwhGxwMhNt25vI10ICGfaZ7gCWA7b45VPO0nqYWBBLo1K2/u0qu4l0JtjG+k+/XoZtkkEYD/xdXlual966iMd3fjVvdIb3Q3dzsr4TkhfEOYBQ4/9Ysn8Wws/u6P2WfnD4aM/sXcOE50ojdUHopE/REsb11Ddfy26vyMXPLhuKOYm7G7yl6/WQ+ZPUCOZc0jmVyBhpVmUyYZXQQZJ35U845YyiiGJ/nfejmWt63OIepH4kbzX0R4MfhU0mOIbqPIX311mQVQWnklgShDkLGWwInJd3itYKAYJva5KH5YchI3oIDD0oHr03YO83CSCUxywppmxJ8bdGvU2Uwp3YNJNtOb2E51ar5FE= X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3510; 6:o9f9fvK58HU8ie2GZyvbxrag1z5k4oepN2FCd5kL8qvApxXtAhEuV/Y4gL8KAkz6xZbowY6drJ3BBnczauzAkoyk2w0CtW6cx1pglL6BpuVH13UarszQVD9S8njlnfII08GBpO+RkTFpuJJ68kaTejh56lOjRQlugX26kz9bOKwYt5jN4B8gLaSA+EEzz7cvYWdFcgteIl3jSB7Tlzi3Sor+EqyUPYz/dP+xHI7j5C8Xkqr4POLqVVc+34O1Xkwev/Wm2FF0UAamIWKr+RmcDeLo1LJghKcu6ZuxV7VcuXe7lwRFP0d2xEBsq15htxQe1tN25Gk/IoxiLDmSmzqQIQkT4mxnJ7r6f+q789UJe/z6T0LYlXUB5/vMq+9leqkdx0RjQl6hRoMhaGL8+dk5S8S4AcY+2LNC6hxjId9Ty7QbcbbVWM7RtyvrvSkr68egaV+Zzqf6gd5LUwPo3hNP8A==; 5:aVEJNUGNigaZ5jT5kLI89XDXLMwgFoo0VYv+5OUTN3v7+Zxz3hmqfj620O+i846m9LX3tDCyzr0570JP2aREkwyLe7koM0NhB/dcnwHpGX0Co5F5Kw5IHzYYM110uZDu+tlnka9l74I1C4dyXOs+CMmnvSaFSPBA+0c7uPaUhoI=; 7:bYUEL7vmq1VI7iCUypJ22YBpcJS/b55iANZTF6EVC2s1Io+3OpkmxgcM5PnYkulsfVcZXutb/H5QfistGgsIb1AKKzg9eBbZlwfVcOp1EB289RZi5JIxUbgn682X5NFY+3uUg3R9gORqb4XIN7IDxZsTz0ksyOmGLV7JmMqRr+repJZl9+crBzY6eZcV8vpy4ciKUxJr4B7A8Fskdn+RvECJtmHBqrQbucksRnr8kNR3EixasMrfLMTLLeXpRUMS SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2018 19:21:59.5048 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5ae4c5d5-fcef-4b47-c7b9-08d603ad8a3d X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR0201MB3510 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180816_122214_108644_5702A36A X-CRM114-Status: GOOD ( 15.98 ) 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: devicetree@vger.kernel.org, Rajan Vaja , linux-kernel@vger.kernel.org, Jolly Shah , rajanv@xilinx.com, Jolly Shah , 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 From: Jolly Shah The zynqmp-genpd driver communicates the usage requirements for logical power domains / devices to the platform FW. FW is responsible for choosing appropriate power states, taking Linux' usage information into account. Signed-off-by: Rajan Vaja Signed-off-by: Jolly Shah --- drivers/soc/xilinx/Kconfig | 9 + drivers/soc/xilinx/Makefile | 2 + drivers/soc/xilinx/zynqmp_pm_domains.c | 352 +++++++++++++++++++++++++++++++++ 3 files changed, 363 insertions(+) create mode 100644 drivers/soc/xilinx/zynqmp_pm_domains.c diff --git a/drivers/soc/xilinx/Kconfig b/drivers/soc/xilinx/Kconfig index 687c8f3..964b205 100644 --- a/drivers/soc/xilinx/Kconfig +++ b/drivers/soc/xilinx/Kconfig @@ -17,4 +17,13 @@ config XILINX_VCU To compile this driver as a module, choose M here: the module will be called xlnx_vcu. +config ZYNQMP_PM_DOMAINS + bool "Enable Zynq MPSoC generic PM domains" + default y + depends on PM && ARCH_ZYNQMP + select PM_GENERIC_DOMAINS + help + Say yes to enable device power management through PM domains + If in doubt, say N. + endmenu diff --git a/drivers/soc/xilinx/Makefile b/drivers/soc/xilinx/Makefile index dee8fd5..f468d1b 100644 --- a/drivers/soc/xilinx/Makefile +++ b/drivers/soc/xilinx/Makefile @@ -1,2 +1,4 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_XILINX_VCU) += xlnx_vcu.o + +obj-$(CONFIG_ZYNQMP_PM_DOMAINS) += zynqmp_pm_domains.o diff --git a/drivers/soc/xilinx/zynqmp_pm_domains.c b/drivers/soc/xilinx/zynqmp_pm_domains.c new file mode 100644 index 0000000..aab462c --- /dev/null +++ b/drivers/soc/xilinx/zynqmp_pm_domains.c @@ -0,0 +1,352 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * ZynqMP Generic PM domain support + * + * Copyright (C) 2015-2018 Xilinx, Inc. + * + * Davorin Mista + * Jolly Shah + * Rajan Vaja + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +/* Flag stating if PM nodes mapped to the PM domain has been requested */ +#define ZYNQMP_PM_DOMAIN_REQUESTED BIT(0) + +/** + * struct zynqmp_pm_domain - Wrapper around struct generic_pm_domain + * @gpd: Generic power domain + * @dev_list: List of devices belong to power domain + * @node_ids: PM node IDs corresponding to device(s) inside PM domain + * @node_id_num: Number of PM node IDs + * @flags: ZynqMP PM domain flags + */ +struct zynqmp_pm_domain { + struct generic_pm_domain gpd; + struct list_head dev_list; + u32 *node_ids; + int node_id_num; + u8 flags; +}; + +/* + * struct zynqmp_domain_device - Device node present in power domain + * @dev: Device + * &list: List member for the devices in domain list + */ +struct zynqmp_domain_device { + struct device *dev; + struct list_head list; +}; + +/** + * zynqmp_gpd_is_active_wakeup_path() - Check if device is in wakeup source + * path + * @dev: Device to check for wakeup source path + * @not_used: Data member (not required) + * + * This function is checks device's child hierarchy and checks if any device is + * set as wakeup source. + * + * Return: 1 if device is in wakeup source path else 0 + */ +static int zynqmp_gpd_is_active_wakeup_path(struct device *dev, void *not_used) +{ + int may_wakeup; + + may_wakeup = device_may_wakeup(dev); + if (may_wakeup) + return may_wakeup; + + return device_for_each_child(dev, NULL, + zynqmp_gpd_is_active_wakeup_path); +} + +/** + * zynqmp_gpd_power_on() - Power on PM domain + * @domain: Generic PM domain + * + * This function is called before devices inside a PM domain are resumed, to + * power on PM domain. + * + * Return: 0 on success, error code otherwise + */ +static int zynqmp_gpd_power_on(struct generic_pm_domain *domain) +{ + int i, ret; + struct zynqmp_pm_domain *pd; + const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops(); + + if (!eemi_ops || !eemi_ops->set_requirement) + return -ENXIO; + + pd = container_of(domain, struct zynqmp_pm_domain, gpd); + for (i = 0; i < pd->node_id_num; i++) { + ret = eemi_ops->set_requirement(pd->node_ids[i], + ZYNQMP_PM_CAPABILITY_ACCESS, + ZYNQMP_PM_MAX_QOS, + ZYNQMP_PM_REQUEST_ACK_BLOCKING); + if (ret) { + pr_err("%s() %s set requirement for node %d failed: %d\n", + __func__, domain->name, pd->node_ids[i], ret); + return ret; + } + } + + pr_debug("%s() Powered on %s domain\n", __func__, domain->name); + + return 0; +} + +/** + * zynqmp_gpd_power_off() - Power off PM domain + * @domain: Generic PM domain + * + * This function is called after devices inside a PM domain are suspended, to + * power off PM domain. + * + * Return: 0 on success, error code otherwise + */ +static int zynqmp_gpd_power_off(struct generic_pm_domain *domain) +{ + int i, ret; + struct zynqmp_pm_domain *pd; + struct zynqmp_domain_device *zdev, *tmp; + u32 capabilities = 0; + bool may_wakeup; + const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops(); + + if (!eemi_ops || !eemi_ops->set_requirement) + return -ENXIO; + + pd = container_of(domain, struct zynqmp_pm_domain, gpd); + + /* If domain is already released there is nothing to be done */ + if (!(pd->flags & ZYNQMP_PM_DOMAIN_REQUESTED)) + return 0; + + list_for_each_entry_safe(zdev, tmp, &pd->dev_list, list) { + /* If device is in wakeup path, set capability to WAKEUP */ + may_wakeup = zynqmp_gpd_is_active_wakeup_path(zdev->dev, NULL); + if (may_wakeup) { + dev_dbg(zdev->dev, "device is in wakeup path in %s\n", + domain->name); + capabilities = ZYNQMP_PM_CAPABILITY_WAKEUP; + break; + } + } + + for (i = pd->node_id_num - 1; i >= 0; i--) { + ret = eemi_ops->set_requirement(pd->node_ids[i], + capabilities, 0, + ZYNQMP_PM_REQUEST_ACK_NO); + /** + * If powering down of any node inside this domain fails, + * report and return the error + */ + if (ret) { + pr_err("%s() %s set requirement for node %d failed: %d\n", + __func__, domain->name, pd->node_ids[i], ret); + return ret; + } + } + + pr_debug("%s() Powered off %s domain\n", __func__, domain->name); + + return 0; +} + +/** + * zynqmp_gpd_attach_dev() - Attach device to the PM domain + * @domain: Generic PM domain + * @dev: Device to attach + * + * Return: 0 on success, error code otherwise + */ +static int zynqmp_gpd_attach_dev(struct generic_pm_domain *domain, + struct device *dev) +{ + int i, ret; + struct zynqmp_pm_domain *pd; + struct zynqmp_domain_device *zdev; + const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops(); + + if (!eemi_ops || !eemi_ops->request_node) + return -ENXIO; + + pd = container_of(domain, struct zynqmp_pm_domain, gpd); + + zdev = devm_kzalloc(dev, sizeof(*zdev), GFP_KERNEL); + if (!zdev) + return -ENOMEM; + + zdev->dev = dev; + list_add(&zdev->list, &pd->dev_list); + + /* If this is not the first device to attach there is nothing to do */ + if (domain->device_count) + return 0; + + for (i = 0; i < pd->node_id_num; i++) { + ret = eemi_ops->request_node(pd->node_ids[i], 0, 0, + ZYNQMP_PM_REQUEST_ACK_BLOCKING); + /* If requesting a node fails print and return the error */ + if (ret) { + pr_err("%s() %s request failed for node %d: %d\n", + __func__, domain->name, pd->node_ids[i], ret); + list_del(&zdev->list); + zdev->dev = NULL; + devm_kfree(dev, zdev); + return ret; + } + } + + pd->flags |= ZYNQMP_PM_DOMAIN_REQUESTED; + + pr_debug("%s() %s attached to %s domain\n", __func__, + dev_name(dev), domain->name); + + return 0; +} + +/** + * zynqmp_gpd_detach_dev() - Detach device from the PM domain + * @domain: Generic PM domain + * @dev: Device to detach + */ +static void zynqmp_gpd_detach_dev(struct generic_pm_domain *domain, + struct device *dev) +{ + int i, ret; + struct zynqmp_pm_domain *pd; + struct zynqmp_domain_device *zdev, *tmp; + const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops(); + + if (!eemi_ops || !eemi_ops->release_node) + return; + + pd = container_of(domain, struct zynqmp_pm_domain, gpd); + + list_for_each_entry_safe(zdev, tmp, &pd->dev_list, list) + if (zdev->dev == dev) { + list_del(&zdev->list); + zdev->dev = NULL; + devm_kfree(dev, zdev); + } + + /* If this is not the last device to detach there is nothing to do */ + if (domain->device_count) + return; + + for (i = 0; i < pd->node_id_num; i++) { + ret = eemi_ops->release_node(pd->node_ids[i]); + /* If releasing a node fails print the error and return */ + if (ret) { + pr_err("%s() %s release failed for node %d: %d\n", + __func__, domain->name, pd->node_ids[i], ret); + return; + } + } + + pd->flags &= ~ZYNQMP_PM_DOMAIN_REQUESTED; + + pr_debug("%s() %s detached from %s domain\n", __func__, + dev_name(dev), domain->name); +} + +/** + * zynqmp_gpd_probe() - Initialize ZynqMP specific PM domains + * @pdev: Platform device pointer + * + * Description: This function populates struct zynqmp_pm_domain for each PM + * domain and initalizes generic PM domain. If the "pd-id" DT property + * of a certain domain is missing or invalid, that domain will be skipped. + * + * Return: 0 on success, error code otherwise + */ +static int zynqmp_gpd_probe(struct platform_device *pdev) +{ + int ret; + struct device_node *child_err, *child, *np = pdev->dev.of_node; + + for_each_child_of_node(np, child) { + struct zynqmp_pm_domain *pd; + + pd = devm_kzalloc(&pdev->dev, sizeof(*pd), GFP_KERNEL); + if (!pd) { + ret = -ENOMEM; + goto err_cleanup; + } + + ret = of_property_count_u32_elems(child, "pd-id"); + if (ret <= 0) + goto err_cleanup; + + pd->node_id_num = ret; + pd->node_ids = devm_kcalloc(&pdev->dev, ret, + sizeof(*pd->node_ids), GFP_KERNEL); + if (!pd->node_ids) { + ret = -ENOMEM; + goto err_cleanup; + } + + ret = of_property_read_u32_array(child, "pd-id", pd->node_ids, + pd->node_id_num); + if (ret) + goto err_cleanup; + + pd->gpd.name = kstrdup(child->name, GFP_KERNEL); + pd->gpd.power_off = zynqmp_gpd_power_off; + pd->gpd.power_on = zynqmp_gpd_power_on; + pd->gpd.attach_dev = zynqmp_gpd_attach_dev; + pd->gpd.detach_dev = zynqmp_gpd_detach_dev; + + /* Mark all PM domains as initially powered off */ + pm_genpd_init(&pd->gpd, NULL, true); + + ret = of_genpd_add_provider_simple(child, &pd->gpd); + if (ret) + goto err_cleanup; + + INIT_LIST_HEAD(&pd->dev_list); + + pr_debug("%s() %s PM domain registered\n", + __func__, child->name); + } + + return 0; + +err_cleanup: + child_err = child; + for_each_child_of_node(np, child) { + if (child == child_err) + break; + of_genpd_del_provider(child); + } + + return ret; +} + +static const struct of_device_id zynqmp_power_domain_of_match[] = { + {.compatible = "xlnx,zynqmp-power-controller"}, + {}, +}; +MODULE_DEVICE_TABLE(of, zynqmp_power_domain_of_match); + +static struct platform_driver zynqmp_power_domain_driver = { + .driver = { + .name = "zynqmp_power_controller", + .of_match_table = zynqmp_power_domain_of_match, + }, + .probe = zynqmp_gpd_probe, +}; +module_platform_driver(zynqmp_power_domain_driver);