summaryrefslogtreecommitdiffstats
path: root/arm64-ZynqMP-firmware-clock-drivers-core.patch
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@fedoraproject.org>2018-10-30 11:51:07 -0500
committerJustin M. Forbes <jforbes@fedoraproject.org>2018-10-30 11:51:07 -0500
commit968d59bf949ed86f4cd74809a62ec826c39ed58d (patch)
tree74e60901c12b3e25388e2540be17c33448c24648 /arm64-ZynqMP-firmware-clock-drivers-core.patch
parentcea0c127b7dac6dc15fbf5e92949a689cd31efff (diff)
downloadkernel-968d59bf949ed86f4cd74809a62ec826c39ed58d.tar.gz
kernel-968d59bf949ed86f4cd74809a62ec826c39ed58d.tar.xz
kernel-968d59bf949ed86f4cd74809a62ec826c39ed58d.zip
Linux v4.19-11706-g11743c56785c
Diffstat (limited to 'arm64-ZynqMP-firmware-clock-drivers-core.patch')
-rw-r--r--arm64-ZynqMP-firmware-clock-drivers-core.patch5481
1 files changed, 0 insertions, 5481 deletions
diff --git a/arm64-ZynqMP-firmware-clock-drivers-core.patch b/arm64-ZynqMP-firmware-clock-drivers-core.patch
deleted file mode 100644
index f8824e505..000000000
--- a/arm64-ZynqMP-firmware-clock-drivers-core.patch
+++ /dev/null
@@ -1,5481 +0,0 @@
-From patchwork Fri Aug 3 17:53:18 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555409
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 E37DA14E2
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:05:44 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CCD992BF36
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:05:44 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id BCB7D2C983; Fri, 3 Aug 2018 18:05:44 +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 autolearn=unavailable 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 4BEA42BF36
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:05:44 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=bombadil.20170209; h=Sender:
- Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
- List-Archive:List-Unsubscribe:List-Id:MIME-Version: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=B1hjjA201jo1YdGbsOpjw0UiKXZd8LHCyv5gEinae3A=; b=JzJJ0HtnIRF/NZ
- L6ZUpLud5rO+4LXDAKFBfxxZxIEx29Crcyf2rm5rZk39dlBtKcyRjFAl+h2s1YXO/RCMsD2EHTAaq
- rSd2WibM0kXaX5RUavH7s8nevfSMOOtI3eywfYv3xiwcyETOtyuZvL1SAbjvwXANU5Zthl9XhY/RH
- X7lmEz/2CPiZPmbTfF3ipFPz8XNYsOkkbJHxPUqENqKsvishGL9yjL2IcrbdLxtV/YziN3tgDOG1r
- pAUCA0lCAxd8lFYWWXeegSYudxCDbcJkWnCmVRRFTX1LgkyTxWYuHD4K1nChJmKL4d+eJICrpQ6Tz
- 4VjXbIALS6c0/T7BVi/w==;
-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 1fleSM-0001Wr-5a; Fri, 03 Aug 2018 18:05:42 +0000
-Received: from mail-bn3nam01on0622.outbound.protection.outlook.com
- ([2a01:111:f400:fe41::622]
- helo=NAM01-BN3-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleH9-0002l4-Rc
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:09 +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=YJzB+KnyFKhLEmWrAsNYQ8EP3hzk/DxRcJ5zh/8+xcg=;
- b=mXk+Td1iuOAk1N7atBo6MpYVk0W+0zueHhy8hrpuFqra38bJ07s0AqfBfUIiz0ewCxWrwcS7fxXPLQ0kM9e2zOoG6lADpTRjFPvI1dJGw/kFMKyzfwqqFECFDHirr1wdOKJLICE9vcBkSBtz0gJ3N3mzus7wLUvGI2ro2jGBRYU=
-Received: from BL0PR02CA0041.namprd02.prod.outlook.com (2603:10b6:207:3d::18)
- by DM6PR02MB4460.namprd02.prod.outlook.com (2603:10b6:5:29::29) with
- Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.14; Fri, 3 Aug
- 2018 17:53:54 +0000
-Received: from CY1NAM02FT063.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e45::200) by BL0PR02CA0041.outlook.office365.com
- (2603:10b6:207:3d::18) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.14 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:54 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- CY1NAM02FT063.mail.protection.outlook.com (10.152.75.161) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:52 +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 <jolly.shah@xilinx.com>)
- id 1fleGu-0004fj-Fr; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGp-0007cn-CX; Fri, 03 Aug 2018 10:53:47 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-63; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 01/11] dt-bindings: firmware: Add bindings for ZynqMP
- firmware
-Date: Fri, 3 Aug 2018 10:53:18 -0700
-Message-ID: <1533318808-10781-2-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(376002)(136003)(346002)(396003)(2980300002)(438002)(199004)(189003)(6666003)(7416002)(8936002)(9786002)(305945005)(50226002)(2906002)(5660300001)(478600001)(2201001)(8676002)(72206003)(47776003)(81166006)(106466001)(81156014)(63266004)(4326008)(39060400002)(446003)(476003)(36756003)(44832011)(186003)(11346002)(2616005)(16586007)(50466002)(316002)(126002)(76176011)(106002)(426003)(107886003)(51416003)(356003)(336012)(26005)(36386004)(7696005)(486006)(77096007)(54906003)(110136005)(48376002)(921003)(107986001)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR02MB4460; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; A:1; MX:1;
-X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT063;
- 1:Vdzjpv2tvWIIUyrLnkjwnYINNMP3uv4BE92NdjxR4au3XiR+6v9YOb2cNSmKwFOfDlp44j7JAnh5gr2TNWQ3QWtw5LpTaNkvNDohFa1RJOin7FxPjQeoTftlCIfc+xem
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: 55c5c80a-6d3d-40b7-469a-08d5f96a1405
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(5600074)(711020)(4608076)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060);
- SRVR:DM6PR02MB4460;
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4460;
- 3:QVpC+lNzN99yobD9G43Mn0AfdB7Z+sXIy7KWpdgAjCNrVLU59aRaJ27u0IL4u/ob1tXeZ8Q6YDljvYJzZr/QB//DbqNHLzTIgrNk1foBZpm/BED03r1hL/qVbwSWDZSucI0B2YzZFZn9m7+6q7AlVNPhr/y+icReaa99F2VRBz5pjPl+FH5Wk8BK7/aIHcxs8fd37rXLtvvulKMFOGL+VJoAuAfIcSoT+HtLtxdXXfLK6c3SLw0NmYApKnsROCOgmqYmIqQztAE6tiTr1w2WpeW3gl6O0Uqa2HhXHSw5mdG/BwQpU2dVQb9nD6LkFp1jWg52tmlOM1yU+btrEki4AVAhg3fdXKSUCYL2RWamu88=;
- 25:rgYpWX0/dSzVHZvKg140liiW4U+Qa+D2+xa0Jkl+PYHY5H9pcnMNhBWeok2iDPD8im8MuUj3z5e3yAVU9VwtlpWRC7fRZQLdBT+qVNwwdDgSW9QpUrNeRFmM2sqKhYgKnA7WmIGQvj3TkvJ0w93Jni2B9yC1mldxzLTUcIAhjPnz8nQ+TZzmqC2BOUe8OTvhCU2y3Pc/h9njzkfyL6D7Qsu14NH+JedjYopigSKS/xG0PyJQd7ZAn/1Ms7DTouzdvzXqheFZ+UctUpZ04nKHXVXmmjsMznrfH7xi5To7HEj31eQKcB49AfFuG0G//m7wYpphnO4Pe1bnfw13juDKOg==
-X-MS-TrafficTypeDiagnostic: DM6PR02MB4460:
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4460;
- 31:5QXyfZgC6dyPMbtX4xLjI5dg0arfqz7mDlfBTebhwECZdXkOoE9oz9ZFO8JNXPDtlWKP+E7zlrQ9QsO8Ix9OWawqeq1onbCOgxXFCGGEJ2jpuUNm3JYAcvQ8vRVCwvUOZ/w0KPNg/DQUyoqgFMj6OTqa2EtYAncZK4r2xM/Er3Kzwa4rubwAlTuFYgBFgLM+s/r4M8yvSFW02aCOrb5KrysxKRRJ9EF3k0hJ3kfjZwo=;
- 20:MJre6KRcn3zdHeQc3u08Esx3Alc56RP2k+/eQaMhecAP0OPICJV1s73MfZS9uVFuohTbPoQ637Ut2ukGSi+m7FBl7PGZxp2XnIPVhWP+4kah5fzUNQ50NJkS6A6g/hIjRoPeTOW0TlT7K4qYykeqvU7TBJdE0X78R9xM3CFdI9kNs2ODCfeU+tA7XbHqZ2eoGLcloHkw8iRmAxBs8vxD3WjD+w3sO6gUCrj9IssoyTziQ4A90FvAjzCTKtDnmImSbUyMOBeM2GnGcdwnuHB7G1Etzk/P/OrHPnnDQYemRBtPUg8dzqLBkaakGjHnBxKYhgT2D2Uk3JuyS5Zh1fyMkJ+FlmnI9PRCcqX4TJytOevtE672HonWL2M6y0awpv6ly8Rg71adr1qYaaQlJYGxADxaE4d/9cksTLabmaL0Vo2whoudSEYOLKFRD653UtYflL6yk5qPWpRtjYc72oNMQN6E0efEQyCi08psk46fjV/RuVkJgV0Y62S5tFJ43vtQ
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <DM6PR02MB4460BA8A041C22C0F51BB5D5B8230@DM6PR02MB4460.namprd02.prod.outlook.com>
-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)(93006095)(93004095)(10201501046)(3231311)(944501410)(52105095)(3002001)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011)(7699016);
- SRVR:DM6PR02MB4460; BCL:0; PCL:0; RULEID:; SRVR:DM6PR02MB4460;
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4460;
- 4:r2OWd2cou5EkPqEuZDe4080TVw361TX3MEsXCN8iixg8OEdN0F/J5W8b6P54ahgUgyqB3TIN7is2VLxmAGA6rTHnU7FBnTdEMGv6WcU6/GXk3/qZNNmiT+4UcE4woeghLYdPfEPi07t9E58S+RM7D2kIsb4Cllc/iSpxIglyADFUywSE4jpnUEFSY54mS9yymuvfhJL83R7/uPNzP5M+HPbrWrJ6dOH3un6W6eNi1zAnwWQdFpBg0O7LXR/AWmU8+3J6YRUO60L/frBjBkkrFHgi4h4zkQGCI615NBbiDsd/YGHy8SbnvpA1golBRbiU
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR02MB4460;
- 23:RXKJvjhp8K5OZ1WAT+aHnT5SGHvqgBxUS9V94AdVC?=
- Nfjq5XJ6hDGFX3kstbveK0Beej+qmVhFVdwF0oPete6MDRjKQ36JPIT/AJo5XNw9EltFbg4GD0HELBNteV0/TOYKg9A3oGeJKh3pIQ/Q0caNb2lJ82oyILJ+6KBRtmqKYApp5Uhb0SgNFn17IgsA+FYBDTcYhv6dfvAi6F6cAjp/wHqjcBBNzkpWv/aMv6TmvQR4P11eFjiUXzN+IVB8aHcYOf6pLzEc+Qhxk8T0XecJ6uGU7BEniOTkFAXRZcXGVVY8g4jBWahCqSxzOUrzgOLh/d4UddgdM5U5K7HEximnWX0F6AS/x11iVC6HP4zmQBZWJBFzjougEnnaEJVXxZ/xUXPxM5prk6EJ6gc1OoCBJhTjorDx6dBv1Y/WdFAiNDcx8KXG+rIJPEcGPZHW9B63pWhzrfoQ9cVyFHlfj8OH7NKqmJiQUd1V7YAsIRdGwVSI2ou2mefBZ27nVd+ZQ8ezl5GQWf9BCwxo6INC4gZTtuVunVRup3pz/4hloa82gfmQ+IjlNgoNqR4JuOGvGpgIF5ocys3Mkj9XoWNf4afZJWlQq791/aC/tumlTBISQsnYR8lT9WlSxEAzWH5AoDa7oT7g0vEpj2MbgOOzHJNFh5NSEQqczobMZu0MYEjG5qwlmCIfNvA5E0nmad2A+axEfLJAkE50G+YjgaqfGKw40lPtlB20Ebkrv3F28sf/Kg/DH+rdqi7Gn9KZgnw5cSRhSK5RXE4iBYHz8LYooC5ts3hceC9hnQ/br3Qsp2HJBTPRKq+/gmEPIQjS0/te4omY/16hI5UfAK2Fwwsu9wOTXsA8b+3e7eUQwdPGH5rBFR5ie2iLP66lFv2kFe6cBa3BvAFA9tPztMUnPyGP1tYrkuG1vDe5dS2TLDC7TqqRN5EjGnxKHkHNWL1YCgRJPXBr++l94c/88N3i2Ebcllr6GC+FB+qtR6MeS67N54SSXt3OFxu8W76SmU/Fx3KWXrxuG//zYhepznTosMzFwsWrfKHXKXVKAZhNrrXmKs/MeOk2YT0S0wKhKTYmCjbF7tI9VK28y2b28VI9UgZHl2aoxJWA/gz4UByGwCvAacd6DOze3QxHVEA/GCY3pT/5CA6jin9CADfJ3pY9KTvMXntCp4oc3046LEFLJYGSl222SwkCEoVvnl8dmCmXgb+l1awpFfj4ty6s1M+7rmvbm2p+WzdgTycbTRS0XldYsKP560=
-X-Microsoft-Antispam-Message-Info:
- PWc+I1ZimgKrwPFXiHJa/fj+Fkwcsd457dSYLaqSVJ5svsHJBjDvDz5UD9RxUm1EajkLP1WWKszqeKX2oJqhSnybQyGptPSb9U2htHcKGUYT9ePgYE4G1BRyfvOBDU5CsydyeBmIDTwG2RMM7TIzdQF4cLJ0qO3yPfu73/b4jB4GrgnolannhDM9Zm20B6uy3NEXjDp6d5n8XNFg0k40ES/HfCtqx0CkC78ltS+jczOZDt7720OGFpxL7dMbitk85v/FzE7940+NhmEt1juUKcKJl7us1aYOLZunW2XATRmATPfvD9w8ogmJVsFcbzxmxm8nuPosP5Ntv/+qhJOCH8ZB8aVWSXBikKjvFNZQitY=
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4460;
- 6:VHBxA6b+iPCQj7btQgmu88Ma0Rn/kRxYjXk8M6wv/oOJvVeOQynuZUZETv9i2KcHvc3wQA55q5BJNHNkkhcM1ro+RLKbmOsbvbL29MP4rk3AzaH3PjmGa/DzwT0v2lkiqjCo6S4p7ShvUsYfQQcWFAf1W7Xiy+gdKyTc5XINUR0b+plwabAV5FHB7Ff6nu8xOe7NPk/qyfcaoWlrY0De4HeyUrdJFqbQ0VisR7F9Ia7+APkA5vWL98yTa06Qb0jVBf6mYV0KVbOiYCH6XUFzOhbP+xmYW9aILzZkd9fuprFdNLOwp5A3Uq54GeNS1mSzGXzsctZXCTtBV+YybC5vfmSY7P6inExoalDN5mYqz/zuYq9ab2sfwSn9cJoPPOiLUsBI85+L28o2hCwWoGH9chclyA0fbJ651sICCODBSsNiAowo2dsO+m9qOk0x2KzSsq4Qn8iLP9OKekaFSfNvOg==;
- 5:A4w4g/McXH1IK9/H+I+hFnPC7PqTWdIEYUKeeDqV8tdnS73RObxsTXsaQtb5sNbdq0+FymsmpMO+Dlj+KLuWk0hNWeccqH45coI+VCkimvrfoNr3tVNTW7YlNC68TKGVZv7icxewUd/RHIVVMxUtvTfzsMmGvUvo5I1leE1jIL4=;
- 7:T1q2oGp7WDec0EgENmQP3yaoRg+mewYI2OUoWdFfY9DGXAGcK2+WjdxfKYcbAVKaJ2yVb1U5NACbS1jB5NOM9JxI78KDFR7UiDfow0UxxuCX9ku10OmuUHMWOUGOUxV1vYogQ5d592LSwcSgDwuTHVz8S+lri1MkxW0Zx4ZRzBgTOGKgBm4UQcddq4bqYI8zGNCOzXtcT82Ote3iVj0ARJbC1AMNgjLv6u6lInDb+2YYNREwCsOvQ8vTqHgaRpnS
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:52.9907 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 55c5c80a-6d3d-40b7-469a-08d5f96a1405
-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: DM6PR02MB4460
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105408_040914_83BEDE27
-X-CRM114-Status: GOOD ( 10.27 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-Add documentation to describe Xilinx ZynqMP firmware driver
-bindings. Firmware driver provides an interface to firmware
-APIs. Interface APIs can be used by any driver to communicate
-to PMUFW (Platform Management Unit).
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
-Reviewed-by: Rob Herring <robh@kernel.org>
----
- .../firmware/xilinx/xlnx,zynqmp-firmware.txt | 29 ++++++++++++++++++++++
- 1 file changed, 29 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
-
-diff --git a/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
-new file mode 100644
-index 0000000..1b431d9
---- /dev/null
-+++ b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
-@@ -0,0 +1,29 @@
-+-----------------------------------------------------------------
-+Device Tree Bindings for the Xilinx Zynq MPSoC Firmware Interface
-+-----------------------------------------------------------------
-+
-+The zynqmp-firmware node describes the interface to platform firmware.
-+ZynqMP has an interface to communicate with secure firmware. Firmware
-+driver provides an interface to firmware APIs. Interface APIs can be
-+used by any driver to communicate to PMUFW(Platform Management Unit).
-+These requests include clock management, pin control, device control,
-+power management service, FPGA service and other platform management
-+services.
-+
-+Required properties:
-+ - compatible: Must contain: "xlnx,zynqmp-firmware"
-+ - method: The method of calling the PM-API firmware layer.
-+ Permitted values are:
-+ - "smc" : SMC #0, following the SMCCC
-+ - "hvc" : HVC #0, following the SMCCC
-+
-+-------
-+Example
-+-------
-+
-+firmware {
-+ zynqmp_firmware: zynqmp-firmware {
-+ compatible = "xlnx,zynqmp-firmware";
-+ method = "smc";
-+ };
-+};
-
-From patchwork Fri Aug 3 17:53:19 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555401
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 7750E15E9
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:55:17 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6163D2C91B
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:55:17 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id 553D32C92A; Fri, 3 Aug 2018 17:55: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=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00,
- DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI autolearn=unavailable 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 766AA2C91B
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:55: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: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=7mCjWnQwC2Z85YWVZkbTmPmS3NfnsqjkMkSNqvoFRSU=; b=XS5VQkVqSGz7ko
- o5vwgp6kjHfCbYwqJxwl91v0KTZ5RXJCKF2O7GiBX6fjnIiEUcexlA1x6Xgqj2NPeP/eN2wVyoZuL
- r/kSjecGWh5Htb3yNccczZW8q468o9835UaaVMG4PZsue4SdQhhZ9L+e6Uo/gn7clJbIW7Y12xQvd
- 6LARryt/HldiegLIvlhCyDTTEmhzEu5iB28bm0K8tm91nsxfqO0qMPWpTE6hKK0Avi20uF8eFHJpA
- 4+xywFxUhWeaIC3QKpXrgvIPpX3VISfaOm1rjBE8smraokQO+mLBtJWB/pnj4oByMkp0BGsSsytfK
- oUSBXc/6zamEiFxGMMNA==;
-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 1fleIC-00045h-4B; Fri, 03 Aug 2018 17:55:12 +0000
-Received: from mail-dm3nam03on0603.outbound.protection.outlook.com
- ([2a01:111:f400:fe49::603]
- helo=NAM03-DM3-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleHB-0002lG-2q
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54: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=c6Tqd00q99GCo7Zqz6V0mcAdefcyuAndIi1uNYaDR7M=;
- b=thQ4eY3QXuVtmncr+GYIZmI4lOHnODT6naiqyNafFJmLDttEFLN62PlzG2b/YiKknIuUFE9wIE1+FdGbIJYn/WLxMg7HDo3IZi/q1VP4jScfx10CysvJTgnF0QQ/4BSK4G64gQLw0HCDs2YT2g9VfwNsuAQbLvhqmq+vHOZ+X/o=
-Received: from MWHPR0201CA0053.namprd02.prod.outlook.com
- (2603:10b6:301:73::30) by BL0PR02MB4452.namprd02.prod.outlook.com
- (2603:10b6:208:45::29) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.15; Fri, 3 Aug
- 2018 17:53:54 +0000
-Received: from CY1NAM02FT056.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e45::209) by MWHPR0201CA0053.outlook.office365.com
- (2603:10b6:301:73::30) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.15 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:53 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- CY1NAM02FT056.mail.protection.outlook.com (10.152.74.160) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:52 +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 <jolly.shah@xilinx.com>)
- id 1fleGt-0004fd-Vc; Fri, 03 Aug 2018 10:53:51 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGo-0007cn-SJ; Fri, 03 Aug 2018 10:53:46 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-8F; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 02/11] firmware: xilinx: Add Zynqmp firmware driver
-Date: Fri, 3 Aug 2018 10:53:19 -0700
-Message-ID: <1533318808-10781-3-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(346002)(39860400002)(376002)(396003)(136003)(2980300002)(438002)(189003)(199004)(81156014)(8676002)(6666003)(50466002)(81166006)(5660300001)(2201001)(36386004)(575784001)(48376002)(39060400002)(356003)(4326008)(107886003)(305945005)(63266004)(7416002)(44832011)(106466001)(76176011)(106002)(9786002)(14444005)(16586007)(50226002)(36756003)(77096007)(47776003)(8936002)(316002)(2906002)(26005)(426003)(11346002)(446003)(478600001)(486006)(51416003)(7696005)(336012)(110136005)(54906003)(476003)(126002)(2616005)(72206003)(186003)(921003)(107986001)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR02MB4452; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; MX:1; A:1;
-X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT056;
- 1:F4jMf6J/39XBmifXqxNtYOZTCZpcJZZ7MSycw/JSWOiK+Wtjsi2dwqcZqUV9h0aPg4Rki7CIrBTUcY0XwQVGuJEcx8xz9UWJN94nfuwCqdSEx6xfT071vWIxylTdBnj9
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: df491755-30fb-454a-d0fa-08d5f96a13b2
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);
- SRVR:BL0PR02MB4452;
-X-Microsoft-Exchange-Diagnostics: 1; BL0PR02MB4452;
- 3:u3DQYeOwlKNEyTS7MxxHk3buRABhOUox/VC7HOVctIBNwPnMSAKIwXNqdNOoWo7uw/ekvkX/hze4JFl1xtvmtGg6BAg3dRo+HoC2CP0Fi2k6Aa5aur4STSN+iBc9pvTnhnixAX5gGxwuyAir3pVWw71c9sh2Cb+8Pyle9CeD8m4gtLpB6bNlZ/pSb8g4gioqVdRRa1mP78N5FxAJIE3Hix/L/N8hSO70ai+w6/sE61pIhy/wvw4zWdAVK/+/PXZIc2HwA4FvrnCuG+9oaMFyo7JAcs1QPss2r3qB2YnwVikz77yfJ9IJ/YWIiQzTLlF2KvhQhLsz1iv/zi1xiSbpSNKJFDBA4ZPduHmO+VHN5P8=;
- 25:LXJ2Vp0S2PhNyuQpuooRWPDEQCDCFctChZ7NtQBffAH7j0HpBmn91ZJf/UvJGyN+WaoKdJaBpJOWInm/kLyzpa2/ra1jyqhBAn2fsPuzZ0Xh7c+5wDJ/qJoW/FedMTKQ7uWhGwb8HGxOavMr7R51Nud12+loQJyUCKrOCkAIcSv+1tA+QMSOEGkDzKsWkEA02WmnzFl7xqKwyMAqLwgw5TZdhL8Wp+EMs7tU5VkMqpxVRVb4/UD5Fy2lLoVZRQO9MY5MJeCv6WIvuA0V4ufw1GhFfJvLRSIVwHWONf9GjGuEmuWl9ho6Wv40bR+2smxGToxoH2xooQnhZxbkLbxVdw==
-X-MS-TrafficTypeDiagnostic: BL0PR02MB4452:
-X-Microsoft-Exchange-Diagnostics: 1; BL0PR02MB4452;
- 31:gAD/0l4A22RMMz3cA77FGvYUYsqp7N985YvCQnxLWHoCHncGUMZL+KmuVQcYhKrluSa3gW0YAxB1QQk3b7NHltL454qdM5hlhADX+WeP/k8jkyahuhHWc278gplw74Zi6AiGSbTV9ybUcrYnyTst1AA6QgRd/gUAYLFQ9KhiZIOWfN+xjPjisNhmqjrx3fzaKZsQ2eGPWATXw/IgsnFG88uAapDzoNTzeKbn0H/ZHjw=;
- 20:m6IjijVa+swdSqlECYcegH7AeaWGnFJZJ67tBzrbOBgVOBKKlXLmYQrIyVo3o8Y1iayTFD5fHw4+0xPN14S3QUR8Ie8m8slJvMTi3d6HAH+75z95ngoHvp40xGmnnLFGrahkxoP44ACWkEGr8Y14jyXjnEzZGxuRqD5ewoA84bsH2Ks8V3t1E9MId75x+x5YAk1ITtmvYDdlfkqp/R8V5BjLbVA4iNkpHft/9bYyxEiI7PUT39DpgHjvnHaHXxEj8PfjHHVMObDr0uciKD5EqhviW2GB/RKKnSxU6PHFj0ACl+j3L+NfBkHbaMD/Pc797Z4IV8ZhdJCbTK18Ka+UqIy7hHDDYI9mSMx8FtsMsCGGnTfoDrV6Muj6g66b91/d5CsHMpkFRREI7htfE+wTpB4pNSxnyF13T5iiIsdnxKFWJK4h/Ojoy8Gmh1MqKGguoKbGszzoKwgnWlKW0W9aFYYmZTb863zqWSTtrOwZqsGTls6RX2lXPuKMZtSkEoho
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <BL0PR02MB44522F11AC356B8A5A575B76B8230@BL0PR02MB4452.namprd02.prod.outlook.com>
-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)(3231311)(944501410)(52105095)(3002001)(93006095)(93004095)(10201501046)(6055026)(149027)(150027)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123560045)(6072148)(201708071742011)(7699016);
- SRVR:BL0PR02MB4452; BCL:0; PCL:0; RULEID:; SRVR:BL0PR02MB4452;
-X-Microsoft-Exchange-Diagnostics: 1; BL0PR02MB4452;
- 4:S1wOMZKx46XEgQla1475Tc9TEw2kgWJkcVsL0CDFGaXSOMIIY736AjSmYireGlAatx9RbgpQFaPlM7TfODrR65ZHyghGtvEDcC/7CukUAsgmZqGxFZZMO83wP1xGYJNrT8L+VM0CtATBCVyiShDY/3nrQBh9CJq0zQpwengwEZLJgGrcLbEm4XbMkIXljMG92NM5qZwqgi14GWXuQL5irl54VviDeeH/in1QGc5GfwwXcpfTOPW5ayhm7NsHZx48kIP48arXJ5yCvptPDFOS8TeI65FU6nbGS8aPo8eh9q5UNCNJDwzXu9n0EE8KoES9
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR02MB4452;
- 23:4SmKEBJfIiPDNKrH/YSFqfMAsxGv8UJjmXMIEw0O1?=
- WCrOK0AkD60wh1VrqwSP78kTCrAjLDvbbtFalM2I/LEYfqFfpJwIercxDOEtVgcedzlEIQqUtbC0J2HvDHHoPDsgcBrXIvoobF5RKReA35NCBIeoGiYIcOSNugKQ8FNtMiIZoHeMrDx6S7dkqOZKoheFUXw7KV5hyggAIw8aBqOcU9TfjSpVE1NcLHv3ZYER4p+lZOpzG3JCqZudgIrMMwyveYHy054HnHUFrSEZEsWhiGm95jxUEAy8r6Q7nwXTV5nHSRLEnLhzIHT4IgIVoTLjNKbx3uvEMiR08IOVEvPY5CdqIWTcRk7IqVlu+XL932/hKvLili2xCyHCgnCWJditDGrodQ9KZS/llESbsLq0tBAfjrME9ZDmwLkq/XftOthxOGGbvnD5FIObG3ZUGq9mFCAs+PHtAzXvZ58fBUyLtuewBVVhdJ+Zop2eluuScCthB8Vj/2Ck7l0W08AGUCf0hR6CzV0nLsB03rXYg9c+VgphTBp4dUfpGNPtuWUt/2vs6niIC3QzqjW9cdKbHewQxdSV1ydut5wiHtvNJW928rSigYQnQfXSvsn/rEhEfU4WtgL2eUbwIG8yqy1J53AMPCAoO5sw93MrHfKwkzjTMxbPkmgFQihDTSP6VRLxShXBWXg1NUOM3/LwB2dh4smSrGALhrtH6FxrIi0rFCAXLonC5OqfWRHYEqRvBaXKuPP7x1NSAZNm0IqopC8nGKGq1P5XM++d/WyTJcnUrexbHy/H2Oy5hJ+4IZgQF7ZpmRnNC+5S7+ibKlYI2Ik9KzhzzZHstAJFWlpm1R96f690Ay9srenY9eiNzWFOv02ziKRmVzu5PveAbh+si4TMZI8W6p/uAPAVNTQSavu1i8jfo+yk0Fq9CpulFZ4xFdZyFLVzctNHzadPlBSxPe23iLw09WFtR03WoY777oaeIFr7Ck2qANFcr4ufyfrtZTkBqrcRlQvHBf3er8UXfuZlAUCH6hq7MqqJV+dR/RLXha2j6c/nMVjYzaJClO7SnPYdYHjzd6QHqgwW9rjMAiVOKTlGdc1TK7w5f95aPTj8tUnm2DcG4ETgmwPW+brxFSzI0/NPOZsKwggzEHqUbI38ORgpBgDQIauzfcM7CMkicWjj9e4Mu89+IpWpqfVPG8EusUadmXGIho2Q+o0e5IaTCe4VEtdafXpd0bk0DFYs0Q7tCQs89xLftF0sUZrvNCRUS9iOYZ6Io4cafWKbaO0loT8miGi/ZlI7yS2qjANQ8OoOg==
-X-Microsoft-Antispam-Message-Info:
- ObHRcJQ2jkSQpY5UiBfWVcNMi05wJITzCqC3BeHsBgex/Ng76kHth3MQil0pugeSV/naYECXZ/jJV6MKsFPn0O0KxxJOkpJokDW66j++z1RVHu4/DsiZV7HLoGScM3N9WismFf+I+38POpikFCkxOiA0u+ISx6ChMYX7l3nJy5lNqiX9iWwGxeFTuL9IPAaHpEn6DOJYyQ0gCEPEa4FLmSRxhralMue8/12g89chDC6gw95CCsU+VqXz6McDfor9QUHwbNqCmCDLQYsqB80GmqtLMyXElKkdnFFraNMqkWlaacxZnzCx+qthGxJrvezoFmgjJ7R5Ox6pGfMxrG13BHupGYvRiZ4OHz+IwtnPCvw=
-X-Microsoft-Exchange-Diagnostics: 1; BL0PR02MB4452;
- 6:XK81hQCF+KkaMNSs/mcaTYyR8PWkHLLrI2U4yLLW+SCAFOSUBl3V3qBHu1zpLC80CsqoYXS3ob7XU4T4Oxgk+zVO2MsF/jF0IItrehOOcpVPakCNUdAOuig0tGuWzQ9AusgGk6AnnZg6JisxKeWbLqR7SP7geIiiP7fPICdIJkCZJDiOpO8GKkQWM/1WgS0lZthwl3FuubAJVN9maCr26C42RkdqkrsjxK9MKsXB3bZreynylhxDt3KTtrMB457mWhR++1BQ8D1bX2GjMZcmgOAZWhTRd76e5AhO7jAksiNiboMsnPZwnIralVQTmhas8kbNrWhZ1/xrqwBd27+qz3kmO3Sp75KHpEc1nvXSg5mQjKqmKoq4od9YwzpB8s3SQTQHpkqf9rblumRDL9prSFWy5IU3rleCB+H9HP53PjPA/aIuCasb9/8whaOViYL+wz9dQP+3HqfrGmdW7RVWWw==;
- 5:yJdTcKxVONzB436x1If5l2hQ7Z+9AKUQHyv16QL7ulayvFKr7VOxKbduzJBtAVRmtWSpE6pbGCf35GCfL+/e9KT6PhI2Ja8uuV0Sa3bcRXYU8806QDn8pLkBpb86MoeZO7CSdMuwYMvFMCQn6PUgi7w3lhNY/7knKeT9p3D8T7k=;
- 7:SPj/T83HaBXHdxHbjZhXjfrIFad2yuqhsBePk5KeJyxCv0PRLpg+oMZS0AwhAAQjO13OLGmp2XyNUDEr/OlQUi09vpzUa8clZ3lglOUO73u+G1qVA/MxzAiVSTc7txwSzcrT6mZNnaeTlL5vXLL5MtcN9OlQ2Pu4ojyZZcNBk9x/vN5RrfZ5li5cJi8YgPagcQ8gIEV0lw/eLzJVAhOJqWpqJgC8LLnxKazmlgokh/icMYSTorj5Ubih7ge4gtUZ
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:52.4503 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- df491755-30fb-454a-d0fa-08d5f96a13b2
-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: BL0PR02MB4452
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105409_719133_0B57AB3C
-X-CRM114-Status: GOOD ( 14.32 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-This patch is adding communication layer with firmware.
-Firmware driver provides an interface to firmware APIs.
-Interface APIs can be used by any driver to communicate to
-PMUFW(Platform Management Unit). All requests go through ATF.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- arch/arm64/Kconfig.platforms | 1 +
- drivers/firmware/Kconfig | 1 +
- drivers/firmware/Makefile | 1 +
- drivers/firmware/xilinx/Kconfig | 16 ++
- drivers/firmware/xilinx/Makefile | 4 +
- drivers/firmware/xilinx/zynqmp.c | 337 +++++++++++++++++++++++++++++++++++
- include/linux/firmware/xlnx-zynqmp.h | 63 +++++++
- 7 files changed, 423 insertions(+)
- create mode 100644 drivers/firmware/xilinx/Kconfig
- create mode 100644 drivers/firmware/xilinx/Makefile
- create mode 100644 drivers/firmware/xilinx/zynqmp.c
- create mode 100644 include/linux/firmware/xlnx-zynqmp.h
-
-diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
-index fbedbd8..6454458 100644
---- a/arch/arm64/Kconfig.platforms
-+++ b/arch/arm64/Kconfig.platforms
-@@ -274,6 +274,7 @@ config ARCH_ZX
-
- config ARCH_ZYNQMP
- bool "Xilinx ZynqMP Family"
-+ select ZYNQMP_FIRMWARE
- help
- This enables support for Xilinx ZynqMP Family
-
-diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
-index b7c7482..f41eb0d 100644
---- a/drivers/firmware/Kconfig
-+++ b/drivers/firmware/Kconfig
-@@ -257,5 +257,6 @@ source "drivers/firmware/google/Kconfig"
- source "drivers/firmware/efi/Kconfig"
- source "drivers/firmware/meson/Kconfig"
- source "drivers/firmware/tegra/Kconfig"
-+source "drivers/firmware/xilinx/Kconfig"
-
- endmenu
-diff --git a/drivers/firmware/Makefile b/drivers/firmware/Makefile
-index b248238..f90363e 100644
---- a/drivers/firmware/Makefile
-+++ b/drivers/firmware/Makefile
-@@ -31,3 +31,4 @@ obj-$(CONFIG_GOOGLE_FIRMWARE) += google/
- obj-$(CONFIG_EFI) += efi/
- obj-$(CONFIG_UEFI_CPER) += efi/
- obj-y += tegra/
-+obj-y += xilinx/
-diff --git a/drivers/firmware/xilinx/Kconfig b/drivers/firmware/xilinx/Kconfig
-new file mode 100644
-index 0000000..64d976e
---- /dev/null
-+++ b/drivers/firmware/xilinx/Kconfig
-@@ -0,0 +1,16 @@
-+# SPDX-License-Identifier: GPL-2.0
-+# Kconfig for Xilinx firmwares
-+
-+menu "Zynq MPSoC Firmware Drivers"
-+ depends on ARCH_ZYNQMP
-+
-+config ZYNQMP_FIRMWARE
-+ bool "Enable Xilinx Zynq MPSoC firmware interface"
-+ help
-+ Firmware interface driver is used by different
-+ drivers to communicate with the firmware for
-+ various platform management services.
-+ Say yes to enable ZynqMP firmware interface driver.
-+ If in doubt, say N.
-+
-+endmenu
-diff --git a/drivers/firmware/xilinx/Makefile b/drivers/firmware/xilinx/Makefile
-new file mode 100644
-index 0000000..29f7bf2
---- /dev/null
-+++ b/drivers/firmware/xilinx/Makefile
-@@ -0,0 +1,4 @@
-+# SPDX-License-Identifier: GPL-2.0
-+# Makefile for Xilinx firmwares
-+
-+obj-$(CONFIG_ZYNQMP_FIRMWARE) += zynqmp.o
-diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
-new file mode 100644
-index 0000000..edbb84e
---- /dev/null
-+++ b/drivers/firmware/xilinx/zynqmp.c
-@@ -0,0 +1,337 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Xilinx Zynq MPSoC Firmware layer
-+ *
-+ * Copyright (C) 2014-2018 Xilinx, Inc.
-+ *
-+ * Michal Simek <michal.simek@xilinx.com>
-+ * Davorin Mista <davorin.mista@aggios.com>
-+ * Jolly Shah <jollys@xilinx.com>
-+ * Rajan Vaja <rajanv@xilinx.com>
-+ */
-+
-+#include <linux/arm-smccc.h>
-+#include <linux/compiler.h>
-+#include <linux/device.h>
-+#include <linux/init.h>
-+#include <linux/module.h>
-+#include <linux/of.h>
-+#include <linux/of_platform.h>
-+#include <linux/slab.h>
-+#include <linux/uaccess.h>
-+
-+#include <linux/firmware/xlnx-zynqmp.h>
-+
-+/**
-+ * zynqmp_pm_ret_code() - Convert PMU-FW error codes to Linux error codes
-+ * @ret_status: PMUFW return code
-+ *
-+ * Return: corresponding Linux error code
-+ */
-+static int zynqmp_pm_ret_code(u32 ret_status)
-+{
-+ switch (ret_status) {
-+ case XST_PM_SUCCESS:
-+ case XST_PM_DOUBLE_REQ:
-+ return 0;
-+ case XST_PM_NO_ACCESS:
-+ return -EACCES;
-+ case XST_PM_ABORT_SUSPEND:
-+ return -ECANCELED;
-+ case XST_PM_INTERNAL:
-+ case XST_PM_CONFLICT:
-+ case XST_PM_INVALID_NODE:
-+ default:
-+ return -EINVAL;
-+ }
-+}
-+
-+static noinline int do_fw_call_fail(u64 arg0, u64 arg1, u64 arg2,
-+ u32 *ret_payload)
-+{
-+ return -ENODEV;
-+}
-+
-+/*
-+ * PM function call wrapper
-+ * Invoke do_fw_call_smc or do_fw_call_hvc, depending on the configuration
-+ */
-+static int (*do_fw_call)(u64, u64, u64, u32 *ret_payload) = do_fw_call_fail;
-+
-+/**
-+ * do_fw_call_smc() - Call system-level platform management layer (SMC)
-+ * @arg0: Argument 0 to SMC call
-+ * @arg1: Argument 1 to SMC call
-+ * @arg2: Argument 2 to SMC call
-+ * @ret_payload: Returned value array
-+ *
-+ * Invoke platform management function via SMC call (no hypervisor present).
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static noinline int do_fw_call_smc(u64 arg0, u64 arg1, u64 arg2,
-+ u32 *ret_payload)
-+{
-+ struct arm_smccc_res res;
-+
-+ arm_smccc_smc(arg0, arg1, arg2, 0, 0, 0, 0, 0, &res);
-+
-+ if (ret_payload) {
-+ ret_payload[0] = lower_32_bits(res.a0);
-+ ret_payload[1] = upper_32_bits(res.a0);
-+ ret_payload[2] = lower_32_bits(res.a1);
-+ ret_payload[3] = upper_32_bits(res.a1);
-+ }
-+
-+ return zynqmp_pm_ret_code((enum pm_ret_status)res.a0);
-+}
-+
-+/**
-+ * do_fw_call_hvc() - Call system-level platform management layer (HVC)
-+ * @arg0: Argument 0 to HVC call
-+ * @arg1: Argument 1 to HVC call
-+ * @arg2: Argument 2 to HVC call
-+ * @ret_payload: Returned value array
-+ *
-+ * Invoke platform management function via HVC
-+ * HVC-based for communication through hypervisor
-+ * (no direct communication with ATF).
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static noinline int do_fw_call_hvc(u64 arg0, u64 arg1, u64 arg2,
-+ u32 *ret_payload)
-+{
-+ struct arm_smccc_res res;
-+
-+ arm_smccc_hvc(arg0, arg1, arg2, 0, 0, 0, 0, 0, &res);
-+
-+ if (ret_payload) {
-+ ret_payload[0] = lower_32_bits(res.a0);
-+ ret_payload[1] = upper_32_bits(res.a0);
-+ ret_payload[2] = lower_32_bits(res.a1);
-+ ret_payload[3] = upper_32_bits(res.a1);
-+ }
-+
-+ return zynqmp_pm_ret_code((enum pm_ret_status)res.a0);
-+}
-+
-+/**
-+ * zynqmp_pm_invoke_fn() - Invoke the system-level platform management layer
-+ * caller function depending on the configuration
-+ * @pm_api_id: Requested PM-API call
-+ * @arg0: Argument 0 to requested PM-API call
-+ * @arg1: Argument 1 to requested PM-API call
-+ * @arg2: Argument 2 to requested PM-API call
-+ * @arg3: Argument 3 to requested PM-API call
-+ * @ret_payload: Returned value array
-+ *
-+ * Invoke platform management function for SMC or HVC call, depending on
-+ * configuration.
-+ * Following SMC Calling Convention (SMCCC) for SMC64:
-+ * Pm Function Identifier,
-+ * PM_SIP_SVC + PM_API_ID =
-+ * ((SMC_TYPE_FAST << FUNCID_TYPE_SHIFT)
-+ * ((SMC_64) << FUNCID_CC_SHIFT)
-+ * ((SIP_START) << FUNCID_OEN_SHIFT)
-+ * ((PM_API_ID) & FUNCID_NUM_MASK))
-+ *
-+ * PM_SIP_SVC - Registered ZynqMP SIP Service Call.
-+ * PM_API_ID - Platform Management API ID.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+int zynqmp_pm_invoke_fn(u32 pm_api_id, u32 arg0, u32 arg1,
-+ u32 arg2, u32 arg3, u32 *ret_payload)
-+{
-+ /*
-+ * Added SIP service call Function Identifier
-+ * Make sure to stay in x0 register
-+ */
-+ u64 smc_arg[4];
-+
-+ smc_arg[0] = PM_SIP_SVC | pm_api_id;
-+ smc_arg[1] = ((u64)arg1 << 32) | arg0;
-+ smc_arg[2] = ((u64)arg3 << 32) | arg2;
-+
-+ return do_fw_call(smc_arg[0], smc_arg[1], smc_arg[2], ret_payload);
-+}
-+
-+static u32 pm_api_version;
-+static u32 pm_tz_version;
-+
-+/**
-+ * zynqmp_pm_get_api_version() - Get version number of PMU PM firmware
-+ * @version: Returned version value
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_get_api_version(u32 *version)
-+{
-+ u32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ if (!version)
-+ return -EINVAL;
-+
-+ /* Check is PM API version already verified */
-+ if (pm_api_version > 0) {
-+ *version = pm_api_version;
-+ return 0;
-+ }
-+ ret = zynqmp_pm_invoke_fn(PM_GET_API_VERSION, 0, 0, 0, 0, ret_payload);
-+ *version = ret_payload[1];
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_pm_get_trustzone_version() - Get secure trustzone firmware version
-+ * @version: Returned version value
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_get_trustzone_version(u32 *version)
-+{
-+ u32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ if (!version)
-+ return -EINVAL;
-+
-+ /* Check is PM trustzone version already verified */
-+ if (pm_tz_version > 0) {
-+ *version = pm_tz_version;
-+ return 0;
-+ }
-+ ret = zynqmp_pm_invoke_fn(PM_GET_TRUSTZONE_VERSION, 0, 0,
-+ 0, 0, ret_payload);
-+ *version = ret_payload[1];
-+
-+ return ret;
-+}
-+
-+/**
-+ * get_set_conduit_method() - Choose SMC or HVC based communication
-+ * @np: Pointer to the device_node structure
-+ *
-+ * Use SMC or HVC-based functions to communicate with EL2/EL3.
-+ *
-+ * Return: Returns 0 on success or error code
-+ */
-+static int get_set_conduit_method(struct device_node *np)
-+{
-+ const char *method;
-+
-+ if (of_property_read_string(np, "method", &method)) {
-+ pr_warn("%s missing \"method\" property\n", __func__);
-+ return -ENXIO;
-+ }
-+
-+ if (!strcmp("hvc", method)) {
-+ do_fw_call = do_fw_call_hvc;
-+ } else if (!strcmp("smc", method)) {
-+ do_fw_call = do_fw_call_smc;
-+ } else {
-+ pr_warn("%s Invalid \"method\" property: %s\n",
-+ __func__, method);
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static const struct zynqmp_eemi_ops eemi_ops = {
-+ .get_api_version = zynqmp_pm_get_api_version,
-+};
-+
-+/**
-+ * zynqmp_pm_get_eemi_ops - Get eemi ops functions
-+ *
-+ * Return: Pointer of eemi_ops structure
-+ */
-+const struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void)
-+{
-+ return &eemi_ops;
-+}
-+EXPORT_SYMBOL_GPL(zynqmp_pm_get_eemi_ops);
-+
-+static int zynqmp_firmware_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+
-+ return of_platform_populate(dev->of_node, NULL, NULL, dev);
-+}
-+
-+static const struct of_device_id zynqmp_firmware_of_match[] = {
-+ {.compatible = "xlnx,zynqmp-firmware"},
-+ {},
-+};
-+MODULE_DEVICE_TABLE(of, zynqmp_firmware_of_match);
-+
-+static struct platform_driver zynqmp_firmware_driver = {
-+ .driver = {
-+ .name = "zynqmp_firmware",
-+ .of_match_table = zynqmp_firmware_of_match,
-+ },
-+ .probe = zynqmp_firmware_probe,
-+};
-+module_platform_driver(zynqmp_firmware_driver);
-+
-+static int __init zynqmp_plat_init(void)
-+{
-+ int ret;
-+ struct device_node *np;
-+
-+ np = of_find_compatible_node(NULL, NULL, "xlnx,zynqmp");
-+ if (!np)
-+ return 0;
-+ of_node_put(np);
-+
-+ /*
-+ * We're running on a ZynqMP machine,
-+ * the zynqmp-firmware node is mandatory.
-+ */
-+ np = of_find_compatible_node(NULL, NULL, "xlnx,zynqmp-firmware");
-+ if (!np) {
-+ pr_warn("%s: zynqmp-firmware node not found\n", __func__);
-+ return -ENXIO;
-+ }
-+
-+ ret = get_set_conduit_method(np);
-+ if (ret) {
-+ of_node_put(np);
-+ return ret;
-+ }
-+
-+ /* Check PM API version number */
-+ zynqmp_pm_get_api_version(&pm_api_version);
-+ if (pm_api_version < ZYNQMP_PM_VERSION) {
-+ panic("%s Platform Management API version error. Expected: v%d.%d - Found: v%d.%d\n",
-+ __func__,
-+ ZYNQMP_PM_VERSION_MAJOR, ZYNQMP_PM_VERSION_MINOR,
-+ pm_api_version >> 16, pm_api_version & 0xFFFF);
-+ }
-+
-+ pr_info("%s Platform Management API v%d.%d\n", __func__,
-+ pm_api_version >> 16, pm_api_version & 0xFFFF);
-+
-+ /* Check trustzone version number */
-+ ret = zynqmp_pm_get_trustzone_version(&pm_tz_version);
-+ if (ret)
-+ panic("Legacy trustzone found without version support\n");
-+
-+ if (pm_tz_version < ZYNQMP_TZ_VERSION)
-+ panic("%s Trustzone version error. Expected: v%d.%d - Found: v%d.%d\n",
-+ __func__,
-+ ZYNQMP_TZ_VERSION_MAJOR, ZYNQMP_TZ_VERSION_MINOR,
-+ pm_tz_version >> 16, pm_tz_version & 0xFFFF);
-+
-+ pr_info("%s Trustzone version v%d.%d\n", __func__,
-+ pm_tz_version >> 16, pm_tz_version & 0xFFFF);
-+
-+ of_node_put(np);
-+
-+ return ret;
-+}
-+early_initcall(zynqmp_plat_init);
-diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
-new file mode 100644
-index 0000000..cb63bed
---- /dev/null
-+++ b/include/linux/firmware/xlnx-zynqmp.h
-@@ -0,0 +1,63 @@
-+/* SPDX-License-Identifier: GPL-2.0 */
-+/*
-+ * Xilinx Zynq MPSoC Firmware layer
-+ *
-+ * Copyright (C) 2014-2018 Xilinx
-+ *
-+ * Michal Simek <michal.simek@xilinx.com>
-+ * Davorin Mista <davorin.mista@aggios.com>
-+ * Jolly Shah <jollys@xilinx.com>
-+ * Rajan Vaja <rajanv@xilinx.com>
-+ */
-+
-+#ifndef __FIRMWARE_ZYNQMP_H__
-+#define __FIRMWARE_ZYNQMP_H__
-+
-+#define ZYNQMP_PM_VERSION_MAJOR 1
-+#define ZYNQMP_PM_VERSION_MINOR 0
-+
-+#define ZYNQMP_PM_VERSION ((ZYNQMP_PM_VERSION_MAJOR << 16) | \
-+ ZYNQMP_PM_VERSION_MINOR)
-+
-+#define ZYNQMP_TZ_VERSION_MAJOR 1
-+#define ZYNQMP_TZ_VERSION_MINOR 0
-+
-+#define ZYNQMP_TZ_VERSION ((ZYNQMP_TZ_VERSION_MAJOR << 16) | \
-+ ZYNQMP_TZ_VERSION_MINOR)
-+
-+/* SMC SIP service Call Function Identifier Prefix */
-+#define PM_SIP_SVC 0xC2000000
-+#define PM_GET_TRUSTZONE_VERSION 0xa03
-+
-+/* Number of 32bits values in payload */
-+#define PAYLOAD_ARG_CNT 4U
-+
-+enum pm_api_id {
-+ PM_GET_API_VERSION = 1,
-+};
-+
-+/* PMU-FW return status codes */
-+enum pm_ret_status {
-+ XST_PM_SUCCESS = 0,
-+ XST_PM_INTERNAL = 2000,
-+ XST_PM_CONFLICT,
-+ XST_PM_NO_ACCESS,
-+ XST_PM_INVALID_NODE,
-+ XST_PM_DOUBLE_REQ,
-+ XST_PM_ABORT_SUSPEND,
-+};
-+
-+struct zynqmp_eemi_ops {
-+ int (*get_api_version)(u32 *version);
-+};
-+
-+#if IS_REACHABLE(CONFIG_ARCH_ZYNQMP)
-+const struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void);
-+#else
-+static inline struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void)
-+{
-+ return NULL;
-+}
-+#endif
-+
-+#endif /* __FIRMWARE_ZYNQMP_H__ */
-
-From patchwork Fri Aug 3 17:53:20 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555417
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 91BF214E2
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:13 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7E6142C1AF
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:13 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id 70B232C984; Fri, 3 Aug 2018 18:06:13 +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 autolearn=unavailable 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 170142C1AF
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:13 +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=jz6LKO4I2dwn181XWtMCOq9Hd1kqEV1xqUWkQI6crAY=; b=kiVp7VRmI8zgnU
- r/5hK1KgczbBXgNRmIa3EnW+F2GkQ7e7Td/0zCAPNAlvAfqjGxmRZVMtojehW74wXU7sd9AgbFA4o
- RuKj9LeNGWmB3LAUtQDpkhE5U5xVRzUM/hdLx201nkxjqpETPtFGxLm/xrutjB7IdDDobZdFjRAJV
- KQyV1YrS4XKGi5scLkOqXGLj30C2KyGTUJv64IzqZunWuSaxln2Z23r+MPn4/2UrZD6KApsbgGKnt
- fihAeJG7kVT3m7XlB6xkMZ2LggL4X+MY41M8rx9Ziq4NUP6eBMK1M4ihlrlbpEBk+SUzWepAblugX
- UldLG5gfKjOen6V7UYSQ==;
-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 1fleSl-00028q-LW; Fri, 03 Aug 2018 18:06:07 +0000
-Received: from mail-bl2nam02on0609.outbound.protection.outlook.com
- ([2a01:111:f400:fe46::609]
- helo=NAM02-BL2-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleHE-0002lN-SO
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:17 +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=iY9q6XzlDsriWHdrcuaPTnv10bXo5ZNfFWWu1fIDmys=;
- b=PyH+SKJTMqScUwv89VJ+MKfI5lraVw6m7ZZJaAjG+waZ90iLQ2qG0TK7i9aZO39UB23PVtQihAh79ZiFpveFAM+dYBAHo3S4z0lBh8Ni6RBC6wQ3a6p/6zuC4FHVNmIGo6J9Jo1w7ca0jrwyjLfGOs777eDyc/yEo4wjaRkM+Y4=
-Received: from MWHPR02CA0012.namprd02.prod.outlook.com (2603:10b6:300:4b::22)
- by DM5PR0201MB3511.namprd02.prod.outlook.com (2603:10b6:4:77::11)
- with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.995.20; Fri, 3 Aug
- 2018 17:53:54 +0000
-Received: from CY1NAM02FT044.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e45::207) by MWHPR02CA0012.outlook.office365.com
- (2603:10b6:300:4b::22) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.15 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:53 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- CY1NAM02FT044.mail.protection.outlook.com (10.152.75.137) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:52 +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 <jolly.shah@xilinx.com>)
- id 1fleGu-0004fh-7w; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGp-0007cn-47; Fri, 03 Aug 2018 10:53:47 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-9X; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 03/11] firmware: xilinx: Add zynqmp IOCTL API for device
- control
-Date: Fri, 3 Aug 2018 10:53:20 -0700
-Message-ID: <1533318808-10781-4-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(346002)(376002)(396003)(136003)(39860400002)(2980300002)(438002)(199004)(189003)(107886003)(2201001)(39060400002)(106466001)(50226002)(217873002)(4326008)(9786002)(63266004)(77096007)(47776003)(5660300001)(26005)(110136005)(446003)(2906002)(426003)(50466002)(486006)(186003)(6666003)(305945005)(356003)(48376002)(336012)(316002)(81166006)(81156014)(76176011)(51416003)(106002)(8676002)(11346002)(2616005)(7696005)(476003)(126002)(72206003)(36386004)(36756003)(478600001)(16586007)(7416002)(44832011)(8936002)(54906003)(107986001)(921003)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR0201MB3511; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; A:1; MX:1;
-X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT044;
- 1:gZGQQHUnCMARprb6H5I1+asn9Hsgw0Tnc287HYKOHfR5S/7U0ESoiGbRMZTznYI1DBXfcyO2cxS72IPUNBQGR1K2NyehQW9DMkwQObyeUsO50T0munQpAgbHuqKFiy3B
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: 01c19963-0a15-47c4-31f0-08d5f96a13ca
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(5600074)(711020)(4608076)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060);
- SRVR:DM5PR0201MB3511;
-X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3511;
- 3:+ceyPEYBjP+JZt8oITNykf5abb8Ux+W3WBMnt4cjJfV/Gc2sIAD1tjtxO1S10Z1hs4B0J95XH2RFwsf80tyZzVGY+Km/vlAi18SyZsC8WqGhO7DJbUko9kKYmmebcalphvyjckHnt7iEEqWmRuDEIGmRj3/wrgX/K+B4YESCmXC95JP0qwcXjtH4oYi0MrGKBb4DND0q29uXRfxtDu3KozcVNgVPAFMLIKwcXD+fYVaSdYjpwHhlWeVblMtOLbMyRCUetfNN0PWYINGuirNmrcMvRLUtQ3Qa7KqEDkHNFPhXUhNHsV6rHY5kEzgKwMbEC16SvLWszVsxKnzpghMZ5NoO5jXZUKoltgQiWHWDoEs=;
- 25:PZ2niHdLF57AVpNChi9dZLZkPq+V/5ucSJ/Quf+crUmpThSuPUIQWpfCVdvyZKB4udTh6VRmZubiJQjebz82WiBz1k7pc8jAzIpQTZQZQyvuHwPBkngHux3NQiOmkxvVEWMoccxLLMQkumlNHzF9NQ51S681D+Vbm3PceXXNSY0Jnyo476zgFM3c2pad8nFOSm1ysNv9vVu0v7U6YJva4o4IR0hLU6hcxqzk9250bzqHyBzcrFpJjE+U3Ie9kW0ek0EGFhxAIDTIPJ78PbfUFYQWoid2vidQ86QFpnVraC2hZc7XmCihB/NalxrUEA6b6v41svtAXsfr4FvWBWivjA==
-X-MS-TrafficTypeDiagnostic: DM5PR0201MB3511:
-X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3511;
- 31:vBSqcixlCMiSiE+3CLXO0RYHMNFRPF3D4UWI/1Wtv+R33i2hUd+7nLRq3yGu9phGVFivIVojlEBBmjmseAGQWA8irZYSI+unUquot/j1wfFW6W0z0dzP6QDhF/H6jns2/OBQ4Cf2yCI+cjtMRb1oVsXMprEWntbPA6g5hY8PvPsqs6wAc/ruANZXoQHZNXPnsmt0hf+OldPwfw2USfOK6hawPJlSwLgcn3k0t5YQPvY=;
- 20:UNMQ7s7RJ7vVmVKO+gTiugFJoU3WoiPlXyvr1zOdagfzaMtWMObgAcgifUB/s5kGfKlKHqmnIYIYpGGEF6GpKMtoF+NeBDxPtKO8E8Hy+q7PlJ1MWe8VgCFeDUiNDtCmJcpMJdgsNivOoY2Est/UYsMg/yeA8O3nrpRGTuvP7mErtS3AAfBitSNMyGLWSHdiNoQQqsQ0NmhYZaWu2C/6P43T3pXsWLMovP779/aVL1U5PUGFk4cJm+h44ivKFec/cpJuHzGHfpG6BWEPHZ0IfFG2DXFarUwVN66AbR3hiTBckEHRBzs9ZwK2GPVUxdI75M0E/OYhfBpWGphWlHyC9rtlNZW7um07DaaZ7+5QOTbbWXzMdxb0dK+kgXFWnZoEZNbdyLqDq27/HQyuNgr78egpZfh/eKg6js50jVBSVaZJu2fPoLBG2fcOjGhDw+joAmphB4u+wbFuClZa9fMlk+0sY4YZg8gl/5bQT6Lsfa+MRLpo5eHqIW0wnpRNcuO6
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <DM5PR0201MB35113DCF800C8F51851C2010B8230@DM5PR0201MB3511.namprd02.prod.outlook.com>
-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)(10201501046)(93006095)(93004095)(3231311)(944501410)(52105095)(3002001)(6055026)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011)(7699016);
- SRVR:DM5PR0201MB3511; BCL:0; PCL:0; RULEID:; SRVR:DM5PR0201MB3511;
-X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3511;
- 4:eo5MTD3N7roBUHJvekYRU3IvNUurdAwzI4Fya7jPE/rp01CBkRdE/xNWJxKFRg0G+gtllCV6ShNqZ4719ZlBYrgME8tfezNcQn0x3/wLcp4NrN/AyLx5K55FuJFRtNOOM05OdrEViU9wm1rY/F8zc5/S6XZEM7cyXJR3G4b7JCUqRsv9ZXDW+qM6MUrhvTRdiOUo6gN0d+F2FsyGgqV6GFwsbRH9pJKBuIqlS5/E3iZqxJynkjcIxK5sb0ooo5h/ghexaSxtX0EwoBjaDkx8z1TUE9vuGo96/0IOHbTV9Mj5iyIzofXMdwesDBoiFrjO
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR0201MB3511;
- 23:/r1QJbUB8a3/X2RQ2tiC952QbvGBAKqWP/IAKJZ?=
- /D2MmjweQC7NCx4jBM5hAS3k9K6PTpXGQtJAPwpLygsj4hVPuTW/CW3AsPs7YHM0ar51rBbg8KfuetOQx+5lip+bhTUS1NFonj9kxqc9GgYfGcJuO3NJ7GReTU55iBb1TWDzMJmHdfZolSVsB02BYKznCinyI6XCp2f6J/fSI6B94SYSs9mL0Pqq6PnQfVMneTGlFEmMyBpLLzlkLBeKmbopVbjfwFmrZ4ozOU+SdRevrLFifZBeB4el23ikLIbxr5YM9euEZeVKK+YTyD1z38rPXteJNOuDz0wv2zdYNcLbQ1IaAmotfb0ees3P/IqLBtLwCXlA5nWPyE6F8aO42XOPBGHs2BMGmwh8r9+RkpLQK9IKPdliVjNsUnI1mO6+DBQHl/S3to8qZUtEm+0/xHMsdhhBqwHJVdtHGeTtz1DDcjPlNMH0RM4/VJb/kyZJOYw3ThG/q1nQRWqQaQlTdnnOK2Gj7Z8ZRKGpEGjTyVEnOColkCRPCgm2STpIGzJujet77vcNH4YKslzL0XjvDsP+g0ZvLiEQ2u4RVE7sK2lqQMvAjojZi6NTwBk1diy883WUCzFwXjL3zA+qigRgmZxs/KrAZQm7OMWV5YNDdxdRKpg52jb3XslwGp7afxN5C5NrcZ6aklBp2cdePPD8IscBWvD9yQ7zJ9DEtYMmwASX4L7+dWgFynbfN9ey6azZb64QA411om3Lm/zfxKbM/q3HAQnjlPWyKqr1GMaMA5iR9CExs2cj790lRBxGQ4CPPrnSiN6RlkSzcbdE/jDeqi2QzLxDktgdLQJElzl74GA+/R7WTRkpB75spnXzgrFjr8nNz+VSsenBfvVUwqc7o05tA8K4Fx1JS6bLnYrzLoCm1rYfYiEXF+9pujH2xnil/7iGnd3RMCCEGpS+tdF0vbqYiroP5eeM2SMIujaIoGzE67Ly7kK3F3Q6u5hmVGS+qV6JMpjL/tdSdbj47IuIeAWHUUVL+j+poMBQcNeWVoPhh/T30cc0yZXnlMZsyZvwzSJQ2JwKKZXVfHQkSBcof/j54Mp3Lr/8O/FmX2nCyYQbPJZen16VTak/9CjJgkPaZ5CKWMql7QcmjZmbHPd7vJVMHrgtCfhrMCGXCsuJ1e7txqsOYcBYof8+w60nfQZW4cJ7eICDXWQZDsolyctv8Zp+xgHW9oazR0k+e2UtXsGSJ8qrQxhTv7CA7NPhMM2vCshhFJCN6avp/kyK/yjj6mGdz
-X-Microsoft-Antispam-Message-Info:
- Ovciux+C+MzAlWIrO+/NzJYAt6zE4giyS5pWxJCLoAdwUZAJeHc8FE8ShFdLFVMnj4dqHjXhOOUZhoGrPcpoHdUBRLgqP2mYi3CHDKNboatVtztQwfVkOaRSu8rTFjsQ8QkO+XdOztS4ueWL2PUDiNJtZwJh47VrTtKvyo6U0wYuVuAH+LhjnGftW1y8D4qQkBeV9Kgp8EFEMK7xsziTnVRKOtZoBKd+2eW6inR5M1hFIWxiorr1WzaEAdsEd1qWgkY+qEjwIgY8FAUgzN3Xty0BUhB3o1iEvsI2LqCwPllO3ymOIOcm4PtchH1RwINKSZcazQTpiPpxh9Dyaw3j4VIwDcx/g6zh0fF8KbpFS4s=
-X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3511;
- 6:3jPHBmOPcVfhQC2FGyfi5sd8IXppoVO4oNCdaSltz8ulULMwrsTpkpdh0bIEVLlExei2T4TYqsC2696G2/k5+JGBN7Xi3Ovupmm4vfpixPXy4+Me/pJ3QleHHscDR8QiDVLQKsJblEl46k//cUF28AVYMam5dBmQktP6f3d/JwX0RAvW7MrsFezgLzVZ0HXoe4O1ltFYLDo5a87JQeshngA2YS9Wia2EY+EPnZlU7lHCNQ/KmkMrs7h2F6eT8z42trL7idsBvlz48P8PczW+qX7XlYCs93PRVNkMCIoyuCSdTQdsU9ifLpenSsKtkFxo/36QOkhMW5SFAHJvSUJQk9cgVRwGDAFOfyN9dClNtlO2NjdUts3oqJyQgYTzdtnodjDbiiYIFMTFIwsvBUqF1fqrrpvuyfovREm/CNq5Qa6bqYGEQ2N4GQbvW3ueRMomPMHb9frK77gRv85ksJAHxg==;
- 5:Lp450hifZ/Nz7ZY/44/zL8XfBA6+yCopissF9iwagzjRuviDP6ENfU8WHJEuFEJvm17N5L2pRV37qzpfWakzkKlrQv3BME+CHHTAd80vqI9L3wJEmAYKDjwQOkuLt2Cu1r8X9tdbd9wsMTcCWcpVeCtUyB4YNPg1ZzcI+cAsSfk=;
- 7:8cxczJaeYNhowMZfCrjvNeD+h4Q3sgGrLgQk/N/44XhFHYUEYQeL1O9WMRLvxgwyKcMuJylLfle2HlP+GAElAD+DD91Ec8SOfu3VphuaVYMl0tCKCi+vYpY8aLxBzRkY0lWJ6HG2Cscv0RCv+fOaiKbGQbAy7vJ6QdqjEbSMDP69U0Z3lY1uTVhLlFXhjzcqLGOFnjgthqa00FS1NeIkt0urZPaEqlomSJKBy4nLnSBwDZ+o0PnAAZdr2T7+gCgz
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:52.7598 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 01c19963-0a15-47c4-31f0-08d5f96a13ca
-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: DM5PR0201MB3511
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105413_430833_66CD49D0
-X-CRM114-Status: GOOD ( 10.11 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-Add ZynqMP firmware IOCTL API to control and configure
-devices like PLLs, SD, Gem, etc.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- drivers/firmware/xilinx/zynqmp.c | 20 ++++++++++++++++++++
- include/linux/firmware/xlnx-zynqmp.h | 2 ++
- 2 files changed, 22 insertions(+)
-
-diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
-index edbb84e..24cfd9e 100644
---- a/drivers/firmware/xilinx/zynqmp.c
-+++ b/drivers/firmware/xilinx/zynqmp.c
-@@ -241,8 +241,28 @@ static int get_set_conduit_method(struct device_node *np)
- return 0;
- }
-
-+/**
-+ * zynqmp_pm_ioctl() - PM IOCTL API for device control and configs
-+ * @node_id: Node ID of the device
-+ * @ioctl_id: ID of the requested IOCTL
-+ * @arg1: Argument 1 to requested IOCTL call
-+ * @arg2: Argument 2 to requested IOCTL call
-+ * @out: Returned output value
-+ *
-+ * This function calls IOCTL to firmware for device control and configuration.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_ioctl(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2,
-+ u32 *out)
-+{
-+ return zynqmp_pm_invoke_fn(PM_IOCTL, node_id, ioctl_id,
-+ arg1, arg2, out);
-+}
-+
- static const struct zynqmp_eemi_ops eemi_ops = {
- .get_api_version = zynqmp_pm_get_api_version,
-+ .ioctl = zynqmp_pm_ioctl,
- };
-
- /**
-diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
-index cb63bed..2eec6e7 100644
---- a/include/linux/firmware/xlnx-zynqmp.h
-+++ b/include/linux/firmware/xlnx-zynqmp.h
-@@ -34,6 +34,7 @@
-
- enum pm_api_id {
- PM_GET_API_VERSION = 1,
-+ PM_IOCTL = 34,
- };
-
- /* PMU-FW return status codes */
-@@ -49,6 +50,7 @@ enum pm_ret_status {
-
- struct zynqmp_eemi_ops {
- int (*get_api_version)(u32 *version);
-+ int (*ioctl)(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, u32 *out);
- };
-
- #if IS_REACHABLE(CONFIG_ARCH_ZYNQMP)
-
-From patchwork Fri Aug 3 17:53:21 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555421
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 E183E15E9
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:35 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CDD572C983
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:35 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id C15B82C985; Fri, 3 Aug 2018 18:06:35 +0000 (UTC)
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
- pdx-wl-mail.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00,
- DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI autolearn=unavailable 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 6A7402C983
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:35 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=bombadil.20170209; h=Sender:
- Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
- List-Archive:List-Unsubscribe:List-Id:MIME-Version: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=91//MvALW6sgI3tZTiqNtEggoAHmWLgPcy+WH96S//Y=; b=gnpme1Lvz+gnsb
- AbHfxKiAICf8kzeMoKBEYwsqRHtKs7qrDNklNtr7mxQbFyblZXxuwlwqiIEyaOTnHTjejfZmEX8qJ
- 0oGGw9be9yBsaMAZGWoTNfOcUt/Hp/I7PmW/VaLkAI8uccS4ezP3Qxhq2XGX1CB8mQRHd1wxBKX4Y
- gyXGWaY6RBYYUt6R7a+XpZh6WMd6py++Bp+qufhAOvbtEv4IcTm95l3+battKvbDSWmUsjYZJAtnV
- hV1HnAy5wG2MvRSFBvkaiKBtnVQD2RFGq+6+SW2Ses/VYJS/ITDLDGCj5LeT2J6N9EDeQMmr0kkwM
- uhWG7uzjJQ3Jq6L+F4Eg==;
-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 1fleT6-0002b2-Oj; Fri, 03 Aug 2018 18:06:28 +0000
-Received: from mail-co1nam05on0624.outbound.protection.outlook.com
- ([2a01:111:f400:fe50::624]
- helo=NAM05-CO1-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleHJ-0002lp-Q7
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:23 +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=HeHcqfhBmNmq3+qiRcWBF2dzjyZqhOAmxkz2chz3+sg=;
- b=em8vzxLpipjwDvV7ib9NoNojbhR+Y10UI/FtxNc/yXmmBHmcZUeAHgcQfqk1K4b7nuqdrTHD2lqq3w3ijlTqQALO6flKDnss8DqCVtja9OXb+PZ3RVsg8ovHgHphO/H0Uz6NqSl545Li5z+4ewrUDkdPmpPzxiCZX/8BXx8EL3Q=
-Received: from MWHPR02CA0051.namprd02.prod.outlook.com (2603:10b6:301:60::40)
- by CY4PR0201MB3506.namprd02.prod.outlook.com (2603:10b6:910:95::12)
- with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.15; Fri, 3 Aug
- 2018 17:53:54 +0000
-Received: from CY1NAM02FT035.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e45::208) by MWHPR02CA0051.outlook.office365.com
- (2603:10b6:301:60::40) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.15 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:54 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- CY1NAM02FT035.mail.protection.outlook.com (10.152.75.186) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:53 +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 <jolly.shah@xilinx.com>)
- id 1fleGu-0004fk-MD; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGp-0007cn-IW; Fri, 03 Aug 2018 10:53:47 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-Bn; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 04/11] firmware: xilinx: Add query data API
-Date: Fri, 3 Aug 2018 10:53:21 -0700
-Message-ID: <1533318808-10781-5-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(346002)(136003)(376002)(396003)(2980300002)(438002)(199004)(189003)(316002)(106466001)(63266004)(14444005)(106002)(54906003)(110136005)(186003)(48376002)(336012)(16586007)(50466002)(47776003)(107886003)(39060400002)(5660300001)(4326008)(76176011)(7416002)(6666003)(7696005)(51416003)(77096007)(26005)(2906002)(476003)(2616005)(356003)(126002)(305945005)(2201001)(446003)(81156014)(81166006)(11346002)(36386004)(8676002)(8936002)(50226002)(426003)(36756003)(486006)(72206003)(9786002)(478600001)(44832011)(107986001)(921003)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR0201MB3506; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; A:1; MX:1;
-X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT035;
- 1:rHO0CWpu3BkBhjLm5sQEzS8kU4B8BzsZSNTyXn8pPVQZy6q6XTizv8x/hh1yu5wry1vGa936pLJ4AebHHKuktr1GwZURZV5Gtoa9EDRW2u6oEJPuparxwgagFnTk3e5k
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: f96ba5b8-4c9b-40ac-b48f-08d5f96a140c
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);
- SRVR:CY4PR0201MB3506;
-X-Microsoft-Exchange-Diagnostics: 1; CY4PR0201MB3506;
- 3:icf20laLQcgZdqpqBhpbCkReu96OBDGu9KoOR5B3zstZU8lV4txOHYfzZJqka2HbTy3BO7I9Ls1KThGolH4ufqGhaV3UBXRt+nUGUs23bh2S16Osm3yr9IYeIBuEBHW5PiKhoGtHc6jV1J92b4wm3/pGSjPMkgv7C+M6qczYjpqkQ1ErM62iBAYaxG6kWM7zxqxHrByqIEGB42QEh/UUdVvNcEjGqAXyvafTXvUmjpxM82pq8mlBqS+ltvFaE516eVzL2y5PL2GP52FqaGPe0pQ2dXrG/REg8OxbiJ9InA03FatDQZFGyo0G6yA4DDWLTCHAKB6OlZF7kL0k/rOR7OU33SQu9COiqEBXvEl0g3M=;
- 25:snIbKqkfJkhDyWf51lqz+kqNXcYoHqXKskJruUr1unSfP+rieYPSEwzJg+riTjFqnkHTVzJMDQWW9pOwzJvo1RTqWGHuqhs9+IcgPqhOsvg2xhAJOXd6o1XS6LuulnOMKCD0ECcrH7NGtWPBS8FWqfS6iv1nBaXre8fZAFipTsoDSeS4esL176RqefKrPnsOBDhCpbIvBXcXN4Gx4zkqEnPmkSOvbT1eoPBzaUQAacyV2y4Hh/q55AEY8hvvU6L9fKNaebKIqrG45QchzlAsXj+NZlDSDyCccnoXeVQMDUg10NC0O3M9cgUsRnL9hKMiG4sQWwfGDEobVo0NaXVmUw==
-X-MS-TrafficTypeDiagnostic: CY4PR0201MB3506:
-X-Microsoft-Exchange-Diagnostics: 1; CY4PR0201MB3506;
- 31:84G5vx0+8ZAwby6IT9aNY8bGeCPuqtIE9Sx0ijSdqocBlbz2VYUIhBP/3IpX1RKMmfGZCGJEdHiSl8ft+q4gODlCVLtU14S3oacBfsotRdhaMBYmmmO/fsU+PTW4Sfpi8RcVAuEHZXqALm9q3LS5noD8ttxBQOkDwoebSZGTl1yVyKc6rGbzGcXvrQKz7d/QQj5pwq6cZNkSlEvCjBMRCkw4qOYtzAah4V1DLLVrhrk=;
- 20:uHnibOv0p9c2GZhcNLdfOwE1EoMsGRtmkKhH0Qqqu5VgIEwx6iceOrpN/WFsJ7SCRDBu6pFY/dId99kb5Q5m7hTkW2ScXBwoOhxDAXDGSZ2ryp2DaiXJ6EJzGDrRgArfdy/Shbb+3BEmchdLVPGzfxoWQZr8VWdGIrrDuXzho/PNsQiWJywexO6Pm5i6H9OFB8tybqgpJcdUV8mSekXeX4MhQLgQ/wEyUeahhLMeIV33UzCkJG8dZ499/Q2/0WsaB1cQxy7w91DdbYqfjKEqD67yhrz6xjnRb2QAJTCXBVI3Q4X6ajQ8ryEPlSt6F/LoenF2IJVOuLTX+aDhkFEg2uToVnt2uLwF+AqA2s3Xkog+cg4BflpcnBfYVJiH0ey04nKKbZXUFjCDsmF6nV7SjriAcqmmiOxOrswQ5HFftKiYLmVJE/mAmkDWUhcBaGpD1/Iw8KwmoDnzZy1dHKZ0Dw2z29IQZja6uEqFZiVjeLxJ6m5HrYLjJ0GYWI+mTz+p
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <CY4PR0201MB350627A1558BE520E20DC02BB8230@CY4PR0201MB3506.namprd02.prod.outlook.com>
-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)(93006095)(93004095)(10201501046)(3002001)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016);
- SRVR:CY4PR0201MB3506; BCL:0; PCL:0; RULEID:; SRVR:CY4PR0201MB3506;
-X-Microsoft-Exchange-Diagnostics: 1; CY4PR0201MB3506;
- 4:f8yeNLyGBcVliADEJi6+6wv81pg1iumiVJILRGKC3y6qFaPNJLAww3Tj3K9JIR+yiMlIHFyv+0RCz9Ub9GyQZj6WkcJUYB+WjkYga9V2Z+twlECgaB3RBNoz/wppsudzTd9RYEuaf1KmEFYKQhzSWnaQXx5L+9lUi76OogHHJX+ZXLR/RL5T89h4P76C4BGGiFhzR4vU9dl/Ey2fU7VRnXrfKwS0LSgnKq7Sy7CdPt51IObIciOBWLFINbanIrN9fBcBMTArdZSuGkv1lR+mDucR1/fzj/vrFzTxihSKX6iCbT1fchDFfhj72uKSq8Ff
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR0201MB3506;
- 23:hhCwJI0woEpyaZpm9g72KxA7XZ8ta8no71Dnhjs?=
- Knczn3Rx9AGJ2FDCKhvKDXACej/b/eW/POMMmL+/3vuKbv3NlbLhac2kdzcNZC0xLQGfF5+DhQA7qxJvKqUq0lDWiiPLrrxwmn0AfJOniBhJXij38ezoAQopZPZoKRvTudGmmCDQKN8oulKLb+/iVxyj5a+KH5PGYGyAc7i1+YlYJ6LVfwgYu/FaqBLAqfuT2Th7oTA+ENbpzQKkQX6NObmKb+nHjeo0LdHCcNMI+fxJvZNLq3TTSPe5rgJagYbUkr8heoTd4fc1aXWhmtzf18xbz+tlMArrVT1598CDagk/FeZOCDsCHoqkqOa/4FBNkgeGOnMhKO5QHD3t1B1b+9ZggPwuSdGKGsOegJPndqqu4EbkqlzFBQELkKh2kCvVFPMkflKZLLyO1VbfaL45eERsGN+fbbI1k6805k2S3p8C4NvKw2pbqtM/aViP6TD+it3NayCky/lM454XyIhY0sK33ghyPuZOth18NrX4y/wzMGc8SVakrsOqBaake4xBT+X6fXqvN6W4jklq2IHRNrrh/Ug9fkJMLefOQoLv+vhkKTrtM2QtGLDjW92lESJO2cCtHsY8sA19VcZBNCZMFCKsQUUFW3ycYmxDnRzbIQ383doIfV4ceFvVcIhcQOEnM7zOtACXmpSnPbZcW4Ed2VAoB4bGSpnI+qLX0OUGn1lN0QP11IbBHcMsfQftsS1wwlvsI14MfO14PcmQ1r/D+S8isVyLXeupAr7QU5xXY+Dzc2ItU+nomqc/74nnJrkxwUGBeXgTD3xTnbnBYjoXaGubdkz9gjusuBni3/zrOHkvx320jotXvlxnX7WRqLyYcOGBHz9rUTteZCNHNOcbQM3AiD6v6FOaGmxrPqXaXYBHcBIppFsENetIPiJR5a0YMNGKkeWG/FpToJzfiXv9eTcxTu6iDZ3+OqO5eC4bFFEPj5kBmwKnp/JUqprqdCszEZplsUC75hs60pKb+GAu5CKudf+u/xsDp37fhvpQBQXXKfY6w5VHIhREqkrOYZ9yRaQSZmuu1eWMGRgWD7yrFFBGoHtivisN4gBnBxqCpb8ZNVJsnYd6BHWijev59RQgo8R4XOj6Fk6AL9suRUOstiJ3N39VPHl+Yt2zqJXq/UBtPWCsIyznqeqjtW8I00J6CDkP1lqJsxhGewtgBHWRNCQWKV2C4q30CiEC6xYjSC2xUh8kUz1bUEKi8f8SrymbEDowsKd91d1K69eacrQy+Qq2a
-X-Microsoft-Antispam-Message-Info:
- dyDEXUIAidTbffqF+B2NRr1YzNW0ZHFu9vOnAYHlOhPMuruEK5Witc2qqTGPmU0NWw8RmvHX+TXsO+OxXTloW3qbL9Uu6gB7AgbPYuTrmW4Hv1RWaLJ2mw67NJqs+tYSty/heVylDVRAi9/cFtjsM1fyZzagkfAc0G5dhUP/o+XHlSMbiRZwsXrknNM8+E/i3VC/ZuCtHTk+/AJ6Ri/oIEca9a+c+tiuXbzOM0QcNLNkgIxjE6/VMJ4IuwF7HeoGxRQUT0pYBgG+V42hxL8KbROgn596OGnUUlXEa3nBOVyluENccKtHTiq9GCEKSycC4LAE8gUsvlhW0WQAz+vle/9o0ASpB6m0wCKEHFtGTjc=
-X-Microsoft-Exchange-Diagnostics: 1; CY4PR0201MB3506;
- 6:1VVkvCNT+b3g6vM3dm0htFRYcoKtBvvfYFnzOnhOhjPlAWtli0yFh5Gm878wViRY0RRnQJU8A2Sw4Xf8vLBOYJuzeQwxVgKzZ6RXKCOTP+vbUhPldnU+0wU6dv6RsdQaaITgPQFPnO9EuefOznd214T1m+4tIasVx3rNAubcAwr1LoYNwdu/8EkL9t7GvoVl6RtgrS0nSWTFfTTZicfeH4BJdHnbUTQBFyhC0aftzqn2Kor9bFPwHS4SCRD1tq6e37sKhmTX2xPUFBESHShvXhU/4o0ki/5+BNWldCkVEdBjqawKGCgA2PI64MJu/aig5P86rZV+KmCKJ+jxZLpHKXkqP51vLsqtdheMAlag4BJJSn8ojYt8NruvMeL27ipYenhBw3kCca/hMmfOosQiwsxlZmqellR4acW1MmSBj4tm/xzXJEkeoKyjXotL0e1wyhN18SkWLOjKK8Jt6l4vQg==;
- 5:PZ908xNnr7uVYTc6nj6XU//v9+/Hr8e2pAI7LwX/9QaSdBkiPtT2bFlO5zZ0yTEtKUkPvklTGJbumeKxB3o8G/MDxZqLJ65Jhgv4+S6i44ujuX/n05SbuId07mxnjach4DhPPsNmh4FVTCalGm4HCDUScP/Tu1uRVVmqxkHaQFU=;
- 7:/JWOKkUw8yvyz5ko4LBiuPNs0mZnQok8sHrZkTHBAHaZGSwLyO2mcu6qWnWT1+PcRv1xhppiLQfQm8h9khykQ6e7CJ678AFAvSGsBEUAarGnULzr2JCOps2lyNlPvLRvA/t1n9AH65U57bQrBB0FG/DXAV5aAOJswB6kDQ2UmckL9/+gULpDmArQ0hrrJDO0+fEMuARcg3IDmt33wALvjHRt2vnYuNUqcLXGj2HcHdonQIC+WYVrKzMPoY7EIEce
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:53.1800 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- f96ba5b8-4c9b-40ac-b48f-08d5f96a140c
-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: CY4PR0201MB3506
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105418_560981_AC19C490
-X-CRM114-Status: UNSURE ( 9.67 )
-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: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-Add ZynqMP firmware query data API to query platform
-specific information(clocks, pins) from firmware.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- drivers/firmware/xilinx/zynqmp.c | 14 ++++++++++++++
- include/linux/firmware/xlnx-zynqmp.h | 20 ++++++++++++++++++++
- 2 files changed, 34 insertions(+)
-
-diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
-index 24cfd9e..8ec5682 100644
---- a/drivers/firmware/xilinx/zynqmp.c
-+++ b/drivers/firmware/xilinx/zynqmp.c
-@@ -260,9 +260,23 @@ static int zynqmp_pm_ioctl(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2,
- arg1, arg2, out);
- }
-
-+/**
-+ * zynqmp_pm_query_data() - Get query data from firmware
-+ * @qdata: Variable to the zynqmp_pm_query_data structure
-+ * @out: Returned output value
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_query_data(struct zynqmp_pm_query_data qdata, u32 *out)
-+{
-+ return zynqmp_pm_invoke_fn(PM_QUERY_DATA, qdata.qid, qdata.arg1,
-+ qdata.arg2, qdata.arg3, out);
-+}
-+
- static const struct zynqmp_eemi_ops eemi_ops = {
- .get_api_version = zynqmp_pm_get_api_version,
- .ioctl = zynqmp_pm_ioctl,
-+ .query_data = zynqmp_pm_query_data,
- };
-
- /**
-diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
-index 2eec6e7..55ed2ba 100644
---- a/include/linux/firmware/xlnx-zynqmp.h
-+++ b/include/linux/firmware/xlnx-zynqmp.h
-@@ -35,6 +35,7 @@
- enum pm_api_id {
- PM_GET_API_VERSION = 1,
- PM_IOCTL = 34,
-+ PM_QUERY_DATA,
- };
-
- /* PMU-FW return status codes */
-@@ -48,9 +49,28 @@ enum pm_ret_status {
- XST_PM_ABORT_SUSPEND,
- };
-
-+enum pm_query_id {
-+ PM_QID_INVALID,
-+};
-+
-+/**
-+ * struct zynqmp_pm_query_data - PM query data
-+ * @qid: query ID
-+ * @arg1: Argument 1 of query data
-+ * @arg2: Argument 2 of query data
-+ * @arg3: Argument 3 of query data
-+ */
-+struct zynqmp_pm_query_data {
-+ u32 qid;
-+ u32 arg1;
-+ u32 arg2;
-+ u32 arg3;
-+};
-+
- struct zynqmp_eemi_ops {
- int (*get_api_version)(u32 *version);
- int (*ioctl)(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, u32 *out);
-+ int (*query_data)(struct zynqmp_pm_query_data qdata, u32 *out);
- };
-
- #if IS_REACHABLE(CONFIG_ARCH_ZYNQMP)
-
-From patchwork Fri Aug 3 17:53:22 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555399
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 EDAF61708
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:55:03 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D7DC92C724
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:55:03 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id CAE462C921; Fri, 3 Aug 2018 17:55:03 +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 autolearn=unavailable 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 3839B2C724
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:55:03 +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=qtQXRQrdifcWWnryriOs3rlmB/UcW6DJQNSBlqnranM=; b=lgwUgsqJd4e2rt
- nmuUR3VN+VDn+S7//ZatPEwIqaFWvyT4rFZfumsLxKarWBlf8xKEDjwktYRlwjWJP0Vk8OddyVCHa
- yx5lo+LnZ4Wv5saME6q5hqyvVTiZ2bwhDO9Ma9mbSUFdPtOWE62HQNtCvn203EXoldwnSsavTkkGE
- VJdPxa0coO6zzMO/s6iO8NgNG+Ku2QckATIFE4mZy9a7huHR3dAKMUlr1N4t8rQMwdaf+vnNRkavC
- BZu5/ZZjvSIh9HriUn0aDuhQ3+US/m5JuPKMfAZ+BuMiRgylWcmAd+c21xXbcc6OJSyehHDfvvD1u
- vpi8ViaXKGhJ771ddatg==;
-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 1fleHw-0003kC-7F; Fri, 03 Aug 2018 17:54:56 +0000
-Received: from mail-eopbgr710058.outbound.protection.outlook.com
- ([40.107.71.58] helo=NAM05-BY2-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleHA-0002lM-Pc
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:11 +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=MCdLtrA1kN8/0je8FqQpiN8x3unLbKCW3xvP6auRcy0=;
- b=NbK5o18UsZ+yXgurW0cD8SnVUR3VyCCY0fcVnMfaJ0r5NR891G397FhoX7im+3MKhTpEgcyKxk6qwMETo435uEdN7yHwZuotVu5pxyIkx9MmvgAYyr3K3OTneiankyb63CggahlCCXuskq4Ra8SCvjzwzu4sqBzpCkDfbv9igX8=
-Received: from MWHPR0201CA0027.namprd02.prod.outlook.com
- (2603:10b6:301:74::40) by BL0PR02MB4450.namprd02.prod.outlook.com
- (2603:10b6:208:45::27) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.15; Fri, 3 Aug
- 2018 17:53:54 +0000
-Received: from SN1NAM02FT031.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e44::209) by MWHPR0201CA0027.outlook.office365.com
- (2603:10b6:301:74::40) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.15 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:54 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- SN1NAM02FT031.mail.protection.outlook.com (10.152.72.116) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:53 +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 <jolly.shah@xilinx.com>)
- id 1fleGu-0004fm-S0; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGp-0007cn-OV; Fri, 03 Aug 2018 10:53:47 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-E5; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 05/11] firmware: xilinx: Add clock APIs
-Date: Fri, 3 Aug 2018 10:53:22 -0700
-Message-ID: <1533318808-10781-6-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(376002)(346002)(396003)(136003)(39860400002)(2980300002)(438002)(189003)(199004)(106002)(2906002)(36756003)(6666003)(356003)(107886003)(39060400002)(7416002)(81156014)(305945005)(81166006)(8676002)(54906003)(2201001)(110136005)(50466002)(48376002)(16586007)(478600001)(316002)(36386004)(72206003)(106466001)(7696005)(4326008)(8936002)(51416003)(47776003)(9786002)(76176011)(50226002)(476003)(126002)(486006)(2616005)(44832011)(426003)(11346002)(446003)(5660300001)(77096007)(14444005)(63266004)(336012)(26005)(186003)(921003)(107986001)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR02MB4450; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; MX:1; A:1;
-X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT031;
- 1:3pze7uAvF87/xESxdQEo6sAKzLZVoTxZgoDo6QcLtiyMbVYsec9squw5C9h9aBOL9lTXH+5hdUDjYh08xRYa+fJRnVvxqjT+O4ZKSMHWt3R3u/fZ60qjG4nXYrK8Euut
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: 49efa090-d193-41b4-7655-08d5f96a13f8
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);
- SRVR:BL0PR02MB4450;
-X-Microsoft-Exchange-Diagnostics: 1; BL0PR02MB4450;
- 3:3S06KZhJqmoOH7ZqOlk7Zoylmkbi/9DpWNSCXH8wEg2F1N1BH44dR5XD33C0gkmHCLjmz4cqPj4cQqtsou2Rnb3RuoSnWpM0KT+Or1L4SW0rQGQdFXN5GJY3SobytfFtYEVpG/+cQKKHM+j4PYW57MaPaRBg3ua52UVIMQiVEUIJwupIzdHsDkTD4e74CtuCIy1r9wgAnJLtgfPQ69QLabDSIslz85/WW0DFDc5ljbigmPQ6Ta4QDMvn+P90o0DLDI1/LH7i+aJFqKgMpv5ixO+m2MhRHaZDm/rWzzPc6xMVqXWPoVbyqfJ44ChfFjVriYBre9mTW9cvUq1EUrjjQQ+ZJeJ3iWTDJ0oKkt1XYPA=;
- 25:aLItTIcA+ZAK8RWys9N3E8qLBWHlP1CDuFZjuTbYSqNgq+wbQQDBMoA3fn8r7Snviv+kWJo27uNsydeKyfgeg25Jk3FKyhG5Z9jCj0uE1fyilaBtwqb1qE0EI79/IdzRPk0z+Q4iZQmdbZhRqhgQtMivuvFHs51Hn8sgYTpX2oGrCydcfWtx5/CxAu0u10OYg2vR/fYgyDcnbkKh028xLaO4kCASv9daB0AMaTV8J1PKe4gtCNLropvjZ6rTgGfgCi+wbKHir/q0GdwmjvFZZI3Xogn9E+ScAgOJRI2sw2mLEd+hGhw39O6PYuMlQdr+IzDGgY5o/ohTDA6TN2KqKQ==
-X-MS-TrafficTypeDiagnostic: BL0PR02MB4450:
-X-Microsoft-Exchange-Diagnostics: 1; BL0PR02MB4450;
- 31:2164MBgNDh0dWmrnNkKw5tf6CM/oMJs21GRYTaoHrrXQ1nhxoMChJg5Mf2qxJetZjFfajJB3XHG3gIoe8BlDprbtd1tw13IxhFRM6FrX/lajKu8hw9JOMU4ZkDn6TFEZcUAu8EgcgsoZCO55rVrJJQ15RZDSNvBo6eapgQTpYsQLcfOdVr6sxolDHEln4SWvaCmBjBnFlVhD2ZKt+XqRSB3iLd0jAjUstK64M0lvDzE=;
- 20:SwjN/aOePbJfA5756uajhQDvZnfiDFPbmGeqZ0SVEnj9za4xydf3INAatDJNNj1NuXnxonYGdrq4AhqD381LYDj74oppYF5ZW0L250biqN+Jic/PabZRClUQUa4C8EJm1JHsJe7W1tYrQ3L1sNlLucgl8iUVDnSSy2WPxkTsx7glopWqwXecOC69MqmzfC7P2yjHForUNhxJs90s6Eu23RaV/mRwEQTnqnb9uwmNP05SHUey6WzNLrx+2kQCxD+LN/3ddIZe6Bza5fupbQxKuyv/niS4LM9Kq5gS8Pfe6pIR7+PWcdRF85V7SY8a0uyibCpgW2FiWNe7UFlVC9WwqaUtrWroKUzFoXO92e4fGCqY1qnV9RqIEuLTE6aAf7z5n6TVTboFOnIYN0VNuQBsXnKprWe9kx8cMGpBpxkAbSLe7HaPpW28K8Kz3jFTX8eqeIJx7AIvq/C6RfoFbq6Hnkk0UTcgjTfQi0+30oWcB09zZNrGvgcp7QCwBb6hM7ML
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <BL0PR02MB445079201A0DFB581346501FB8230@BL0PR02MB4450.namprd02.prod.outlook.com>
-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)(93006095)(93004095)(3002001)(10201501046)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(6072148)(201708071742011)(7699016);
- SRVR:BL0PR02MB4450; BCL:0; PCL:0; RULEID:; SRVR:BL0PR02MB4450;
-X-Microsoft-Exchange-Diagnostics: 1; BL0PR02MB4450;
- 4:dkMMUYg5ZqnEWIN+XwDwXuI+oZ/E3k0Iwn+LM/LoqUxRO2GCxe1IkgUncQL18NmRXAHyfuj8sXgQ8lsfc1Vr2aJQ8W19snpY2jbKMkoh993dgp2VG/sHq5TfHz1jRqK3WYRN0j23ctyfxrkR5WMgHnqpm/8bRM66N8fkV3RnAHs6q2Eq2+YPHcck+MfpveQyQKRfPtWK3B/geqbP6TFMZz9O0vjkJyVNrlPPO/VFKXf/gVqy/TWk3oE69SjzumOUr6xHTmPTy7BqxpaHP1/I7sJx2tpp5F6Zg4J6Gqm5rXn8AYFmCy50PmXdDFRzZqxT
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR02MB4450;
- 23:2+DZQ9fHlOO9bSg+svY+IuM34IAMZtp7s5d1AnV+x?=
- ZVSdWx4VW9o5WSwTSjMPPpKmYyqOkkb0phwwdEI5t1ubx+to3fOt5YE+AvoNGU/NfYUADJwygpVCEFFD/G4iqM/Uqf9/XgTRM5f8Whce/gylcMBZCAx31BT0ms3xh9LOWCcTZG4n7AgxDA32GCpbDY2nwXo/s5B+8qbaRbT3qsjpODnJpXm7XmfU98w8CL3P72ILqqFzk7GjSSv4vyUSDVaQqclE0sw2K6XULX+tXJmhakWByAEiglY3UTXpHGcZNs9r/FyxnMwWn1iIAavQ8689hi2b7720nWOhSgMxO2wo05QZUfPwu3PglXNP+oZSH8FaQlskhZ3awKYZreezgWWM/viTHfFgDa6uGb+nvjblDDVnPn4wj8Om5FCpBfSweQhBjSqs1RhDBMBwRETbW89iywK+CU/AXz0Fj8v5x4gUYXTjX4jM7qmEz0fqQImBOnZduAf08Fiyfc0Xqr1uTubihkj7JyvI8ZZ0HDE50WPyADjLVQZcdkeioCFaHYWBtIo6E14XQK2hH05aDh17THxmMCh2WP5JYelEF2gm/EucCDUtFlBN/KafPNj7SsDJ92kG9i/a7Sav0EDKEJOoTU9sHhqcGBk/RkHWpvDCgv+H4nJeCDJ7BmndrBOcCWiCOI3fq39FoWJHh4S4NQq+LTe6bKt1vGfS3uWrkq/NGLkvihTnUan5pyhn1PgUhcHHZBxzADuu3O1WPeqs+LxhSURmsCKOv5Ks1slXj95t2sBo/bIgUweQK0GwQo0BdSbVZzV+4thXVzKg9llV5VeP6YyXi1UPfWUXYW8q6Zq0/Hv/TiXBNOMNyz/P8Irb4Y38VUXRJl7YCYZkBwCnlXIvhA5jjT/PALAyaSAqeT+TlR2IyMrk6XOK+sq2t5/Tkt8NHoD4JV8R7ZNKBlIniGj1yhTlwrwX45uTwMqV9EWN4tn+qFWrbQRVshBZbvgPAvLEeaDYUuLVdloWX/uq17zJDfsNgoPT/sW18UWIAncgtAtKbp88/bxU8MeddrBbW/yBZepfLGHS0z422GHQlG9SzPA6Qw2z7d4Fz3xV++RjTFHJXWOSwZg1Yr086Nf1iAvy+MuS+iXP4HzfKVZ/4CnPN1vGIjb4exvRY/6uz8tUP9tRwgPZpX6gQhU0Oo70kO2rpb45efL18ZMWS1IP61G8eUVqFaTryV5N1lNxIfXMcontnwWv6G+KwCHjijeTfvHCDNSjWNSRtkSmT4Q7LlRf3af
-X-Microsoft-Antispam-Message-Info:
- aYg+I06gFSiwN2lWsUN9Tb5gOrobyyjTkmeFjynPfg8lyavb9pgYRRFH2HNQuu1DPFZCaKwaywMFkbZjZJgIXl17Kixfl/gVPF7ilZ5Y2bSw4c4D0lAMWD+nTtfM8vKosYKQylHAPlMZSFKkic3BWmv3XDQ0nM5gFZlJiWhlJ0wLWJfPxkbNVU2grtP7gwYJc+6E7fUaCBrGpgGubi9ZYiuTatIfnZfL+Cc+e/LgXR7URVKa5Iz7+oQpDCIEurY6vxmhzJvcC61e2ZE0gJgEvL7aPi/3kr6fTS8q9Nrv74gMuDEpqpN1jQektfUF8xHeOgZfIGqfn3ZkIkZp9Id9lyFSiZWfCQPWsFicyJPuLO8=
-X-Microsoft-Exchange-Diagnostics: 1; BL0PR02MB4450;
- 6:Ump5bVErqmM0Neg4KPLrIX8ypn71heefl/POhRSq/gPSyw/hfyXmgBeIvDIt0kgLQWiVhzplWQ3nBiQmwqoWQtQjS4RyefijHsS7Nb7ef56VcQ2mHGGfoOO57u1bv5diBxDoYbqJqPlv+vWhL3qZBn73bEi66+Z7SfEXgMBiG8V8ZIXwjFzxY02vpVZ1wEFyuUckSBNMLcd1tn+TcjrO7qEq5Ofr7fwCIp0VyvW9uEVk5xpBuIKxaZuqilRhACJTNT5rzpuZ1g+vFEDFZmk+Hz7PARO1VtzSUdKLunO0RFJ2CvdDpesm89N5Tvpd5aqvR5zkEeEGNaSi7hfyRUXO+fHvVF5BpMCY2DmICS7TicaUruDCbbjNDWrRn0zzW2tL05WHIqXKWcrM6nGnj4m19JN9kYqel68+TtkKPDX4aAH1VoWcHJgRWTl3GK6qwcFQV+B2YgSE4HmwMqROyNu91g==;
- 5:ik7k1b0SC+lC1IqlVvUqUNVsdtURffSMW72ah6+D+vic9YGpycFTPI0IiVdbQ/X7ceqK/I57ZOjniZ4KAIYEwOL3a4V7Admq19G3zUj6OR6spakbtPuB+zqlZXtq0JpAsrZBQYY0U11KnYrlGUAfHF25RiCD2MaMlvGOBYdNhUA=;
- 7:JBCZQ21PguVytYYJQvdyYWscwVWLl2rKhYniQA8blQmjyHuNxI1XkTsc/8JE/OXsecmB7dAZ40FkBshQdZkjzZaLoKEs94T/VDDouj7Cw1IoIq8ZUuw0HCmQtFt8TZbCy+F+r4u+iK6H1SQxdftLacGr1FfFEMcASq1EMv5RoxKMbd0mTmUbq7wmVF6MFkgzldfsAQ5F7GvWT328H7ljBuhfR6kaxenr6hHlkoYWDqP1xj5HtJfuY5nx9lJH4s6e
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:53.3442 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 49efa090-d193-41b4-7655-08d5f96a13f8
-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: BL0PR02MB4450
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105408_896103_D3F4D1CB
-X-CRM114-Status: GOOD ( 11.13 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-Add clock APIs to control clocks through firmware
-interface.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- drivers/firmware/xilinx/zynqmp.c | 186 ++++++++++++++++++++++++++++++++++-
- include/linux/firmware/xlnx-zynqmp.h | 30 ++++++
- 2 files changed, 214 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
-index 8ec5682..41ed800 100644
---- a/drivers/firmware/xilinx/zynqmp.c
-+++ b/drivers/firmware/xilinx/zynqmp.c
-@@ -269,14 +269,196 @@ static int zynqmp_pm_ioctl(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2,
- */
- static int zynqmp_pm_query_data(struct zynqmp_pm_query_data qdata, u32 *out)
- {
-- return zynqmp_pm_invoke_fn(PM_QUERY_DATA, qdata.qid, qdata.arg1,
-- qdata.arg2, qdata.arg3, out);
-+ int ret;
-+
-+ ret = zynqmp_pm_invoke_fn(PM_QUERY_DATA, qdata.qid, qdata.arg1,
-+ qdata.arg2, qdata.arg3, out);
-+
-+ /*
-+ * For clock name query, all bytes in SMC response are clock name
-+ * characters and return code is always success. For invalid clocks,
-+ * clock name bytes would be zeros.
-+ */
-+ return qdata.qid == PM_QID_CLOCK_GET_NAME ? 0 : ret;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_enable() - Enable the clock for given id
-+ * @clock_id: ID of the clock to be enabled
-+ *
-+ * This function is used by master to enable the clock
-+ * including peripherals and PLL clocks.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_enable(u32 clock_id)
-+{
-+ return zynqmp_pm_invoke_fn(PM_CLOCK_ENABLE, clock_id, 0, 0, 0, NULL);
-+}
-+
-+/**
-+ * zynqmp_pm_clock_disable() - Disable the clock for given id
-+ * @clock_id: ID of the clock to be disable
-+ *
-+ * This function is used by master to disable the clock
-+ * including peripherals and PLL clocks.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_disable(u32 clock_id)
-+{
-+ return zynqmp_pm_invoke_fn(PM_CLOCK_DISABLE, clock_id, 0, 0, 0, NULL);
-+}
-+
-+/**
-+ * zynqmp_pm_clock_getstate() - Get the clock state for given id
-+ * @clock_id: ID of the clock to be queried
-+ * @state: 1/0 (Enabled/Disabled)
-+ *
-+ * This function is used by master to get the state of clock
-+ * including peripherals and PLL clocks.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_getstate(u32 clock_id, u32 *state)
-+{
-+ u32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ ret = zynqmp_pm_invoke_fn(PM_CLOCK_GETSTATE, clock_id, 0,
-+ 0, 0, ret_payload);
-+ *state = ret_payload[1];
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_setdivider() - Set the clock divider for given id
-+ * @clock_id: ID of the clock
-+ * @divider: divider value
-+ *
-+ * This function is used by master to set divider for any clock
-+ * to achieve desired rate.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_setdivider(u32 clock_id, u32 divider)
-+{
-+ return zynqmp_pm_invoke_fn(PM_CLOCK_SETDIVIDER, clock_id, divider,
-+ 0, 0, NULL);
-+}
-+
-+/**
-+ * zynqmp_pm_clock_getdivider() - Get the clock divider for given id
-+ * @clock_id: ID of the clock
-+ * @divider: divider value
-+ *
-+ * This function is used by master to get divider values
-+ * for any clock.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_getdivider(u32 clock_id, u32 *divider)
-+{
-+ u32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ ret = zynqmp_pm_invoke_fn(PM_CLOCK_GETDIVIDER, clock_id, 0,
-+ 0, 0, ret_payload);
-+ *divider = ret_payload[1];
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_setrate() - Set the clock rate for given id
-+ * @clock_id: ID of the clock
-+ * @rate: rate value in hz
-+ *
-+ * This function is used by master to set rate for any clock.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_setrate(u32 clock_id, u64 rate)
-+{
-+ return zynqmp_pm_invoke_fn(PM_CLOCK_SETRATE, clock_id,
-+ lower_32_bits(rate),
-+ upper_32_bits(rate),
-+ 0, NULL);
-+}
-+
-+/**
-+ * zynqmp_pm_clock_getrate() - Get the clock rate for given id
-+ * @clock_id: ID of the clock
-+ * @rate: rate value in hz
-+ *
-+ * This function is used by master to get rate
-+ * for any clock.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_getrate(u32 clock_id, u64 *rate)
-+{
-+ u32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ ret = zynqmp_pm_invoke_fn(PM_CLOCK_GETRATE, clock_id, 0,
-+ 0, 0, ret_payload);
-+ *rate = ((u64)ret_payload[2] << 32) | ret_payload[1];
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_setparent() - Set the clock parent for given id
-+ * @clock_id: ID of the clock
-+ * @parent_id: parent id
-+ *
-+ * This function is used by master to set parent for any clock.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_setparent(u32 clock_id, u32 parent_id)
-+{
-+ return zynqmp_pm_invoke_fn(PM_CLOCK_SETPARENT, clock_id,
-+ parent_id, 0, 0, NULL);
-+}
-+
-+/**
-+ * zynqmp_pm_clock_getparent() - Get the clock parent for given id
-+ * @clock_id: ID of the clock
-+ * @parent_id: parent id
-+ *
-+ * This function is used by master to get parent index
-+ * for any clock.
-+ *
-+ * Return: Returns status, either success or error+reason
-+ */
-+static int zynqmp_pm_clock_getparent(u32 clock_id, u32 *parent_id)
-+{
-+ u32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ ret = zynqmp_pm_invoke_fn(PM_CLOCK_GETPARENT, clock_id, 0,
-+ 0, 0, ret_payload);
-+ *parent_id = ret_payload[1];
-+
-+ return ret;
- }
-
- static const struct zynqmp_eemi_ops eemi_ops = {
- .get_api_version = zynqmp_pm_get_api_version,
- .ioctl = zynqmp_pm_ioctl,
- .query_data = zynqmp_pm_query_data,
-+ .clock_enable = zynqmp_pm_clock_enable,
-+ .clock_disable = zynqmp_pm_clock_disable,
-+ .clock_getstate = zynqmp_pm_clock_getstate,
-+ .clock_setdivider = zynqmp_pm_clock_setdivider,
-+ .clock_getdivider = zynqmp_pm_clock_getdivider,
-+ .clock_setrate = zynqmp_pm_clock_setrate,
-+ .clock_getrate = zynqmp_pm_clock_getrate,
-+ .clock_setparent = zynqmp_pm_clock_setparent,
-+ .clock_getparent = zynqmp_pm_clock_getparent,
- };
-
- /**
-diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
-index 55ed2ba..58a7478 100644
---- a/include/linux/firmware/xlnx-zynqmp.h
-+++ b/include/linux/firmware/xlnx-zynqmp.h
-@@ -36,6 +36,15 @@ enum pm_api_id {
- PM_GET_API_VERSION = 1,
- PM_IOCTL = 34,
- PM_QUERY_DATA,
-+ PM_CLOCK_ENABLE,
-+ PM_CLOCK_DISABLE,
-+ PM_CLOCK_GETSTATE,
-+ PM_CLOCK_SETDIVIDER,
-+ PM_CLOCK_GETDIVIDER,
-+ PM_CLOCK_SETRATE,
-+ PM_CLOCK_GETRATE,
-+ PM_CLOCK_SETPARENT,
-+ PM_CLOCK_GETPARENT,
- };
-
- /* PMU-FW return status codes */
-@@ -49,8 +58,20 @@ enum pm_ret_status {
- XST_PM_ABORT_SUSPEND,
- };
-
-+enum pm_ioctl_id {
-+ IOCTL_SET_PLL_FRAC_MODE = 8,
-+ IOCTL_GET_PLL_FRAC_MODE,
-+ IOCTL_SET_PLL_FRAC_DATA,
-+ IOCTL_GET_PLL_FRAC_DATA,
-+};
-+
- enum pm_query_id {
- PM_QID_INVALID,
-+ PM_QID_CLOCK_GET_NAME,
-+ PM_QID_CLOCK_GET_TOPOLOGY,
-+ PM_QID_CLOCK_GET_FIXEDFACTOR_PARAMS,
-+ PM_QID_CLOCK_GET_PARENTS,
-+ PM_QID_CLOCK_GET_ATTRIBUTES,
- };
-
- /**
-@@ -71,6 +92,15 @@ struct zynqmp_eemi_ops {
- int (*get_api_version)(u32 *version);
- int (*ioctl)(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, u32 *out);
- int (*query_data)(struct zynqmp_pm_query_data qdata, u32 *out);
-+ int (*clock_enable)(u32 clock_id);
-+ int (*clock_disable)(u32 clock_id);
-+ int (*clock_getstate)(u32 clock_id, u32 *state);
-+ int (*clock_setdivider)(u32 clock_id, u32 divider);
-+ int (*clock_getdivider)(u32 clock_id, u32 *divider);
-+ int (*clock_setrate)(u32 clock_id, u64 rate);
-+ 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);
- };
-
- #if IS_REACHABLE(CONFIG_ARCH_ZYNQMP)
-
-From patchwork Fri Aug 3 17:53:23 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555411
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 42CDE14E2
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:05:47 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2DEAE2BF36
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:05:47 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id 218302C983; Fri, 3 Aug 2018 18:05:47 +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 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 55C962BF36
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:05:46 +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=SlaW7LMtEE/cr0hfSQZkJaC+lEL3gJLfwFZEnkwJH5M=; b=FF+yYiy+d6kVIY
- NPO8GugZSGK7/FfXWAnyKIzXDX4sfLdhp/xMTCgIoytzv+Wyp9ebZyPU+fFJRAYRw4ZgNVQ9QbTSw
- IDtNrqkTxlr+1cPaE1hD15KuN5Xa225kdNh30n5ukSkCOzflISqgvo0NvP2dQAiN2JkNVohH3eqsx
- 7l+7aFORrBS81lQVczus4Zpny/dtPc5p7qFm6VVZXaMMuwiP7Rq7bqsbiW1AwlRQlzyojckKHxLVI
- 9WrYobFEUCempK1hSL9BC/TpRZ4OiidHTFMEnIx7xX0vUJJbgwJoNKc12REazj7BOoefUvdc4iRR7
- OStU/IxPeB2DvffI49lQ==;
-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 1fleSM-0001Xj-N0; Fri, 03 Aug 2018 18:05:42 +0000
-Received: from mail-co1nam03on0073.outbound.protection.outlook.com
- ([104.47.40.73] helo=NAM03-CO1-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleHA-0002lJ-1v
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:10 +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=VE114//YUPYxbjun3uPhuQH8U38wde77z/JGyfmsCXc=;
- b=dq4snkg/uWEhhWRPXKPKRnkIcixnBBHL/oVun5zYPSScd7KwwifYQYPfhcb5F8QGbTRW3YANoVjYtFcZam+jmRITITCMN6nixJSuGD58PO++dabE+ZO5nUDkzlcP5imKo5LzoqYenyl5ZeG8e7gWVpgcKDlzEgbFZEwG7ygB330=
-Received: from CY4PR02CA0004.namprd02.prod.outlook.com (2603:10b6:903:18::14)
- by MWHPR0201MB3514.namprd02.prod.outlook.com (2603:10b6:301:77::11)
- with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.14; Fri, 3 Aug
- 2018 17:53:54 +0000
-Received: from CY1NAM02FT024.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e45::207) by CY4PR02CA0004.outlook.office365.com
- (2603:10b6:903:18::14) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.15 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:54 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- CY1NAM02FT024.mail.protection.outlook.com (10.152.74.210) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:53 +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 <jolly.shah@xilinx.com>)
- id 1fleGu-0004fl-Qj; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGp-0007cn-N0; Fri, 03 Aug 2018 10:53:47 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-Gc; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 06/11] firmware: xilinx: Add debugfs interface
-Date: Fri, 3 Aug 2018 10:53:23 -0700
-Message-ID: <1533318808-10781-7-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(346002)(376002)(136003)(396003)(2980300002)(438002)(189003)(199004)(63266004)(72206003)(16586007)(14444005)(54906003)(110136005)(2201001)(36386004)(9786002)(478600001)(50226002)(4326008)(316002)(47776003)(7416002)(966005)(6666003)(39060400002)(107886003)(6306002)(106002)(2906002)(186003)(336012)(126002)(26005)(44832011)(106466001)(36756003)(51416003)(476003)(426003)(77096007)(76176011)(11346002)(7696005)(446003)(5660300001)(356003)(305945005)(2616005)(486006)(8676002)(48376002)(50466002)(8936002)(81156014)(81166006)(107986001)(921003)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR0201MB3514; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; MX:1; A:1;
-X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT024;
- 1:XJtp6mPeAEQzxSzqta74Rf02P94NT3NgcfhV+Ycor8oeXTmBrcMBNt3vLIuJw9viC1xla7+ljFaT82kV3FRpZm4WO8igxlIHKxyr/dbBx6sz5SFqITX4iUW9MbwzBzJG
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: 7f1cf7f5-c927-43d7-edf8-08d5f96a1431
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(5600074)(711020)(4608076)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060);
- SRVR:MWHPR0201MB3514;
-X-Microsoft-Exchange-Diagnostics: 1; MWHPR0201MB3514;
- 3:gWfRNCiVxx6krfkpYUQ4cnxzfyusc7U4ga1svGYbU6p696pzaZ1w5Uaxj3FieLruw17UnPwa/jwT2IHNz5rOSXNXgNMLzHBRtSMqPlX3Vn/WpUFkKOnTFiB5yAXfTfZNcET2O82CxdOsavOjI4kcvnlzClMvpJGUqQBXnlr0slClJyEbKg23qM+IypZJn6vQFt0orFmMeHWMeYF8zkh1HS3EXFg59u8QbhZwkvL4vwwfVtYAu5jcRienQ27qFRLrS7r+Mfu3A2Wzm1ACekZcJnAtFFICN/+jbN5lLRF4yXhZx7qru7v5eF5mrywSRogXrufB9/xQ3eR/P4aETYWdYFD2dN6K/BgKljvEEUs+pPo=;
- 25:IkAkf+HiFbH4CNWRXZix02t8Pyr+ZRXgeOp7c0hj/pz0PlYENWYb0yxcWCik7aaZXWepn79QIU9K+qj8gUpB49dPpWws3Jp8hT+G+1rNJJUJMyyjLaVpwwxhFBvEgKsnNBIeNxlZbU0/QHGXorPPAZNWRPVFNPmOqgJwSE8Ye0j92tuEy8XRJtVA8irQ3arCYaVS1KxBTHSbMNWjDBMENVVZt6bz+nqLPXJjW1Q2dAKkxb0J+OmzuMIN5gfw3GsxbW+pyNKgG8meZrL9/ViAGGKDAyPkSjosMcRM0iIEV0IXvg9EmieBxFTJC6rtdMn3FJ8TdRQ6Y5me6Z2pKZrO0Q==
-X-MS-TrafficTypeDiagnostic: MWHPR0201MB3514:
-X-Microsoft-Exchange-Diagnostics: 1; MWHPR0201MB3514;
- 31:Ox2hgllmWiSeAw49wA7h47mGeYvw0MsA9g08QTq7pSS4iCNYwf+l66ELs2n3aYAQAfqNVCeP4AF768gpjgqJrdoDeSSbjKWcUClmLzKEzUZJ2hMZ62gr1GsVnXK5FKY7q2zMcAJ1vNKwQWH4n6COaaJ6kw/MhiXF1qCcmDB0XEh5P3XYy51lH9+N8JSz6xo+Q4xt78m5mu/9cKJKbidMMaeeJYFQQfPtQvJeub0u8Gs=;
- 20:ejEtRfxhPUE4SJRt/Qz4uOHchvN2NgqzC9tzRCcjwfUUALDDL+s+oys/PfqCkt7/4DPWJSUv6JVB8N4k2jUV9ZJgK31zgLbQ8562iPQsd3ZfLlztXQcczhddk9kD8RhfY5zcyhY+IdlSWYadc9U/gOWhks+IKlewxR7ETyOkYQq955zCzGisVbBUsNBLpRilzDOq9tRRaS+iLzckxPbAgPd8QPT7kEt7nK/HFXVtXSr7dEaTYUkzPxnq0UNJjK0bzMUVwdfN91dtjYLwDxNEjiFsWaAHz7kuOshfa0vfmWcwPnkcivtW5K0l2r/b2mcL//ZJ40VFzM/sA0CdR993knaX9IGzA+b7NxJWa6m8g4TEvLBGbfhsX99KiHAg+LYts2UJlnNcwa0K4aIjpXB0Dhkooqh5/JSTWOMyaQe3jn5wdIKQOHxCCgqK4QA/CgTjkwxrFfiMEahPzFFTv9LlIA1VjcuTEkkYCrkXsW1ghsK4o6ASAg/sc7Phlr85KqvR
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <MWHPR0201MB3514F1A156385FD474D4E190B8230@MWHPR0201MB3514.namprd02.prod.outlook.com>
-X-Exchange-Antispam-Report-Test: UriScan:(192813158149592)(189271028609987);
-X-MS-Exchange-SenderADCheck: 1
-X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
- RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93004095)(3002001)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011)(7699016);
- SRVR:MWHPR0201MB3514; BCL:0; PCL:0; RULEID:; SRVR:MWHPR0201MB3514;
-X-Microsoft-Exchange-Diagnostics: 1; MWHPR0201MB3514;
- 4:iv2luY/31yBDz008ORw8GHI2Vz7FdH6vSANVDPIycHRkJvz6usFK7+oXF5VhMfI7DyHY5nhm/IrAEr0+7I37TuUrjkdBFUHrYEMr6dS+RE55S2KlSCWmgQa5DKI5eZ71PX7M1fCx4FdQ46TL5Du0HbtPLyghKkdSUQJRh9n7q7FdLKNKZKQNICp6HBhWRiZCtXWiLexZ8KbngRyEBZCHQYj67yYW8G+Cv2NZ+vi4gU1x3b8kV5CLs23ntu1nyzMTrR0jZ3Lnf7Eut9UOE3ic66OyqMzaSHXAQCBbZgxBBMyC0urnxd6bTL9YjllkrcHoFIwe6RZWRQssuaN4V9Qn2A==
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR0201MB3514;
- 23:UT97DfX0QbKmM0nXFp8S2qrIykkIbib9Jknwhgm?=
- D93UQ7kEWyeUDp4Q0fjoD5xLKs0vCTqpuxKyoBvtBB5puXRHbEgMR5ShyphykZpJS+BA72QVEsddyB98r7sxEPS3xMJP7i6esgKNmrca8Q+odNj0qREFJtoTXunOSPZdlsrS7B5UoRVokNaKrnuRk7u/8kDZqFSA8TkvGXmUMCW+tFkpcvzjCzQlYmyugfmcwecmfHX1+MtKq66uNTm3xtPTx+KGeS85uLwMYLBn3Kb0f210HS0FscrvM+oJ4GerLTpjr48o5VULUxYYbqvr3zvLBEGVC2oPRh43fbWzL9zWRIr3DJyU5aQXb3fEQJTSsEOr7NTYCIaxBEn+eofxDmyDRQJMNwzKFNCEYU/amsIYB7Hx4DXFdbVO3TYJMLpqeD6BysQ23GwKHHjubAEkECeR+BUzYsMmIWHW7Putdjhb7UFuYdB/2rSJf3hhhQR7Ml15Gtkey3pWLMxJute93ovcFbAN1dYM3vrI4LIYZsOZkXMi7GtTxJWiBx0nOmmN+E0mkVts6GYm13aUZdn1cmxUcgBo4wR+WwyE0Wvnh5DUEqCw58Ed+QtBFvL6V64RE/M/iGEX7c02oxeaARnNh81e41fFh8dsAlXw7wibFDM8mHErBIFKCVr8oMyHobkadSld/dUkDHOoPVQOK3tIRuumEHhVFE+YmShXZD30AyKjfqfr4TLzLURe41SnOuewqu39dhYQvqfw5xibdGRRF/XsAtgCUrn3qyf98+1A83wjKhFqT1cHD5s6pzZ4MGPCojPumo1EvRr8eu2nIYNqDoP6+bzqVFPBaki2s+Yv6XC4VyVjSku+42FH6o2HlOz+lgX6bPCtOyXtAcU27O+79G0WHkm91AE+DCSTzb8v/ZvORCGwAjd90FUvS0tpScq2wSheMi7H+ITyIyGS/sLRgKAleJPxLytKqQP7N1oQLHNLoSq1A6TgAuRelehHvoBw6aLNgZxtybsy/ZRIXqQOaCgkEsx6ykoyS4Jc/gKO2qsxJlFIPQEz/lgEynKwjy8NU5KeDns7erET/yaA07S40qAbQFD6iNnQMAZ8R+wS3+pJ8YQb+kr+awJ6GuQmuojsFYLNW1zjF9amsyvgIvq0GNsN8N2sQboH1YZGZDb3fTmuT3JCZA0F6hcy+3W8/2+VSbiwvQjQXMVDMfsEhdPgj1A98SDCCD/8z/levNWxGkRFxEyMgG7gdx319nyfiqZGqsO2fJD4p/5s8hRNAqt5HB7Q3/r0NJib/wY+pfGxLXSRVkA==
-X-Microsoft-Antispam-Message-Info:
- NfW6uI57pDT5sdpv/+tcWrWD20sp/nypPYcBYRbbEwGIiQZ51MorUF9VWU/IEu7fmDzo4yEdmlEJB1DkMmBcZjIk5wsbkObXuTgVPqqSXpmQMbdH07WHhMfzlHFlDoEWxs4NCGHdQszNJn3tkd5mO+8D/t6f/hVFvve/S7FzwviscX6ErKXxwKufJXRyR06Vuh8wsb6DT7xOWK0M/jUZkPMoLcq/JfVUajjXYuq3JKE5KX1VK5gSKkQo0bp1zDUafztQB4bYoQPxKwdnJahB171w+AyzW4Cty8AGLGOjB/Wl1ePRcYGzs8kZFl5k4iFcilVwUvF1gBom7silLqzs6VZ6wTXV/SUYqkBZ/0Fjtnw=
-X-Microsoft-Exchange-Diagnostics: 1; MWHPR0201MB3514;
- 6:zgEz8LeKTh/l1XUu/5+jVJqOcQWWgI92BXjoMc7n74Xq9BSvewzVz/Ju4hwe7s7qs+LSyTSs2l0ss6e4/ukw9nfW0QWXS4ixV0sTrIOb3rLF/8/GC6A5my1hzi0Ql1Shlz98IW0iDmRIajp9GGXp4S+LTadHlBn87THRDUVfcFjLaP2BIx5+ilkmc+J1BWvPeB4+/TiW5NxO7m+9h0lebOfPEsuI1aRkpMiCimn9LFFmhAqkKaus4NqqIaxaKHyxH9DT48PX9ftSlEBu83kwORXMmc86vNav5W7agH5wcf4JWB7rhs6Ilb/QHJREGr1prfgZCbbIGymGgFqaYW7MxPEAcrvy7HNIR7p6p8OrJStPwa6gdJLmfewJ58uhECi6LHpe96UoFXe6xV0g1LminYtd1v0E8IWVg8C11U3+2aT2s/Lob3FutXllOavrUtwtmTVGUqTLNmk/IewxMAvefw==;
- 5:kqpBuNN0jMQLX4JukacwSnruLLAHNyUPNzuibKBoJVDUV7lTHOgGcJQmdcbhnikuPg/3ojrLboGx4nZaUtN3Gy7/gHhSgEcDbWAuqBOnT9dzG/Ue/KGJgxMlKTrjVbeyD9+kzXk/O8KvKoiawPq0oFRDBzT3SY11PTuOpVj95tY=;
- 7:3q5YG446HT0tyNhVkZLO4Ct0aMHkqUkQnwqbqlm1VJqI7Hy71127B4vYrFU5f7rJRqjCSO5xqAeq1dpYx8lLx4esJuqYqeUanY02mDAim5uPnwIAqfrzj7BcEwNcHrwQLVszFIVgdyhcNRdOTlltM5sYJlFJZFKcNs4ZKcK/y5J56JzIE8rXJ9cwnnB+q3oREMEh/kGqDE3fyJ0tK+mXn0W9AVhjxDvzRMaWzMlk29IzMHzSjinQV5OpfpRCxnJl
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:53.3302 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 7f1cf7f5-c927-43d7-edf8-08d5f96a1431
-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: MWHPR0201MB3514
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105408_216035_5379A60B
-X-CRM114-Status: GOOD ( 14.88 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-Firmware-debug provides debugfs interface to all APIs.
-Debugfs can be used to call firmware APIs with required
-parameters.
-
-Usage:
-* Calling firmware API through debugfs:
- # echo "<api-name> <arg1> .. <argn>" > /sys/.../zynqmp-firmware/pm
-
-* Read output of last called firmware API:
- # cat /sys/.../zynqmp-firmware/pm
-
-Refer ug1200 for more information on these APIs:
- * https://www.xilinx.com/support/documentation/user_guides/ug1200-eemi-api.pdf
-
-Add basic debugfs file to get API version.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- drivers/firmware/xilinx/Kconfig | 7 ++
- drivers/firmware/xilinx/Makefile | 1 +
- drivers/firmware/xilinx/zynqmp-debug.c | 212 +++++++++++++++++++++++++++++++++
- drivers/firmware/xilinx/zynqmp-debug.h | 22 ++++
- drivers/firmware/xilinx/zynqmp.c | 9 ++
- 5 files changed, 251 insertions(+)
- create mode 100644 drivers/firmware/xilinx/zynqmp-debug.c
- create mode 100644 drivers/firmware/xilinx/zynqmp-debug.h
-
-diff --git a/drivers/firmware/xilinx/Kconfig b/drivers/firmware/xilinx/Kconfig
-index 64d976e..8f44b9c 100644
---- a/drivers/firmware/xilinx/Kconfig
-+++ b/drivers/firmware/xilinx/Kconfig
-@@ -13,4 +13,11 @@ config ZYNQMP_FIRMWARE
- Say yes to enable ZynqMP firmware interface driver.
- If in doubt, say N.
-
-+config ZYNQMP_FIRMWARE_DEBUG
-+ bool "Enable Xilinx Zynq MPSoC firmware debug APIs"
-+ depends on ZYNQMP_FIRMWARE && DEBUG_FS
-+ help
-+ Say yes to enable ZynqMP firmware interface debug APIs.
-+ If in doubt, say N.
-+
- endmenu
-diff --git a/drivers/firmware/xilinx/Makefile b/drivers/firmware/xilinx/Makefile
-index 29f7bf2..875a537 100644
---- a/drivers/firmware/xilinx/Makefile
-+++ b/drivers/firmware/xilinx/Makefile
-@@ -2,3 +2,4 @@
- # Makefile for Xilinx firmwares
-
- obj-$(CONFIG_ZYNQMP_FIRMWARE) += zynqmp.o
-+obj-$(CONFIG_ZYNQMP_FIRMWARE_DEBUG) += zynqmp-debug.o
-diff --git a/drivers/firmware/xilinx/zynqmp-debug.c b/drivers/firmware/xilinx/zynqmp-debug.c
-new file mode 100644
-index 0000000..fcbdd6e
---- /dev/null
-+++ b/drivers/firmware/xilinx/zynqmp-debug.c
-@@ -0,0 +1,212 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Xilinx Zynq MPSoC Firmware layer for debugfs APIs
-+ *
-+ * Copyright (C) 2014-2018 Xilinx, Inc.
-+ *
-+ * Michal Simek <michal.simek@xilinx.com>
-+ * Davorin Mista <davorin.mista@aggios.com>
-+ * Jolly Shah <jollys@xilinx.com>
-+ * Rajan Vaja <rajanv@xilinx.com>
-+ */
-+
-+#include <linux/compiler.h>
-+#include <linux/module.h>
-+#include <linux/slab.h>
-+#include <linux/debugfs.h>
-+#include <linux/uaccess.h>
-+
-+#include <linux/firmware/xlnx-zynqmp.h>
-+#include "zynqmp-debug.h"
-+
-+#define PM_API_NAME_LEN 50
-+
-+struct pm_api_info {
-+ u32 api_id;
-+ char api_name[PM_API_NAME_LEN];
-+ char api_name_len;
-+};
-+
-+static char debugfs_buf[PAGE_SIZE];
-+
-+#define PM_API(id) {id, #id, strlen(#id)}
-+static struct pm_api_info pm_api_list[] = {
-+ PM_API(PM_GET_API_VERSION),
-+};
-+
-+/**
-+ * zynqmp_pm_argument_value() - Extract argument value from a PM-API request
-+ * @arg: Entered PM-API argument in string format
-+ *
-+ * Return: Argument value in unsigned integer format on success
-+ * 0 otherwise
-+ */
-+static u64 zynqmp_pm_argument_value(char *arg)
-+{
-+ u64 value;
-+
-+ if (!arg)
-+ return 0;
-+
-+ if (!kstrtou64(arg, 0, &value))
-+ return value;
-+
-+ return 0;
-+}
-+
-+/**
-+ * get_pm_api_id() - Extract API-ID from a PM-API request
-+ * @pm_api_req: Entered PM-API argument in string format
-+ * @pm_id: API-ID
-+ *
-+ * Return: 0 on success else error code
-+ */
-+static int get_pm_api_id(char *pm_api_req, u32 *pm_id)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(pm_api_list) ; i++) {
-+ if (!strncasecmp(pm_api_req, pm_api_list[i].api_name,
-+ pm_api_list[i].api_name_len)) {
-+ *pm_id = pm_api_list[i].api_id;
-+ break;
-+ }
-+ }
-+
-+ /* If no name was entered look for PM-API ID instead */
-+ if (i == ARRAY_SIZE(pm_api_list) && kstrtouint(pm_api_req, 10, pm_id))
-+ return -EINVAL;
-+
-+ return 0;
-+}
-+
-+static int process_api_request(u32 pm_id, u64 *pm_api_arg, u32 *pm_api_ret)
-+{
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+ u32 pm_api_version;
-+ int ret;
-+
-+ if (!eemi_ops)
-+ return -ENXIO;
-+
-+ switch (pm_id) {
-+ case PM_GET_API_VERSION:
-+ ret = eemi_ops->get_api_version(&pm_api_version);
-+ sprintf(debugfs_buf, "PM-API Version = %d.%d\n",
-+ pm_api_version >> 16, pm_api_version & 0xffff);
-+ break;
-+ default:
-+ sprintf(debugfs_buf, "Unsupported PM-API request\n");
-+ ret = -EINVAL;
-+ }
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_pm_debugfs_api_write() - debugfs write function
-+ * @file: User file
-+ * @ptr: User entered PM-API string
-+ * @len: Length of the userspace buffer
-+ * @off: Offset within the file
-+ *
-+ * Used for triggering pm api functions by writing
-+ * echo <pm_api_id> > /sys/kernel/debug/zynqmp_pm/power or
-+ * echo <pm_api_name> > /sys/kernel/debug/zynqmp_pm/power
-+ *
-+ * Return: Number of bytes copied if PM-API request succeeds,
-+ * the corresponding error code otherwise
-+ */
-+static ssize_t zynqmp_pm_debugfs_api_write(struct file *file,
-+ const char __user *ptr, size_t len,
-+ loff_t *off)
-+{
-+ char *kern_buff, *tmp_buff;
-+ char *pm_api_req;
-+ u32 pm_id = 0;
-+ u64 pm_api_arg[4] = {0, 0, 0, 0};
-+ /* Return values from PM APIs calls */
-+ u32 pm_api_ret[4] = {0, 0, 0, 0};
-+
-+ int ret;
-+ int i = 0;
-+
-+ strcpy(debugfs_buf, "");
-+
-+ if (*off != 0 || len == 0)
-+ return -EINVAL;
-+
-+ kern_buff = kzalloc(len, GFP_KERNEL);
-+ if (!kern_buff)
-+ return -ENOMEM;
-+
-+ tmp_buff = kern_buff;
-+
-+ ret = strncpy_from_user(kern_buff, ptr, len);
-+ if (ret < 0) {
-+ ret = -EFAULT;
-+ goto err;
-+ }
-+
-+ /* Read the API name from a user request */
-+ pm_api_req = strsep(&kern_buff, " ");
-+
-+ ret = get_pm_api_id(pm_api_req, &pm_id);
-+ if (ret < 0)
-+ goto err;
-+
-+ /* Read node_id and arguments from the PM-API request */
-+ pm_api_req = strsep(&kern_buff, " ");
-+ while ((i < ARRAY_SIZE(pm_api_arg)) && pm_api_req) {
-+ pm_api_arg[i++] = zynqmp_pm_argument_value(pm_api_req);
-+ pm_api_req = strsep(&kern_buff, " ");
-+ }
-+
-+ ret = process_api_request(pm_id, pm_api_arg, pm_api_ret);
-+
-+err:
-+ kfree(tmp_buff);
-+ if (ret)
-+ return ret;
-+
-+ return len;
-+}
-+
-+/**
-+ * zynqmp_pm_debugfs_api_read() - debugfs read function
-+ * @file: User file
-+ * @ptr: Requested pm_api_version string
-+ * @len: Length of the userspace buffer
-+ * @off: Offset within the file
-+ *
-+ * Return: Length of the version string on success
-+ * else error code
-+ */
-+static ssize_t zynqmp_pm_debugfs_api_read(struct file *file, char __user *ptr,
-+ size_t len, loff_t *off)
-+{
-+ return simple_read_from_buffer(ptr, len, off, debugfs_buf,
-+ strlen(debugfs_buf));
-+}
-+
-+/* Setup debugfs fops */
-+static const struct file_operations fops_zynqmp_pm_dbgfs = {
-+ .owner = THIS_MODULE,
-+ .write = zynqmp_pm_debugfs_api_write,
-+ .read = zynqmp_pm_debugfs_api_read,
-+};
-+
-+/**
-+ * zynqmp_pm_api_debugfs_init - Initialize debugfs interface
-+ *
-+ * Return: None
-+ */
-+void zynqmp_pm_api_debugfs_init(void)
-+{
-+ struct dentry *root_dir;
-+
-+ /* Initialize debugfs interface */
-+ root_dir = debugfs_create_dir("zynqmp-firmware", NULL);
-+ debugfs_create_file("pm", 0660, root_dir, NULL,
-+ &fops_zynqmp_pm_dbgfs);
-+}
-diff --git a/drivers/firmware/xilinx/zynqmp-debug.h b/drivers/firmware/xilinx/zynqmp-debug.h
-new file mode 100644
-index 0000000..3303b37
---- /dev/null
-+++ b/drivers/firmware/xilinx/zynqmp-debug.h
-@@ -0,0 +1,22 @@
-+/* SPDX-License-Identifier: GPL-2.0 */
-+/*
-+ * Xilinx Zynq MPSoC Firmware layer
-+ *
-+ * Copyright (C) 2014-2018 Xilinx
-+ *
-+ * Michal Simek <michal.simek@xilinx.com>
-+ * Davorin Mista <davorin.mista@aggios.com>
-+ * Jolly Shah <jollys@xilinx.com>
-+ * Rajan Vaja <rajanv@xilinx.com>
-+ */
-+
-+#ifndef __FIRMWARE_ZYNQMP_DEBUG_H__
-+#define __FIRMWARE_ZYNQMP_DEBUG_H__
-+
-+#if IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE_DEBUG)
-+void zynqmp_pm_api_debugfs_init(void);
-+#else
-+static inline void zynqmp_pm_api_debugfs_init(void) { }
-+#endif
-+
-+#endif /* __FIRMWARE_ZYNQMP_DEBUG_H__ */
-diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
-index 41ed800..7ccedf0 100644
---- a/drivers/firmware/xilinx/zynqmp.c
-+++ b/drivers/firmware/xilinx/zynqmp.c
-@@ -21,6 +21,7 @@
- #include <linux/uaccess.h>
-
- #include <linux/firmware/xlnx-zynqmp.h>
-+#include "zynqmp-debug.h"
-
- /**
- * zynqmp_pm_ret_code() - Convert PMU-FW error codes to Linux error codes
-@@ -551,3 +552,11 @@ static int __init zynqmp_plat_init(void)
- return ret;
- }
- early_initcall(zynqmp_plat_init);
-+
-+static int zynqmp_firmware_init(void)
-+{
-+ zynqmp_pm_api_debugfs_init();
-+
-+ return 0;
-+}
-+device_initcall(zynqmp_firmware_init);
-
-From patchwork Fri Aug 3 17:53:24 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555373
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 0728E15E9
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:54:15 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E50BE2C91B
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:54:14 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id D82F42C92C; Fri, 3 Aug 2018 17:54:14 +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 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 5BAE12C91B
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:54:14 +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=ce9N8qS1n2EpfOeno+i2a3LMyME6omtu8MHJyKnv2RE=; b=VbC0jj5XyhOiMf
- oif0P4bseb3ixymI6mjSu7OXKVV3NtUQMiIqBOO05ULnejAkpqQw6k+yoskdpoYbpeaPdFx1gHHfs
- ooY9iZW2n3JkuhcPfD9RU/2pcZ3uzNWA+HoCHwkUjP4tjcVBbQtWf0y2QvbRTiCHhm3Rr7RHwHusm
- AliL1P3mk8Vf7hj7902Zlv1Nsdl610wNfsS4HazVcZrMRydVx2ipm+9a8E3iXu4DbAfoKhLGwTy5y
- Vpn6ixDpLiz13ocXThkBDYx2YM3G/XPWJD0b/sag6o8JsCC/enTrvfR8EX/GyZllS8N5xzm6sudmt
- UtmP6Niiiq65j4GH70Cw==;
-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 1fleHC-0002ok-EF; Fri, 03 Aug 2018 17:54:10 +0000
-Received: from mail-co1nam03on0042.outbound.protection.outlook.com
- ([104.47.40.42] helo=NAM03-CO1-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleH8-0002l3-8x
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:08 +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=KfW+TeHXf25KA6qOupiMQV9tPEEtp8syyNbbmMvNliw=;
- b=t0MYowi7lPBK6x2+g6Mdq8oGFmSACBNuqqmQAzWbQU9URrT8WULaxtOB+C0uR1P5oa6yxSmofIYryB3wJlV8Ee0exwgNMHgfY6X6u0KY00QfXNknDo7x1rkg3z3+DUgkHe68Ih2eDlMeE2Fodhjjho1kREWii951WIOjELL1zdg=
-Received: from SN6PR02CA0013.namprd02.prod.outlook.com (2603:10b6:805:a2::26)
- by DM6PR02MB4332.namprd02.prod.outlook.com (2603:10b6:5:2a::29) with
- Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.14; Fri, 3 Aug
- 2018 17:53:53 +0000
-Received: from SN1NAM02FT020.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e44::201) by SN6PR02CA0013.outlook.office365.com
- (2603:10b6:805:a2::26) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.15 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:53 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.100)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.org; dmarc=bestguesspass action=none
- header.from=xilinx.com;
-Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
- 149.199.60.100 as permitted sender) receiver=protection.outlook.com;
- client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02;
-Received: from xsj-pvapsmtpgw02 (149.199.60.100) by
- SN1NAM02FT020.mail.protection.outlook.com (10.152.72.139) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:52 +0000
-Received: from unknown-38-66.xilinx.com ([149.199.38.66]:50942
- helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGu-0003jx-3y; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGp-0007cn-0U; Fri, 03 Aug 2018 10:53:47 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-JC; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 07/11] firmware: xilinx: Add debugfs for IOCTL API
-Date: Fri, 3 Aug 2018 10:53:24 -0700
-Message-ID: <1533318808-10781-8-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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.100; IPV:NLI; CTRY:US; EFV:NLI;
- SFV:NSPM;
- SFS:(10009020)(39860400002)(136003)(346002)(376002)(396003)(2980300002)(438002)(189003)(199004)(126002)(36756003)(2616005)(476003)(110136005)(48376002)(106002)(426003)(51416003)(7696005)(336012)(44832011)(54906003)(478600001)(186003)(446003)(11346002)(16586007)(26005)(36386004)(50466002)(76176011)(77096007)(39060400002)(486006)(4326008)(107886003)(8676002)(5660300001)(81166006)(72206003)(316002)(81156014)(305945005)(50226002)(356003)(47776003)(2906002)(9786002)(14444005)(2201001)(8936002)(106466001)(63266004)(6666003)(7416002)(107986001)(921003)(5001870100001)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR02MB4332; H:xsj-pvapsmtpgw02; FPR:;
- SPF:Pass; LANG:en; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; MX:1;
- A:1;
-X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT020;
- 1:zasqvSYhsWAhFR8BsQqznPhHZWutS5L27pZRAjx7WftXVjIUELTIoOJpSsSUD+f4Oswo5TGe0mt80EAOljtkOPkYcNn1HyH7b8CbpIqpyOSsOFvajgMgeslMpJUI8FCC
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: d82c6346-76fc-439b-9dcf-08d5f96a1370
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);
- SRVR:DM6PR02MB4332;
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4332;
- 3:rqNZDnzIT5q+FET8pFU3tZhPuEQSRuq3R66uNM3S/YQeizIkJUv1TzWFY/cnr16gynASpVkaHVu+NgEqmV99BWHuleFqGU/UausrCgPe5E5iSh6WWpHLt1u/DNN5il1GhmQdvq7PxWaFV/bQBkE4GlFBsxzfBd4N3FbTarL3iPWhYa9vbozJ0M/Nnml87GSgMAapIihLkI2bXcc3ZpBpNl8A9xUekGpdRbs+LqCkiHvyompxXT7o8r8n/FBCgp2mw70SpIe65sNlJFhRnpOdk4Lq+jgv2dAqVTM4/2U5vttyQ6+r2OOUmbtiyk0wYB+kVa6VBJnGimyXT0lhAQ9K5tR5Bi/6J/Kg5JwOaVPCGKk=;
- 25:bB6qzDqu9+vrR++q12i4He5KMFbdkOATwFddZzgEEFaemA3sUuUP/09hiJ5tRK5TVTkFPvdrQA8BMeA/lfr7zfLMSQZxJFcMA/bQ3iHDkOanuBsL+0T+Bjl4msOkUyZgwUND/zZyvOqds/cBKHyASeWm+5bHLnQYAB41FIQR9xdzV0WHJn3kI/rmqpH6gHXCQ/ItMAJF2sjSoIKk7lD44cYZ+DN4EMs8+yvpVx5HJoy4uGe7SeilyHewvq0GYKJvdQAW2wA/NV/g7iqjkoao8nOXmyzngN/IpOyeQ4tOU5994VjHiI8GX/GJekbZhRa4qQqDW2/36ztKwOSMb47qeQ==
-X-MS-TrafficTypeDiagnostic: DM6PR02MB4332:
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4332;
- 31:qIs/qh8ANOYqDxK++Xh+tDxbNjl7bMZ/TxTYtgX8za/VfJ2Cufud4gdaHkzWzDj4vwEqjT4AxbNNxBGFMVryjkwPnjS7pPLnxv8DQPnwpMSaP3n1GeWzrbe1HlOtzVY91LHyKBaiLOkkHD145GrLYEJ1TuygVgK1mpYYbwPlJhPPBRW5kwWagNoR9qBuRwdUvoYyBDm2Y4QrYiWbY/siOAq4VsOKBeSDDpgCqN9zk20=;
- 20:lD7XRVhyJr//IUUVdzyMpO05/HTB8vi75mkal0CDU77BsCQUX6q1zxJrrL1ia5oy58X5YW8ZSkr1TvSCIKuIdsvjh1Czgkwcd8S3TC+gfeNM8LAURdI4kvsKPdjMhNENp/fgHtZSf0GLg8jC9Z72RjSB4Oi9XiZs3kEABq61d2D1RWxrGxVGDoH/6K9jVNELXZ07EDb3K/mwu3PFJe+SYIgxAi+eVkiMqnkGOyW4tzFlYJM4laYuBIe7hIog00zDrofIBJV+bCTzxgpmOK08FoRoeIcwoNJF1n3D7wmnkeQWYf3/amxjspYW9badjBxnG4UpevdTjCJmbAcAlov2AHODAWwdrCx/Rsiaakn5vRe5eQIs6lrQHFbvG3yadfFv2ZguoGXKjknbiElxMscOIXgPzdEUanEUf4qcLsqvvaAYslAYERDIhsUzxQzsTbpPlWFpqKr4/RYZlhGwWelPGEBI0cMpuQCOG/39//ShWspUfdWuIMBuKU/WoRHVR8Wp
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <DM6PR02MB433255E3ED6901B2BF41F17FB8230@DM6PR02MB4332.namprd02.prod.outlook.com>
-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)(3231311)(944501410)(52105095)(10201501046)(3002001)(93006095)(93004095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011)(7699016);
- SRVR:DM6PR02MB4332; BCL:0; PCL:0; RULEID:; SRVR:DM6PR02MB4332;
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4332;
- 4:r1bivONgYPOKb/p6qXDOPJBHzyosgdDYXJiNAopmRrSrT+J9jeJgDUCPVVVO3fO1iRcru7EsKw20JNH/de4DnwjPcaERa5BBQ5s+21hoQX1WUdtOAwRBXYVpHtIxcAl+q1Wqdy1wXQnOKyTFmYAfRvARB+ARy9E/xxPv0Ag6YBh86vBVKaLeTgzsrY326j9wAZO+5zfCmLZ/X29Jr6YrDQCIHE87NWE3DIePvOuWpfX+3ViMI9ij10zO17PA/d5Az3XsyJpJQCTByP1CwJYIjgJWu+oBxzOyQRa/Ukk4vtXWZ6CTxQG38q/Ih825CaKx
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR02MB4332;
- 23:yjJEuHL1Zlm2Y6bhlYxp/+bQoRoza31Xn8Id0UIf+?=
- xZsru2y24PXjkYY9CFICMmincmPADnRcL4CBEQShGlwX3yCgMn6NHhjoJFabw5umqJ/+t4A360PUPD4WN1wi0cBe/V+rF4HT4jdfdqA/+cDFPqmQiuWiDeZbB0d6Mh8fmqAxB3cITyC9KSTTHHe5A/upmPSISNPpLA40ORXQhO2l6CZf813YOirXjIk9FxF0jfhmKQa9fI88iYgbpJQ7cMkQHGDwlNi0RQ5xQFjPc5QXSeUYKuUnpO3oF94rnTPJ7zT52IRbiXNWX0LRu0Q7Ykzth7tVt4gKRdTNN7bjUjepUw0fHFX55O/3fYmOOGnlyAZmhEbve2Lb1MV/p0FSw5hbBNM60a9OLNKviClEH/iFOHCGD+ciOxYrLlmTrx3oJPZEOaeDtgKwzHBrredkK/0tCQEu0yhTIe+Lb8WkJWgathN+CGAy5tWxxv6GbUADwUdN5AWUowbMKqihFwEnIWjRD4M1kqMVdsmqSqlHhVxIRpdS6q05pDifsSRel3Yvb+Bm3eU9m/M6mOastWBb0OU8Lk8rNdCVWZdy/QARCw6MyeQ/GM1bxXWdv9tMPXKa2EoR6jZpAysbXAe83Y5sjWUNzVgs78kYl2SmvAbCDr48ZhA1v/bsUprAt+NUt8VLRRyGFSRNv249eo56gHRTHpEere1YLI07gMYikh9LY78CAI+Sa84+HCAsrWiWG/XdpSvobIPWvBAyXlPPR9xby1SsKTs9BoYHmjfKWFdrEOzqL16r4lXnVAQObrPZCAP++85QmzybVXyxPpwx82Br6cAnqDjuZY6V8sNA/Uf3Rj1VwYrDDm3xypL0LbtG3Uv0KQvudB4reQLMzdGes3LA4GFusfTYW4SKalgceN1gIaguJGtEyiV5FhBzMd39eMZJAPXhyGLO7d9HgJQOPo3z4mbnPstgZ/iskMQn+67t3b9nwFgN2UD8GfK4wh8FWLZX8zQpiWXYBfqmGl2aM3QA2PMNWGHkcH4AE+kYGqZYKhjm1c+h2G+z4s9B1bZ7LHgMZMdOdySH2zSj0g1yLuQDCrXbe7/C1ImlxA/6PqKNVWH6rrd7a4WonupwEyRSAbfBAUaOqx3AdQpXmU+DRc/SLMWCROE+FU+cUfSYedtB42F2mPvqnkPUKngtU4+UCz9n1/JBzsSZURyxuB2Qi6Zy+Os2WXtgrZAd3jTMqUe9hM1b5Xo0AWD4UOefosuplFdXPWwqogC3VME2Y6ryIpcXn+up70NrmSq/+I+8BFRbYglXw==
-X-Microsoft-Antispam-Message-Info:
- /fuy1xjv0KizJcWOwWWZKio21Tm0OWKUGQGYM/8rp0e4X0CVVy6xxnGAExzuV5Ox/u6T7W2CH8b1B5DZEvckCAv1Z1Po/ilmVBuPE1MfJRSlPf7zSMXffjjCj3/71x6yNrHYNSiy2z7KkZRtpdxAmQm4BiJVkkQWNBFOqM00ckNQT2aGdFK1C7Z4lyPANgMxt3xoPbN57diSw7VpggC0Nj5GqhEK+FpdoIDbC4u6nbCs19dpH+IK4frIxymx6vNFhK0oKmAy9Kd05gpzY2UzpZiYn5+nuE/EKZKAr+uIp2bSfYM3n9+/ZZL7sWzqpn+uC/1sjitMN8gTzQ9ipYgwFAPHxIlZfuKGiCwd37mxbjs=
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4332;
- 6:ldRuO3opcFvbG4gguWdYEfcII4ioht9Jq4+Bt0NfCSGBikgqa22rwhueSkRb6jXQjM2SkHd18v5uFuTCqJE+AgYpiRwGDYRcT9W6B4skznIt/SKyUWC0joGdRWZHilqr6QnyrbRyqMjAR+LEXs/ZMfocn0LnJ2OQeL6mCxiLiwCnoeYyj4S1Jr+lF1WiAaToSpbG8FfOmNnVBhSVPmGaWqXlUIdLKJqmrnkvS/U8buuvywlpypaRhLrosJaLNRSau70JdDksbRONCzPHcNws3APTtbe7/LpoLnq/LdwAnbhPdZt6kYCt9v5jnWKfKUzvvHIUUv45A8HcqdNlKaPSacNVDUtmma+Cr2jfxjyA71E7Ncs7zb4SvnN5P6SGUdEPqKoXVkm6+7YWVgp9fwKBhuHn478RGmVnqCdxv/TIP6HyYN3lp9HENL4Padlf1Umd7LOVbCub0BiCZUhsK1fKgQ==;
- 5:1sqAvkAhnYfJ5v1apPS8BF1oQ4YpqHoYEnpQfpTlHlBgs2/ktnmZAhcQpjGzONI7xcz6Qq7HhjOTbC+aGnGBRZdM+yjI9trZoZmlqRLZmcMfVNwm1TCfvQi2oQkPXtxPdleJ+QBL5pCxPHxZwcyanLNCKtyoRLrxujHM/d6zYFY=;
- 7:f9RyK35JKVZOsu7cmScJStlBTe6BxR+0PzA1lrDxkMco4LpPC29tj17zbwET/LyzsMFpBb2dZJI+aSWg2fR31gB/Oblo9ltnzHHGRUqDU1A4gIptr13dRvPRVJNsg+gi7Uz2F7UJX/LnadCerbKbTaPwOQi7HXaLmHKhCRkWu6VOVf5ty6cNOyGEAdbcTwIDW/xC4M8pdjTVeXICN0fo3YoY3E6jwAdBAqq4hMGQRPoIs1FWoPoC0Kdxm3xdgshw
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:52.5165 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- d82c6346-76fc-439b-9dcf-08d5f96a1370
-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.100];
- Helo=[xsj-pvapsmtpgw02]
-X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4332
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105406_345529_D3BAF9EE
-X-CRM114-Status: GOOD ( 10.02 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-Add debugfs file to set/get IOCTL using debugfs interface.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- drivers/firmware/xilinx/zynqmp-debug.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/drivers/firmware/xilinx/zynqmp-debug.c b/drivers/firmware/xilinx/zynqmp-debug.c
-index fcbdd6e..fc11db9 100644
---- a/drivers/firmware/xilinx/zynqmp-debug.c
-+++ b/drivers/firmware/xilinx/zynqmp-debug.c
-@@ -32,6 +32,7 @@ static char debugfs_buf[PAGE_SIZE];
- #define PM_API(id) {id, #id, strlen(#id)}
- static struct pm_api_info pm_api_list[] = {
- PM_API(PM_GET_API_VERSION),
-+ PM_API(PM_IOCTL),
- };
-
- /**
-@@ -95,6 +96,15 @@ static int process_api_request(u32 pm_id, u64 *pm_api_arg, u32 *pm_api_ret)
- sprintf(debugfs_buf, "PM-API Version = %d.%d\n",
- pm_api_version >> 16, pm_api_version & 0xffff);
- break;
-+ case PM_IOCTL:
-+ ret = eemi_ops->ioctl(pm_api_arg[0], pm_api_arg[1],
-+ pm_api_arg[2], pm_api_arg[3],
-+ &pm_api_ret[0]);
-+ if (!ret && (pm_api_arg[1] == IOCTL_GET_PLL_FRAC_MODE ||
-+ pm_api_arg[1] == IOCTL_GET_PLL_FRAC_DATA))
-+ sprintf(debugfs_buf, "IOCTL return value: %u\n",
-+ pm_api_ret[1]);
-+ break;
- default:
- sprintf(debugfs_buf, "Unsupported PM-API request\n");
- ret = -EINVAL;
-
-From patchwork Fri Aug 3 17:53:25 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555381
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 B086E15E9
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:54:25 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9BB322C724
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:54:25 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id 8EAA52C921; Fri, 3 Aug 2018 17:54:25 +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 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 295112C724
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 17:54:25 +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=lnR2egzARcd3do1tohQ8crrngjS/FTt/ADqvx/FYX60=; b=RiDl2QxC7DAUYW
- v7BRJ71S0D53ilwoEJyjeanWkY0AarXbJWeNri9uXBvpTbNNA4oC0xl1CEKOCt7FSvMz4dk0gD3Ho
- Z3064GXcr76LndREQR2tY1uoRJW9DBt3Cg7rSS0/ZqHKCHaq7A31RX1vESG2jhJ6V2lGHu2E4Q1qD
- oYRmv0tyvFDIbmsgvG1T9yq6ivHrwqPL1MFZmb6O3Oa4i9iOQ4aQbJphwKp1niT0hgTqZTC/76Ipm
- gyP8R8CLL4gls6cffRMBdHnq2vslhXK0Ya4hqMKjaQPtO77h6VYGwJpJmPNj1yeCNk7wL4CouepJp
- 1BCQjMivt5uKKY5mznzg==;
-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 1fleHL-0002zp-QP; Fri, 03 Aug 2018 17:54:19 +0000
-Received: from mail-by2nam03on0056.outbound.protection.outlook.com
- ([104.47.42.56] helo=NAM03-BY2-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleH9-0002l6-88
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:08 +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=i0IgDLNWNv5gP6EXKCmjmOTwm0Q6U6uAi73B0G9dCkE=;
- b=1Zk3qfFsCgO9YbPuv0Y7o2FnuFRcjRqSj091uZbQr++yUbCmzPLaHAbty86zC4wKMTvFzPNzcC3HE85q0dL4w+S9zkVxXYBE0DclgEr500SnHCGR6gW4JopxbDEdNzX/INXyQY0GTC31M9CNwnYbK9/Y8VB62szPYcFX04i9fa8=
-Received: from MWHPR0201CA0052.namprd02.prod.outlook.com
- (2603:10b6:301:73::29) by SN6PR02MB4464.namprd02.prod.outlook.com
- (2603:10b6:805:a8::14) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.15; Fri, 3 Aug
- 2018 17:53:53 +0000
-Received: from CY1NAM02FT029.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e45::205) by MWHPR0201CA0052.outlook.office365.com
- (2603:10b6:301:73::29) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.15 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:53 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- CY1NAM02FT029.mail.protection.outlook.com (10.152.75.143) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:52 +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 <jolly.shah@xilinx.com>)
- id 1fleGu-0004ff-2J; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGo-0007cn-VI; Fri, 03 Aug 2018 10:53:47 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-LV; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 08/11] firmware: xilinx: Add debugfs for query data API
-Date: Fri, 3 Aug 2018 10:53:25 -0700
-Message-ID: <1533318808-10781-9-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(136003)(376002)(396003)(39860400002)(346002)(2980300002)(438002)(199004)(189003)(7416002)(106466001)(76176011)(63266004)(26005)(8936002)(186003)(36386004)(77096007)(356003)(44832011)(51416003)(14444005)(478600001)(7696005)(16586007)(8676002)(81166006)(81156014)(486006)(476003)(2616005)(305945005)(5660300001)(126002)(11346002)(72206003)(50226002)(39060400002)(48376002)(54906003)(107886003)(2906002)(106002)(6666003)(110136005)(9786002)(36756003)(50466002)(4326008)(2201001)(47776003)(446003)(336012)(316002)(426003)(107986001)(921003)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR02MB4464; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; A:1; MX:1;
-X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT029;
- 1:tlu558b3azl42+Zy2SjA5Z5SRTd2KPhEWI4kdsDAyBNVxcnxnPyBJ7aOgp7x8ZwBf9bO6jbSFGArDfnY3SRnZkcPOafmo38dlhoG8+CnhSQZY6c4lXkuv2adDiH0tvNk
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: 3e9504cb-b74e-4886-28c0-08d5f96a13a8
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);
- SRVR:SN6PR02MB4464;
-X-Microsoft-Exchange-Diagnostics: 1; SN6PR02MB4464;
- 3:BVFZRR1SnMLKxNT+SdXRZlaNK6KP+fVbNjKRIBXuWDkRtU56EVpd00nuBcZEK3poMB3Dbh2qkMtsHCidJltSDyV69yvycQ8bgX20CimC0H2HrVIMYVwEa+DX2V1l3esZQDsVdvWJIPq/Wzfh6ZU3MHc7ePoIqetIXj0W80UI/6Zx9hYbOHb0NLlvZXNlZrwx16uwfYNHVNj2BkTuoGAisSSVwdX+FoXwZHKr1iiMx+VnUyUCk/UVnGzJNPfhcABCbLS+dgfiLwYLRR6oayE9JYGpieYAR1KJQCVDChsssQeEfC9Nx73SBiO8334OBkv5nfhZbUzFq4fxmgSFUZBAjp97Wllysx8rUaEjzVdBkQo=;
- 25:P0Y4vUXVx8XBYqewFPdmE2fGmpBW3r0rzq6MXmR/XFUc0BSaqpl6YetHEqwzjZaqOKQta5Jk+wUuqANs3RH/70ThP/UOCJAoCjUSLtvyY4F9+Kk8PFe/cPfoSv7uf8Esqcu4Jl7MqZH4jrxdNacwmFKkuL72xXm7IfNo/HEb2YIFM+sjhoHZJTaioxPF23V6hhHFIMQr8gxuuQi9boVhutaCzWhbL/ptFvCpDvPeELj+hny0SNM5q+5tN5Fz2d9mGiWyRZp6VRcDDPHtzijJjKp2QA7phLJ9kSeLr9PNpl/59D/sXS6FtZmAgkPgTHM4UZ6soDr39u5j1vbmyEaTqA==
-X-MS-TrafficTypeDiagnostic: SN6PR02MB4464:
-X-Microsoft-Exchange-Diagnostics: 1; SN6PR02MB4464;
- 31:oT00T/YmZ5EY+GRI+oHKEkzdju4DMXAZgJYQuu+6BI+YmscaVJEwOqimJAwiOnDHwrFuLqALQfsFrs2Q6Uu6XJADRYaHuVik7CMeRIz8b5dbdu00qw7PzsBZ+6JlW+hIABLnCz00Uxy1wH4FAT8SIMyVUagxsr3i29sn5l4xHBMsw5+zCXYSe3cUlsRD7IktGuPwOsan5w255pzI8dgQDb/+M6vMWBYD/ZGyuW5pBYU=;
- 20:PRGLfqeUebhpU3eShXApfNuiBWdOqRB6/txgt9g32mr0iRP03COrXk6dAMiAB6nBgnbs2nT9kwa0WW7ofSNTMCDbyZ0picljMVwzetEMEZxsVojSbGvIGqYlgFFhkVLd7dIeloruXKX+9J+6AT+P3Ifkp6HPNT/YWBIpOq8+n/tVMyfgq1tINCOPrOC2KBu3vRQwXVe7iKMtVrO3DZJ74ZXWU8XoHUlabu20hoYT4xxgtnbl0loMMZZPbhWLVCP35kccsZgVO+MEjVNWzQVyVAHaDny+nK3/+nNQ8KrfCR+c+RHmjQ7hCIlPlD31uxKtlurE/pMPO8FjxIplw7mabHGY/XSdGFogwKJIbyFFqa5OPH0cnna9mYlgw1+nSlM0e5clG3alzoyX3zsBQbD2Xp2T22RkPcFuvUzgBpYxVASD4qrlbJ9ldCM8zEEk/PMI41nSGG7AhySBbpxygvbjnGR/0pmoUWgMiPh9WFJbRTjPvhYYPormij2mUBfRaUWv
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <SN6PR02MB4464FB98D94F90D655A85AC1B8230@SN6PR02MB4464.namprd02.prod.outlook.com>
-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)(10201501046)(3231311)(944501410)(52105095)(93006095)(93004095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011)(7699016);
- SRVR:SN6PR02MB4464; BCL:0; PCL:0; RULEID:; SRVR:SN6PR02MB4464;
-X-Microsoft-Exchange-Diagnostics: 1; SN6PR02MB4464;
- 4:Y+H7YhLr3I920ykuDHLeRh1sAoQGMP49ejmWMIGmJkMYHuGB7pFgIpnKVOZNUDN3FNaBZJEw6gnx83xbe/jLNoz63q1s8fnxrltLTAcdqL6tkVt8xcFfcr6xXWEdS/bcROPvsiS+znCrcLF7zxYpvuPmjmRZaDic0fHxtlFIY8j6Kfg9Lkh/j0ARRXtadVYl/JGQM5d0andJ0EswQbcDMsPnAMWHfOchs2l4rTyRpT4a6T+6O8VZFIYUH+uMCv+mYacjocE/TDC8drF+zipK3NoQh5LwLdN5UPGmsINrkYiI4ocAVSasxOk1G7JQJa8+
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN6PR02MB4464;
- 23:TEa1K9fyfzSmHdgGYe5+/dP0WaHySlm3R1xxhNBnK?=
- hYmMG6sHFCwZfkYsZhXoDcXoVdjpN6ElmC66pQneuuG6gbcumL0JmwLAYtptBig1/i1o3lGvFYPn/DBqnmJRMJOKDQX5q5A7OpKYqCp7IK2YYEJdvDecMkGnCDBuazdk5ok6+0fxL6ctgsnJAcQce60g0bmjW48KQ6EZCdoQyzrH19xvLk5gFKP1T9COaKNzR3Xp/OjlU0+QOv6mPVQM7m1u8ROBW1MnzNOu//qlWcozrxLqL6Bz99vVPnBE/Kk4FKOuIYrgY0TqvfIafVU46P33H1Xt8Pcyh2B2Xs7ugKqvURnwM+Rgf0s4dhZLtMfUVNobhgjw6uJs4SsqRwPhhReu5PZe9k4nWGG0djYUxaCP6XYVfwxQEW7pdbVN8RlpjdXZkQOy424R4ltRR6bJPfyjmENxrvVnxBGAJIMRE6YstNN4MGLM+b+vzU2kMA/7Il0eVx8xthIEOoQ8b0EslX4YCS5Cnm1hS20hYsp7HvIURuGYaKh0FttS9k6TJvOPD4O7FTieIqZ9aj60Laj1ef+DOEVw/HVM2FWGu94Rv32oOrTUmg+iYAKqQAt/EdojASv1TkvHje3Jd8rKqOaothscagOULy5dMXzB3i/jFB2WqjebPLNQ+D1+8tvwFmR+YwApOT1huiY09z/V61qMqDTIACDuU8+JtP8fE5IzSORfQmBV3EE6nbMBO7BFXXwUQNyXehJmF1fyZE9Z1dWQT6Q3HYQpPJPiBWS1xrg7gZtlDU3nFAYhin9FpyVUSpvt4KMfX3D6I4KcoszasCYZPSF9FLkOx4us09IddvOZ891o1PKCFN7i1uIuBC7APNzVXy2qSURU1iF0pXq+8sRsdpCkhzALKBjKkoPsAF5fYnJAk0T1zGpsd0GGIhu/amxIW5uOc9RSu03dgTWfhVUP6xNfwvGF/7kBcSdXQQS6MtoQBhVcz1Q+3pfAZ7d5PKEg10HzbvFyg25iXGiF7LSVeX6dVs6Y1XaqrQuMS7YkCzBgoTKY8eI0l3RdrQg64pwVJ6scWO0wAuvhtJoNt7V4Sq97Eyy2o6CK4yhvHNpQZJQr/YSfpyxqHaNHc9LAUXsOzudSqSh+UX1HbpaRlBBRwJq5+ScJ5KT9u7ueb1DojHEuXvw2NsM7cbaEqgIKB8jfaRRfi74eub2VU6wL5VAlCMjkE/P9mFYPBF+pyf+AYOq6tbUcARz4lmKyVhfPG5oVzwQOS9BVA3oX++E5JTvc3n8
-X-Microsoft-Antispam-Message-Info:
- KXk/29E9sX9yxslx12jfDV6jikvemRLeu/m+hBhzD2v3WwfpJnlt3GPQNvucaMvTjmsSH92SKNZMlqIGYXdUEwX297XG6M2gj+9/g+HJ4EYOTA8yAI0fHt5DXU4FUi3LR+xoknIQQF7yGc7+AgJeL9PZD3ziaQwqdFAZEXxzJRhZewEew+t/DIottC7z2pW1iYLIT/9/SseUEbELTFiXxV1l0e+AP+KmfyagpkqRgqlbiV8Cwfi1PxPR843FAA6mKArrHY6XGyrnNYP0Mfo1u2Z7IHpKOKP1OqS+Hm0cbffAi7SPFAzenqG6pWje5ptNteJ0lp/1FuIQzQ69DPp2SNsjng9Oj99jk4FuBm1pLMg=
-X-Microsoft-Exchange-Diagnostics: 1; SN6PR02MB4464;
- 6:jr4BP39GdyR5VuTYYTnZ4ALTzKjKhmpvhkgFbMsKaQvP5KlwXCKPJFBZKJbcidPGFAP4a2jNRb8JDiO1wGfFrmcWjCvnnu4kGuWnluBi6TyXQOss2csvkRreRKv/gOMOb4Wxel6lHcjyijRBGQ/RhS/uuV1cksWBceN9ifiJQRY22/XraGMlATSm1VGHR7NOO/RZhNAZQHWlwgq+wizE60ziZZI1YuxKiKpa7qv576BTRxx+tCsMcQnn1+WxmcnYfgvTipBftReMmhAnpMHz3FaloLA3fI+o+/bgzyvW9rnSQzrCeM99cYA8GTes1HbyqnSH2bnkJSXijG6K/HP0DuQ8UzinsELqjSejOlOoD835GQRjkK1EcmQVLOujqrl0ow7KYlvWWVSQOaTitdau4Oqto3yLJ05F+g1VP8/H0Jtlx2A+jQpd5JEU2rjfKU6rvdbGvCpTRUCzSWJcueixrA==;
- 5:KiobZSTBxMVTESutT8xKPaST7EgV2scp21bCY95nBVr83Adgzd4E7nZ3fjwJjiyosTS8upAeoJZ4CuSXQd7eFW7goqeX+KfmfseDK9+kSaSo/NL4+d8Qzk4bZQocd3AfGz3xRW3hzMiyOvqRRM9VXVN67TgbyfjjRXP6pes3bPo=;
- 7:MWGonpeKE8otT9w5v0SNaGvFqMlnVLcOMI6LnHkKufHiGnil/iMCzipE6MQhommKvUBQXmMsTlYyytjls3wq6KR8tOKD+REfr/reITqSokG72WZKoKjDrQZe00mrCliTARkkZ4ju+VoTQOoWm0Wm3/gOJXGg1mBprjgXhA6fBhBCFNTgfuyFOo3ufOayoIctbhPRpy2wxEmFcqO67vefMbvYLW4dklrvfihwH4/40x3ll2wYwCj+dl0164xo8BRQ
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:52.5358 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 3e9504cb-b74e-4886-28c0-08d5f96a13a8
-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: SN6PR02MB4464
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105407_290790_57518988
-X-CRM114-Status: UNSURE ( 9.52 )
-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: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-Add debugfs file to query platform specific data from firmware
-using debugfs interface.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- drivers/firmware/xilinx/zynqmp-debug.c | 27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
-diff --git a/drivers/firmware/xilinx/zynqmp-debug.c b/drivers/firmware/xilinx/zynqmp-debug.c
-index fc11db9..4532bd0 100644
---- a/drivers/firmware/xilinx/zynqmp-debug.c
-+++ b/drivers/firmware/xilinx/zynqmp-debug.c
-@@ -33,6 +33,7 @@ static char debugfs_buf[PAGE_SIZE];
- static struct pm_api_info pm_api_list[] = {
- PM_API(PM_GET_API_VERSION),
- PM_API(PM_IOCTL),
-+ PM_API(PM_QUERY_DATA),
- };
-
- /**
-@@ -105,6 +106,32 @@ static int process_api_request(u32 pm_id, u64 *pm_api_arg, u32 *pm_api_ret)
- sprintf(debugfs_buf, "IOCTL return value: %u\n",
- pm_api_ret[1]);
- break;
-+ case PM_QUERY_DATA:
-+ {
-+ struct zynqmp_pm_query_data qdata = {0};
-+
-+ qdata.qid = pm_api_arg[0];
-+ qdata.arg1 = pm_api_arg[1];
-+ qdata.arg2 = pm_api_arg[2];
-+ qdata.arg3 = pm_api_arg[3];
-+
-+ ret = eemi_ops->query_data(qdata, pm_api_ret);
-+ if (ret)
-+ break;
-+
-+ if (qdata.qid == PM_QID_CLOCK_GET_NAME)
-+ sprintf(debugfs_buf, "Clock name = %s\n",
-+ (char *)pm_api_ret);
-+ else if (qdata.qid == PM_QID_CLOCK_GET_FIXEDFACTOR_PARAMS)
-+ sprintf(debugfs_buf, "Multiplier = %d, Divider = %d\n",
-+ pm_api_ret[1], pm_api_ret[2]);
-+ else
-+ sprintf(debugfs_buf,
-+ "data[0] = 0x%08x\ndata[1] = 0x%08x\n data[2] = 0x%08x\ndata[3] = 0x%08x\n",
-+ pm_api_ret[0], pm_api_ret[1],
-+ pm_api_ret[2], pm_api_ret[3]);
-+ break;
-+ }
- default:
- sprintf(debugfs_buf, "Unsupported PM-API request\n");
- ret = -EINVAL;
-
-From patchwork Fri Aug 3 17:53:26 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555415
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 161D715E9
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:08 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 00D202C1AF
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:07 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id E7CA22C984; Fri, 3 Aug 2018 18:06:06 +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 autolearn=unavailable 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 5E6DD2C1AF
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:06 +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=PXpZteDCUvUArIPwOWZhqWGd+7c52/jdjx3SEmepUnQ=; b=IivyP2jdiwZsb/
- yR0QYdIrU0FQ18U8SQGjwANxINvojGo98o+FL70gO0MHolUcMvIzInWHnV9MMtchAuFhCFPtHFqOG
- yRJHsMehaYrjOFFITzJTLIfgmlZbE81unY7hy4rqRMFEqDy6ipd1oWApiPIcWp8TENpGKFU//WVmW
- C46R5n8EFcgQjYvVQjvIfcxLvQbbzUrnY4dXgAAO4N9eLS2hr9K6i1PvD5sHQpq69ZuMHUpniKFin
- KAyW+5OGe/MIuV2NetpBYh1wuyTgtxGJ/YNGAIRgPL60DQtRcNiBc3vOhYnWpkbNwdf3RHPWfHQdS
- sPh+RhYJ4b16VaXyoW0g==;
-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 1fleSi-00021X-E7; Fri, 03 Aug 2018 18:06:04 +0000
-Received: from mail-cys01nam02on0057.outbound.protection.outlook.com
- ([104.47.37.57] helo=NAM02-CY1-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleHA-0002lK-LN
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:10 +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=ae3uMsPM9qWtcPtZCcchHnnmLXzK+8XsulKYSv1xPnQ=;
- b=FI/EJwAjOiiTYfjgyU0qYCCdSqEqG5UboVtajbpJixXJo8HsUhCNSxSCP0ZXzojQTuZhJh1Mz3kEC9cRfsXv9CEVGXqS+K0R7dK0YDRijdee8CgdJH04tfjODtgceSDZMit6xrALZN/+baeW2l0rRShQyTUKV/rkzUYY4v2bWaE=
-Received: from BN6PR02CA0088.namprd02.prod.outlook.com (2603:10b6:405:60::29)
- by DM6PR02MB4458.namprd02.prod.outlook.com (2603:10b6:5:29::27) with
- Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.14; Fri, 3 Aug
- 2018 17:53:54 +0000
-Received: from CY1NAM02FT051.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e45::202) by BN6PR02CA0088.outlook.office365.com
- (2603:10b6:405:60::29) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.14 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:54 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- CY1NAM02FT051.mail.protection.outlook.com (10.152.74.148) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:52 +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 <jolly.shah@xilinx.com>)
- id 1fleGu-0004fi-DG; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGp-0007cn-9X; Fri, 03 Aug 2018 10:53:47 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-No; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 09/11] dt-bindings: clock: Add bindings for ZynqMP clock
- driver
-Date: Fri, 3 Aug 2018 10:53:26 -0700
-Message-ID: <1533318808-10781-10-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(376002)(136003)(396003)(346002)(2980300002)(438002)(199004)(189003)(110136005)(16586007)(6666003)(81166006)(50226002)(106002)(72206003)(9786002)(36386004)(316002)(8676002)(54906003)(8936002)(305945005)(478600001)(81156014)(7416002)(2906002)(14444005)(356003)(5660300001)(11346002)(51416003)(107886003)(36756003)(77096007)(26005)(426003)(446003)(76176011)(44832011)(4326008)(2616005)(476003)(106466001)(126002)(486006)(7696005)(336012)(186003)(47776003)(50466002)(39060400002)(2201001)(48376002)(63266004)(921003)(107986001)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR02MB4458; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; A:1; MX:1;
-X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT051;
- 1:r2aaelOlGinHop5AwkglWkdQGiko7SdFguC1UTEs1ZMLw6EOu3O3TR/38D7r8d0yBGJlzhzQnxPuCf70DmEp4uoomt3QCEihRgMc83ykJDqA4j5H+3LV6MEFFZdwi7L/
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: d3e901e9-096d-4104-a2f9-08d5f96a13ef
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);
- SRVR:DM6PR02MB4458;
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4458;
- 3:PFwFIbFWgQNHpmBa7jNoZ0zs/Zf4zzFVT9ICaAHrSvZKtI2gWPdnExfaHWU/QtCrQTMNcR7l9kIk+DQVkCyZWNCdiGrPqDmUeVYB0mf2bSvDJtzU6rL6bgtSdE4oEYDf+Hn196zI5uZ0/DWq+on2XqgunWBX4F1bBSFVs1T0Di6r5AKZJxi/AxTgJppOi+/yncQ55Kx3TKDVUzesb0uFt6M5rR04lVto2hSRYZGzorgxqjxqjzYPNg6fZrcWJS9Cxi6e3pGvspF88Mn+aQpVDOPRtHT5VEDwYMygoVM4X5aDy7IVogJbw0GQIQyoDK37mIoNNHOEDClzi/Gh6NgH15sKOTi3FMlWZqIVSsDVdBc=;
- 25:zig4Iv1wWNgO2YBS4QYVsKRamvs9x4tZ5gIPyWPmQ/8DZzpJKRsflVYoSONxM3Qec37xwOM4i52C6fKohfKxi6Xd8772vrYMluXBCm5ZAWRt5GTbNeVVBWsnXIs2QWiXkuEv9qg32XjqmquunP5dfW7yV8Y6Dv4hbbS3WWEkKpBg3ZKqOqz+o5eJ9dWofxxoJXDlDb6kssBLRxZygZ5QCa2+WLWSpAmW2GoM9585XTnf3Qk2E4B1QJlvnSlC1X1vDOco0YjijDAL6Jv1stLkLCREKgZLzYkAuiFw6qH5GkpaDlyRYz/vkZMuqRmCO3P0B79rF6uasVOhQRfi2H95Fg==
-X-MS-TrafficTypeDiagnostic: DM6PR02MB4458:
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4458;
- 31:aPIZIyCms8f+olId4AeZE8pRsFfsvgO5+/q5Wb0zV5SwBML1C7GKWIII87SsIdcv6nuTCK7A7Q/DmJjcj0BtSi3mozaKpbgrgCSMpEoZD4hzdoPFpZEJFjL/bD9lKepLe5ZwDsL4gNaot4zEfL1W6fHEjhoguTroXj+UA7I4lq89BVYLn5t7UtgbY7xHtH1czP1njT2AzS2+/d57rY3LBH7WoSVfjId+FAfSum6sSkA=;
- 20:vRhrabWK/L3tvahM4UVZr3mtapwp+Zd29VQxw+VOXeGI2baTrv61j6nmARvijN1yJFv082sRJQtmIL9lhOQ7tOyKEMpxpX39Dk5UEIosAy4HXxaJoThc5a3p5xdyZLGj7gDMclOgHQFvRV9fmnSTjyZc2C+52sIyvXJj4h26kDNblSfXOoSIL/iaPlGggnnnpYpxlQlBv5awLE3ovK1n+Jp56LChSCnR9AbeKa5O1CzXOvXJmE/gMs80Hz6R3L7xEI+IV7jPKw5ObVDPkMOqvZzT3Vv41YnOVBn80xFy6D8FJ6nx4PRwhGSeHOMxZZU7KmSdAOxQkWCdxoJjPb2SszPXpQ4SwILqLz0X8oV8MTIMThqYbMSHxMamZ2DSyhUi3RTlPFRq1qVqUacj79V1MI0PGTL2HvbdgdX30qPbobtk4lL1GiNn6/pdOMBxDRw3fXIFeuds1+LkEtQiqjT7YXOY2I5hXgzFYfSY+QWvVQl1TpNOU/JRXqDwepwR5l4E
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <DM6PR02MB445864027854CF1355F56F27B8230@DM6PR02MB4458.namprd02.prod.outlook.com>
-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)(3231311)(944501410)(52105095)(10201501046)(93006095)(93004095)(3002001)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(6072148)(201708071742011)(7699016);
- SRVR:DM6PR02MB4458; BCL:0; PCL:0; RULEID:; SRVR:DM6PR02MB4458;
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4458;
- 4:/mexK16c4/CPTktwuWtd7fSd04+/Md4/7N6DHUYdIxBprYYDQA30zlVjXjBilUnmIhOid1hVE0s00qJs6DHpNEr/u46rR302iB9yv0s7Q3AVV7QYOcBSmylWgfP17HMkLjvEH6+/Suj9R8KjSdpHp/ARtXUxEdIoLLRizSs141ulsPTsH2tv1wVD/MZepGaiRzzMf1uG4ii9I/lKFsbhw+VVXRFIjZzvB64kYiV4CouZqASeDzq9+1JANgXfrwfphr1HKDPlje1fQ2wHHsBXMT7yIG31GoU9VBYRQ6yRGY71NniMQCzsaS1/JZn+ybst
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR02MB4458;
- 23:xwee+5SQDhefFzvX3mraisWTaB2oMx55mZqnSzcxY?=
- kGSa5qXC635bSJJoPBmXpDiBA6sB6L0NJToWD7bsSamKMZNyain4qKA8FuK5Cp9FqlGu22CyEVOd4nnU2ICtC9JbloO0Rl/HF+y942lRN9Vz+K5kRNwf6FlnYThY/weyeBjI/kY8wszOVmu2OX/K2YWpdImrZBESoEgNiIiFGvSdq293DQzOlwnRqvnNY/XAkYDgdRndYZhA30Jp5vJXXwLb9Br0ZHvfq8Gn38nEkoBHVbYgntjeL76Vfgk5chYFwJOGXT5EI304e96796FiJK48nNpv5IziH3VbGRhrOy0THwf2Tui6+6IVVmpJ8TljYnFgj8nq2S85Mp9+K9+gbl6RHYz12DV0BIGD5ZwaYl3GUyPw8sD+6EVszHQIanTnBL5mp/2elwfuEg56c8M+Y54IJNBV+Jqm169pJNvLfr74/2TDWUvu32orqtOUrDbzbRo4pp5mLTmpvZEuz5gYmmOXYK/ekg9lT+K9uNH3lYCN3SyPkv/sta4n/YqZrOMd53L9P7P3hZl2SdpDZDs6ZcJRjWPJ9tzHLLmlplv8L/fkVpj2ZV5sADg9JP8DQf8YNppqbW0nkstrPq+JpcltuHit/Gu4XMfqk7DVTcpph3hfpIMwqxJOxtg4e35o0kRaRHhMzs/jOIJrtzirij4S+5aXAqI0A38vfvuuJPmgqD221rsAU90NxGr2tkM1HxfQWm0h3yeJYG1Xs/xxDo9QvFqwNcvueIbeYnoMHlGryHChjRuFktWCgzw83EYBBcfrKv2K7hQpnRmlQIkdr/aqxDlxDsc1dpc7g9e3HQ3NpQezQVIv1Pk6cVbAZA1PNEVax+mLj+KseG7rDexBTIwQ1k9tZhwKIVmPFv6Endo91b9m5nGWNCbwLWT7Fm6119kSoRr0GHdxkzn6EuZYUvcYkl555O7R2mZmPteQNg8Tx6ZA1c+r7705HWXw6Bh2Srgj+PmzeXGAOo2z4mKykGItFF+Xuz+PxehE10HkTJ4qsULyuTBcpJHoy3WJ/z+5NryAporWaSsJ3SxNk4Zu4Oi7BiB/9L9CeMa7X4NEeGhkcXULYlZNihwEaTpIKJY7GATwD+RpDzifLOI3wxNddxI1jwup/6Kw9sStjzAG/FlrIcHTngfWw0etiA6C70UVnF/zZxQgC7bBH1JKlIt5WxG+6+rzbzPi0r+ZFOtZIRpk6Ffz96Zu86McbOMljUQttNbK8kb8zsqqYo2KEtC2CzRaveq
-X-Microsoft-Antispam-Message-Info:
- wclvtrzyumn/KBLhIbNujKXB+sBcaJ5At5qeWG1ZQRTQFahoFQd9hq8U6V+k4VMhS84Y+YKobZK7fw0Y8+ZWAay4EgwNFSh/GwsFeaBBm6S+yksBg70LZNJklNotz01kke83jfhoswnSqcssI1ygMtfbXKOWCZBgRIN7zxmvMQbDNevOFow5GxPVeBuUvbexXTyb4zQ6yIspRFYeop2j6Jb+TY6sVwlRZOFi/0fOzb9zNDlHd8GyArD8SO0VwXt0xC8w6anMhaKM4aB0n5gZUJZBzKv/Dcp5QzymxQlNJ0VMuL773AyKTw/l6HiU2jsmSF5czvDpqeWde/m3IZ5QcSD/LjW4WTcTV/C2AKpf+m4=
-X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4458;
- 6:IBHHntVa4dlq5QTh8LURikXic+rbzUx9OsNAR6BsDa1NfyrYA9PLe91CEb8OcXWiATeeAzLZSF9q7OTgfZtqOx/KJ/JS0WOsjjINxvQAGCe258FG/wDg1zQU4NzRTYczH+pjNHKzhfr8GRRtkQMsKM/T2tIeygnUKEH+jNljpVwFoOzSt4BCIcptzFVBA1iyLz/GSoCutHsmfir+weMJj6wHCMn94Q1OiyiOGr7x0lJhIGhFXuVn0e0eXu7CJUmbQEkIy45aQCVSk3xFnpIM1/Lnaao4X3GoyQzPhmOM8T7t9A2FfPobNWAgLIjXAlfEzyCJpzmLYvBWHP0RYiygQQSz7eh7sEzMpm7yL6FOspR7guQK15tRht7vfJuSvg+c3WqtmVF3n//Y8jMfCGZmMsbd3/cQkY22pwvdXlXEY0hiFFmGTKq7cdsA2lEF1F3H/Jm8LRF8Cl+41ZZQV9QFww==;
- 5:JsxYzcQUL1tVyB8Y2WFuzf5CU6PoCtoElkvTcJ2qN2LqjHQ/pCb/ZS7vqVrUQmrcn5rRgsa4ohloleKoOKN6hLLwzH2pjsEMdryZTPRM70Z1dyRu1rfBqKlZS+1YisFtYK8ikc0dEonnjosiGwfYkQfLV6E0jr3rBzJw+muBwpA=;
- 7:SWFVkAVa2OixXXyCLAb2sKQc+8x2cL97GXGkPGS/3oh9Bc4ZCYBB2EZsumpcSltzI2wTxXFq0+FmwJpP1PAIeV2TSc8nqIa1Pyn9hemb8TwbstcZeJKVSZqD23P17cm9x3NBdcjpwGEn27Al3xSSlmGwBIrrtZCscqA80PLwIlDzS8fSHLRRgPc2MrS0Eo1KqppT69Q43eLOR94i7eq9XdkEviwd3lcFzTMpwuGt109mYguNTnW9oBaBvdzsoS7E
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:52.9427 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- d3e901e9-096d-4104-a2f9-08d5f96a13ef
-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: DM6PR02MB4458
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105408_826047_EDA513C2
-X-CRM114-Status: GOOD ( 12.62 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, rajanv@xilinx.com,
- linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, Jolly Shah <jollys@xilinx.com>
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajanv@xilinx.com>
-
-Add documentation to describe Xilinx ZynqMP clock driver
-bindings.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
-Reviewed-by: Rob Herring <robh@kernel.org>
-Reviewed-by: Stephen Boyd <sboyd@kernel.org>
----
- .../firmware/xilinx/xlnx,zynqmp-firmware.txt | 53 ++++++++++
- include/dt-bindings/clock/xlnx,zynqmp-clk.h | 116 +++++++++++++++++++++
- 2 files changed, 169 insertions(+)
- create mode 100644 include/dt-bindings/clock/xlnx,zynqmp-clk.h
-
-diff --git a/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
-index 1b431d9..d215d15 100644
---- a/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
-+++ b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
-@@ -17,6 +17,53 @@ Required properties:
- - "smc" : SMC #0, following the SMCCC
- - "hvc" : HVC #0, following the SMCCC
-
-+--------------------------------------------------------------------------
-+Device Tree Clock bindings for the Zynq Ultrascale+ MPSoC controlled using
-+Zynq MPSoC firmware interface
-+--------------------------------------------------------------------------
-+The clock controller is a h/w block of Zynq Ultrascale+ MPSoC clock
-+tree. It reads required input clock frequencies from the devicetree and acts
-+as clock provider for all clock consumers of PS clocks.
-+
-+See clock_bindings.txt for more information on the generic clock bindings.
-+
-+Required properties:
-+ - #clock-cells: Must be 1
-+ - compatible: Must contain: "xlnx,zynqmp-clk"
-+ - clocks: List of clock specifiers which are external input
-+ clocks to the given clock controller. Please refer
-+ the next section to find the input clocks for a
-+ given controller.
-+ - clock-names: List of clock names which are exteral input clocks
-+ to the given clock controller. Please refer to the
-+ clock bindings for more details.
-+
-+Input clocks for zynqmp Ultrascale+ clock controller:
-+
-+The Zynq UltraScale+ MPSoC has one primary and four alternative reference clock
-+inputs. These required clock inputs are:
-+ - pss_ref_clk (PS reference clock)
-+ - video_clk (reference clock for video system )
-+ - pss_alt_ref_clk (alternative PS reference clock)
-+ - aux_ref_clk
-+ - gt_crx_ref_clk (transceiver reference clock)
-+
-+The following strings are optional parameters to the 'clock-names' property in
-+order to provide an optional (E)MIO clock source:
-+ - swdt0_ext_clk
-+ - swdt1_ext_clk
-+ - gem0_emio_clk
-+ - gem1_emio_clk
-+ - gem2_emio_clk
-+ - gem3_emio_clk
-+ - mio_clk_XX # with XX = 00..77
-+ - mio_clk_50_or_51 #for the mux clock to gem tsu from 50 or 51
-+
-+
-+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.
-+
- -------
- Example
- -------
-@@ -25,5 +72,11 @@ firmware {
- zynqmp_firmware: zynqmp-firmware {
- compatible = "xlnx,zynqmp-firmware";
- method = "smc";
-+ zynqmp_clk : clock-controller {
-+ #clock-cells = <1>;
-+ compatible = "xlnx,zynqmp-clk";
-+ clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, <&aux_ref_clk>, <&gt_crx_ref_clk>;
-+ clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk";
-+ };
- };
- };
-diff --git a/include/dt-bindings/clock/xlnx,zynqmp-clk.h b/include/dt-bindings/clock/xlnx,zynqmp-clk.h
-new file mode 100644
-index 0000000..4aebe6e
---- /dev/null
-+++ b/include/dt-bindings/clock/xlnx,zynqmp-clk.h
-@@ -0,0 +1,116 @@
-+/* SPDX-License-Identifier: GPL-2.0 */
-+/*
-+ * Xilinx Zynq MPSoC Firmware layer
-+ *
-+ * Copyright (C) 2014-2018 Xilinx, Inc.
-+ *
-+ */
-+
-+#ifndef _DT_BINDINGS_CLK_ZYNQMP_H
-+#define _DT_BINDINGS_CLK_ZYNQMP_H
-+
-+#define IOPLL 0
-+#define RPLL 1
-+#define APLL 2
-+#define DPLL 3
-+#define VPLL 4
-+#define IOPLL_TO_FPD 5
-+#define RPLL_TO_FPD 6
-+#define APLL_TO_LPD 7
-+#define DPLL_TO_LPD 8
-+#define VPLL_TO_LPD 9
-+#define ACPU 10
-+#define ACPU_HALF 11
-+#define DBF_FPD 12
-+#define DBF_LPD 13
-+#define DBG_TRACE 14
-+#define DBG_TSTMP 15
-+#define DP_VIDEO_REF 16
-+#define DP_AUDIO_REF 17
-+#define DP_STC_REF 18
-+#define GDMA_REF 19
-+#define DPDMA_REF 20
-+#define DDR_REF 21
-+#define SATA_REF 22
-+#define PCIE_REF 23
-+#define GPU_REF 24
-+#define GPU_PP0_REF 25
-+#define GPU_PP1_REF 26
-+#define TOPSW_MAIN 27
-+#define TOPSW_LSBUS 28
-+#define GTGREF0_REF 29
-+#define LPD_SWITCH 30
-+#define LPD_LSBUS 31
-+#define USB0_BUS_REF 32
-+#define USB1_BUS_REF 33
-+#define USB3_DUAL_REF 34
-+#define USB0 35
-+#define USB1 36
-+#define CPU_R5 37
-+#define CPU_R5_CORE 38
-+#define CSU_SPB 39
-+#define CSU_PLL 40
-+#define PCAP 41
-+#define IOU_SWITCH 42
-+#define GEM_TSU_REF 43
-+#define GEM_TSU 44
-+#define GEM0_REF 45
-+#define GEM1_REF 46
-+#define GEM2_REF 47
-+#define GEM3_REF 48
-+#define GEM0_TX 49
-+#define GEM1_TX 50
-+#define GEM2_TX 51
-+#define GEM3_TX 52
-+#define QSPI_REF 53
-+#define SDIO0_REF 54
-+#define SDIO1_REF 55
-+#define UART0_REF 56
-+#define UART1_REF 57
-+#define SPI0_REF 58
-+#define SPI1_REF 59
-+#define NAND_REF 60
-+#define I2C0_REF 61
-+#define I2C1_REF 62
-+#define CAN0_REF 63
-+#define CAN1_REF 64
-+#define CAN0 65
-+#define CAN1 66
-+#define DLL_REF 67
-+#define ADMA_REF 68
-+#define TIMESTAMP_REF 69
-+#define AMS_REF 70
-+#define PL0_REF 71
-+#define PL1_REF 72
-+#define PL2_REF 73
-+#define PL3_REF 74
-+#define WDT 75
-+#define IOPLL_INT 76
-+#define IOPLL_PRE_SRC 77
-+#define IOPLL_HALF 78
-+#define IOPLL_INT_MUX 79
-+#define IOPLL_POST_SRC 80
-+#define RPLL_INT 81
-+#define RPLL_PRE_SRC 82
-+#define RPLL_HALF 83
-+#define RPLL_INT_MUX 84
-+#define RPLL_POST_SRC 85
-+#define APLL_INT 86
-+#define APLL_PRE_SRC 87
-+#define APLL_HALF 88
-+#define APLL_INT_MUX 89
-+#define APLL_POST_SRC 90
-+#define DPLL_INT 91
-+#define DPLL_PRE_SRC 92
-+#define DPLL_HALF 93
-+#define DPLL_INT_MUX 94
-+#define DPLL_POST_SRC 95
-+#define VPLL_INT 96
-+#define VPLL_PRE_SRC 97
-+#define VPLL_HALF 98
-+#define VPLL_INT_MUX 99
-+#define VPLL_POST_SRC 100
-+#define CAN0_MIO 101
-+#define CAN1_MIO 102
-+
-+#endif
-
-From patchwork Fri Aug 3 17:53:27 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555423
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 4A23F15E9
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:45 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 305E12C1AF
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:45 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id 228642C984; Fri, 3 Aug 2018 18:06:45 +0000 (UTC)
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
- pdx-wl-mail.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-2.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00,
- DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI autolearn=unavailable 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 E9FC62C1AF
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:42 +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=EHyZ0tIIXHyzRasyX+ZIIQRDjqWcdJsf1CDD9FGfe7c=; b=r08Jg48tDQK/cs
- m8LnDxCyC2g21fwAoLXYzcrwhnsW6acNKYsniDq677jXniva68BSd4ZzUp6rvo4MitppS5fgKlr9y
- z03fT7EIDbcz+kjU1fvaeApev8UC+bErlRh8Ty+KHTqsakLgczTzfTeniVJr8bMpH5HlolJ24u8cF
- QRq1kiwpUxOyuaNJbK0WgqsGnQFtzrEr6Tp8U7cg9sb4Tljg21s/L28dTm75H+NrXLm7t/VsvZiQ2
- xSbqkm9EZ4yLcyVdvLnfevBEaJ59YKGEXGIL6q3COz5YYgttTaWELvguDE19Nf5Zm3fCVOq1iuPTe
- EXzp0xAUB4hOd4pdg7nQ==;
-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 1fleTJ-0002rB-GN; Fri, 03 Aug 2018 18:06:41 +0000
-Received: from mail-co1nam03on0085.outbound.protection.outlook.com
- ([104.47.40.85] helo=NAM03-CO1-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleHA-0002lL-Nj
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:25 +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=li3FRubunPLaA+VNvRYfjRDgPvfpqEwxNaGspuvg4xE=;
- b=1mcvAkuXSEgJko04h2nQRxP+U/C6kQPTYgU6LLJflwA3n/ItGO+zw5eLtN2ZfQun0OT1FdC3tsfj/B3W7mf/T0MEEtJd0Bj4YTSF1xWHcidFqCuIw2nsSLKKT85PbV/gudj69Y40O6fTe/eGQGwz1wgHLtW+j9aq9h+fDbyIodg=
-Received: from BN6PR02CA0028.namprd02.prod.outlook.com (2603:10b6:404:5f::14)
- by SN6PR02MB4336.namprd02.prod.outlook.com (2603:10b6:805:a4::29)
- with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.15; Fri, 3 Aug
- 2018 17:53:55 +0000
-Received: from SN1NAM02FT061.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e44::200) by BN6PR02CA0028.outlook.office365.com
- (2603:10b6:404:5f::14) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.14 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:54 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.100)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.org; dmarc=bestguesspass action=none
- header.from=xilinx.com;
-Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
- 149.199.60.100 as permitted sender) receiver=protection.outlook.com;
- client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02;
-Received: from xsj-pvapsmtpgw02 (149.199.60.100) by
- SN1NAM02FT061.mail.protection.outlook.com (10.152.72.196) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:53 +0000
-Received: from unknown-38-66.xilinx.com ([149.199.38.66]:51041
- helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGv-0003jz-26; Fri, 03 Aug 2018 10:53:53 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGp-0007cn-W8; Fri, 03 Aug 2018 10:53:48 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-QS; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 10/11] drivers: clk: Add ZynqMP clock driver
-Date: Fri, 3 Aug 2018 10:53:27 -0700
-Message-ID: <1533318808-10781-11-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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.100; IPV:NLI; CTRY:US; EFV:NLI;
- SFV:NSPM;
- SFS:(10009020)(136003)(39860400002)(346002)(396003)(376002)(2980300002)(438002)(189003)(199004)(36756003)(110136005)(54906003)(5660300001)(316002)(4326008)(39060400002)(107886003)(14444005)(2201001)(2906002)(575784001)(478600001)(106002)(16586007)(63266004)(72206003)(305945005)(53946003)(77096007)(26005)(106466001)(47776003)(44832011)(186003)(51416003)(7696005)(76176011)(36386004)(9786002)(8676002)(48376002)(50466002)(50226002)(126002)(7416002)(81156014)(426003)(6666003)(476003)(81166006)(11346002)(8936002)(486006)(2616005)(446003)(356003)(336012)(107986001)(921003)(5001870100001)(1121003)(579004)(309714004);
- DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR02MB4336; H:xsj-pvapsmtpgw02; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-100.xilinx.com,xapps1.xilinx.com; MX:1;
- A:1;
-X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT061;
- 1:yFcUYWC4p7wLde1jYMZ2SqnERip37sYNeYVJP/Q/Ug4Dm2wOjhunw1VaHbXiNrwoPUQ5XIX6ExQcrLvBV9Xw46r0W/RkUEgRwLxzPnx88j0XXPRKTAZvTrnTLQujdpkR
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: 3c0e7bcd-20e4-40b9-0265-08d5f96a1453
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);
- SRVR:SN6PR02MB4336;
-X-Microsoft-Exchange-Diagnostics: 1; SN6PR02MB4336;
- 3:8AAIVN4t4fuHGDyF/MhxgwHv9/actgz0qwVP37PuwNC9jdm4ynwn4qpfrJvysaRqT2R5mZOMaRziJ1XEi3A2KEiU7nhHivAkTB102CppKaJPmmyFGCQVHhWrWGaOAV91SUY/J+IkRNUrMcByK8zE0DhGuZKgW/XsUBtJmCGoAxqz5l3Yifr2t/kL3Y0zRhLg69LOynwIUTmukLqmwu3MIGUenw8y1DJM4pFymUT4tMUrKDpdRQxnV1l5X1uYgjItGw4gKTEbaz6wnjFUXqXofkjOQaCKz9YWeebjEDZ1hnIraEbgmrfOWY1DyKe2HS3RM1ZKG/cL5Yt/3d1nCFhi0cDtDEgwB9uvTFuqQh4O5DI=;
- 25:eM7r5WKxUp4o1GqmX1iZvTg5D9hskkdbRnAQyIIbsKc0/6z4KubVHzX5xUVzz8f4mTl+xDGZz1O+duxldKSQsd7iQ1Dn3lnbKfXQ+KRymkIUPKM2Ixw3hcL1Cxu3dc0nJcSZkRAq/WJu7Jl74452HiMWCCMg/1ygFukG9JW/3n/od95DyK6wiYenVc34QjU2O3rFinv1rSLh06VxXvHunklZetm+pb46cfRZR9Jef8mjQ/Xa7vXTtorZToaMzZSQEKgfUoWzDD81eKWCTJ6Ii/fkT8S83nukc2SjOkR+C2kCTDaDorTrfICCWkJr4xjZe307WpzgZCvzO88Xluoi4Q==
-X-MS-TrafficTypeDiagnostic: SN6PR02MB4336:
-X-Microsoft-Exchange-Diagnostics: 1; SN6PR02MB4336;
- 31:Ln7lxM3DMMBgjjMXTam15deXiasgXhOmP3l5t21pYSrEkrvip4aS8/S6pTZyuU7roQEc5cIE2zbwyZ5/+jLdPBdK9lcu3V3+9okGVnR5Dc8JvneJhX9e3v8JI33AVsxYql+c0ZGH3DYzO9surJtvoVLPsy35rVaIC6DNnLjB5dIY2hcasE+DmPRBheu7U6zacwPjomlNbrYzNWmkZeknB4TrOqphZaO9pe8NUpafxfU=;
- 20:PG8a9WtraWs8Mv0yasKj+TSAUQkE7/g6CsBj4v62cxPwHHHd+DKydj30iijzoHnr0MhJysAe/opzwwQkHkQZJ1N9pMR/dBlbgWaY7p5/jja+hYngJIpdUMzD221eaE4OshC6k+4OMDYM0nauaw/DFJHyN57kdfeEzR+06wvH6XqgdDzInw1tb1rtXzjctKp0iI6PWxfWeB81JqAZFIb2PBEYAnEjvIF9Bi9JEqwnWaj6CFD80NYqCK0Y9QMcSaWffuYFpwddEHZXSPz989Se6x70nnz/gwTsBwkCqaM+rNd9THg86+6mzqcI81rT2nMQcK3NU7KAmeGZlxLNuLQR3aKcjhxQvqobaWFsaeSxaU2w1WWtYv5haiXdGTy4/p4IE3kuAgPbnMEgKhZ5eW9k4DTjHfKeodXZCy7mzQkaUGfIq5rZQ6JrhttKgwTCyQz7ZmiqOf67Vj3sAMls8MIGhNOyWTv8NR0bDj4pY8sC2ngN/ySEVqqsE5xWW84eO4Tl
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <SN6PR02MB433629B3837948901AD9BF78B8230@SN6PR02MB4336.namprd02.prod.outlook.com>
-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)(10201501046)(3231311)(944501410)(52105095)(93006095)(93004095)(3002001)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(6072148)(201708071742011)(7699016);
- SRVR:SN6PR02MB4336; BCL:0; PCL:0; RULEID:; SRVR:SN6PR02MB4336;
-X-Microsoft-Exchange-Diagnostics: 1; SN6PR02MB4336;
- 4:2aLwQJpDB+cTmAg78r0cP+SUQUlcOdcfOL2zgLM8vYmbh1wW0UolroF0RfRxR6KLbjh9iUF5sxeXA7epHywtqvvBbA/HBLUFs5CqTJK+3OJeUiWgpPrSL3a/VSosdmH05i+a4QdDrLMezYAibcU3EfWXs/M8Bky70CpP8AUWNotU2b/1AAUM9mkW8E/hIeMs9Mx+itiaMjBmNq8OA0gUZAn4l0GmyCeqq99fUVVJJavnX7X/5XhSHkuRikNZCZrAQQ7wKPjxIQUix91VuknqwTSSyR+PHIX7d78Yxf3EV0G1HpGV2d7mC5L0iielL72/
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN6PR02MB4336;
- 23:gxkRwUStQ/mClf8w5H2xN9/YB2T6E/YLkbHrcqd4T?=
- +6GHOZ2e1uDVz58D3BOoCuuOqYGDN3n4iAkrcLnNmN0tPNy0SYaWapEvDFbZg95n6EDsJ3nYm8ebsW3Mzt89QdJE0tDkxOMT+Hy0o+8L2VxdRhIQx707UR+f7ClKn9Hi7zJ2QU1pAkDluInzWjrm5vGjF80uU+tAyePbUFZWJsBFzCzxutUKyc5qEBZf/nFAuvRYePAA/fchoWApxRaej0dFMwoErhT4YoPq8+rMW6MxDjDBO4IBirBbuh94cE9t9NW/746LrBVhOW0RmglD5R7UwIcFUs3U+ddmtKLTDh5FOGn1qX5esI4+Lj5B/3qJK7JaEIp5X/giZLtkZMCr14y5oi0lwOgbsVJoOVlvjLpzGzz+UNEODOdV3qumD8UAVfCQ8abM2pp7+9ZZYn/Cyv7+V32izmFOCxEgMb64j1uQQlp+Kdl4zZPHeX+Gk3CSCq0UDAbhzUHyWdbSARPL0aPINRlomNhs66gE4xbUeNyEY0SMMnYX4z+zgX4K9HjMsuPSLk9PQiz68HDVDhILvdMV/B8YTlgvJMIuHj3Cwjf0dyXyONRR4qwh3RvbuD98q03hqscEo7PhYPdKPjJiT/+rwbmI6v2iG1dDgEGgKTpjheSN9qkklGNm9jRhO2j98Bl8sfPG34nYJgs7rOY+pasQ9zzTrGwpiZIFt+QW60TK4o4nWFFfZhaJUiCGcq5FzNa9VqBYSqDgxAU+m+jJCiqGKMmIS0ICaBBtl4OoDs6jNkiyoPeqy09JDHehzh9wwlHh95QF/8fUrILyko6MMuLaIRUGNJTaSP/fvqtfmjcd7VWkhz1Yp3KM4n9SVt93SEBfNqDPEFgh0FwMQyYs71J7Qr2WbWHShUv+NhE32/iiTSjgI36gYqhvoFVW0u6J0JtU0ObZ61fyXNaWhbjIS9POTcoWzwL3mrtOMtVaO7y38C5poCV6pY7L25do3af8A730DizIMxFdfEPrJ4E/GoUss5rzR6+qwigkQOKywRvhNWrccx2Kdg87hr7tLeKbpfsfpKUqU23Eep00cGl0L53LmjyHbSIaw0eyUXiUEjeqMfZ57osAOimT3kmFueHA5PdaYD/vgkPg6y5TsaC+IuT4ND3oNHqz/X6tods1THckpt9l6qzl7BqtaHmiVN3LWkro+h4zqD6Ecs/y4N1zFBRihNm48sKqMHXoHB21HOZW/vZr+8zFB6jxvfeCCWZNgxqKpZQXKEfW747hoTSRgvDFn4BcCjvij8MjlRKDrXCVnr+9tSbsdf9l/5cj/0tLT6lgusRyUDvytRundHHoIVlhvoW19d8uyxd6B/LpgZJDBZs0ymUf7+g6tE097ws9h8=
-X-Microsoft-Antispam-Message-Info:
- kWVuUlkcwWjORVcqf8aWpgEa/C//K/qDToVy9eKyVLXbEG+gYviLN3jdk+RFKZZHdt9ccVCfs5J2MHxs3/Xrh16jToIImXbhTBPXH2JtorqVLEqlUxLYjseDhGHlLTYAb1Mhoc2udBoEK+pI9XIZ86ccPJipc9483Bdc3pnqrS8830Go+tCtvI5OHTb8RiC0U4bUbOqrBfNFMoPvlGnjpzQtIgszEj9UZbyUvhGHm8XJBgQJs9amFycWzsW5Tt+4aozsU93xEkrPbEGwwasJM/j38HYee8Lls8qMONqTBOMGzt/owpKCLw6gXTUv5J2duKD41uq4xu3VczKPsbTgts3koyt37RGsRrpelfWUAJs=
-X-Microsoft-Exchange-Diagnostics: 1; SN6PR02MB4336;
- 6:MZGV8MdBkOnxtfjk/VLatYtPDNX6+wiTHiJH5Dna25q+u/9q/A1x+cJsfNoDG+edJYqA7vNWoCC967QcojR7FFfRyzZt8mvAXtc92zKwsXDSpHOO9dvc2LdqzmK/Y6ywplrQpsHypqc651yu6hCxavV2hFWRSgREfLXGySyAoPxuVllkO4jHpiIlqRcffGIkyIJo1s6Nw8yhcHMK0l4nil2EENgPG1lkEH1tUWNMQMys1GeJ6ZbpXMNrCzQXTq3p1qow3hEARkqrM1FmDB2mBwyddmh+GyMZu0ytDGBmOUwwahzKZyCfQeIbqMbdTTM+YI6yyE9kIo2H5c4tNxltQAlFUo+ESZ9VNMVAzyyMyE6LXXZotXZPKy+asiOWx5dBiWcNYBsVFfhPgZb3Jf3hzSFfwE6fXkvKjLMjPhkagni+xlPrV9EPEy5QEpafgQaLQZKS8FFTjsQwubXM4M7Sag==;
- 5:+N5o80jlNqqgy573HI70LVhrad0QmNGc4XsN6y7seQeZfUn4TlM/W+rSxJFoHeyerLbwO0Gmv8MWypESJiUTQ6065ZowUVo3sWvdEBUK/S/9V+sMb1ph4QoEXUrJJO+YVMsJEaobJ4U4joXG+eTYHemQU90BxnZtz6JtujGreew=;
- 7:WMqeQpdpFiVmjgkZ9H6j6MpOx/YXWbyEPNF3Izy3TX8uGtC40G2m4qTeCfjN/ohmaXCcupo9++ELP6zNGGFe7PZtqcuQd6POt+BtmivRVdIIVRoyFGWPc1UhpIbaQeIk7oTpTlPud4qNCEzOojytR2a+E29DiupXWpXkqYhwNe6g+OKgDkxHSwl15olDQ5VRogGeyUtzHtgB8LGpoX2ZQu5WRy9+NWUehMlbSNuB4UAqNmuQnIASVI/YBchUVSR6
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:53.5001 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 3c0e7bcd-20e4-40b9-0265-08d5f96a1453
-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.100];
- Helo=[xsj-pvapsmtpgw02]
-X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR02MB4336
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105409_086029_029096A0
-X-CRM114-Status: GOOD ( 13.30 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, Tejas Patel <tejasp@xilinx.com>,
- Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>,
- linux-kernel@vger.kernel.org, Jolly Shah <jollys@xilinx.com>,
- rajanv@xilinx.com, Jolly Shah <jolly.shah@xilinx.com>,
- linux-arm-kernel@lists.infradead.org
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Jolly Shah <jolly.shah@xilinx.com>
-
-This patch adds CCF compliant clock driver for ZynqMP.
-Clock driver queries supported clock information from
-firmware and regiters pll and output clocks with CCF.
-
-Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
-Signed-off-by: Tejas Patel <tejasp@xilinx.com>
-Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- drivers/clk/Kconfig | 1 +
- drivers/clk/Makefile | 1 +
- drivers/clk/zynqmp/Kconfig | 10 +
- drivers/clk/zynqmp/Makefile | 4 +
- drivers/clk/zynqmp/clk-gate-zynqmp.c | 144 +++++++
- drivers/clk/zynqmp/clk-mux-zynqmp.c | 141 +++++++
- drivers/clk/zynqmp/clk-zynqmp.h | 68 ++++
- drivers/clk/zynqmp/clkc.c | 716 +++++++++++++++++++++++++++++++++++
- drivers/clk/zynqmp/divider.c | 217 +++++++++++
- drivers/clk/zynqmp/pll.c | 335 ++++++++++++++++
- include/linux/firmware/xlnx-zynqmp.h | 1 +
- 11 files changed, 1638 insertions(+)
- create mode 100644 drivers/clk/zynqmp/Kconfig
- create mode 100644 drivers/clk/zynqmp/Makefile
- create mode 100644 drivers/clk/zynqmp/clk-gate-zynqmp.c
- create mode 100644 drivers/clk/zynqmp/clk-mux-zynqmp.c
- create mode 100644 drivers/clk/zynqmp/clk-zynqmp.h
- create mode 100644 drivers/clk/zynqmp/clkc.c
- create mode 100644 drivers/clk/zynqmp/divider.c
- create mode 100644 drivers/clk/zynqmp/pll.c
-
-diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
-index 98ce9fc..ab2ea76 100644
---- a/drivers/clk/Kconfig
-+++ b/drivers/clk/Kconfig
-@@ -253,5 +253,6 @@ source "drivers/clk/sunxi-ng/Kconfig"
- source "drivers/clk/tegra/Kconfig"
- source "drivers/clk/ti/Kconfig"
- source "drivers/clk/uniphier/Kconfig"
-+source "drivers/clk/zynqmp/Kconfig"
-
- endmenu
-diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
-index 71ec41e..b6ac0d2 100644
---- a/drivers/clk/Makefile
-+++ b/drivers/clk/Makefile
-@@ -100,3 +100,4 @@ obj-$(CONFIG_X86) += x86/
- endif
- obj-$(CONFIG_ARCH_ZX) += zte/
- obj-$(CONFIG_ARCH_ZYNQ) += zynq/
-+obj-$(CONFIG_COMMON_CLK_ZYNQMP) += zynqmp/
-diff --git a/drivers/clk/zynqmp/Kconfig b/drivers/clk/zynqmp/Kconfig
-new file mode 100644
-index 0000000..1708605
---- /dev/null
-+++ b/drivers/clk/zynqmp/Kconfig
-@@ -0,0 +1,10 @@
-+# SPDX-License-Identifier: GPL-2.0
-+
-+config COMMON_CLK_ZYNQMP
-+ bool "Support for Xilinx ZynqMP Ultrascale+ clock controllers"
-+ depends on ARCH_ZYNQMP || COMPILE_TEST
-+ depends on ZYNQMP_FIRMWARE
-+ help
-+ Support for the Zynqmp Ultrascale clock controller.
-+ It has a dependency on the PMU firmware.
-+ Say Y if you want to include clock support.
-diff --git a/drivers/clk/zynqmp/Makefile b/drivers/clk/zynqmp/Makefile
-new file mode 100644
-index 0000000..0ec24bf
---- /dev/null
-+++ b/drivers/clk/zynqmp/Makefile
-@@ -0,0 +1,4 @@
-+# SPDX-License-Identifier: GPL-2.0
-+# Zynq Ultrascale+ MPSoC clock specific Makefile
-+
-+obj-$(CONFIG_ARCH_ZYNQMP) += pll.o clk-gate-zynqmp.o divider.o clk-mux-zynqmp.o clkc.o
-diff --git a/drivers/clk/zynqmp/clk-gate-zynqmp.c b/drivers/clk/zynqmp/clk-gate-zynqmp.c
-new file mode 100644
-index 0000000..83b236f
---- /dev/null
-+++ b/drivers/clk/zynqmp/clk-gate-zynqmp.c
-@@ -0,0 +1,144 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Zynq UltraScale+ MPSoC clock controller
-+ *
-+ * Copyright (C) 2016-2018 Xilinx
-+ *
-+ * Gated clock implementation
-+ */
-+
-+#include <linux/clk-provider.h>
-+#include <linux/slab.h>
-+#include "clk-zynqmp.h"
-+
-+/**
-+ * struct clk_gate - gating clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ * @flags: hardware-specific flags
-+ * @clk_id: Id of clock
-+ */
-+struct zynqmp_clk_gate {
-+ struct clk_hw hw;
-+ u8 flags;
-+ u32 clk_id;
-+};
-+
-+#define to_zynqmp_clk_gate(_hw) container_of(_hw, struct zynqmp_clk_gate, hw)
-+
-+/**
-+ * zynqmp_clk_gate_enable() - Enable clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ *
-+ * Return: 0 on success else error code
-+ */
-+static int zynqmp_clk_gate_enable(struct clk_hw *hw)
-+{
-+ struct zynqmp_clk_gate *gate = to_zynqmp_clk_gate(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = gate->clk_id;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->clock_enable(clk_id);
-+
-+ if (ret)
-+ pr_warn_once("%s() clock enabled failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ return ret;
-+}
-+
-+/*
-+ * zynqmp_clk_gate_disable() - Disable clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ */
-+static void zynqmp_clk_gate_disable(struct clk_hw *hw)
-+{
-+ struct zynqmp_clk_gate *gate = to_zynqmp_clk_gate(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = gate->clk_id;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->clock_disable(clk_id);
-+
-+ if (ret)
-+ pr_warn_once("%s() clock disable failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+}
-+
-+/**
-+ * zynqmp_clk_gate_is_enable() - Check clock state
-+ * @hw: handle between common and hardware-specific interfaces
-+ *
-+ * Return: 1 if enabled, 0 if disabled else error code
-+ */
-+static int zynqmp_clk_gate_is_enabled(struct clk_hw *hw)
-+{
-+ struct zynqmp_clk_gate *gate = to_zynqmp_clk_gate(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = gate->clk_id;
-+ int state, ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->clock_getstate(clk_id, &state);
-+ if (ret) {
-+ pr_warn_once("%s() clock get state failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+ return -EIO;
-+ }
-+
-+ return state ? 1 : 0;
-+}
-+
-+static const struct clk_ops zynqmp_clk_gate_ops = {
-+ .enable = zynqmp_clk_gate_enable,
-+ .disable = zynqmp_clk_gate_disable,
-+ .is_enabled = zynqmp_clk_gate_is_enabled,
-+};
-+
-+/**
-+ * zynqmp_clk_register_gate() - Register a gate clock with the clock framework
-+ * @name: Name of this clock
-+ * @clk_id: Id of this clock
-+ * @parents: Name of this clock's parents
-+ * @num_parents: Number of parents
-+ * @nodes: Clock topology node
-+ *
-+ * Return: clock hardware of the registered clock gate
-+ */
-+struct clk_hw *zynqmp_clk_register_gate(const char *name, u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes)
-+{
-+ struct zynqmp_clk_gate *gate;
-+ struct clk_hw *hw;
-+ int ret;
-+ struct clk_init_data init;
-+
-+ /* allocate the gate */
-+ gate = kzalloc(sizeof(*gate), GFP_KERNEL);
-+ if (!gate)
-+ return ERR_PTR(-ENOMEM);
-+
-+ init.name = name;
-+ init.ops = &zynqmp_clk_gate_ops;
-+ init.flags = nodes->flag;
-+ init.parent_names = parents;
-+ init.num_parents = 1;
-+
-+ /* struct clk_gate assignments */
-+ gate->flags = nodes->type_flag;
-+ gate->hw.init = &init;
-+ gate->clk_id = clk_id;
-+
-+ hw = &gate->hw;
-+ ret = clk_hw_register(NULL, hw);
-+ if (ret) {
-+ kfree(gate);
-+ hw = ERR_PTR(ret);
-+ }
-+
-+ return hw;
-+}
-diff --git a/drivers/clk/zynqmp/clk-mux-zynqmp.c b/drivers/clk/zynqmp/clk-mux-zynqmp.c
-new file mode 100644
-index 0000000..4143f56
---- /dev/null
-+++ b/drivers/clk/zynqmp/clk-mux-zynqmp.c
-@@ -0,0 +1,141 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Zynq UltraScale+ MPSoC mux
-+ *
-+ * Copyright (C) 2016-2018 Xilinx
-+ */
-+
-+#include <linux/clk-provider.h>
-+#include <linux/slab.h>
-+#include "clk-zynqmp.h"
-+
-+/*
-+ * DOC: basic adjustable multiplexer clock that cannot gate
-+ *
-+ * Traits of this clock:
-+ * prepare - clk_prepare only ensures that parents are prepared
-+ * enable - clk_enable only ensures that parents are enabled
-+ * rate - rate is only affected by parent switching. No clk_set_rate support
-+ * parent - parent is adjustable through clk_set_parent
-+ */
-+
-+/**
-+ * struct zynqmp_clk_mux - multiplexer clock
-+ *
-+ * @hw: handle between common and hardware-specific interfaces
-+ * @flags: hardware-specific flags
-+ * @clk_id: Id of clock
-+ */
-+struct zynqmp_clk_mux {
-+ struct clk_hw hw;
-+ u8 flags;
-+ u32 clk_id;
-+};
-+
-+#define to_zynqmp_clk_mux(_hw) container_of(_hw, struct zynqmp_clk_mux, hw)
-+
-+/**
-+ * zynqmp_clk_mux_get_parent() - Get parent of clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ *
-+ * Return: Parent index
-+ */
-+static u8 zynqmp_clk_mux_get_parent(struct clk_hw *hw)
-+{
-+ struct zynqmp_clk_mux *mux = to_zynqmp_clk_mux(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = mux->clk_id;
-+ u32 val;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->clock_getparent(clk_id, &val);
-+
-+ if (ret)
-+ pr_warn_once("%s() getparent failed for clock: %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ return val;
-+}
-+
-+/**
-+ * zynqmp_clk_mux_set_parent() - Set parent of clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ * @index: Parent index
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int zynqmp_clk_mux_set_parent(struct clk_hw *hw, u8 index)
-+{
-+ struct zynqmp_clk_mux *mux = to_zynqmp_clk_mux(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = mux->clk_id;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->clock_setparent(clk_id, index);
-+
-+ if (ret)
-+ pr_warn_once("%s() set parent failed for clock: %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ return ret;
-+}
-+
-+static const struct clk_ops zynqmp_clk_mux_ops = {
-+ .get_parent = zynqmp_clk_mux_get_parent,
-+ .set_parent = zynqmp_clk_mux_set_parent,
-+ .determine_rate = __clk_mux_determine_rate,
-+};
-+
-+static const struct clk_ops zynqmp_clk_mux_ro_ops = {
-+ .get_parent = zynqmp_clk_mux_get_parent,
-+};
-+
-+/**
-+ * zynqmp_clk_register_mux() - Register a mux table with the clock
-+ * framework
-+ * @name: Name of this clock
-+ * @clk_id: Id of this clock
-+ * @parents: Name of this clock's parents
-+ * @num_parents: Number of parents
-+ * @nodes: Clock topology node
-+ *
-+ * Return: clock hardware of the registered clock mux
-+ */
-+struct clk_hw *zynqmp_clk_register_mux(const char *name, u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes)
-+{
-+ struct zynqmp_clk_mux *mux;
-+ struct clk_hw *hw;
-+ struct clk_init_data init;
-+ int ret;
-+
-+ mux = kzalloc(sizeof(*mux), GFP_KERNEL);
-+ if (!mux)
-+ return ERR_PTR(-ENOMEM);
-+
-+ init.name = name;
-+ if (nodes->type_flag & CLK_MUX_READ_ONLY)
-+ init.ops = &zynqmp_clk_mux_ro_ops;
-+ else
-+ init.ops = &zynqmp_clk_mux_ops;
-+ init.flags = nodes->flag;
-+ init.parent_names = parents;
-+ init.num_parents = num_parents;
-+ mux->flags = nodes->type_flag;
-+ mux->hw.init = &init;
-+ mux->clk_id = clk_id;
-+
-+ hw = &mux->hw;
-+ ret = clk_hw_register(NULL, hw);
-+ if (ret) {
-+ kfree(hw);
-+ hw = ERR_PTR(ret);
-+ }
-+
-+ return hw;
-+}
-+EXPORT_SYMBOL_GPL(zynqmp_clk_register_mux);
-diff --git a/drivers/clk/zynqmp/clk-zynqmp.h b/drivers/clk/zynqmp/clk-zynqmp.h
-new file mode 100644
-index 0000000..7ab163b
---- /dev/null
-+++ b/drivers/clk/zynqmp/clk-zynqmp.h
-@@ -0,0 +1,68 @@
-+/* SPDX-License-Identifier: GPL-2.0 */
-+/*
-+ * Copyright (C) 2016-2018 Xilinx
-+ */
-+
-+#ifndef __LINUX_CLK_ZYNQMP_H_
-+#define __LINUX_CLK_ZYNQMP_H_
-+
-+#include <linux/spinlock.h>
-+
-+#include <linux/firmware/xlnx-zynqmp.h>
-+
-+/* Clock APIs payload parameters */
-+#define CLK_GET_NAME_RESP_LEN 16
-+#define CLK_GET_TOPOLOGY_RESP_WORDS 3
-+#define CLK_GET_PARENTS_RESP_WORDS 3
-+#define CLK_GET_ATTR_RESP_WORDS 1
-+
-+enum topology_type {
-+ TYPE_INVALID,
-+ TYPE_MUX,
-+ TYPE_PLL,
-+ TYPE_FIXEDFACTOR,
-+ TYPE_DIV1,
-+ TYPE_DIV2,
-+ TYPE_GATE,
-+};
-+
-+/**
-+ * struct clock_topology - Clock topology
-+ * @type: Type of topology
-+ * @flag: Topology flags
-+ * @type_flag: Topology type specific flag
-+ */
-+struct clock_topology {
-+ u32 type;
-+ u32 flag;
-+ u32 type_flag;
-+};
-+
-+struct clk_hw *zynqmp_clk_register_pll(const char *name, u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes);
-+
-+struct clk_hw *zynqmp_clk_register_gate(const char *name, u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes);
-+
-+struct clk_hw *zynqmp_clk_register_divider(const char *name,
-+ u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes);
-+
-+struct clk_hw *zynqmp_clk_register_mux(const char *name, u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes);
-+
-+struct clk_hw *zynqmp_clk_register_fixed_factor(const char *name,
-+ u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes);
-+
-+#endif
-diff --git a/drivers/clk/zynqmp/clkc.c b/drivers/clk/zynqmp/clkc.c
-new file mode 100644
-index 0000000..1b07d77
---- /dev/null
-+++ b/drivers/clk/zynqmp/clkc.c
-@@ -0,0 +1,716 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Zynq UltraScale+ MPSoC clock controller
-+ *
-+ * Copyright (C) 2016-2018 Xilinx
-+ *
-+ * Based on drivers/clk/zynq/clkc.c
-+ */
-+
-+#include <linux/bitfield.h>
-+#include <linux/clk.h>
-+#include <linux/clk-provider.h>
-+#include <linux/module.h>
-+#include <linux/of_platform.h>
-+#include <linux/slab.h>
-+#include <linux/string.h>
-+
-+#include "clk-zynqmp.h"
-+
-+#define MAX_PARENT 100
-+#define MAX_NODES 6
-+#define MAX_NAME_LEN 50
-+
-+#define CLK_TYPE_SHIFT 2
-+
-+#define PM_API_PAYLOAD_LEN 3
-+
-+#define NA_PARENT 0xFFFFFFFF
-+#define DUMMY_PARENT 0xFFFFFFFE
-+
-+#define CLK_TYPE_FIELD_LEN 4
-+#define CLK_TOPOLOGY_NODE_OFFSET 16
-+#define NODES_PER_RESP 3
-+
-+#define CLK_TYPE_FIELD_MASK 0xF
-+#define CLK_FLAG_FIELD_MASK GENMASK(21, 8)
-+#define CLK_TYPE_FLAG_FIELD_MASK GENMASK(31, 24)
-+
-+#define CLK_PARENTS_ID_LEN 16
-+#define CLK_PARENTS_ID_MASK 0xFFFF
-+
-+/* Flags for parents */
-+#define PARENT_CLK_SELF 0
-+#define PARENT_CLK_NODE1 1
-+#define PARENT_CLK_NODE2 2
-+#define PARENT_CLK_NODE3 3
-+#define PARENT_CLK_NODE4 4
-+#define PARENT_CLK_EXTERNAL 5
-+
-+#define END_OF_CLK_NAME "END_OF_CLK"
-+#define END_OF_TOPOLOGY_NODE 1
-+#define END_OF_PARENTS 1
-+#define RESERVED_CLK_NAME ""
-+
-+#define CLK_VALID_MASK 0x1
-+
-+enum clk_type {
-+ CLK_TYPE_OUTPUT,
-+ CLK_TYPE_EXTERNAL,
-+};
-+
-+/**
-+ * struct clock_parent - Clock parent
-+ * @name: Parent name
-+ * @id: Parent clock ID
-+ * @flag: Parent flags
-+ */
-+struct clock_parent {
-+ char name[MAX_NAME_LEN];
-+ int id;
-+ u32 flag;
-+};
-+
-+/**
-+ * struct zynqmp_clock - Clock
-+ * @clk_name: Clock name
-+ * @valid: Validity flag of clock
-+ * @type: Clock type (Output/External)
-+ * @node: Clock topology nodes
-+ * @num_nodes: Number of nodes present in topology
-+ * @parent: Parent of clock
-+ * @num_parents: Number of parents of clock
-+ */
-+struct zynqmp_clock {
-+ char clk_name[MAX_NAME_LEN];
-+ u32 valid;
-+ enum clk_type type;
-+ struct clock_topology node[MAX_NODES];
-+ u32 num_nodes;
-+ struct clock_parent parent[MAX_PARENT];
-+ u32 num_parents;
-+};
-+
-+static const char clk_type_postfix[][10] = {
-+ [TYPE_INVALID] = "",
-+ [TYPE_MUX] = "_mux",
-+ [TYPE_GATE] = "",
-+ [TYPE_DIV1] = "_div1",
-+ [TYPE_DIV2] = "_div2",
-+ [TYPE_FIXEDFACTOR] = "_ff",
-+ [TYPE_PLL] = ""
-+};
-+
-+static struct clk_hw *(* const clk_topology[]) (const char *name, u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes)
-+ = {
-+ [TYPE_INVALID] = NULL,
-+ [TYPE_MUX] = zynqmp_clk_register_mux,
-+ [TYPE_PLL] = zynqmp_clk_register_pll,
-+ [TYPE_FIXEDFACTOR] = zynqmp_clk_register_fixed_factor,
-+ [TYPE_DIV1] = zynqmp_clk_register_divider,
-+ [TYPE_DIV2] = zynqmp_clk_register_divider,
-+ [TYPE_GATE] = zynqmp_clk_register_gate
-+};
-+
-+static struct zynqmp_clock *clock;
-+static struct clk_hw_onecell_data *zynqmp_data;
-+static unsigned int clock_max_idx;
-+static const struct zynqmp_eemi_ops *eemi_ops;
-+
-+/**
-+ * zynqmp_is_valid_clock() - Check whether clock is valid or not
-+ * @clk_id: Clock index
-+ *
-+ * Return: 1 if clock is valid, 0 if clock is invalid else error code
-+ */
-+static inline int zynqmp_is_valid_clock(u32 clk_id)
-+{
-+ if (clk_id > clock_max_idx)
-+ return -ENODEV;
-+
-+ return clock[clk_id].valid;
-+}
-+
-+/**
-+ * zynqmp_get_clock_name() - Get name of clock from Clock index
-+ * @clk_id: Clock index
-+ * @clk_name: Name of clock
-+ *
-+ * Return: 0 on success else error code
-+ */
-+static int zynqmp_get_clock_name(u32 clk_id, char *clk_name)
-+{
-+ int ret;
-+
-+ ret = zynqmp_is_valid_clock(clk_id);
-+ if (ret == 1) {
-+ strncpy(clk_name, clock[clk_id].clk_name, MAX_NAME_LEN);
-+ return 0;
-+ }
-+
-+ return ret == 0 ? -EINVAL : ret;
-+}
-+
-+/**
-+ * zynqmp_get_clock_type() - Get type of clock
-+ * @clk_id: Clock index
-+ * @type: Clock type: CLK_TYPE_OUTPUT or CLK_TYPE_EXTERNAL
-+ *
-+ * Return: 0 on success else error code
-+ */
-+static int zynqmp_get_clock_type(u32 clk_id, u32 *type)
-+{
-+ int ret;
-+
-+ ret = zynqmp_is_valid_clock(clk_id);
-+ if (ret == 1) {
-+ *type = clock[clk_id].type;
-+ return 0;
-+ }
-+
-+ return ret == 0 ? -EINVAL : ret;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_get_num_clocks() - Get number of clocks in system
-+ * @nclocks: Number of clocks in system/board.
-+ *
-+ * Call firmware API to get number of clocks.
-+ *
-+ * Return: 0 on success else error code.
-+ */
-+static int zynqmp_pm_clock_get_num_clocks(u32 *nclocks)
-+{
-+ struct zynqmp_pm_query_data qdata = {0};
-+ __le32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ qdata.qid = PM_QID_CLOCK_GET_NUM_CLOCKS;
-+
-+ ret = eemi_ops->query_data(qdata, ret_payload);
-+ *nclocks = ret_payload[1];
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_get_name() - Get the name of clock for given id
-+ * @clock_id: ID of the clock to be queried
-+ * @name: Name of given clock
-+ *
-+ * This function is used to get name of clock specified by given
-+ * clock ID.
-+ *
-+ * Return: Returns 0, in case of error name would be 0
-+ */
-+static int zynqmp_pm_clock_get_name(u32 clock_id, char *name)
-+{
-+ struct zynqmp_pm_query_data qdata = {0};
-+ __le32 ret_payload[PAYLOAD_ARG_CNT];
-+
-+ qdata.qid = PM_QID_CLOCK_GET_NAME;
-+ qdata.arg1 = clock_id;
-+
-+ eemi_ops->query_data(qdata, ret_payload);
-+ memcpy(name, ret_payload, CLK_GET_NAME_RESP_LEN);
-+
-+ return 0;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_get_topology() - Get the topology of clock for given id
-+ * @clock_id: ID of the clock to be queried
-+ * @index: Node index of clock topology
-+ * @topology: Buffer to store nodes in topology and flags
-+ *
-+ * This function is used to get topology information for the clock
-+ * specified by given clock ID.
-+ *
-+ * This API will return 3 node of topology with a single response. To get
-+ * other nodes, master should call same API in loop with new
-+ * index till error is returned. E.g First call should have
-+ * index 0 which will return nodes 0,1 and 2. Next call, index
-+ * should be 3 which will return nodes 3,4 and 5 and so on.
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int zynqmp_pm_clock_get_topology(u32 clock_id, u32 index, u32 *topology)
-+{
-+ struct zynqmp_pm_query_data qdata = {0};
-+ __le32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ qdata.qid = PM_QID_CLOCK_GET_TOPOLOGY;
-+ qdata.arg1 = clock_id;
-+ qdata.arg2 = index;
-+
-+ ret = eemi_ops->query_data(qdata, ret_payload);
-+ memcpy(topology, &ret_payload[1], CLK_GET_TOPOLOGY_RESP_WORDS * 4);
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_clk_register_fixed_factor() - Register fixed factor with the
-+ * clock framework
-+ * @name: Name of this clock
-+ * @clk_id: Clock ID
-+ * @parents: Name of this clock's parents
-+ * @num_parents: Number of parents
-+ * @nodes: Clock topology node
-+ *
-+ * Return: clock hardware to the registered clock
-+ */
-+struct clk_hw *zynqmp_clk_register_fixed_factor(const char *name, u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes)
-+{
-+ u32 mult, div;
-+ struct clk_hw *hw;
-+ struct zynqmp_pm_query_data qdata = {0};
-+ __le32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ qdata.qid = PM_QID_CLOCK_GET_FIXEDFACTOR_PARAMS;
-+ qdata.arg1 = clk_id;
-+
-+ ret = eemi_ops->query_data(qdata, ret_payload);
-+ mult = ret_payload[1];
-+ div = ret_payload[2];
-+
-+ hw = clk_hw_register_fixed_factor(NULL, name,
-+ parents[0],
-+ nodes->flag, mult,
-+ div);
-+
-+ return hw;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_get_parents() - Get the first 3 parents of clock for given id
-+ * @clock_id: Clock ID
-+ * @index: Parent index
-+ * @parents: 3 parents of the given clock
-+ *
-+ * This function is used to get 3 parents for the clock specified by
-+ * given clock ID.
-+ *
-+ * This API will return 3 parents with a single response. To get
-+ * other parents, master should call same API in loop with new
-+ * parent index till error is returned. E.g First call should have
-+ * index 0 which will return parents 0,1 and 2. Next call, index
-+ * should be 3 which will return parent 3,4 and 5 and so on.
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int zynqmp_pm_clock_get_parents(u32 clock_id, u32 index, u32 *parents)
-+{
-+ struct zynqmp_pm_query_data qdata = {0};
-+ __le32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ qdata.qid = PM_QID_CLOCK_GET_PARENTS;
-+ qdata.arg1 = clock_id;
-+ qdata.arg2 = index;
-+
-+ ret = eemi_ops->query_data(qdata, ret_payload);
-+ memcpy(parents, &ret_payload[1], CLK_GET_PARENTS_RESP_WORDS * 4);
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_pm_clock_get_attributes() - Get the attributes of clock for given id
-+ * @clock_id: Clock ID
-+ * @attr: Clock attributes
-+ *
-+ * This function is used to get clock's attributes(e.g. valid, clock type, etc).
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int zynqmp_pm_clock_get_attributes(u32 clock_id, u32 *attr)
-+{
-+ struct zynqmp_pm_query_data qdata = {0};
-+ __le32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+
-+ qdata.qid = PM_QID_CLOCK_GET_ATTRIBUTES;
-+ qdata.arg1 = clock_id;
-+
-+ ret = eemi_ops->query_data(qdata, ret_payload);
-+ memcpy(attr, &ret_payload[1], CLK_GET_ATTR_RESP_WORDS * 4);
-+
-+ return ret;
-+}
-+
-+/**
-+ * __zynqmp_clock_get_topology() - Get topology data of clock from firmware
-+ * response data
-+ * @topology: Clock topology
-+ * @data: Clock topology data received from firmware
-+ * @nnodes: Number of nodes
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int __zynqmp_clock_get_topology(struct clock_topology *topology,
-+ u32 *data, u32 *nnodes)
-+{
-+ int i;
-+
-+ for (i = 0; i < PM_API_PAYLOAD_LEN; i++) {
-+ if (!(data[i] & CLK_TYPE_FIELD_MASK))
-+ return END_OF_TOPOLOGY_NODE;
-+ topology[*nnodes].type = data[i] & CLK_TYPE_FIELD_MASK;
-+ topology[*nnodes].flag = FIELD_GET(CLK_FLAG_FIELD_MASK,
-+ data[i]);
-+ topology[*nnodes].type_flag =
-+ FIELD_GET(CLK_TYPE_FLAG_FIELD_MASK, data[i]);
-+ (*nnodes)++;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * zynqmp_clock_get_topology() - Get topology of clock from firmware using
-+ * PM_API
-+ * @clk_id: Clock index
-+ * @topology: Clock topology
-+ * @num_nodes: Number of nodes
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int zynqmp_clock_get_topology(u32 clk_id,
-+ struct clock_topology *topology,
-+ u32 *num_nodes)
-+{
-+ int j, ret;
-+ u32 pm_resp[PM_API_PAYLOAD_LEN] = {0};
-+
-+ *num_nodes = 0;
-+ for (j = 0; j <= MAX_NODES; j += 3) {
-+ ret = zynqmp_pm_clock_get_topology(clk_id, j, pm_resp);
-+ if (ret)
-+ return ret;
-+ ret = __zynqmp_clock_get_topology(topology, pm_resp, num_nodes);
-+ if (ret == END_OF_TOPOLOGY_NODE)
-+ return 0;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * __zynqmp_clock_get_topology() - Get parents info of clock from firmware
-+ * response data
-+ * @parents: Clock parents
-+ * @data: Clock parents data received from firmware
-+ * @nparent: Number of parent
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int __zynqmp_clock_get_parents(struct clock_parent *parents, u32 *data,
-+ u32 *nparent)
-+{
-+ int i;
-+ struct clock_parent *parent;
-+
-+ for (i = 0; i < PM_API_PAYLOAD_LEN; i++) {
-+ if (data[i] == NA_PARENT)
-+ return END_OF_PARENTS;
-+
-+ parent = &parents[i];
-+ parent->id = data[i] & CLK_PARENTS_ID_MASK;
-+ if (data[i] == DUMMY_PARENT) {
-+ strcpy(parent->name, "dummy_name");
-+ parent->flag = 0;
-+ } else {
-+ parent->flag = data[i] >> CLK_PARENTS_ID_LEN;
-+ if (zynqmp_get_clock_name(parent->id, parent->name))
-+ continue;
-+ }
-+ *nparent += 1;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * zynqmp_clock_get_parents() - Get parents info from firmware using PM_API
-+ * @clk_id: Clock index
-+ * @parents: Clock parents
-+ * @num_parents: Total number of parents
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int zynqmp_clock_get_parents(u32 clk_id, struct clock_parent *parents,
-+ u32 *num_parents)
-+{
-+ int j = 0, ret;
-+ u32 pm_resp[PM_API_PAYLOAD_LEN] = {0};
-+
-+ *num_parents = 0;
-+ do {
-+ /* Get parents from firmware */
-+ ret = zynqmp_pm_clock_get_parents(clk_id, j, pm_resp);
-+ if (ret)
-+ return ret;
-+
-+ ret = __zynqmp_clock_get_parents(&parents[j], pm_resp,
-+ num_parents);
-+ if (ret == END_OF_PARENTS)
-+ return 0;
-+ j += PM_API_PAYLOAD_LEN;
-+ } while (*num_parents <= MAX_PARENT);
-+
-+ return 0;
-+}
-+
-+/**
-+ * zynqmp_get_parent_list() - Create list of parents name
-+ * @np: Device node
-+ * @clk_id: Clock index
-+ * @parent_list: List of parent's name
-+ * @num_parents: Total number of parents
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int zynqmp_get_parent_list(struct device_node *np, u32 clk_id,
-+ const char **parent_list, u32 *num_parents)
-+{
-+ int i = 0, ret;
-+ u32 total_parents = clock[clk_id].num_parents;
-+ struct clock_topology *clk_nodes;
-+ struct clock_parent *parents;
-+
-+ clk_nodes = clock[clk_id].node;
-+ parents = clock[clk_id].parent;
-+
-+ for (i = 0; i < total_parents; i++) {
-+ if (!parents[i].flag) {
-+ parent_list[i] = parents[i].name;
-+ } else if (parents[i].flag == PARENT_CLK_EXTERNAL) {
-+ ret = of_property_match_string(np, "clock-names",
-+ parents[i].name);
-+ if (ret < 0)
-+ strcpy(parents[i].name, "dummy_name");
-+ parent_list[i] = parents[i].name;
-+ } else {
-+ strcat(parents[i].name,
-+ clk_type_postfix[clk_nodes[parents[i].flag - 1].
-+ type]);
-+ parent_list[i] = parents[i].name;
-+ }
-+ }
-+
-+ *num_parents = total_parents;
-+ return 0;
-+}
-+
-+/**
-+ * zynqmp_register_clk_topology() - Register clock topology
-+ * @clk_id: Clock index
-+ * @clk_name: Clock Name
-+ * @num_parents: Total number of parents
-+ * @parent_names: List of parents name
-+ *
-+ * Return: Returns either clock hardware or error+reason
-+ */
-+static struct clk_hw *zynqmp_register_clk_topology(int clk_id, char *clk_name,
-+ int num_parents,
-+ const char **parent_names)
-+{
-+ int j;
-+ u32 num_nodes;
-+ char *clk_out = NULL;
-+ struct clock_topology *nodes;
-+ struct clk_hw *hw = NULL;
-+
-+ nodes = clock[clk_id].node;
-+ num_nodes = clock[clk_id].num_nodes;
-+
-+ for (j = 0; j < num_nodes; j++) {
-+ /*
-+ * Clock name received from firmware is output clock name.
-+ * Intermediate clock names are postfixed with type of clock.
-+ */
-+ if (j != (num_nodes - 1)) {
-+ clk_out = kasprintf(GFP_KERNEL, "%s%s", clk_name,
-+ clk_type_postfix[nodes[j].type]);
-+ } else {
-+ clk_out = kasprintf(GFP_KERNEL, "%s", clk_name);
-+ }
-+
-+ if (!clk_topology[nodes[j].type])
-+ continue;
-+
-+ hw = (*clk_topology[nodes[j].type])(clk_out, clk_id,
-+ parent_names,
-+ num_parents,
-+ &nodes[j]);
-+ if (IS_ERR(hw))
-+ pr_warn_once("%s() %s register fail with %ld\n",
-+ __func__, clk_name, PTR_ERR(hw));
-+
-+ parent_names[0] = clk_out;
-+ }
-+ kfree(clk_out);
-+ return hw;
-+}
-+
-+/**
-+ * zynqmp_register_clocks() - Register clocks
-+ * @np: Device node
-+ *
-+ * Return: 0 on success else error code
-+ */
-+static int zynqmp_register_clocks(struct device_node *np)
-+{
-+ int ret;
-+ u32 i, total_parents = 0, type = 0;
-+ const char *parent_names[MAX_PARENT];
-+
-+ for (i = 0; i < clock_max_idx; i++) {
-+ char clk_name[MAX_NAME_LEN];
-+
-+ /* get clock name, continue to next clock if name not found */
-+ if (zynqmp_get_clock_name(i, clk_name))
-+ continue;
-+
-+ /* Check if clock is valid and output clock.
-+ * Do not register invalid or external clock.
-+ */
-+ ret = zynqmp_get_clock_type(i, &type);
-+ if (ret || type != CLK_TYPE_OUTPUT)
-+ continue;
-+
-+ /* Get parents of clock*/
-+ if (zynqmp_get_parent_list(np, i, parent_names,
-+ &total_parents)) {
-+ WARN_ONCE(1, "No parents found for %s\n",
-+ clock[i].clk_name);
-+ continue;
-+ }
-+
-+ zynqmp_data->hws[i] =
-+ zynqmp_register_clk_topology(i, clk_name,
-+ total_parents,
-+ parent_names);
-+ }
-+
-+ for (i = 0; i < clock_max_idx; i++) {
-+ if (IS_ERR(zynqmp_data->hws[i])) {
-+ pr_err("Zynq Ultrascale+ MPSoC clk %s: register failed with %ld\n",
-+ clock[i].clk_name, PTR_ERR(zynqmp_data->hws[i]));
-+ WARN_ON(1);
-+ }
-+ }
-+ return 0;
-+}
-+
-+/**
-+ * zynqmp_get_clock_info() - Get clock information from firmware using PM_API
-+ */
-+static void zynqmp_get_clock_info(void)
-+{
-+ int i, ret;
-+ u32 attr, type = 0;
-+
-+ for (i = 0; i < clock_max_idx; i++) {
-+ zynqmp_pm_clock_get_name(i, clock[i].clk_name);
-+ if (!strcmp(clock[i].clk_name, RESERVED_CLK_NAME))
-+ continue;
-+
-+ ret = zynqmp_pm_clock_get_attributes(i, &attr);
-+ if (ret)
-+ continue;
-+
-+ clock[i].valid = attr & CLK_VALID_MASK;
-+ clock[i].type = attr >> CLK_TYPE_SHIFT ? CLK_TYPE_EXTERNAL :
-+ CLK_TYPE_OUTPUT;
-+ }
-+
-+ /* Get topology of all clock */
-+ for (i = 0; i < clock_max_idx; i++) {
-+ ret = zynqmp_get_clock_type(i, &type);
-+ if (ret || type != CLK_TYPE_OUTPUT)
-+ continue;
-+
-+ ret = zynqmp_clock_get_topology(i, clock[i].node,
-+ &clock[i].num_nodes);
-+ if (ret)
-+ continue;
-+
-+ ret = zynqmp_clock_get_parents(i, clock[i].parent,
-+ &clock[i].num_parents);
-+ if (ret)
-+ continue;
-+ }
-+}
-+
-+/**
-+ * zynqmp_clk_setup() - Setup the clock framework and register clocks
-+ * @np: Device node
-+ *
-+ * Return: 0 on success else error code
-+ */
-+static int zynqmp_clk_setup(struct device_node *np)
-+{
-+ int ret;
-+
-+ ret = zynqmp_pm_clock_get_num_clocks(&clock_max_idx);
-+ if (ret)
-+ return ret;
-+
-+ zynqmp_data = kzalloc(sizeof(*zynqmp_data) + sizeof(*zynqmp_data) *
-+ clock_max_idx, GFP_KERNEL);
-+ if (!zynqmp_data)
-+ return -ENOMEM;
-+
-+ clock = kcalloc(clock_max_idx, sizeof(*clock), GFP_KERNEL);
-+ if (!clock) {
-+ kfree(zynqmp_data);
-+ return -ENOMEM;
-+ }
-+
-+ zynqmp_get_clock_info();
-+ zynqmp_register_clocks(np);
-+
-+ zynqmp_data->num = clock_max_idx;
-+ of_clk_add_hw_provider(np, of_clk_hw_onecell_get, zynqmp_data);
-+
-+ return 0;
-+}
-+
-+static int zynqmp_clock_probe(struct platform_device *pdev)
-+{
-+ int ret;
-+ struct device *dev = &pdev->dev;
-+
-+ eemi_ops = zynqmp_pm_get_eemi_ops();
-+ if (!eemi_ops)
-+ return -ENXIO;
-+
-+ ret = zynqmp_clk_setup(dev->of_node);
-+
-+ return ret;
-+}
-+
-+static const struct of_device_id zynqmp_clock_of_match[] = {
-+ {.compatible = "xlnx,zynqmp-clk"},
-+ {},
-+};
-+MODULE_DEVICE_TABLE(of, zynqmp_clock_of_match);
-+
-+static struct platform_driver zynqmp_clock_driver = {
-+ .driver = {
-+ .name = "zynqmp_clock",
-+ .of_match_table = zynqmp_clock_of_match,
-+ },
-+ .probe = zynqmp_clock_probe,
-+};
-+module_platform_driver(zynqmp_clock_driver);
-diff --git a/drivers/clk/zynqmp/divider.c b/drivers/clk/zynqmp/divider.c
-new file mode 100644
-index 0000000..a371c66
---- /dev/null
-+++ b/drivers/clk/zynqmp/divider.c
-@@ -0,0 +1,217 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Zynq UltraScale+ MPSoC Divider support
-+ *
-+ * Copyright (C) 2016-2018 Xilinx
-+ *
-+ * Adjustable divider clock implementation
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/clk-provider.h>
-+#include <linux/slab.h>
-+#include "clk-zynqmp.h"
-+
-+/*
-+ * DOC: basic adjustable divider clock that cannot gate
-+ *
-+ * Traits of this clock:
-+ * prepare - clk_prepare only ensures that parents are prepared
-+ * enable - clk_enable only ensures that parents are enabled
-+ * rate - rate is adjustable. clk->rate = ceiling(parent->rate / divisor)
-+ * parent - fixed parent. No clk_set_parent support
-+ */
-+
-+#define to_zynqmp_clk_divider(_hw) \
-+ container_of(_hw, struct zynqmp_clk_divider, hw)
-+
-+#define CLK_FRAC BIT(13) /* has a fractional parent */
-+
-+/**
-+ * struct zynqmp_clk_divider - adjustable divider clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ * @flags: Hardware specific flags
-+ * @clk_id: Id of clock
-+ * @div_type: divisor type (TYPE_DIV1 or TYPE_DIV2)
-+ */
-+struct zynqmp_clk_divider {
-+ struct clk_hw hw;
-+ u8 flags;
-+ u32 clk_id;
-+ u32 div_type;
-+};
-+
-+static inline int zynqmp_divider_get_val(unsigned long parent_rate,
-+ unsigned long rate)
-+{
-+ return DIV_ROUND_CLOSEST(parent_rate, rate);
-+}
-+
-+/**
-+ * zynqmp_clk_divider_recalc_rate() - Recalc rate of divider clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ * @parent_rate: rate of parent clock
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static unsigned long zynqmp_clk_divider_recalc_rate(struct clk_hw *hw,
-+ unsigned long parent_rate)
-+{
-+ struct zynqmp_clk_divider *divider = to_zynqmp_clk_divider(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = divider->clk_id;
-+ u32 div_type = divider->div_type;
-+ u32 div, value;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->clock_getdivider(clk_id, &div);
-+
-+ if (ret)
-+ pr_warn_once("%s() get divider failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ if (div_type == TYPE_DIV1)
-+ value = div & 0xFFFF;
-+ else
-+ value = div >> 16;
-+
-+ return DIV_ROUND_UP_ULL(parent_rate, value);
-+}
-+
-+/**
-+ * zynqmp_clk_divider_round_rate() - Round rate of divider clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ * @rate: rate of clock to be set
-+ * @prate: rate of parent clock
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static long zynqmp_clk_divider_round_rate(struct clk_hw *hw,
-+ unsigned long rate,
-+ unsigned long *prate)
-+{
-+ struct zynqmp_clk_divider *divider = to_zynqmp_clk_divider(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = divider->clk_id;
-+ u32 div_type = divider->div_type;
-+ u32 bestdiv;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ /* if read only, just return current value */
-+ if (divider->flags & CLK_DIVIDER_READ_ONLY) {
-+ ret = eemi_ops->clock_getdivider(clk_id, &bestdiv);
-+
-+ if (ret)
-+ pr_warn_once("%s() get divider failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+ if (div_type == TYPE_DIV1)
-+ bestdiv = bestdiv & 0xFFFF;
-+ else
-+ bestdiv = bestdiv >> 16;
-+
-+ return DIV_ROUND_UP_ULL((u64)*prate, bestdiv);
-+ }
-+
-+ bestdiv = zynqmp_divider_get_val(*prate, rate);
-+
-+ if ((clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) &&
-+ (divider->flags & CLK_FRAC))
-+ bestdiv = rate % *prate ? 1 : bestdiv;
-+ *prate = rate * bestdiv;
-+
-+ return rate;
-+}
-+
-+/**
-+ * zynqmp_clk_divider_set_rate() - Set rate of divider clock
-+ * @hw: handle between common and hardware-specific interfaces
-+ * @rate: rate of clock to be set
-+ * @parent_rate: rate of parent clock
-+ *
-+ * Return: 0 on success else error+reason
-+ */
-+static int zynqmp_clk_divider_set_rate(struct clk_hw *hw, unsigned long rate,
-+ unsigned long parent_rate)
-+{
-+ struct zynqmp_clk_divider *divider = to_zynqmp_clk_divider(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = divider->clk_id;
-+ u32 div_type = divider->div_type;
-+ u32 value, div;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ value = zynqmp_divider_get_val(parent_rate, rate);
-+ if (div_type == TYPE_DIV1) {
-+ div = value & 0xFFFF;
-+ div |= 0xffff << 16;
-+ } else {
-+ div = 0xffff;
-+ div |= value << 16;
-+ }
-+
-+ ret = eemi_ops->clock_setdivider(clk_id, div);
-+
-+ if (ret)
-+ pr_warn_once("%s() set divider failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ return ret;
-+}
-+
-+static const struct clk_ops zynqmp_clk_divider_ops = {
-+ .recalc_rate = zynqmp_clk_divider_recalc_rate,
-+ .round_rate = zynqmp_clk_divider_round_rate,
-+ .set_rate = zynqmp_clk_divider_set_rate,
-+};
-+
-+/**
-+ * zynqmp_clk_register_divider() - Register a divider clock
-+ * @name: Name of this clock
-+ * @clk_id: Id of clock
-+ * @parents: Name of this clock's parents
-+ * @num_parents: Number of parents
-+ * @nodes: Clock topology node
-+ *
-+ * Return: clock hardware to registered clock divider
-+ */
-+struct clk_hw *zynqmp_clk_register_divider(const char *name,
-+ u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes)
-+{
-+ struct zynqmp_clk_divider *div;
-+ struct clk_hw *hw;
-+ struct clk_init_data init;
-+ int ret;
-+
-+ /* allocate the divider */
-+ div = kzalloc(sizeof(*div), GFP_KERNEL);
-+ if (!div)
-+ return ERR_PTR(-ENOMEM);
-+
-+ init.name = name;
-+ init.ops = &zynqmp_clk_divider_ops;
-+ init.flags = nodes->flag;
-+ init.parent_names = parents;
-+ init.num_parents = 1;
-+
-+ /* struct clk_divider assignments */
-+ div->flags = nodes->type_flag;
-+ div->hw.init = &init;
-+ div->clk_id = clk_id;
-+ div->div_type = nodes->type;
-+
-+ hw = &div->hw;
-+ ret = clk_hw_register(NULL, hw);
-+ if (ret) {
-+ kfree(div);
-+ hw = ERR_PTR(ret);
-+ }
-+
-+ return hw;
-+}
-+EXPORT_SYMBOL_GPL(zynqmp_clk_register_divider);
-diff --git a/drivers/clk/zynqmp/pll.c b/drivers/clk/zynqmp/pll.c
-new file mode 100644
-index 0000000..626bb5f
---- /dev/null
-+++ b/drivers/clk/zynqmp/pll.c
-@@ -0,0 +1,335 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Zynq UltraScale+ MPSoC PLL driver
-+ *
-+ * Copyright (C) 2016-2018 Xilinx
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/clk-provider.h>
-+#include <linux/slab.h>
-+#include "clk-zynqmp.h"
-+
-+/**
-+ * struct zynqmp_pll - PLL clock
-+ * @hw: Handle between common and hardware-specific interfaces
-+ * @clk_id: PLL clock ID
-+ */
-+struct zynqmp_pll {
-+ struct clk_hw hw;
-+ u32 clk_id;
-+};
-+
-+#define to_zynqmp_pll(_hw) container_of(_hw, struct zynqmp_pll, hw)
-+
-+#define PLL_FBDIV_MIN 25
-+#define PLL_FBDIV_MAX 125
-+
-+#define PS_PLL_VCO_MIN 1500000000
-+#define PS_PLL_VCO_MAX 3000000000UL
-+
-+enum pll_mode {
-+ PLL_MODE_INT,
-+ PLL_MODE_FRAC,
-+};
-+
-+#define FRAC_OFFSET 0x8
-+#define PLLFCFG_FRAC_EN BIT(31)
-+#define FRAC_DIV BIT(16) /* 2^16 */
-+
-+/**
-+ * zynqmp_pll_get_mode() - Get mode of PLL
-+ * @hw: Handle between common and hardware-specific interfaces
-+ *
-+ * Return: Mode of PLL
-+ */
-+static inline enum pll_mode zynqmp_pll_get_mode(struct clk_hw *hw)
-+{
-+ struct zynqmp_pll *clk = to_zynqmp_pll(hw);
-+ u32 clk_id = clk->clk_id;
-+ const char *clk_name = clk_hw_get_name(hw);
-+ __le32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->ioctl(0, IOCTL_GET_PLL_FRAC_MODE, clk_id, 0,
-+ ret_payload);
-+ if (ret)
-+ pr_warn_once("%s() PLL get frac mode failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ return ret_payload[1];
-+}
-+
-+/**
-+ * zynqmp_pll_set_mode() - Set the PLL mode
-+ * @hw: Handle between common and hardware-specific interfaces
-+ * @on: Flag to determine the mode
-+ */
-+static inline void zynqmp_pll_set_mode(struct clk_hw *hw, bool on)
-+{
-+ struct zynqmp_pll *clk = to_zynqmp_pll(hw);
-+ u32 clk_id = clk->clk_id;
-+ const char *clk_name = clk_hw_get_name(hw);
-+ int ret;
-+ u32 mode;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ if (on)
-+ mode = PLL_MODE_FRAC;
-+ else
-+ mode = PLL_MODE_INT;
-+
-+ ret = eemi_ops->ioctl(0, IOCTL_SET_PLL_FRAC_MODE, clk_id, mode, NULL);
-+ if (ret)
-+ pr_warn_once("%s() PLL set frac mode failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+}
-+
-+/**
-+ * zynqmp_pll_round_rate() - Round a clock frequency
-+ * @hw: Handle between common and hardware-specific interfaces
-+ * @rate: Desired clock frequency
-+ * @prate: Clock frequency of parent clock
-+ *
-+ * Return: Frequency closest to @rate the hardware can generate
-+ */
-+static long zynqmp_pll_round_rate(struct clk_hw *hw, unsigned long rate,
-+ unsigned long *prate)
-+{
-+ u32 fbdiv;
-+ long rate_div, f;
-+
-+ /* Enable the fractional mode if needed */
-+ rate_div = (rate * FRAC_DIV) / *prate;
-+ f = rate_div % FRAC_DIV;
-+ zynqmp_pll_set_mode(hw, !!f);
-+
-+ if (zynqmp_pll_get_mode(hw) == PLL_MODE_FRAC) {
-+ if (rate > PS_PLL_VCO_MAX) {
-+ fbdiv = rate / PS_PLL_VCO_MAX;
-+ rate = rate / (fbdiv + 1);
-+ }
-+ if (rate < PS_PLL_VCO_MIN) {
-+ fbdiv = DIV_ROUND_UP(PS_PLL_VCO_MIN, rate);
-+ rate = rate * fbdiv;
-+ }
-+ return rate;
-+ }
-+
-+ fbdiv = DIV_ROUND_CLOSEST(rate, *prate);
-+ fbdiv = clamp_t(u32, fbdiv, PLL_FBDIV_MIN, PLL_FBDIV_MAX);
-+ return *prate * fbdiv;
-+}
-+
-+/**
-+ * zynqmp_pll_recalc_rate() - Recalculate clock frequency
-+ * @hw: Handle between common and hardware-specific interfaces
-+ * @parent_rate: Clock frequency of parent clock
-+ *
-+ * Return: Current clock frequency
-+ */
-+static unsigned long zynqmp_pll_recalc_rate(struct clk_hw *hw,
-+ unsigned long parent_rate)
-+{
-+ struct zynqmp_pll *clk = to_zynqmp_pll(hw);
-+ u32 clk_id = clk->clk_id;
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 fbdiv, data;
-+ unsigned long rate, frac;
-+ __le32 ret_payload[PAYLOAD_ARG_CNT];
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->clock_getdivider(clk_id, &fbdiv);
-+ if (ret)
-+ pr_warn_once("%s() get divider failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ rate = parent_rate * fbdiv;
-+ if (zynqmp_pll_get_mode(hw) == PLL_MODE_FRAC) {
-+ eemi_ops->ioctl(0, IOCTL_GET_PLL_FRAC_DATA, clk_id, 0,
-+ ret_payload);
-+ data = ret_payload[1];
-+ frac = (parent_rate * data) / FRAC_DIV;
-+ rate = rate + frac;
-+ }
-+
-+ return rate;
-+}
-+
-+/**
-+ * zynqmp_pll_set_rate() - Set rate of PLL
-+ * @hw: Handle between common and hardware-specific interfaces
-+ * @rate: Frequency of clock to be set
-+ * @parent_rate: Clock frequency of parent clock
-+ *
-+ * Set PLL divider to set desired rate.
-+ *
-+ * Returns: rate which is set on success else error code
-+ */
-+static int zynqmp_pll_set_rate(struct clk_hw *hw, unsigned long rate,
-+ unsigned long parent_rate)
-+{
-+ struct zynqmp_pll *clk = to_zynqmp_pll(hw);
-+ u32 clk_id = clk->clk_id;
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 fbdiv;
-+ long rate_div, frac, m, f;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ if (zynqmp_pll_get_mode(hw) == PLL_MODE_FRAC) {
-+ rate_div = (rate * FRAC_DIV) / parent_rate;
-+ m = rate_div / FRAC_DIV;
-+ f = rate_div % FRAC_DIV;
-+ m = clamp_t(u32, m, (PLL_FBDIV_MIN), (PLL_FBDIV_MAX));
-+ rate = parent_rate * m;
-+ frac = (parent_rate * f) / FRAC_DIV;
-+
-+ ret = eemi_ops->clock_setdivider(clk_id, m);
-+ if (ret)
-+ pr_warn_once("%s() set divider failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ eemi_ops->ioctl(0, IOCTL_SET_PLL_FRAC_DATA, clk_id, f, NULL);
-+
-+ return rate + frac;
-+ }
-+
-+ fbdiv = DIV_ROUND_CLOSEST(rate, parent_rate);
-+ fbdiv = clamp_t(u32, fbdiv, PLL_FBDIV_MIN, PLL_FBDIV_MAX);
-+ ret = eemi_ops->clock_setdivider(clk_id, fbdiv);
-+ if (ret)
-+ pr_warn_once("%s() set divider failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ return parent_rate * fbdiv;
-+}
-+
-+/**
-+ * zynqmp_pll_is_enabled() - Check if a clock is enabled
-+ * @hw: Handle between common and hardware-specific interfaces
-+ *
-+ * Return: 1 if the clock is enabled, 0 otherwise
-+ */
-+static int zynqmp_pll_is_enabled(struct clk_hw *hw)
-+{
-+ struct zynqmp_pll *clk = to_zynqmp_pll(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = clk->clk_id;
-+ unsigned int state;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ ret = eemi_ops->clock_getstate(clk_id, &state);
-+ if (ret) {
-+ pr_warn_once("%s() clock get state failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+ return -EIO;
-+ }
-+
-+ return state ? 1 : 0;
-+}
-+
-+/**
-+ * zynqmp_pll_enable() - Enable clock
-+ * @hw: Handle between common and hardware-specific interfaces
-+ *
-+ * Return: 0 on success else error code
-+ */
-+static int zynqmp_pll_enable(struct clk_hw *hw)
-+{
-+ struct zynqmp_pll *clk = to_zynqmp_pll(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = clk->clk_id;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ if (zynqmp_pll_is_enabled(hw))
-+ return 0;
-+
-+ ret = eemi_ops->clock_enable(clk_id);
-+ if (ret)
-+ pr_warn_once("%s() clock enable failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+
-+ return ret;
-+}
-+
-+/**
-+ * zynqmp_pll_disable() - Disable clock
-+ * @hw: Handle between common and hardware-specific interfaces
-+ */
-+static void zynqmp_pll_disable(struct clk_hw *hw)
-+{
-+ struct zynqmp_pll *clk = to_zynqmp_pll(hw);
-+ const char *clk_name = clk_hw_get_name(hw);
-+ u32 clk_id = clk->clk_id;
-+ int ret;
-+ const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
-+
-+ if (!zynqmp_pll_is_enabled(hw))
-+ return;
-+
-+ ret = eemi_ops->clock_disable(clk_id);
-+ if (ret)
-+ pr_warn_once("%s() clock disable failed for %s, ret = %d\n",
-+ __func__, clk_name, ret);
-+}
-+
-+static const struct clk_ops zynqmp_pll_ops = {
-+ .enable = zynqmp_pll_enable,
-+ .disable = zynqmp_pll_disable,
-+ .is_enabled = zynqmp_pll_is_enabled,
-+ .round_rate = zynqmp_pll_round_rate,
-+ .recalc_rate = zynqmp_pll_recalc_rate,
-+ .set_rate = zynqmp_pll_set_rate,
-+};
-+
-+/**
-+ * zynqmp_clk_register_pll() - Register PLL with the clock framework
-+ * @name: PLL name
-+ * @clk_id: Clock ID
-+ * @parents: Name of this clock's parents
-+ * @num_parents: Number of parents
-+ * @nodes: Clock topology node
-+ *
-+ * Return: clock hardware to the registered clock
-+ */
-+struct clk_hw *zynqmp_clk_register_pll(const char *name, u32 clk_id,
-+ const char * const *parents,
-+ u8 num_parents,
-+ const struct clock_topology *nodes)
-+{
-+ struct zynqmp_pll *pll;
-+ struct clk_hw *hw;
-+ struct clk_init_data init;
-+ int ret;
-+
-+ init.name = name;
-+ init.ops = &zynqmp_pll_ops;
-+ init.flags = nodes->flag;
-+ init.parent_names = parents;
-+ init.num_parents = 1;
-+
-+ pll = kzalloc(sizeof(*pll), GFP_KERNEL);
-+ if (!pll)
-+ return ERR_PTR(-ENOMEM);
-+
-+ pll->hw.init = &init;
-+ pll->clk_id = clk_id;
-+
-+ hw = &pll->hw;
-+ ret = clk_hw_register(NULL, hw);
-+ if (ret) {
-+ kfree(pll);
-+ return ERR_PTR(ret);
-+ }
-+
-+ clk_hw_set_rate_range(hw, PS_PLL_VCO_MIN, PS_PLL_VCO_MAX);
-+ if (ret < 0)
-+ pr_err("%s:ERROR clk_set_rate_range failed %d\n", name, ret);
-+
-+ return hw;
-+}
-diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
-index 58a7478..a3ef7d6 100644
---- a/include/linux/firmware/xlnx-zynqmp.h
-+++ b/include/linux/firmware/xlnx-zynqmp.h
-@@ -72,6 +72,7 @@ enum pm_query_id {
- PM_QID_CLOCK_GET_FIXEDFACTOR_PARAMS,
- PM_QID_CLOCK_GET_PARENTS,
- PM_QID_CLOCK_GET_ATTRIBUTES,
-+ PM_QID_CLOCK_GET_NUM_CLOCKS = 12,
- };
-
- /**
-
-From patchwork Fri Aug 3 17:53:28 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jolly Shah <jolly.shah@xilinx.com>
-X-Patchwork-Id: 10555419
-Return-Path:
- <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
-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 7272614E2
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:24 +0000 (UTC)
-Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
- by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5FB462C1AF
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:24 +0000 (UTC)
-Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
- id 5343D2C984; Fri, 3 Aug 2018 18:06:24 +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 autolearn=unavailable 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 E68552C1AF
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Fri, 3 Aug 2018 18:06:23 +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=xBfAFqp/1JxfkxFiJoHW7UYhX0tK+Per5yoNCATaQtA=; b=J2isLgGjSuvqsX
- uge98kSY5X+9hEz5UYJtWrmPbJfeyJ+T9PGaLsaGTZdbDwGpooesaOzDsctJW9BMSYnYUIQjNqJ1d
- hpK/qUsGTY5yDITFNu0Vd0PRbnSLySJim+56rxFPoRe8U+PiiQrOKm9o65k1DERWKlNLZ/5RcRS0i
- uZG66/6x8LXoektXoXg4rG2lrYlUHlAxmf2vXMN7U9zLCEcrMezCoUW2mvEYuIRGs+bGbT9doKU2y
- 0QGhgpBr1uHZCAkaE7q9bkVwQ6e1thPgcxmVFoYMduPwMWjKvARH8H6rtbzkofOTpn/nh6/jk2abF
- K/+eygvV0q16J+n6MP8A==;
-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 1fleSu-0002Ls-PC; Fri, 03 Aug 2018 18:06:16 +0000
-Received: from mail-by2nam03on0052.outbound.protection.outlook.com
- ([104.47.42.52] helo=NAM03-BY2-obe.outbound.protection.outlook.com)
- by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
- id 1fleHG-0002lU-An
- for linux-arm-kernel@lists.infradead.org; Fri, 03 Aug 2018 17:54:18 +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=HocsRqPj2eQGjE2XVpEC9FN28XayA3mpJe4M6gte33A=;
- b=DVbqTpiA2yXpnQWWPpVJftOa3sDdxP2UsgIvh36sh/022OZPb/2EBvsnOiNqrkkzTEIizFi0jwUEOhnjZTn1QBRwplEsD2CJ8uXcok/IVmB41NKj7jm8hVYKn4MPSUVwh9E8E8QqFObEm4DtZTOnie0kisAvjy+z5odvapQNCuA=
-Received: from DM6PR02CA0009.namprd02.prod.outlook.com (2603:10b6:5:1c::22) by
- DM5PR0201MB3512.namprd02.prod.outlook.com (2603:10b6:4:77::12) with
- Microsoft
- SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
- 15.20.1017.15; Fri, 3 Aug 2018 17:53:53 +0000
-Received: from CY1NAM02FT049.eop-nam02.prod.protection.outlook.com
- (2a01:111:f400:7e45::200) by DM6PR02CA0009.outlook.office365.com
- (2603:10b6:5:1c::22) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1017.14 via Frontend
- Transport; Fri, 3 Aug 2018 17:53:53 +0000
-Authentication-Results: spf=pass (sender IP is 149.199.60.83)
- smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed)
- header.d=none;linaro.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
- CY1NAM02FT049.mail.protection.outlook.com (10.152.75.83) with Microsoft SMTP
- Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1038.3
- via Frontend Transport; Fri, 3 Aug 2018 17:53:52 +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 <jolly.shah@xilinx.com>)
- id 1fleGu-0004fe-0k; Fri, 03 Aug 2018 10:53:52 -0700
-Received: from [127.0.0.1] (helo=localhost)
- by xsj-pvapsmtp01 with smtp (Exim 4.63)
- (envelope-from <jolly.shah@xilinx.com>)
- id 1fleGo-0007cn-Tn; Fri, 03 Aug 2018 10:53:46 -0700
-Received: from [172.19.2.91] (helo=xsjjollys50.xilinx.com)
- by xsj-pvapsmtp01 with esmtp (Exim 4.63)
- (envelope-from <jollys@xilinx.com>)
- id 1fleGl-0007bh-UD; Fri, 03 Aug 2018 10:53:43 -0700
-From: Jolly Shah <jolly.shah@xilinx.com>
-To: <ard.biesheuvel@linaro.org>, <mingo@kernel.org>,
- <gregkh@linuxfoundation.org>, <matt@codeblueprint.co.uk>,
- <sudeep.holla@arm.com>, <hkallweit1@gmail.com>, <keescook@chromium.org>,
- <dmitry.torokhov@gmail.com>, <mturquette@baylibre.com>,
- <sboyd@codeaurora.org>, <michal.simek@xilinx.com>, <robh+dt@kernel.org>,
- <mark.rutland@arm.com>, <linux-clk@vger.kernel.org>
-Subject: [PATCH v11 11/11] firmware: xilinx: Replace init call with probe
- method
-Date: Fri, 3 Aug 2018 10:53:28 -0700
-Message-ID: <1533318808-10781-12-git-send-email-jollys@xilinx.com>
-X-Mailer: git-send-email 2.7.4
-In-Reply-To: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-References: <1533318808-10781-1-git-send-email-jollys@xilinx.com>
-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)(376002)(346002)(136003)(396003)(2980300002)(438002)(189003)(199004)(81156014)(48376002)(9786002)(5660300001)(107886003)(81166006)(50226002)(106002)(77096007)(16586007)(8676002)(186003)(110136005)(2906002)(6666003)(50466002)(316002)(44832011)(426003)(39060400002)(47776003)(8936002)(478600001)(4326008)(54906003)(486006)(7696005)(336012)(36386004)(11346002)(26005)(126002)(51416003)(476003)(63266004)(106466001)(356003)(76176011)(36756003)(72206003)(446003)(2201001)(305945005)(7416002)(2616005)(107986001)(921003)(1121003);
- DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR0201MB3512; H:xsj-pvapsmtpgw01; FPR:;
- SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; MX:1; A:1;
-X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT049;
- 1:Q3IxXRPxJrM39CbL4CERPcH1cxfk1IJkfmcqlkuiAYmyqmzmWXxBSOugUpiPScw3yqROTSsHMBCCLPu2aYih9HcwIVnE9dbiwZv5YTDUkJYU8+bzHCl3ZtAXvefIVJGw
-MIME-Version: 1.0
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: 0045d393-b7d0-410b-a885-08d5f96a13aa
-X-Microsoft-Antispam: BCL:0; PCL:0;
- RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);
- SRVR:DM5PR0201MB3512;
-X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3512;
- 3:XuI9a6OU+Wix++X/W4xHpGLHgfrayqtIftW9xwgVabOIZThZL3AJjSrhF8y3EzUe7yPqJVAVf5/1ibvprgN39lOTsOjRab4GJyn/7Z97ZzOjlYMfXcrSu251wFqIhZNFxprkY6nohxGbCqh7PKUq0Hs/1C00Z8XhLT9e03DJC3lYJt8yZV7xJQWsMrheCinyD7wwwswauzy7+DUdIOI6XVrJ0pavF4U9lr3EViPi9G0zq6rcJRLbS1WOOsMafeRsKx5ZFOk4KJxVyoIT+llGcCxEEmzaMAzsFcemh4O0A5HSUSsIefplelPhqq2z1YaRVoGSRr6/aB7SNfKS73qVtMr+DopKEOPgU5qsRlgb1sQ=;
- 25:gysTljDxV5yUd4qWs+8GiPCacf+WxzTD0KkPv8TTXIkE7ENdj7dJZjZJBhUTj8AYYdnBNb+5WbViDUJZeY8ilJ3v5RpNNYmmHqhY3inMp405adRuhVLXPfwkRKzf7jhyagbj7rz7TZ1XXL5bV0epyg/rDKlHOtLXVni5tfzCu/WWdxNsp72B6BBbs/qRTTBA7aA5ucho/Pd0wFKxWO6wJ0OFlugwlcEvI3zHKL7a1/utFp+9UA0H7Ei0smzMOP3jocu6NfwOzWV34VNN7NOfP3xCMbIdv492RcYZXuRzYYNpUZn82+xVIhbj2y6FeyyxSfEpUEzg2/OBHTMREU226w==
-X-MS-TrafficTypeDiagnostic: DM5PR0201MB3512:
-X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3512;
- 31:m+GVFACqJrapL5HOpRPocBLFk4ZbV5+J7il/XZiG+65XMR/Rtw3MZEM+SbgFRX484g5X5xpqQHIQIWEPye4HWKWN9hGB8Wq1J2Mgo27fBSMCLg/jns3IOQs29Ey1MyrBbEH84gv4FDRrYxY2gRrrWmlJyp2sGGGeNFY5bvW1IF6Xq//ZXgCV/D+EjKhIu+EJa17PSlyuKufhhGr9XJJ9jSU+/EG4CkcRVlEbPZOp/sM=;
- 20:cL3VcjGdsjeFPiv/AalGXMQBhvGzW7f7pePV/oAYht9i2zTvTVGUMehKQUojvGmXd3c3IhRlaIVMwVWu669YzdEfaQbY0/VlNo4LEhZC2sDV3R4zXCCkPI5DnY+Okxf8xbrtvVsdmbf28ekzWC71QXKC5tMgecldR2biwrPxpkB9/MvWolJLcgep6v2waxW5E4XfsZCRZANWW9HjaScIBT/MGJqMzg4mUxuqmrRTlsv7xaMEAebxDDKT1thUAVR0WIfuhOOApMlZsNTKDgm5870gC8dS8swG4Fr9VYzApkYL6a50LxMhVVZkBXXJpmKwzYPYzV/ay7HAn6Em9uL7We7EQW/dEJHubnh4+j5zQYMlyNBU7ZI3gHPvV3SKBbSRlzeAOJosWvzQWVhhivYbGTWaHoTHP+JbVCGArx4d68zIG5DOBtPPIE4BZsKeaJ8U2xhohSCtyaZSMgh+OqQpD4WLzceDlvJW9A2LXUxQolDkem7TQC8p0I4DgEGMR0R6
-X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
-X-Microsoft-Antispam-PRVS:
- <DM5PR0201MB3512F241C094A9CBED8F2272B8230@DM5PR0201MB3512.namprd02.prod.outlook.com>
-X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(192813158149592);
-X-MS-Exchange-SenderADCheck: 1
-X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
- RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93004095)(10201501046)(3231311)(944501410)(52105095)(3002001)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011)(7699016);
- SRVR:DM5PR0201MB3512; BCL:0; PCL:0; RULEID:; SRVR:DM5PR0201MB3512;
-X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3512;
- 4:0l/Jv9e1lvDhvWIGk/ia9KFrX1twnlhZ76AohX/jm3f6Xh9XFgZ2S7wMJt+nvRd/Ib5wPCNU/Qzz3nbyWCEUi/8bw3uJWshcREy2YMtOZNnN36vgS671yuWxEg1ACQnNfVlyJ+Qe4NXX+rXbEwOGiTsWdEKW+DND2tEvmsPYppLg+BS1j+2PmKZr9UAM2Dknm9gMq45UsN2bW9Tg1ARkd0sE0josKC+LmsRUwjkLuMf34CIshUL7/IV+xRrAEXBXgOgIh/+CVFCCqu4HGnZZPT0itExttJGvC9kUvXoMtjJTX9PoLd+IvrotXSa8glKK5YnIZ2RHLtVc2cz+tFNr3w==
-X-Forefront-PRVS: 0753EA505A
-X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR0201MB3512;
- 23:omq/hhH3pNMVCBhAnCz9tF3e7JVKzbi18jEm/z8?=
- jIlLu6OT02UXNvQtzoR9LV7LHHvsEOjGFylznycJXeBY1UI7JqCJhWyR/s5yrVPPfHiNTEGq3El2JgFhnwy23zXyPabYWUQ6cQhu9bwc3rxGYpdF/PSbfIDLgxb1yce/Kt4G1GWIhPo5ag/87tDYzJBQz5FllJEm3aqIB87riGEjWMxR+5Uq2YXz8wBfb4R/6Ieu4JGmmB68MMYYUWkbLbcT8ntvMRaH/GJoJjvEnARtXiq+rK07a9aXF9ef5oSfxDTJ6t1ivD1n65ELnPN4bfWhOOJGqX7pgy+/e5l4Gw7N0P8MCe5zggv72MS9KIZ5qqjz8mdP63AvKboW4SKhn3M5Lt2dpvTxHW2sppZLQ2+XuyR9Kf3BIviwcxgoxLYVSr1Yp4G6VTcqRsu7EPE5w33LTZyr1n3i+T/Cq8fmAW7GqLT/hB4M+UXq9ofiOgAu6oqZZuiyzk1yVdhQhCvuMK7qMt09KeTKA3GE1PH7fjQKbTIP5bmL3VkNQf9WrN9zlGhT9M3PWNMTUx86LyBmbxKrQP/al6iabmClurKjdnCGSxGithQ31eoeW2Z8cLT3vtyKi8UF79FBm4lVfK8gF5U6SBHb1xlNiHug7QUaGKQCd9Ue62xTf1Dq8NDXnra8mTf+BnwDiuF6Uw/thLWwKkX8ZovB7r1IxdT46TlMMWtVFun5GEV+LKU3D3YWwWHNxzL/MyG4x5ZbPkENvj9NR63rFhdV+f9qD6LCY9al3HMwmdeJNvEDfBa8EF+YLUUZVgwUCr9JQf9UutQ6fffEYKJeRjTlmuDczITziqjePpjjCVYoEpR0AlCeDiQjg/b5MdD0HAf1exlS8NFey1LWSqyi08VhvupekVK6If6eqwMeW+NFdE3EiUqrN0mWtA1Mf7hB69VY+TlX+QHhBqHQUKhIdVk3w1pJ2Q5LJw2lJPjD2eqKiyGO1nr41OYlsBsnYTgA1lk0UImYLkJvaZF7taJp8YM01HuEqDXOcv0eGAm6KNmxCRNyzHPXTtW1OC9DWEX/qM8rzXO8BKKXSz+YTRrlIHb6cSFliY02OCo2eFduIftx2Mctsu5+O4mIFPJBCXriudnYQoQ05V/s8kJKVi6UYAD8/dWU0YstWIqNuHjh6WBlWfE7zqgna0uzHpQyIY+FUta8PMmpmSBLr3jjG5dnzjNX2JhsNtsLj87qzswzKjmgU1Av6wcI+yEtsgA2hKhI=
-X-Microsoft-Antispam-Message-Info:
- he/DjG338vKuajrgDZYI7EwJ8Q6KUQQKX+oeKYnClkaH/ghslFgICr73cmv4e2msKjLmU2aa0Q2usW+CpWEvrUYJ91ccdmZK9V9tIg+gDGZPgY3+EH1D+23OK833ydfBm1VOQ9Cgo8HO5likY/fVqLCq+EwcfSsmb7butphGyDbhaONBoCdMwmsc1/cYZxLkuIwnEBaP4VcgN05mjuLgUUssiYcLQxUBjiXixr4pHTRsb05kCmzrmE5VlcoSWhLjKEE/W9+tR1dmBC9Qu1eRL+M6WdemvRntKLlpK1pxanDUV8ZkDNIckn5x473PJMS2KCaHxHwB/oyeIrN5CiBQYceYfpqeX/7p1rCWY+oYP8s=
-X-Microsoft-Exchange-Diagnostics: 1; DM5PR0201MB3512;
- 6:aVC82kKHgujRRXR+zVcGqq+dEeufOqubZ1w4mewPXJWhgsy+P1ZoC+GQQ3Wlmv4IMrzt7mKRXXYbzmXr0K9yt3V9yflqDkOGroQF1k7s3+fVrJS6cJrCwjIsljvI2UMxRbxTFlrRs8AJWzwLdeyZnVoGYwpOFJd9QAlSQlnzKAbzUFVczaqTE/NF8cTdoX8QoQLVy5pQmleovFy9MQnnUWwrHLw3WG6AA8jJm6nr19if8Vh0grKf4zpnezrIjVR+UlD0G4ERewRu4AFh0DukfQlyVxMVCLHvsTlEbCIupYws2Olywmt8/CtqDwsTP6HZ5QHx+DeE9d9H1/ZcBd4LOPMjsNPWnNS3k5Khf4ihGvN0MPqtz4ciOFWf9oNQR6fJdFQI2RJOhvECM1RHy7eC0TI72g4CtYP3NFZ1SfYoZrYqcC5WzP8ROgfi0rYD4Z8J35dnl0UiTRTEoOMbIabm/w==;
- 5:jPCXQGaMLKfaV5O43CLVmcJPLLHrSzyZBmhT+foS+PxamKpNbxdMv2wDs64/CC+qxjSVv+pB0szK4NFEP+C7RWQgCOiXVN27ZQGstzLjUZaMdurrheZ1N3rv/pqpb4HbfGadkLXsi5YenEVYk38C4G3wIw/RhNj8cYbwSHulIXw=;
- 7:FSqZFJEiFryyrWsIwcicTfWFBrVNmeEVQWc4TcIrYOTGfyyYlilGQI3hqVFSCyoMNN9WLjzP/ayDDZdetAQPqbb2DiHNAkFI+fm/5xu/lL5KiAVAY4N1EGCHwcDfh2nDcdX2BlZJ0HW6cyHbEKCeaEPwxm4p4lN6EFrDVIDcQLIanqJnMC79O+dPlAQlwQwpo8m6zq8fZuO3IppSFtaDd7E36BxkwQlFPz/mZbfwcjm2m4U2HROhb44cloqPMsKI
-SpamDiagnosticOutput: 1:99
-SpamDiagnosticMetadata: NSPM
-X-OriginatorOrg: xilinx.com
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 17:53:52.5062 (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 0045d393-b7d0-410b-a885-08d5f96a13aa
-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: DM5PR0201MB3512
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20180803_105414_775993_0E20A85F
-X-CRM114-Status: GOOD ( 12.18 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.21
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, Rajan Vaja <rajan.vaja@xilinx.com>,
- linux-kernel@vger.kernel.org, Jolly Shah <jollys@xilinx.com>,
- rajanv@xilinx.com, linux-arm-kernel@lists.infradead.org
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-X-Virus-Scanned: ClamAV using ClamSMTP
-
-From: Rajan Vaja <rajan.vaja@xilinx.com>
-
-As of all of child of ZynqMP firmware are platform
-driver, there is no need of init call in firmware
-driver. Earlier clock driver was init method so
-firmware driver had to use init call to make sure
-firmware init is done in early stage.
-
-Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
-Signed-off-by: Jolly Shah <jollys@xilinx.com>
----
- drivers/firmware/xilinx/zynqmp.c | 63 ++++++++++++----------------------------
- 1 file changed, 18 insertions(+), 45 deletions(-)
-
-diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
-index 7ccedf0..ce6c746 100644
---- a/drivers/firmware/xilinx/zynqmp.c
-+++ b/drivers/firmware/xilinx/zynqmp.c
-@@ -476,50 +476,17 @@ EXPORT_SYMBOL_GPL(zynqmp_pm_get_eemi_ops);
- static int zynqmp_firmware_probe(struct platform_device *pdev)
- {
- struct device *dev = &pdev->dev;
--
-- return of_platform_populate(dev->of_node, NULL, NULL, dev);
--}
--
--static const struct of_device_id zynqmp_firmware_of_match[] = {
-- {.compatible = "xlnx,zynqmp-firmware"},
-- {},
--};
--MODULE_DEVICE_TABLE(of, zynqmp_firmware_of_match);
--
--static struct platform_driver zynqmp_firmware_driver = {
-- .driver = {
-- .name = "zynqmp_firmware",
-- .of_match_table = zynqmp_firmware_of_match,
-- },
-- .probe = zynqmp_firmware_probe,
--};
--module_platform_driver(zynqmp_firmware_driver);
--
--static int __init zynqmp_plat_init(void)
--{
-- int ret;
- struct device_node *np;
-+ int ret;
-
- np = of_find_compatible_node(NULL, NULL, "xlnx,zynqmp");
- if (!np)
- return 0;
- of_node_put(np);
-
-- /*
-- * We're running on a ZynqMP machine,
-- * the zynqmp-firmware node is mandatory.
-- */
-- np = of_find_compatible_node(NULL, NULL, "xlnx,zynqmp-firmware");
-- if (!np) {
-- pr_warn("%s: zynqmp-firmware node not found\n", __func__);
-- return -ENXIO;
-- }
--
-- ret = get_set_conduit_method(np);
-- if (ret) {
-- of_node_put(np);
-+ ret = get_set_conduit_method(dev->of_node);
-+ if (ret)
- return ret;
-- }
-
- /* Check PM API version number */
- zynqmp_pm_get_api_version(&pm_api_version);
-@@ -547,16 +514,22 @@ static int __init zynqmp_plat_init(void)
- pr_info("%s Trustzone version v%d.%d\n", __func__,
- pm_tz_version >> 16, pm_tz_version & 0xFFFF);
-
-- of_node_put(np);
-+ zynqmp_pm_api_debugfs_init();
-
-- return ret;
-+ return of_platform_populate(dev->of_node, NULL, NULL, dev);
- }
--early_initcall(zynqmp_plat_init);
-
--static int zynqmp_firmware_init(void)
--{
-- zynqmp_pm_api_debugfs_init();
-+static const struct of_device_id zynqmp_firmware_of_match[] = {
-+ {.compatible = "xlnx,zynqmp-firmware"},
-+ {},
-+};
-+MODULE_DEVICE_TABLE(of, zynqmp_firmware_of_match);
-
-- return 0;
--}
--device_initcall(zynqmp_firmware_init);
-+static struct platform_driver zynqmp_firmware_driver = {
-+ .driver = {
-+ .name = "zynqmp_firmware",
-+ .of_match_table = zynqmp_firmware_of_match,
-+ },
-+ .probe = zynqmp_firmware_probe,
-+};
-+module_platform_driver(zynqmp_firmware_driver);