From patchwork Fri Jan 25 07:46:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nava kishore Manne X-Patchwork-Id: 10778459 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F254B1399 for ; Thu, 24 Jan 2019 07:46:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E1E1426E69 for ; Thu, 24 Jan 2019 07:46:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D35702BBA5; Thu, 24 Jan 2019 07:46:39 +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=-3.1 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DATE_IN_FUTURE_24_48,DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,UPPERCASE_50_75 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 2C61826E69 for ; Thu, 24 Jan 2019 07:46:39 +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: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:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=CwF2xlZInpgeh9QDVqvme+zy7M/+wrW+MX8lsvP+UaE=; b=RhX39Q3Sfm6wFh i4yav8vv/DgwWAxHF0+eqSjquGGEGF2WeWC36orsnUrQSFbsIQLIjRFCDKf/8Ou6Lv8Nffa1fAzRC fnLJs8dS4ysLw6iGCa/2o0PgsG+pR5sd3JT8rn4eAKyZ7vTVlBTLPAxNiNZGsGzbYbEhKz/ni0uKt uJVpPNLXB2Fu/KWx+0QwZ90gHwG6+3ZHLtCu29JETfMSJgwmHhvsLbrHZKrjLeDH1AN4yKmnFJDqM UgxqoInOg8Vt+T301Ot0r4LZIPhrsq0898++Y/A0iOKZxs3fzWBeENj1BVvUZvfsbkQ8Vec/Z1+rv Hi0RubBn8k65FR8lRcEA==; 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 1gmZie-0005Rd-Np; Thu, 24 Jan 2019 07:46:36 +0000 Received: from mail-eopbgr740041.outbound.protection.outlook.com ([40.107.74.41] helo=NAM01-BN3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gmZib-0005Qv-O8 for linux-arm-kernel@lists.infradead.org; Thu, 24 Jan 2019 07:46:35 +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=mA7EtohcjS7J/1m9sGn0SDAUUF6GPWZSWqZg1nCod58=; b=c/lhSyNYT/DaqoBdEMbPutmMAinpnF/egqsVl58TfHdhHPYzYLAa79elRdd6I8zdosZYGMJW9CAfK2ZVYDNMRuuNRBiLm+VLq0afUwyKPbZdnv89x8Tg62e6N0G20lmHTvBpLf6KlUZsQ4DHcS+/Q4IBd+R/glLCgwJrTGjpUTk= Received: from BN6PR02CA0047.namprd02.prod.outlook.com (2603:10b6:404:5f::33) 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.1558.17; Thu, 24 Jan 2019 07:46:31 +0000 Received: from CY1NAM02FT017.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::205) by BN6PR02CA0047.outlook.office365.com (2603:10b6:404:5f::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.17 via Frontend Transport; Thu, 24 Jan 2019 07:46:31 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; gmail.com; dkim=none (message not signed) header.d=none;gmail.com; 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 CY1NAM02FT017.mail.protection.outlook.com (10.152.75.181) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1558.11 via Frontend Transport; Thu, 24 Jan 2019 07:46:28 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1gmZiV-0005YK-EI; Wed, 23 Jan 2019 23:46:27 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gmZiQ-00071u-A2; Wed, 23 Jan 2019 23:46:22 -0800 Received: from xsj-pvapsmtp01 (mailman.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x0O7kCCa028329; Wed, 23 Jan 2019 23:46:12 -0800 Received: from [172.23.37.118] (helo=xhdnavam40.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gmZiF-0006yr-La; Wed, 23 Jan 2019 23:46:12 -0800 From: Nava kishore Manne To: , , , , , , , , , , Subject: [PATCH v3 1/3] firmware: xilinx: Add reset API's Date: Fri, 25 Jan 2019 13:16:52 +0530 Message-ID: <20190125074654.10950-2-nava.manne@xilinx.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20190125074654.10950-1-nava.manne@xilinx.com> References: <20190125074654.10950-1-nava.manne@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(376002)(136003)(346002)(39860400002)(396003)(2980300002)(199004)(189003)(63266004)(26005)(77096007)(48376002)(186003)(14444005)(76176011)(36756003)(305945005)(47776003)(2906002)(478600001)(50466002)(81156014)(81166006)(106002)(356004)(8676002)(6666004)(51416003)(8936002)(50226002)(7696005)(39060400002)(36386004)(426003)(336012)(316002)(16586007)(476003)(2616005)(486006)(126002)(9786002)(2201001)(110136005)(446003)(106466001)(11346002)(1076003)(921003)(107986001)(1121003)(2101003)(83996005); 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; CY1NAM02FT017; 1:nZgPU597VkHgZY8C2Ap2TIBT1KALh+1kP71p+hlkZxHuPJ0/oWDIee5aeL1ImcWtE3ZlnA89f3Rw3vCEQl/tRLQPbWUUy8U8bC3CbbBePHUyDjfyH0EpHSNQKkhR3BZpzbG6eOoLyPj0clHAISOKV8WQXGYG6tcyAwx309+FGSc= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f093da17-0fe7-4d5b-0d3a-08d681d00e06 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4608076)(4709027)(2017052603328)(7153060); SRVR:DM6PR02MB4458; X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4458; 3:6NceGFMg/KahIc6267Zgop4WUvT1z9/X9JDiZ42vGZGQL0gze482LJOZ1fXpPibZ7ow6ayAnc20OmOKnaI36DWbXyknDYxQFKNruZx6ja/aJcQnVqmX711/yBNtBFBwjscQIOI8gB9I14J1XpRB+lYP8TY+V9Xz+/pGDuS6G5JmNTF789+LJAFmiuQ4H9T7UKdLHn9W/cr6aHIsYajT9d6tnyQ6GuG04f+NMgBIAK2k8UPjz56+OsUDUPTL+Al6VLs2iEIbDDDPeTm4dM0WP8WX3AUs+e2syyth+I8O6b2I+l0IGxiwDafBSDk6LcU6rumqszzizeasgIt3Rti7W/oN02N8k8kpedCIwS42yyKQz37ssNw79wNuGapsJfT/6; 25:a/Qm+YWzVyaeDQ4cjJoU7XiK2iegC+nVMw90tSzYyKmwyCgrhG1W7Z7p66rYDTEod5V8RuxJJnsyzcGp3i2E4Rtzamdbm4VL9oW93aUBE4c0Su4ejDEsNKC5f+DjaWyR5kQjMK0PqdV640Emiq9Bts3Pmy16bfDyC35XGXAz9H1VpKdhn4RfD9V0b+JUK30mgxT4jW5zwms5Z6bgdk1zReUc2wmgtMju6mu+ZezagW/xi78OS4K4og1qiCzSW6mbB705Z6RO8u0VcrKi0XcFNOlIIqfOu8Cz0jHTFQHBNbfc4nNz+PXyo6HOUpPs/ifkPXM/Dv0mMdl4ZVJB2IfsvQ== X-MS-TrafficTypeDiagnostic: DM6PR02MB4458: X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4458; 31:52KAhn+8DOo8B/ddIL5nPy2f+12dVhobKudtC4cZYHlOaDK2l9PzopXoDezWb8RC1dPlLp0Mwj3VDIg92BMuUh4mAJxhfSClPJIYuFKrhbmfG0j4Ht0QjoTj0HeVlcjB6UcMl8CNkuAcdaDLJ3kgfqdExQYwwD4j2Q9nYX5e4LN9CwQgSej691vIJZ4bVw8AihNiTXSwtDfiiiVx7N0yamDO5nIkCLKKneAvJ/t1TFE=; 20:406I52nrFzZVbUDL/PQ5yH6g5J3zkGjiRM/zbTp+/9zjcExSrkvIy15TRVjQtldXh9c7548YzybnkU+4zfpchRoWJN0ic6Gr9vYE6Fb53dSm+BX8TtvTsSOXjOqqMWYriL7d5DaUyYxdi7YNZh8tC5cv9bmBgEuBqgK6IZYMb/iCNJMaxhBXKWIdk22j9KfTPpXfJ/zOeWd2VvdzD+0iov0+BUCodu06tSHS0amDJf0ujW7WhC2i+27eorZQlwJH2BIMu9z66U6qei2i/jWkPDvI+GURd8P1ccA7F9RKwVDc2CfMKTXRLDG2cFKjfLHMYq1iLF0X7cf5rEsj87QbdZ3owxCJ19awyOLV706sD/YAG+u+BYnAxO4dvjnj8jDoHpY3Svf10tlCDwC4pCFhXKyYQLzQWqoP5vErBjjeZTLI6XGM2Gnp9p4gJ7oS7fXsvg3XxqPatRS5tRvtfjoAmWroiIX2Ib30xt02b/yIv5WyEPqHQZ3HEPQUflmtw4z2 X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4458; 4:af9HSEl6E7sdDwHHS4QYAJbq7DH3Sbqx54LNJ5941e9dg1Pz+wM4GDh5tcYXnL+AoNmp00lsPh8aUAzFbtj216a7iv/PkQflsf/OHT2GO3Kv5n1QBMR8TUXn2xYny7RWvuG+nvmwQB3/397hIGkGUmtAxToT2zLR19wvBG7vQVqSvd2Ds8je7s0xqSPI41JXppMbcCOnH+QWNKXljooStQqF1G8LGvpQxX/FmF8fWqlI/qUHGNUsfaLBANGt5VUy8z+3LjWD1ACiksk/bHTB52T1DeZgLQXOkELfM01Us0rFQKJ3DuJClGftaCor59QG X-Forefront-PRVS: 0927AA37C7 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR02MB4458; 23:CLhQLNhe1xevD4QcUlLjbQXS5GMxVj1bjMX4B7rAy?= 0/10jdwNWv/t43oHXXo3GtD6FQWW+k4HqNiBZd4K/KGiuN+BOaKihE23qg9v+jcicud3+7bovV0/8c0tkD1E+XeDZFygIBa6fNqLcHNiVBhMFbpENXWg/8FrZCe/yv1feDoCtbbqPVwiFvoR2c34hl8rGr2bfO0vaNnTamqTkgB9DsDR0z8E4L/8wlg5ujUFXqGDNNw0GDoq5ir+krnep/YUOqArpAPhuPjN+JEzl6qroTn9SGuHwasN+dr7V49xnAg6qXCTFlrx9/G1NZGAmVvlFDTPbndRIhmesSTNSmqMMBJ2w/9Gwme3cLcebtphFfWuncRhGVoN+4y+Zzqb+Yz0isrEXY1YoJPJJ1EEghY4q+AOuesgJK2igpal8L+MVIl1ULW55S+qsxWSPD2S5k0tdCRyAkPjCHOGpDVbXKBXA2TZgWQHM1fRgunjxSxwu5jdqibZORG/0BWZAIVfPRKqkIj5T1rUSAyjkE/B0bw2O+PtaBkPKlPQ8GaHZuiFPxr765ZPc2GZRnE1ClU8rroXlYvfw0pSnZWg3zebtssSpSdwIdd7LhLYVFw6wgLyyyIiz89MYa/QGIHDsApIV75y6M7/Da+qj37yaiQCvgLd4Tym+452KLDmeisYWu5sxd/Nwu2stvo3iRjaRrGBDza/rjSssYkYxYZSCf/1LqThsDwG5CMXf4bQ7hIgt/hGlKQcKdGElgVv3SesbkcIsB/UubTyjyehPYRJHwN+3pJ1/K5qyS3ROC0n9aWjJDxfsWP86v/rqwWwVpjy/yQyEmq/2KCv016IGMOxUX46T3pk+G3KQ4lYAdLPqH6u/KBjpMDaxzNRyz7MRpYMyM+GVWg5fwm5UbdXENPcyoT2+gFOvvekBAyFenZF1fK02Fk5S0IvCdP/8iO4Kq4aLkBixTVXfl8O2I/BtTomKLtl6vtvo2fOd+x2LG2k6ulpxzutQDMFVTP9dRSn4AyzijmQBRccpPmwofm8K1NMfLPT5NNQm9V8PzFA6vn2TUugI0lkJPGRNdh0WsWY1LYn6fyCaHIChJkXFmaPkiaK0Q81WF4dwDYS+slXy+wKv4RWWFuD8MOUO+c8Ag5HGKmfCOnT9hvfRSikXFlXuRs6btan4pqxg== X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: jmjq+zX4QZq5i6jOXPmVvjgg/nQbMe/VmbH7HJ/Vkt4B9N1ZaoUFNkl2pFB2UCOGj5or1ni+l4kEAeaCOwq9eBBvwT+Y3VaLYt9ms28vDL4x1P5DFYVsDE94pNEhCKNM59GHFMX40fP56gqCUCrkwZord9BWzq+k/wc4hHmMXdjHYFsDZ/d6PQDKjIninx0ZCHF9ZzQAKRIV9u6WYxiO7yLpetgV5p8jVmndzLNwMg7DA5n5kPsv6nyeppEOBhdRWhU185NXBFSmGH7PVYAgwTy3sfbVdhfs+P7R4HE18LoayDeZf8bnLu80RumgPvFMJMC4yaPO9Rd8bDStwHomJTG1eDoHgirfna1FJJasT2wrjQlEAkHqazQMtBoy8qNoYiKFLJ720jGdpd6zS36ZrEmFpfNQ688jUOuP0oXZyGY= X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4458; 6:fPmrrE3bQUslDhXMt0Wjs1e+YQ0Q4RKQhwFeU7jx29gYny+xev6YDUjslyknfWccu3jY+rEmDB/iKIJPIE/mXRSB5bmWxJrcYN31SBfsMr16iKstHTNMNTaF+tnhKxVPavUcY4PgB3aGpZ91GxwrihfypRMUNNniKqdAOK1I41vyPpBEMceuEAg1P23TU/7oQtTTfBS9ifBDWRNc4b2kaVNsWsumJsLnQxX64GkBzs3/98YY9mVwWrmltLcDPgQEaHAFU7u1ny2g5PzkpK0E5yZxoSv6QLPFK+jwadhqynZaXHLn/GLho+AFdXfhjkmQT+18MKnZrqRsA37H43TsNek8tr2K1ULm5Rf0RbRIANVqgKVcX9zETXWLT/rAZuRGfjuqslntCB6lBUuMRKjpK9uPgpL+YdHe2ByNEqQs1Fe/7Ymu3lbYKXcQSNrDJc0vZFUgBobJhI4Xf17zcX8XMA==; 5:RVR6cc/o3ZSHtebyctGn/YwZYFn9cemOaGyWIvrU3A01tZyP/wbMdrEL9VsXvCmT+NB4I3Q664M71JXrDH4VfG3+/XGLmM2bczQuBUicOyDseN9EhadMV9sSAwG8Gr/F8S5G6oPsgCfo1qhhYdbMmcm/ipGrc2TxOW3OSiQRnX71jFLa7AqutYtrDSXpzhfSiwY+YAW0adGH8Z3hd6kNWg==; 7:t88Bs7Y/y35Sc6TzyWt6hNRs2gZHfo2u4hvPy7SpihYKEblpAvkWKrNFvtC++5dFiGwJqqi2eP322586T5+dn4pFj99DMXeGt7qjn2eEah7LV2SWMcQGhYNBlj4Fukp/1awSEVLMr3zMxR5pxqUzUQ== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2019 07:46:28.1555 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f093da17-0fe7-4d5b-0d3a-08d681d00e06 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-20190123_234633_855720_1DE733B4 X-CRM114-Status: UNSURE ( 9.90 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP This Patch Adds reset API's to support release, assert and status functionalities by using firmware interface. Signed-off-by: Nava kishore Manne Acked-by: Philipp Zabel --- Changes for v3: -Modified the reset start and end macro values as suggested by Vesa. Changes for v2: -None. Changes for v1: -None. Changes for RFC-V3: -None. Changes for RFC-V2: -New patch. drivers/firmware/xilinx/zynqmp.c | 40 ++++++++ include/linux/firmware/xlnx-zynqmp.h | 136 +++++++++++++++++++++++++++ 2 files changed, 176 insertions(+) diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c index 9a1c72a9280f..70b50377ae5f 100644 --- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c @@ -469,6 +469,44 @@ static int zynqmp_pm_ioctl(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, arg1, arg2, out); } +/** + * zynqmp_pm_reset_assert - Request setting of reset (1 - assert, 0 - release) + * @reset: Reset to be configured + * @assert_flag: Flag stating should reset be asserted (1) or + * released (0) + * + * Return: Returns status, either success or error+reason + */ +static int zynqmp_pm_reset_assert(const enum zynqmp_pm_reset reset, + const enum zynqmp_pm_reset_action assert_flag) +{ + return zynqmp_pm_invoke_fn(PM_RESET_ASSERT, reset, assert_flag, + 0, 0, NULL); +} + +/** + * zynqmp_pm_reset_get_status - Get status of the reset + * @reset: Reset whose status should be returned + * @status: Returned status + * + * Return: Returns status, either success or error+reason + */ +static int zynqmp_pm_reset_get_status(const enum zynqmp_pm_reset reset, + u32 *status) +{ + u32 ret_payload[PAYLOAD_ARG_CNT]; + int ret; + + if (!status) + return -EINVAL; + + ret = zynqmp_pm_invoke_fn(PM_RESET_GET_STATUS, reset, 0, + 0, 0, ret_payload); + *status = ret_payload[1]; + + return ret; +} + static const struct zynqmp_eemi_ops eemi_ops = { .get_api_version = zynqmp_pm_get_api_version, .query_data = zynqmp_pm_query_data, @@ -482,6 +520,8 @@ static const struct zynqmp_eemi_ops eemi_ops = { .clock_setparent = zynqmp_pm_clock_setparent, .clock_getparent = zynqmp_pm_clock_getparent, .ioctl = zynqmp_pm_ioctl, + .reset_assert = zynqmp_pm_reset_assert, + .reset_get_status = zynqmp_pm_reset_get_status, }; /** diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h index 3c3c28eff56a..07c587a0b06e 100644 --- a/include/linux/firmware/xlnx-zynqmp.h +++ b/include/linux/firmware/xlnx-zynqmp.h @@ -34,6 +34,8 @@ enum pm_api_id { PM_GET_API_VERSION = 1, + PM_RESET_ASSERT = 17, + PM_RESET_GET_STATUS, PM_IOCTL = 34, PM_QUERY_DATA, PM_CLOCK_ENABLE, @@ -75,6 +77,137 @@ enum pm_query_id { PM_QID_CLOCK_GET_NUM_CLOCKS = 12, }; +enum zynqmp_pm_reset_action { + PM_RESET_ACTION_RELEASE, + PM_RESET_ACTION_ASSERT, + PM_RESET_ACTION_PULSE, +}; + +enum zynqmp_pm_reset { + ZYNQMP_PM_RESET_START = 1000, + ZYNQMP_PM_RESET_PCIE_CFG = ZYNQMP_PM_RESET_START, + ZYNQMP_PM_RESET_PCIE_BRIDGE, + ZYNQMP_PM_RESET_PCIE_CTRL, + ZYNQMP_PM_RESET_DP, + ZYNQMP_PM_RESET_SWDT_CRF, + ZYNQMP_PM_RESET_AFI_FM5, + ZYNQMP_PM_RESET_AFI_FM4, + ZYNQMP_PM_RESET_AFI_FM3, + ZYNQMP_PM_RESET_AFI_FM2, + ZYNQMP_PM_RESET_AFI_FM1, + ZYNQMP_PM_RESET_AFI_FM0, + ZYNQMP_PM_RESET_GDMA, + ZYNQMP_PM_RESET_GPU_PP1, + ZYNQMP_PM_RESET_GPU_PP0, + ZYNQMP_PM_RESET_GPU, + ZYNQMP_PM_RESET_GT, + ZYNQMP_PM_RESET_SATA, + ZYNQMP_PM_RESET_ACPU3_PWRON, + ZYNQMP_PM_RESET_ACPU2_PWRON, + ZYNQMP_PM_RESET_ACPU1_PWRON, + ZYNQMP_PM_RESET_ACPU0_PWRON, + ZYNQMP_PM_RESET_APU_L2, + ZYNQMP_PM_RESET_ACPU3, + ZYNQMP_PM_RESET_ACPU2, + ZYNQMP_PM_RESET_ACPU1, + ZYNQMP_PM_RESET_ACPU0, + ZYNQMP_PM_RESET_DDR, + ZYNQMP_PM_RESET_APM_FPD, + ZYNQMP_PM_RESET_SOFT, + ZYNQMP_PM_RESET_GEM0, + ZYNQMP_PM_RESET_GEM1, + ZYNQMP_PM_RESET_GEM2, + ZYNQMP_PM_RESET_GEM3, + ZYNQMP_PM_RESET_QSPI, + ZYNQMP_PM_RESET_UART0, + ZYNQMP_PM_RESET_UART1, + ZYNQMP_PM_RESET_SPI0, + ZYNQMP_PM_RESET_SPI1, + ZYNQMP_PM_RESET_SDIO0, + ZYNQMP_PM_RESET_SDIO1, + ZYNQMP_PM_RESET_CAN0, + ZYNQMP_PM_RESET_CAN1, + ZYNQMP_PM_RESET_I2C0, + ZYNQMP_PM_RESET_I2C1, + ZYNQMP_PM_RESET_TTC0, + ZYNQMP_PM_RESET_TTC1, + ZYNQMP_PM_RESET_TTC2, + ZYNQMP_PM_RESET_TTC3, + ZYNQMP_PM_RESET_SWDT_CRL, + ZYNQMP_PM_RESET_NAND, + ZYNQMP_PM_RESET_ADMA, + ZYNQMP_PM_RESET_GPIO, + ZYNQMP_PM_RESET_IOU_CC, + ZYNQMP_PM_RESET_TIMESTAMP, + ZYNQMP_PM_RESET_RPU_R50, + ZYNQMP_PM_RESET_RPU_R51, + ZYNQMP_PM_RESET_RPU_AMBA, + ZYNQMP_PM_RESET_OCM, + ZYNQMP_PM_RESET_RPU_PGE, + ZYNQMP_PM_RESET_USB0_CORERESET, + ZYNQMP_PM_RESET_USB1_CORERESET, + ZYNQMP_PM_RESET_USB0_HIBERRESET, + ZYNQMP_PM_RESET_USB1_HIBERRESET, + ZYNQMP_PM_RESET_USB0_APB, + ZYNQMP_PM_RESET_USB1_APB, + ZYNQMP_PM_RESET_IPI, + ZYNQMP_PM_RESET_APM_LPD, + ZYNQMP_PM_RESET_RTC, + ZYNQMP_PM_RESET_SYSMON, + ZYNQMP_PM_RESET_AFI_FM6, + ZYNQMP_PM_RESET_LPD_SWDT, + ZYNQMP_PM_RESET_FPD, + ZYNQMP_PM_RESET_RPU_DBG1, + ZYNQMP_PM_RESET_RPU_DBG0, + ZYNQMP_PM_RESET_DBG_LPD, + ZYNQMP_PM_RESET_DBG_FPD, + ZYNQMP_PM_RESET_APLL, + ZYNQMP_PM_RESET_DPLL, + ZYNQMP_PM_RESET_VPLL, + ZYNQMP_PM_RESET_IOPLL, + ZYNQMP_PM_RESET_RPLL, + ZYNQMP_PM_RESET_GPO3_PL_0, + ZYNQMP_PM_RESET_GPO3_PL_1, + ZYNQMP_PM_RESET_GPO3_PL_2, + ZYNQMP_PM_RESET_GPO3_PL_3, + ZYNQMP_PM_RESET_GPO3_PL_4, + ZYNQMP_PM_RESET_GPO3_PL_5, + ZYNQMP_PM_RESET_GPO3_PL_6, + ZYNQMP_PM_RESET_GPO3_PL_7, + ZYNQMP_PM_RESET_GPO3_PL_8, + ZYNQMP_PM_RESET_GPO3_PL_9, + ZYNQMP_PM_RESET_GPO3_PL_10, + ZYNQMP_PM_RESET_GPO3_PL_11, + ZYNQMP_PM_RESET_GPO3_PL_12, + ZYNQMP_PM_RESET_GPO3_PL_13, + ZYNQMP_PM_RESET_GPO3_PL_14, + ZYNQMP_PM_RESET_GPO3_PL_15, + ZYNQMP_PM_RESET_GPO3_PL_16, + ZYNQMP_PM_RESET_GPO3_PL_17, + ZYNQMP_PM_RESET_GPO3_PL_18, + ZYNQMP_PM_RESET_GPO3_PL_19, + ZYNQMP_PM_RESET_GPO3_PL_20, + ZYNQMP_PM_RESET_GPO3_PL_21, + ZYNQMP_PM_RESET_GPO3_PL_22, + ZYNQMP_PM_RESET_GPO3_PL_23, + ZYNQMP_PM_RESET_GPO3_PL_24, + ZYNQMP_PM_RESET_GPO3_PL_25, + ZYNQMP_PM_RESET_GPO3_PL_26, + ZYNQMP_PM_RESET_GPO3_PL_27, + ZYNQMP_PM_RESET_GPO3_PL_28, + ZYNQMP_PM_RESET_GPO3_PL_29, + ZYNQMP_PM_RESET_GPO3_PL_30, + ZYNQMP_PM_RESET_GPO3_PL_31, + ZYNQMP_PM_RESET_RPU_LS, + ZYNQMP_PM_RESET_PS_ONLY, + ZYNQMP_PM_RESET_PL, + ZYNQMP_PM_RESET_PS_PL0, + ZYNQMP_PM_RESET_PS_PL1, + ZYNQMP_PM_RESET_PS_PL2, + ZYNQMP_PM_RESET_PS_PL3, + ZYNQMP_PM_RESET_END = ZYNQMP_PM_RESET_PS_PL3 +}; + /** * struct zynqmp_pm_query_data - PM query data * @qid: query ID @@ -102,6 +235,9 @@ struct zynqmp_eemi_ops { int (*clock_setparent)(u32 clock_id, u32 parent_id); int (*clock_getparent)(u32 clock_id, u32 *parent_id); int (*ioctl)(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, u32 *out); + int (*reset_assert)(const enum zynqmp_pm_reset reset, + const enum zynqmp_pm_reset_action assert_flag); + int (*reset_get_status)(const enum zynqmp_pm_reset reset, u32 *status); }; #if IS_REACHABLE(CONFIG_ARCH_ZYNQMP) From patchwork Fri Jan 25 07:46:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nava kishore Manne X-Patchwork-Id: 10778477 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BB7AC1515 for ; Thu, 24 Jan 2019 08:01:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA75B29B58 for ; Thu, 24 Jan 2019 08:01:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 99F9C2E332; Thu, 24 Jan 2019 08:01: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.0 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DATE_IN_FUTURE_12_24,DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 610EC29B58 for ; Thu, 24 Jan 2019 08:01:43 +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: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:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=oE4kePJYX9q647vGLGJ+fxAD6rgDpe0oZspS0zspU8s=; b=LtapVgC1nNEdcC mbPiGXqIb5tFrmWn3ZtpzUr9iMFR+aUZ1oT2ED3M9Gm9UlL/VBZpqTvr0p0dkbSpvc7ZINcS1lO7q 3rau1Axy4qBxeOe7GZhupSCP9Za5bL+wXWrMDoQ5uq/1E9JSxhGX7gb0x2iDwJ7EQCJqwwDv/xuCi A39ucje0/yZcXYfp0+q9kgc5NCmg+3QbYvAGCbFgMRD/WWyGoBo8HNJ0emxRd98HHm/0cj+AvHAoz reaYtfXUbgeVXqA9v/gTdxEKOS31HsMWqZzv/ORFphBe6yzuM6UeC5Jp8xB7UsLBMSpCcRJssHXCK 2epxX+kMdsxY97vE5mzg==; 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 1gmZxD-0000kM-An; Thu, 24 Jan 2019 08:01:39 +0000 Received: from mail-eopbgr810044.outbound.protection.outlook.com ([40.107.81.44] helo=NAM01-BY2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gmZwg-0000Gn-3q for linux-arm-kernel@lists.infradead.org; Thu, 24 Jan 2019 08:01:37 +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=bJwXgWin8VvLhRCmB6C0/0GfD8TL5S6HaPiOpNCIn08=; b=D1BwIIDGldVwBIGPY5zZTiA7v3MCnM3HdapO1wwDQfvZU+gMSguO4UZ39AVY2mpnap4B/7FlEtfgCsQBVjThXV7/5VnIyhAa2Ew6YF3fnSPSrpNzutkcJWOVWUAkok7luy4UNfQ6N2ywAQAwc0jOHdCxWQOucBmPsa3seWdeq3E= Received: from SN6PR02CA0033.namprd02.prod.outlook.com (2603:10b6:805:a2::46) by DM6PR02MB4331.namprd02.prod.outlook.com (2603:10b6:5:2a::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16; Thu, 24 Jan 2019 07:46:31 +0000 Received: from CY1NAM02FT014.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::203) by SN6PR02CA0033.outlook.office365.com (2603:10b6:805:a2::46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16 via Frontend Transport; Thu, 24 Jan 2019 07:46:31 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; gmail.com; dkim=none (message not signed) header.d=none;gmail.com; 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 CY1NAM02FT014.mail.protection.outlook.com (10.152.75.142) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1558.11 via Frontend Transport; Thu, 24 Jan 2019 07:46:28 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:49028 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1gmZiV-0007f2-CR; Wed, 23 Jan 2019 23:46:27 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gmZiQ-00071u-8R; Wed, 23 Jan 2019 23:46:22 -0800 Received: from xsj-pvapsmtp01 (smtp-fallback.xilinx.com [149.199.38.66] (may be forged)) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x0O7kHtw028337; Wed, 23 Jan 2019 23:46:17 -0800 Received: from [172.23.37.118] (helo=xhdnavam40.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gmZiL-0006yr-5K; Wed, 23 Jan 2019 23:46:17 -0800 From: Nava kishore Manne To: , , , , , , , , , , Subject: [PATCH v3 2/3] dt-bindings: reset: Add bindings for ZynqMP reset driver Date: Fri, 25 Jan 2019 13:16:53 +0530 Message-ID: <20190125074654.10950-3-nava.manne@xilinx.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20190125074654.10950-1-nava.manne@xilinx.com> References: <20190125074654.10950-1-nava.manne@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(346002)(39860400002)(136003)(376002)(396003)(2980300002)(199004)(189003)(48376002)(63266004)(7696005)(76176011)(39060400002)(1076003)(14444005)(50466002)(478600001)(47776003)(51416003)(336012)(9786002)(2906002)(486006)(8676002)(6666004)(356004)(81166006)(81156014)(11346002)(36756003)(316002)(16586007)(476003)(77096007)(110136005)(446003)(26005)(126002)(106002)(305945005)(2616005)(186003)(426003)(36386004)(50226002)(2201001)(106466001)(8936002)(107986001)(921003)(42866002)(83996005)(2101003)(1121003)(5001870100001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR02MB4331; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; LANG:en; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT014; 1:qtSxNhF6vlixUA/5c4IZwzpAqm9zxyQQC/AsKrLFzuQuw7ZKMT5Td69IVtmlK3nQkzq/GzLeTeYKPPc45wTEyFbAKXpFM9xrfUg8i46iizSag9WFJh19OGCjm3h4r4jpBaU4PqHFU03OOaVbzXk7edOPI8pm09jNZsI7NdOGtKo= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c6de092d-ccae-42f8-b3bc-08d681d00e16 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4608076)(4709027)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060); SRVR:DM6PR02MB4331; X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4331; 3:aS8GQq98/+60LLiVtf2Cx6puWPsnSShzrszIa/p0xGRosr6TfJSuj4nw4qjy54p7sqeOirn6eyl4Ay+IvClzplA13+PxpnVz4KLPux5K2xKj9HU9QMPf6yGLlIxc3X38udtluSWqyPdNLRY4SmOUzTXHb79E9ypVN1EICa/CaAv8qzVO2aR2Ka/kV/fTprrBL7fFODOk3vXTe4G4vzDnFS3+zopt2H+NTlS5SIav8TtgqH7H5t7mzwaAJMxufdL5l1vMA+bLO8tE7eZ5OhWez5astux8ynA9dKwX9nfLd5iF6ann3iLFzd45az09/X/f87ctvS49BvXaJ9nXrW+bhAa1QoN+DRIGebHTq21FvlLSgiaTcNoAer5kkXV7faw7; 25:3CeylflJNBZOrEz3zUJmyCtZ91oQoIqM0S5fXgV0Ll0RjyrCfZC+X9O2kW3LitdHLyzARx0QUqN/6U9kAu8CHL6AJ69jS9jlH/6R5OOh2KuaAGh2CEpWLA76h9ghh0fPViEpmlQzRrV3rxfM0qFSCLvLnhasIANQBw/Nb+Gqo2MXNZZMG86ERDLB/Z6tGyaxzYLiOSRtSFgOkoe3l7d8cTpAxnyEdxlkByKMoCuOIvukU0FHogMQtLjdpmdQjOjYpo5xaqghiueLSIbP3BVAn3uGAoVmKECNMBcj1MIHYSN+EZCqYvJ+MznyqmM+wT0zc5iTT0R/+nGxEhlaZOwVuQ== X-MS-TrafficTypeDiagnostic: DM6PR02MB4331: X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4331; 31:Oho2vVqpAMwo+UGHawm514CDyGWBUUWOWlw97sLauk9S6vpXDeIwytZgT+1eT1pTJv7h+QZZdIxQq392bhAoJPbWrZnxU5yn0mgEUGtE4DNrn3BN+HNrlGOPqHaww0IfcbicOaQMRbNRfBQTeDsYGsihmrFYigGZMR2Ld8XH3UAnyFh1Xa9MCout7gyerK7Mm2Ug+9H/olDOqaGowSU2Nv505QDFYP4UgqRehFkqm28=; 20:B8UShwkuE/3KGN76VfrovIs2EyyBfSppfByPhaU23UbsnaUC2UT1CGX6PwXuE6YZBGOs9WlqJMZhU+hI62Yfgim+uZ3nsYgzAkIvGlE6D0l1ScGwBPPVP5S1yXw5NjXtTgJW4/O/VZkuj+lbXq90HspGb9qIIpelIc3Z6ZmwGtsDHNLfolAjXjC1u/9s8pI1bF96C9CxZVVztGcE0HQGsLbIW4PzbV95gjUhJx57DxvDs/20Rjs99Byhj9gpEKxzI9QDJ/SP9YX4Xw8TC8iO91uu9hsedg7YKLh8mau8JqvxgYnt1QpdsrdXpn2r4/0r1KOwMh+8XxYB+qA1350YNwPLDauV/CXGfQESV71zEeJ64+uz245jY1fbcMQkEeZizRUbQtLiAU7Ur8ROzvEM3kEjn1knkeJSy1QxTdV9v9oHP75YFYSpJG3S/UVseHVroXyIkPXQUGcNDer8fqnXQ8nRc2QYz0U7UIJGLaZfIuM9tF+GqN/0IR3qNi7VGB9B X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4331; 4:BXdr1EUUvKQUxcV5l5ioLcA7/CWjadt5kFnA7H6mdsQRq+Jup7VxDImXh94KESimHeZO8YVgk0ZtwQf1dP7RBg05OVF3Xhp8/cUR8ymskz7bzJW8PlkOAa1GthYwRZYIErxN9eMTa9nNCqn3Pnnx8mcoOBEo0fAq4Ph5aonTZuUbObgJQJkcNOZ0/IFGp3r9zhUDL9cpu3rz810ynD4FDVLZjuUgnblNaUVvUqWxCdA9BtxCkfAqIXHbV4c798AqMnGBkHvKojHbOjXS07fyZLTiowu/tOzaB1KrqHj8p4iYTa/l15mz/hUsJDuhjPx5 X-Forefront-PRVS: 0927AA37C7 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR02MB4331; 23:EgI2OK+unmMMz+xQ1M7XiixlLEAEKMPl5mW20DdJ4?= iZ6JRa0Nk1bbMfL1wUjjJlgsjLU0HFfMTedzgnvFt0gfiI2kajdEzdVLYanAR1u7rbBlHQHEK8+cNt1kVjTAogflU/EroHlJaKL1Ps/tnJyVaTk/cqggNm3Itymu3wv3WQLYWEZH2+zK6yAGOmxRae/Z+kw0VueOnYUyGsQr/eS4V/rxiXKShMcRVkxf95gcKwG6vdi1qF50ZIk8vBMDowqGzJkwEhyyjhW8ncW6fMoXbsZHpbC4JCLcqnpPAuodV3uo3Vvz5RvcG3by2Xd/a4gp0wAPbAG673a5E1rLaLifV6UYYx9wcYKoBb1s7ULbvgF5Ks974sG4kq4V2EqgsqMl8HfODgsCYqPscldO87kkbgHE/iojLdQXIXHsZu7C5MaLdBeVpsWoOJjPKsKIRxdgE27/YZIWkDVxr4R3wfcn7ge1Xwsz2svJNjgiVs0CLl8J6TFhSLwLvb8N5/WyyFfPHMFSXD7YWt1DneFPiXJlNPu64snZdIZKFG2/R0RS6+9rxYnV3QgZ/oXQmWApyVpYVgfSBHvARSk2+c8ExlryMcZC23WYzrppBScJuac0JC68gnZm9ww7vDZikhXqKtgn6OHxpPMWI1YHWlPwHLiXaQNz624BKcSiKKtY4bvVb/3QJSqHBJGIv9pkBYg9zTk2/elomEfUj25sewRXlsWjuUssetf5SCjMdLjJQVaCKmsKIVUw4blpVSo/+ZgzBcj2gD4HgIBBYx1QFrl6oy54lFa/uZxmeXCejF9XDCJeSwvtcvef7jtTCfmKLOJVotAmkex/Xkh6/OJx/OVtQphVX2tBUUCqBXAzy/LKOZQTkAGkEJwSGh/FRPWLBJkOoAcyR7ZrqmV26uOWvgw1uwaQh8Lda8QStUdL/xxjeq+YsrhMoxWnxjM/eGodupx/dDmqCQDFasNTPK1Ws5W8PtwFhsIxYt8q0+NB0aNm/EvZISq4YiiX+4+M7TjhuPzeMU5lb2tb/5GySv+g1KSMr3z3mngSrYJIXEvVQaAWArsVPHD1foUBZ/f1YD4TNVqD8tQZMj3TlNXFc7GKP8u5Fd1WdI646ULC1hIcme9BLpN99V7RICHbjCyCkhCrzGWB4YdadPNQ3zvDwCqcoRkAHWbVF0ijRt74ldXmcTyt40Px0K36xKIB3lowLfv7UkN8NnD X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: P77Wb8SsMy7gkh7cFuzz9cou5PzxM2CM7XiIL03PYXXz5rxd7E0YpLBXCaxJk0oZVt6d7SmkEg86UN4SKfTRicW2E02GHvE2CsuUgqJ54V/7K7HEqV0jdfoXy+4OMIkHVATzsOl9JXLoT1WGi+7c9YiSyQe/1BWCzzNfK014jBqojMroJ0f0h38aslIScX/AsSCrNGYJ7iSLWp9EPXcYwKT0z8uux9y0purnPEja1EHLhUG8lZ5CoGMin7PA7X/xOv3/68OD4goRWONEH8NwNfJgEDazS173pFG/bSGiZr6gh1Y/pO3m0rtCSL+O1fagdaigKewOfNDk+/jezcZuEYlhCiuPz/zJ6aE4rJAQB5WgyOtT6vnV4OP2Zatj40HxmhYvKAY2zWbUasxEEcKuCm0Et6YcI+oIN5FIuYeKdLQ= X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4331; 6:QaZQy9Rj5+NMo54SKYjx+bUy6+nSOdCzak3KsUzv9Y87Ug+viznX9+xh7uywCqOsfEpU3E8BDA8yVLeCmFfgedbla7GCvAQoCvxHLQGMwMyckjmvluQQOze16O96iEvyeKwOepCJ4PaFdQYEZ5vIlpy80afzx63nZLEmOh3UCi4PM6g3/DzWNTST53ZFxkT81HGZTYsJFPGDqCzxQi0XndpJGCrtHwsKMdn0mLalqB1+yoi2cF93t3nhp/jqAidKxmWYso8AJWR/69tofDP71VwtQQ0ywKv03BSQdhL7Bj9Ql4Z2T+lgjK02V/b9km5CTZ2VZjh539aSKkB9TZhVa12Pk/9SpPVuTZQsBSMM4sDn0Y3CLLGVgj+cHuLR2FBY9W13fKshts/6feafvpmR33C1O8Af0UXa3pIDOqXVNDulQkNiJ2xyveGqL80N2ejM80ujoxX6vvCfGlpsuO2E8g==; 5:4/bUNgwp/mbX4zDk4lAwWKS5V/vjJvofUs0eyxu61yuqbB7nSo5zGOAf4WWeM08Anhdx1GAhEW8wMtLXM0Kq9k9VMPR490zsBSVYXvMJUgENtV7nZed+Gcp3qssXYk1YTa4X9h4uEJ74BhaCH/oE8vBsuDBSEtn0RrJ5HcI5eFqpjSTGFYSq7mbrkIOU/H6BWFYkDM0YjR5hge7jPU4mqg==; 7:IHjlWI/1Nn98mtThR7chH5mTzMwOaVq5U7cCpgnGXO36xfFLXy1sgXsKIRdgp6/0/0RCdAzAsHUUpiNpYfKJhp3/DoVzO58y+9ifR3DcigiBG7qO4uTqoQQYWaTWRLJUcaQsdSnAVjDrgu5n1+lvpA== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2019 07:46:28.2333 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c6de092d-ccae-42f8-b3bc-08d681d00e16 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: DM6PR02MB4331 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190124_000106_826579_CE8EAA14 X-CRM114-Status: GOOD ( 12.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Add documentation to describe Xilinx ZynqMP reset driver bindings. Signed-off-by: Nava kishore Manne Signed-off-by: Jolly Shah Reviewed-by: Rob Herring --- .../bindings/reset/xlnx,zynqmp-reset.txt | 52 +++++++ .../dt-bindings/reset/xlnx-zynqmp-resets.h | 130 ++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.txt create mode 100644 include/dt-bindings/reset/xlnx-zynqmp-resets.h diff --git a/Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.txt b/Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.txt new file mode 100644 index 000000000000..27a45fe5ecf1 --- /dev/null +++ b/Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.txt @@ -0,0 +1,52 @@ +-------------------------------------------------------------------------- + = Zynq UltraScale+ MPSoC reset driver binding = +-------------------------------------------------------------------------- +The Zynq UltraScale+ MPSoC has several different resets. + +See Chapter 36 of the Zynq UltraScale+ MPSoC TRM (UG) for more information +about zynqmp resets. + +Please also refer to reset.txt in this directory for common reset +controller binding usage. + +Required Properties: +- compatible: "xlnx,zynqmp-reset" +- #reset-cells: Specifies the number of cells needed to encode reset + line, should be 1 + +------- +Example +------- + +firmware { + zynqmp_firmware: zynqmp-firmware { + compatible = "xlnx,zynqmp-firmware"; + method = "smc"; + + zynqmp_reset: reset-controller { + compatible = "xlnx,zynqmp-reset"; + #reset-cells = <1>; + }; + }; +}; + +Specifying reset lines connected to IP modules +============================================== + +Device nodes that need access to reset lines should +specify them as a reset phandle in their corresponding node as +specified in reset.txt. + +For list of all valid reset indicies see + + +Example: + +serdes: zynqmp_phy@fd400000 { + ... + + resets = <&zynqmp_reset ZYNQMP_RESET_SATA>; + reset-names = "sata_rst"; + + ... +}; diff --git a/include/dt-bindings/reset/xlnx-zynqmp-resets.h b/include/dt-bindings/reset/xlnx-zynqmp-resets.h new file mode 100644 index 000000000000..d44525b9f8db --- /dev/null +++ b/include/dt-bindings/reset/xlnx-zynqmp-resets.h @@ -0,0 +1,130 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (C) 2018 Xilinx, Inc. + */ + +#ifndef _DT_BINDINGS_ZYNQMP_RESETS_H +#define _DT_BINDINGS_ZYNQMP_RESETS_H + +#define ZYNQMP_RESET_PCIE_CFG 0 +#define ZYNQMP_RESET_PCIE_BRIDGE 1 +#define ZYNQMP_RESET_PCIE_CTRL 2 +#define ZYNQMP_RESET_DP 3 +#define ZYNQMP_RESET_SWDT_CRF 4 +#define ZYNQMP_RESET_AFI_FM5 5 +#define ZYNQMP_RESET_AFI_FM4 6 +#define ZYNQMP_RESET_AFI_FM3 7 +#define ZYNQMP_RESET_AFI_FM2 8 +#define ZYNQMP_RESET_AFI_FM1 9 +#define ZYNQMP_RESET_AFI_FM0 10 +#define ZYNQMP_RESET_GDMA 11 +#define ZYNQMP_RESET_GPU_PP1 12 +#define ZYNQMP_RESET_GPU_PP0 13 +#define ZYNQMP_RESET_GPU 14 +#define ZYNQMP_RESET_GT 15 +#define ZYNQMP_RESET_SATA 16 +#define ZYNQMP_RESET_ACPU3_PWRON 17 +#define ZYNQMP_RESET_ACPU2_PWRON 18 +#define ZYNQMP_RESET_ACPU1_PWRON 19 +#define ZYNQMP_RESET_ACPU0_PWRON 20 +#define ZYNQMP_RESET_APU_L2 21 +#define ZYNQMP_RESET_ACPU3 22 +#define ZYNQMP_RESET_ACPU2 23 +#define ZYNQMP_RESET_ACPU1 24 +#define ZYNQMP_RESET_ACPU0 25 +#define ZYNQMP_RESET_DDR 26 +#define ZYNQMP_RESET_APM_FPD 27 +#define ZYNQMP_RESET_SOFT 28 +#define ZYNQMP_RESET_GEM0 29 +#define ZYNQMP_RESET_GEM1 30 +#define ZYNQMP_RESET_GEM2 31 +#define ZYNQMP_RESET_GEM3 32 +#define ZYNQMP_RESET_QSPI 33 +#define ZYNQMP_RESET_UART0 34 +#define ZYNQMP_RESET_UART1 35 +#define ZYNQMP_RESET_SPI0 36 +#define ZYNQMP_RESET_SPI1 37 +#define ZYNQMP_RESET_SDIO0 38 +#define ZYNQMP_RESET_SDIO1 39 +#define ZYNQMP_RESET_CAN0 40 +#define ZYNQMP_RESET_CAN1 41 +#define ZYNQMP_RESET_I2C0 42 +#define ZYNQMP_RESET_I2C1 43 +#define ZYNQMP_RESET_TTC0 44 +#define ZYNQMP_RESET_TTC1 45 +#define ZYNQMP_RESET_TTC2 46 +#define ZYNQMP_RESET_TTC3 47 +#define ZYNQMP_RESET_SWDT_CRL 48 +#define ZYNQMP_RESET_NAND 49 +#define ZYNQMP_RESET_ADMA 50 +#define ZYNQMP_RESET_GPIO 51 +#define ZYNQMP_RESET_IOU_CC 52 +#define ZYNQMP_RESET_TIMESTAMP 53 +#define ZYNQMP_RESET_RPU_R50 54 +#define ZYNQMP_RESET_RPU_R51 55 +#define ZYNQMP_RESET_RPU_AMBA 56 +#define ZYNQMP_RESET_OCM 57 +#define ZYNQMP_RESET_RPU_PGE 58 +#define ZYNQMP_RESET_USB0_CORERESET 59 +#define ZYNQMP_RESET_USB1_CORERESET 60 +#define ZYNQMP_RESET_USB0_HIBERRESET 61 +#define ZYNQMP_RESET_USB1_HIBERRESET 62 +#define ZYNQMP_RESET_USB0_APB 63 +#define ZYNQMP_RESET_USB1_APB 64 +#define ZYNQMP_RESET_IPI 65 +#define ZYNQMP_RESET_APM_LPD 66 +#define ZYNQMP_RESET_RTC 67 +#define ZYNQMP_RESET_SYSMON 68 +#define ZYNQMP_RESET_AFI_FM6 69 +#define ZYNQMP_RESET_LPD_SWDT 70 +#define ZYNQMP_RESET_FPD 71 +#define ZYNQMP_RESET_RPU_DBG1 72 +#define ZYNQMP_RESET_RPU_DBG0 73 +#define ZYNQMP_RESET_DBG_LPD 74 +#define ZYNQMP_RESET_DBG_FPD 75 +#define ZYNQMP_RESET_APLL 76 +#define ZYNQMP_RESET_DPLL 77 +#define ZYNQMP_RESET_VPLL 78 +#define ZYNQMP_RESET_IOPLL 79 +#define ZYNQMP_RESET_RPLL 80 +#define ZYNQMP_RESET_GPO3_PL_0 81 +#define ZYNQMP_RESET_GPO3_PL_1 82 +#define ZYNQMP_RESET_GPO3_PL_2 83 +#define ZYNQMP_RESET_GPO3_PL_3 84 +#define ZYNQMP_RESET_GPO3_PL_4 85 +#define ZYNQMP_RESET_GPO3_PL_5 86 +#define ZYNQMP_RESET_GPO3_PL_6 87 +#define ZYNQMP_RESET_GPO3_PL_7 88 +#define ZYNQMP_RESET_GPO3_PL_8 89 +#define ZYNQMP_RESET_GPO3_PL_9 90 +#define ZYNQMP_RESET_GPO3_PL_10 91 +#define ZYNQMP_RESET_GPO3_PL_11 92 +#define ZYNQMP_RESET_GPO3_PL_12 93 +#define ZYNQMP_RESET_GPO3_PL_13 94 +#define ZYNQMP_RESET_GPO3_PL_14 95 +#define ZYNQMP_RESET_GPO3_PL_15 96 +#define ZYNQMP_RESET_GPO3_PL_16 97 +#define ZYNQMP_RESET_GPO3_PL_17 98 +#define ZYNQMP_RESET_GPO3_PL_18 99 +#define ZYNQMP_RESET_GPO3_PL_19 100 +#define ZYNQMP_RESET_GPO3_PL_20 101 +#define ZYNQMP_RESET_GPO3_PL_21 102 +#define ZYNQMP_RESET_GPO3_PL_22 103 +#define ZYNQMP_RESET_GPO3_PL_23 104 +#define ZYNQMP_RESET_GPO3_PL_24 105 +#define ZYNQMP_RESET_GPO3_PL_25 106 +#define ZYNQMP_RESET_GPO3_PL_26 107 +#define ZYNQMP_RESET_GPO3_PL_27 108 +#define ZYNQMP_RESET_GPO3_PL_28 109 +#define ZYNQMP_RESET_GPO3_PL_29 110 +#define ZYNQMP_RESET_GPO3_PL_30 111 +#define ZYNQMP_RESET_GPO3_PL_31 112 +#define ZYNQMP_RESET_RPU_LS 113 +#define ZYNQMP_RESET_PS_ONLY 114 +#define ZYNQMP_RESET_PL 115 +#define ZYNQMP_RESET_PS_PL0 116 +#define ZYNQMP_RESET_PS_PL1 117 +#define ZYNQMP_RESET_PS_PL2 118 +#define ZYNQMP_RESET_PS_PL3 119 + +#endif From patchwork Fri Jan 25 07:46:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nava kishore Manne X-Patchwork-Id: 10778461 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 85DC71399 for ; Thu, 24 Jan 2019 07:47:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 75CCE2BE26 for ; Thu, 24 Jan 2019 07:47:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 67BAA2BBA5; Thu, 24 Jan 2019 07:47:38 +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.0 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DATE_IN_FUTURE_12_24,DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D37FC2BBA5 for ; Thu, 24 Jan 2019 07:47:37 +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: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:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=emyBVyXPFxxIejqR/tqTUrer/Lm25FkLn/kgz8qVtkQ=; b=G8mL1xUOpa9Z4Z C3eAvQipJnUjS++pvshUezNGNBM8SDBajF/InxjPCGCA3OU0CSM/lLhKZ0hRmJ8Fzz+j8DyDcyLL0 BK/PX2i/a/VUDG5cCHND58qwJgE15GU+UpIhOwwZdsWjNepcaoSgMgjWC8FiH7yzfrh+V8jMIDXRf KhhcazOyqID1UNvdiVqlzab6n2VyOlJIYK87g6BtQK/2Fcg1+KO5C5XK8vsl7pyOclI5iKyXPcsPj dKeJfUDA7x2S/IfJM37chwAtp3NRf0CyAJ59AO7E8A6eyqqS2zqTMjstthuKwaH1bIlJWwsN/YXs2 00+YaIPxZvOEIlrsE2Cw==; 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 1gmZja-0006HJ-HM; Thu, 24 Jan 2019 07:47:34 +0000 Received: from mail-sn1nam01on0608.outbound.protection.outlook.com ([2a01:111:f400:fe40::608] helo=NAM01-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gmZiu-0005fR-6w for linux-arm-kernel@lists.infradead.org; Thu, 24 Jan 2019 07:47:07 +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=mzg1HvmTq2ID5nmBPg5WCDjocilLb1zgGT+7bn/Vzwk=; b=rGSg5FoiSCH9ilQugtjHa160ba9aDY6SZ2nmXCtRydn+HCTtrd9urpJswPjQom/FpaaJtpGoxuOsxS3p/77c3+66QplJXciU09XBuuTJetO1pK1AsmANz1ymmXoQ6wwDU4NLHJyp1OgeAiWjLac8yVXvfTfqhV3wS9qqGvlgTE4= Received: from CY4PR02CA0003.namprd02.prod.outlook.com (2603:10b6:903:18::13) by DM6PR02MB4329.namprd02.prod.outlook.com (2603:10b6:5:2a::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16; Thu, 24 Jan 2019 07:46:42 +0000 Received: from BL2NAM02FT029.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::208) by CY4PR02CA0003.outlook.office365.com (2603:10b6:903:18::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.17 via Frontend Transport; Thu, 24 Jan 2019 07:46:42 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; gmail.com; dkim=none (message not signed) header.d=none;gmail.com; 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 BL2NAM02FT029.mail.protection.outlook.com (10.152.77.100) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1558.11 via Frontend Transport; Thu, 24 Jan 2019 07:46:38 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:49100 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1gmZif-0007f8-Mm; Wed, 23 Jan 2019 23:46:37 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gmZia-00072k-Ii; Wed, 23 Jan 2019 23:46:32 -0800 Received: from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x0O7kOr4030052; Wed, 23 Jan 2019 23:46:24 -0800 Received: from [172.23.37.118] (helo=xhdnavam40.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gmZiR-0006yr-Ey; Wed, 23 Jan 2019 23:46:24 -0800 From: Nava kishore Manne To: , , , , , , , , , , Subject: [PATCH v3 3/3] reset: reset-zynqmp: Adding support for Xilinx zynqmp reset controller. Date: Fri, 25 Jan 2019 13:16:54 +0530 Message-ID: <20190125074654.10950-4-nava.manne@xilinx.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20190125074654.10950-1-nava.manne@xilinx.com> References: <20190125074654.10950-1-nava.manne@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39860400002)(376002)(346002)(136003)(396003)(2980300002)(199004)(189003)(36386004)(106002)(336012)(186003)(76176011)(8676002)(446003)(305945005)(2616005)(51416003)(7696005)(486006)(126002)(11346002)(478600001)(476003)(426003)(8936002)(81166006)(63266004)(81156014)(9786002)(50226002)(2201001)(47776003)(106466001)(36756003)(6666004)(356004)(48376002)(26005)(39060400002)(316002)(2906002)(16586007)(50466002)(110136005)(1076003)(77096007)(921003)(107986001)(1121003)(83996005)(5001870100001)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR02MB4329; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; LANG:en; PTR:unknown-60-100.xilinx.com,xapps1.xilinx.com; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; BL2NAM02FT029; 1:HMG/nHUe+JoiygoCVsAcWYhgTP9NwBmTCRJuqcIhLSoXL/RpJoJehn1/mwOXonpXi/+gOmrIWlJIz6O3AnIxXe9I7l6isd7aOs/PWlaM4YpgNkgRpf0tu9Deox+mKmG9r0BCHU0v5noNQ0uhy9I6A2pzDvtUf3uxYd8kLJ/M2xk= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 84a8668f-36f0-4b84-696a-08d681d0144f X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4608076)(4709027)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060); SRVR:DM6PR02MB4329; X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4329; 3:KLUBC/R5vEofvlTq7t0wb462XAifl8jB1kqDXrq+gK5fk2Jd58YxqhuUEjZ7bg/Ase+rjG+SRN9a/088YXjGIsFSFj9skW6ytFLvgrql87XRpW+wBxsWwamZ6x8or+gxtGKO5L2EgJKZ+IZj1rJEvtP9EmaaUZMRtMHgcXBZ9GAoe0LN/UKsHGXn/PB2hLzz2lyslQ+x8Bmf5Yro+4KDoWAE9Tgof44XXIJjvAmzJ9fTHeQSnKuBrzioR3jJF2J2RxWR4Db16L7BGrSHDpiSB41agTi3TylWjuXb1qTGxRBqvmNW3qZbEev8jTnWuLBImyB6NZAiUZU8fCZFeddI//JDqEmWUJ7MgmgXnW6eFdxMmvFNzyeFQptPv5ZNRyQQ; 25:VzJ/og9w+mAd8Or3K+rS+sSHFQUhszVPiFuCf3t7DOyC4LQYbx5l/uqKdf4pcvY9fXSvpgtWqHsCfnRzTSMelU583aAl+rOAR87hACOfvRgcZp6cWxuawhYGea72Q3uYgLP178M0kL+ucFyt9BxaxEjaj42kKGuh4aMlG0jfTlQhYIwKCju+/cFidIrHWBJFd7lZA3eTfTJkaSApbyYoAkaMtsNbBQu7gwdth2JoJST08SPTCNO3lj2AJd8CcGYxvNwrOKFuijlLpXkx455QjjqvFyguENb+xXPh/WcUFVOlCtZCtL3rDiiV5S0cuG0pqXT3q3xc9zjpThl02vvr7Q== X-MS-TrafficTypeDiagnostic: DM6PR02MB4329: X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4329; 31:sXe105UD9p7VAtrWTvd5siOS0j+fd/J8yOQ7N9IrgcGo4+We6eLMD0Qi/RYxlYT9DBKL4Lqydcwcbr/xwJvWtHJ38AajtJQ3b8oD/U7NNkBjeIcO0pocdh6xRDIFTHu5I7Mm6E2OldQZ9NDZIByalEAKfJ9boxp4yjSMMC8DJUiJ7saM4Xi2XopgR3eT8voS099c5qxhAdBeTWSU6xuPtEoMmAnQO+MWcrmj2KsDSFI=; 20:OPw94GgVdi2anXZ6qAMxtDBV6m/ptInxfQuzYPk7zTORVtgF+L8H18v7DA5gyROno7iO3756duJpEVzMMAu6CpL3q/xrL/XSR2CZqOBxYDbIwVFUCfGX3vGKAOl2HkrpqN5KSpwTi1UB5ZbTak6z1KJ3ibtimG2pT1KNY6Yw3EADNEO1krtkj/yiK4iAOS8sDt8Y4doKfenGwUB5bMZxvCaAWyPaXeZrF6bSL6jXOFL5R+cGqRbE6O68JffoUus4gjWDdA9fkEHfgTGQDGB4I8earJsGIdTLbYkvc5tmtGlYrAOwQZG9fBcd/bR4Q56YmLmW8wdO9rEr9sp4WYuvTl5F71vMTOlIkYej+pI2PXyJxcVz1CCrabrF6W5dwfThEc+o//8nBv+XQyN0/Gxzbhrm5ig+FiejBtCrgHuo3evuX/E/K+hnTSfhr7jdbwN74r8u3OCEe+oLhqmsw88ffmOzyIZd60KvqAneRAoqTZcVjaNb2LJjpdH9vLowbQ/8 X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4329; 4:aNzTcWwZOnmH0HBEHQLXqFAhHWZnYD2si4gxY24lrvyl7zhjp2FL+FEmXkMJe7cfQpI4qKmgQNeCO4F2tSp9KV4fKFhcx8ahAye+JDJ7Etf4G35PDUjiwpLMmHt925KdqF2ToXzGHTvzFAHBdRvryUogVrp0JRv8PMSncI9xOFRxmjkxQTVVSMGiHVTdH9Lk5+CTr75N9gNY9GAM+o5Qm6GOO2hqTlaaLjEr4ipQq6HJDxfndn417Dqm5XC5WHJ52d3q5Km2tru/2YVk5t9VNZAjkH45wDDCOM9Cjy2E3Kc= X-Forefront-PRVS: 0927AA37C7 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR02MB4329; 23:Vs3w4Ubi1CeNhYo7zXr61YmiPXuM2Y3En3nnBrt5v?= iJlfVlWndloNifEeS549XDiaz5TB/8yIKARxB5IbS9hMsNOvoJGxIn3kD4AvFjh4d9zmVzffp83I56Xw2tTScVH9ZknQcqO/u5IuyNjZQMHKctzK8XY/m1P6OjObapear7y9dhO9ocOpvFgwc0iJcyE4EGDT1CaLp60ylHzi2F5y+R6ubLYjPuIp2czYulvVrt89g97wvsBZeNHt+3/h5LqU3S5tZbDoSjTRpio1tV3xJ5w3xANLKaVligATJzdymfsYakuIxziWNb5cbtgWRMPZtpzMUQF2WsYpXxh7bBxuqfEPGW0xJyeS/4rEVXd3e1jhMLosuQc1l0Qn9mYTZVS93XRg/bGu7XKS+K44pJ8yu04PybQV186griZpC4fc8TMYkpwGs64fsaz5kB45P+Kca+c9xrNgt+CVXViEyw6A3go+JwZqeuvXdSM7akh5iwGS2+6gm88+9kNqLS0Gizi/It2VgN647G6Mz+/8+Xudf63QiiyUNOBmkb/40M9xHVJoHaG3f5IM9UWgUJLWeJ2oQiuTuyxpxJtfMwhFpHigUJbbJi7W3AKHuemSWK7Kk8fAe763rugPDveZclg1mjqe+LCFXZxpWOev0b3+JR4C6kc3Yoj0AO09DbAK8p4GyO/TeSIu7VrMDnXDyOMg77y2FnUHuUx0lq45UUOZT4PGx5zFACD0wmfhrgeX3eudpKbyX4xvsawpERc4Ab8B2ckx2yv77BkkSqCYzhpKTynU7t3AKzgyZ6gKnPbUfyXl9VETpBrURJGHLYj4b9eEcZC2xsswaDwr55/1tRvv5rA5e1sXMpNIoWE8pGP5vwx3l7AEXgRNdiLFk5g7SkmaF1FEo8jQPAVyStsbk/9HdrKpP/HEx85+Ye+9pcLm1aGd7HFjTvzlX4417UFf3h5wwj34X1YyTNoifK9r8/wWtana7u6rPSajSHnL2rhoFyhyb7SQ9FZqd93KMbekZg1z3/hL1mNpBbB02QUpoPCQ2Tt9PTRCZ62Lc44SRHhE5z/hBLUVUz7B32Mg5Q/IWB1pT3VTYFYqG3cKuGaooo2R3ELnDt38czeBjeOx/k4f/yWUKBLZlxd0ygcNd7MboeY1o2JydMI4P+as1wJW3tp49/OFHOWNbqGopGFfHtEyDfbY+s= X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: DJT6DhO1jCfvKxKP3ED+1ou7cMbo4xWmI6a7CHhexD5b2e4I0tYC/+Lcld0JfHEz1zJT1eJ8hD7iw21Ui11YZcEv4H/DP4Inf3VQqVVZvlx1e3MzMK1i8TVMO68LM1eyNKJqQUt/ZSsJZKWpnpC+pYxu3ORaFj58V4nQjTishKPB6WHPTziZGRcM4yBgkeqI2cKONhoaFvycdPwddYcWudyB09wQs0BfGqIkW0ydSY/de3u7FbbdSDQxUHlemtUJ/3c9cnYQGOR+sbY3MPdaGCTYullcuHVJhbeqmwhc97JVk+7mjf6Usi3CMw6n/1g4AW9uleazINAQuI7MhKaeqhZEl6T1OvQTn9FHi2V1+Enfyo8kj7yb44xNQNhU1Jk8NQiynom2XockAuzKyKUSgBRl2xplsY3KVeJo/XL3Uzw= X-Microsoft-Exchange-Diagnostics: 1; DM6PR02MB4329; 6:66M1/iWp9VNrTLoOqVY/WOEVsh9N8EcsIZ24Us98typQs4+MO49bw6X9yUOg0vcq5Yj0KjxwqkNUZ7eRa35CNv3R5l8qj2wf7QEmzMumkHNgguIx2TU44xD20MfMaJ/K2kygHd4Hu26gDfihCkQOholhJovt7c+LKrRk1JNMQer5ZGmjiccdltJQf6h4qFGvKotXvFWwd+Q4v1uIGPbocU5aZiRS4f6wbeDtx9OCXZH1cCdFee6Z8eJ/3tD3GXv2U2yGRJQmwmEd8DPLUkHWmwdSYwjYaK/vPz6A9BijJc+9+gmHxcRaT0zFv9p4fV9r09d4VY0+404CLJ0wOn0FRiCfdV0Z8Fg4LSgrqSJ2rVZCbBE7guSb3cTY2aQTB/7PxrAGm65HFAJy4FkR2OKHavHopyx8BreKIDpmhoI+8s7dbDa5uYdMlKVJBUovFt0xo2LfWMHpgYA+dr2KTgHX6Q==; 5:66SOvwspW4ftFIy/kejzJjS8rDKvDGk22Cfyf0jz3tPEZAbOhX8vvI2XbFxgoZiCv7H1LQZ9JXMYjPrEEvqcaYEF/uGA6KfwvAwwkaH/f3RS3zZiXcVvV884x2HxyQUOOX1sZssHIXnc+9Km/lfAUO/rhDED7oSgluPldrcIpNXQnTxBCFmPF7er10ea2avhGBBWvLh5oGDJg6/91ABP4g==; 7:Bk15S3jJRCerTOWPWRSkCocKQg7cc/hxKFOjGmuUaajEfq5c0Ty4y0koioi8PBKKIQnoxHZwtlu7JOodjBw04FcrWGSRA0gKrJLarZ1pPePhiVk0IpAlTVGDXvzoOguFo/bqulJ4F/jq1XzubXcFug== X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2019 07:46:38.6244 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 84a8668f-36f0-4b84-696a-08d681d0144f 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: DM6PR02MB4329 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190123_234652_596249_97DFBE81 X-CRM114-Status: GOOD ( 13.59 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Add a reset controller driver for Xilinx Zynq UltraScale+ MPSoC. The zynqmp reset-controller has the ability to reset lines connected to different blocks and peripheral in the Soc. Signed-off-by: Nava kishore Manne --- Changes for v3: -Fixed some minor coding issues as suggested by philipp and vesa. Changes for v2: -Fixed some minor coding issues as suggested by philipp. Changes for v1: -None. Changes for RFC-V3: -None. Changes for RFC-V2: -Moved eemi_ops into a priv struct as suggested by philipp. drivers/reset/Makefile | 1 + drivers/reset/reset-zynqmp.c | 114 +++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 drivers/reset/reset-zynqmp.c diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile index dc7874df78d9..573b8386d901 100644 --- a/drivers/reset/Makefile +++ b/drivers/reset/Makefile @@ -26,4 +26,5 @@ obj-$(CONFIG_RESET_TI_SYSCON) += reset-ti-syscon.o obj-$(CONFIG_RESET_UNIPHIER) += reset-uniphier.o obj-$(CONFIG_RESET_UNIPHIER_GLUE) += reset-uniphier-glue.o obj-$(CONFIG_RESET_ZYNQ) += reset-zynq.o +obj-$(CONFIG_ARCH_ZYNQMP) += reset-zynqmp.o diff --git a/drivers/reset/reset-zynqmp.c b/drivers/reset/reset-zynqmp.c new file mode 100644 index 000000000000..2ef1f13aa47b --- /dev/null +++ b/drivers/reset/reset-zynqmp.c @@ -0,0 +1,114 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2018 Xilinx, Inc. + * + */ + +#include +#include +#include +#include +#include + +#define ZYNQMP_NR_RESETS (ZYNQMP_PM_RESET_END - ZYNQMP_PM_RESET_START) +#define ZYNQMP_RESET_ID ZYNQMP_PM_RESET_START + +struct zynqmp_reset_data { + struct reset_controller_dev rcdev; + const struct zynqmp_eemi_ops *eemi_ops; +}; + +static inline struct zynqmp_reset_data * +to_zynqmp_reset_data(struct reset_controller_dev *rcdev) +{ + return container_of(rcdev, struct zynqmp_reset_data, rcdev); +} + +static int zynqmp_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + struct zynqmp_reset_data *priv = to_zynqmp_reset_data(rcdev); + + return priv->eemi_ops->reset_assert(ZYNQMP_RESET_ID + id, + PM_RESET_ACTION_ASSERT); +} + +static int zynqmp_reset_deassert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + struct zynqmp_reset_data *priv = to_zynqmp_reset_data(rcdev); + + return priv->eemi_ops->reset_assert(ZYNQMP_RESET_ID + id, + PM_RESET_ACTION_RELEASE); +} + +static int zynqmp_reset_status(struct reset_controller_dev *rcdev, + unsigned long id) +{ + struct zynqmp_reset_data *priv = to_zynqmp_reset_data(rcdev); + int val, err; + + err = priv->eemi_ops->reset_get_status(ZYNQMP_RESET_ID + id, &val); + if (err) + return err; + + return val; +} + +static int zynqmp_reset_reset(struct reset_controller_dev *rcdev, + unsigned long id) +{ + struct zynqmp_reset_data *priv = to_zynqmp_reset_data(rcdev); + + return priv->eemi_ops->reset_assert(ZYNQMP_RESET_ID + id, + PM_RESET_ACTION_PULSE); +} + +static struct reset_control_ops zynqmp_reset_ops = { + .reset = zynqmp_reset_reset, + .assert = zynqmp_reset_assert, + .deassert = zynqmp_reset_deassert, + .status = zynqmp_reset_status, +}; + +static int zynqmp_reset_probe(struct platform_device *pdev) +{ + struct zynqmp_reset_data *priv; + + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + platform_set_drvdata(pdev, priv); + + priv->eemi_ops = zynqmp_pm_get_eemi_ops(); + if (!priv->eemi_ops) + return -ENXIO; + + priv->rcdev.ops = &zynqmp_reset_ops; + priv->rcdev.owner = THIS_MODULE; + priv->rcdev.of_node = pdev->dev.of_node; + priv->rcdev.nr_resets = ZYNQMP_NR_RESETS; + + return devm_reset_controller_register(&pdev->dev, &priv->rcdev); +} + +static const struct of_device_id zynqmp_reset_dt_ids[] = { + { .compatible = "xlnx,zynqmp-reset", }, + { /* sentinel */ }, +}; + +static struct platform_driver zynqmp_reset_driver = { + .probe = zynqmp_reset_probe, + .driver = { + .name = KBUILD_MODNAME, + .of_match_table = zynqmp_reset_dt_ids, + }, +}; + +static int __init zynqmp_reset_init(void) +{ + return platform_driver_register(&zynqmp_reset_driver); +} + +arch_initcall(zynqmp_reset_init);