From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751235AbdCQLaa (ORCPT ); Fri, 17 Mar 2017 07:30:30 -0400 Received: from mail-by2nam01on0049.outbound.protection.outlook.com ([104.47.34.49]:13184 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750898AbdCQLa1 (ORCPT ); Fri, 17 Mar 2017 07:30:27 -0400 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Subject: Re: [PATCH v2 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler To: Moritz Fischer , References: <1489711910-17443-1-git-send-email-mdf@kernel.org> <1489711910-17443-2-git-send-email-mdf@kernel.org> CC: , , , , "Michal Simek" , =?UTF-8?Q?S=c3=b6ren_Brinkmann?= , , From: Michal Simek Message-ID: Date: Fri, 17 Mar 2017 11:54:23 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <1489711910-17443-2-git-send-email-mdf@kernel.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-22946.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)(6009001)(39840400002)(39410400002)(39850400002)(39860400002)(39450400003)(2980300002)(438002)(24454002)(189002)(199003)(9170700003)(9786002)(2950100002)(86362001)(63266004)(575784001)(229853002)(2870700001)(64126003)(106466001)(23676002)(4326008)(31686004)(53546008)(47776003)(8676002)(81166006)(6246003)(8936002)(305945005)(54906002)(38730400002)(33646002)(356003)(65956001)(76176999)(65806001)(54356999)(50466002)(31696002)(6666003)(4001350100001)(2906002)(5660300001)(83506001)(77096006)(50986999)(36756003)(189998001)(2004002)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR0201MB0711;H:xsj-pvapsmtpgw02;FPR:;SPF:Pass;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT048;1:hsOLwMYJb9o6RMJj8+KDkRdhqJRDDckqdFvTEim3aSbTNy9ZWrG2NOQbx53nlumvNrRkq3N1KOUmrBQoRVZT607Fq2Jyr5UfTF2ywCSQ3qOucadoCq1ThpyUrPRaX8ft5FxBCxgDkUlGPOOoI8t7ygo2kxZwyr9iXSbjoo0Ptw3WB9H6UhmFE3f+4G1GNqs19pdbHg+wVbhwi2QbmDW6IhcwWOTh1CHB+eK5ilgvhhRNglB30QDuuPI6y1HgVwM1QJLkEt9WjkSeSYXzYsqTqkB9YfAZ7poMRSpr3uCgF1lYjmx6OUOSY/hGbkwovWDdCSkDV6ma08/Kt0XYSMhvpGC5q4aAoW5L2WoWr3OceJocaoDxX78cy3o4z24athuOa8NFMFnR858dBxGEgd6wGLm2QUZF+59X1TrQVsO6glFZe1L64y4J+Dt2gSyAby8sUcj/UauAE7Fecp4rCwFOmzfgG4yEQsHSdfegRgn4+7fDEvlHOFwUTpUIhjdvq4NI/PyUIXlDg3NFb0/4Xte7y/RTtqD64ZP6673Wp8u3kVE3nCWa21INBcBCvS6zNpdo X-MS-Office365-Filtering-Correlation-Id: 4d448cb0-e4e8-4b4a-2a98-08d46d23ff0f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:BY2PR0201MB0711; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0711;3:EUda5lbA7nBdqJ7ny1bQmRq2jlffOX/+5Yn5cXFaK4QZqIUu/iSgP5U1TYKqo19oRml2yRUEcMmzo0XN8oRS8Of9ou8JSHgucMizadRzKO+cxUNdi+BcRFfYHpqhTgaEhsMBTIDmBmoZvUlxa0unonX1wcAygN4PqYr7XXBIpgSssB713oFEFV8Vq/Nd/GZ4uiNVZYkuHUbNvn1CB4oYRyMw3cQ+pUOeqJj+4GVBb5VkRR1Iv0+oxvu7KtDL4uphiHFnYnbzYJtP5/Gt2kLyfXFPh9NRf8disvW5vT8Sirqia08W6RqhsOKRqaA3AdRLPMe2p0pH7Hv/9CnypHltP3QXmOqnTP7cliMmNGjbCnVCMM2/jGmS6vRGxB9UqiJer+UzGfEguFcB1F7C4b1orQ==;25:4jUlUfBixmo7IMt2xpyecsvQSJTUcDxJ6MibGzp1zhPEEFvC+KqA3roQwsTvMnT+ofmnHWUtCSgPu3NrGOXVrQ/m1NdRhW5dfWlWb8GgqQgwDvo58UtR9jr9ewC7RYMzlAl6393eXStoqdtbmN6pwkCiKoesYm3FKvpELAPDmrSEsmO6KfVKPejT8hUrG1KQ4nJWi9w3BQQN9Gt6fr1Zk5R97GNkwJKXjEu2WK+hkpOQ+l/PTEYNb3F2rFF1F0kGYOkdbNrmh5AtBeJ7I5GO8fHmX8pru1tnYugUV6ukLorez0iwUO4UyQGqL9aL4oGZFqCNRfqEIEesdxiCSvyB9qgkq8lmj+X5UrOc1w0zFAOaLqvfTKR5QfUBf5H7Zy59KMif2ZaqQX3vZTUm9QRXpefo0M8OvOYXAfB+OgUl7IkdJKEe3DQhxbGIG4bm/4zsRsjR6HuZ0vxibA/BgjdkJg== X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0711;31:1aIgKn8/J6BSHvN07opiDgUmq/+RPGbcsIDjBpCRJYIazEGtjBVKJiEGdKOGXDC6svW1Zz4UJDJYBNAsr/oftLbVeBjv2RwHPfWGa9wz40ZFafLfpmMF+KXHSooQPwvzmjtxyU8HqirjncXMV5nlaDvYNiv6tpQafgV2eCfQVjxlQHHZsrUf3O9mt84o9Qb0kZ0Yz2DFaUO+2sVQKQ/pUhy8Tgv5O9xjcGcpIhB5ARnIxn9RbUVLBU8JzMVbr32K4CdtXvFK47dsz8tcFSq/CL9a4Sboxy5oi8zUlyvG8gc=;20:Ts963GqqYQsiRjAbdJGccVjkMr2x7zlcggmshGUrEQWSwfG4T44C91sFiC37YinCXQbsa1mUJIYWmwiGrI0i2x6lISeFeGuy+J1zmNfyYsY1z3C25+qC2bEQU4sO7bSj7nFvxvA0DunWJcxpZYK2exp+CWwfQMhBw8yblMdDbfDTW01as8f0S+HsfxxdU8Azm+jVmiwW08fEAQChyLGa5CTVyrpD3+xYWFV7sY7vk7d/bcaYlx/QBJvfHmqbjQi4skGshNwce6lGSDojDFqUhvdqYPM+POi9SNqnMKgymjDI/MesVa6UtlsTAnSbe7HZ0jWh8y28MSuC3dgLnx2pydetOKAKbz8Glxh98ZCmf8bfUQyEyYIhMDJepWOlRRoYcgVobS4jSctPTMUeCv96IkGKr8d/x9omotYXtM/QkrK+6PHt3GdB0b+GOyfv9YPEMKDaU7iQpyXEP6ae8g4cQ6jVwmxZipt2CizaCnlWEJDp4NwC2ujSfVGicgUv0gsU X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(13015025)(13018025)(8121501046)(13024025)(13017025)(5005006)(13023025)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123555025)(20161123562025)(20161123558025)(20161123560025)(6072148);SRVR:BY2PR0201MB0711;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB0711; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0711;4:9gioErUv3xLYNSHRM9k75yckubnGa81/eD2xyaK8FEogmKfsEK5eNaBV5MwyudgfUMy8U2kQfFjIf4wHKPE38y8tyoo3aLVUNB5vbMuF8FtP+Wot131rywaSnxth/OHhoM29kgROCL78gFDC/lF+a9cO+wtBOIxLBcfabNnzGXsm79uLeMxZPuZgD/WpO41LYtiRIZyVIesQXSpv8WYj5Mz5DckfbbA9e6rI+ayTCY5rWsVAvitrC9t1xsZyU6hV9bgEJ4a28diaGv+7p82k0S5IKI+pok3YA9v/eTClsd35CavyS+uxa0Pb7Aky8FkHhVgU2piFu2gvzQG4BLojkugpGtnfBlezjNvd+hve0vH0JRptD6slGql+VbPPRM3KMzSoZP3Gn6WBt3hte/H0LGZyxQs1r2TiQf97A3WSB0/XcGQy3hQI++F7OKRXSrjvP7168nOLooddOgKx7TqF7Nxn4u+0arZzwKB8DELvU4wokjzlfUJXN8TsSqDl6KAHjczMzxv47ehhqc0owJ6LiaI4HFSFdu8DmVm5GTvbzfba4U3TBJrf3tXnqjdRbA9NraQFEod1EtvDKJWkqOnv0BJEGw1cvON2pS+k5W1rFkR1pjwzEH4PxFz7TmOn8XR2IZx4wC8qoJxSI1vxbD/wb3q9WESZof0Y49uYKNXCL7mBUDzNG8R6mH9H0HwdNWQzUj+sc0IVN9skwO0X+MEpSPHEKXa2k16p5NMgstE0391/brglzK7nJu7ZqM3JupXnmZudCQXlSrtx9uAWPDpoYjrRa8ojzhvQWQ8icP8/Mpo= X-Forefront-PRVS: 0249EFCB0B X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjAyMDFNQjA3MTE7MjM6SGg2d1NOVGNwbkkxMFcwL2U1a21mWEt6?= =?utf-8?B?NUhxSW9jL1BiZmdiNkc2OSs0UUxyQU1QZEpTemN6WS9VWi9sR1BiSmg0R1pD?= =?utf-8?B?QTM0ZnF3NjJ3OGRjV1pjVjV4ZkVicUNBVUQ2T0FyUWpIdkZidTd2Ry9iYlll?= =?utf-8?B?ZE9yL2Nld2hsZUE5VVBXS3lTcG9tMXlWejJaUnp3VWI5ZzhlN1U2cWpZSlJW?= =?utf-8?B?eExiMnJRTEp0Z1k4YnpvZnRNTW1TZTN1NTM1SlhYb1h4SVBMcEVLakllQkN6?= =?utf-8?B?S2FuQ2pwZ2xIMXIxTjBLUDNJYzBSa1hpbUxhVU9LT3BOcnEyY2E2SU5CUURz?= =?utf-8?B?a0h6T3lTbGpocUVINWVjV044cnNMV1h0ZmtWdGxUUnpHQy83OGNsUDljT2Vt?= =?utf-8?B?VXppOWsvTmMvaitnVnNxcnJTSGNURFkyVWtqcVlReUZiN1Ntd3RnVlp2bk9V?= =?utf-8?B?OWMyQzRTQkp3Kzh5Ry9QZXY2ZEJSbUdWS3RNQU5TencrQ1p4V1JXK0xjS3Rm?= =?utf-8?B?UFhSWEYwK1dVazBmWmpZeXVsQUFtZkdCZ1RjUjNKK3MreVdXNk9zZXRvaHBZ?= =?utf-8?B?amZtMzlSZExmTTZSeFVvelhIWU5YdlZ4ZUtZb1hFaHA4ZnlIQk9MeFZlQUpT?= =?utf-8?B?NXVMYXF3cnFaelZ6bGdHblA3QUI2T2M5dHMyd0lvODdXOHV4blIvYkRtOWNC?= =?utf-8?B?bStqU2tXNEpiaWc2Z2dGeHgrcWFSTitHK2JSZVMyT0dURGdjVTFxdUdEdFpR?= =?utf-8?B?N3hmOXFFWENTZ2JhdHJUL0U2ejR0NlRYNTJacW5jcXRjOGVHbFhva2JJUnlr?= =?utf-8?B?NjRwczUvVXNmT0xXeGYxaXAxemVRMzh1V0ppRDZ1ZFJtMEp3YmNlTjEyUlNv?= =?utf-8?B?REJXTVVDREN4cXFGUWRNdUtlTUdCaG5CempSS2tJdWF1VklmamliTTFMZHdY?= =?utf-8?B?SEtwVTFBRWdUOC9Ud2FvQnlUWXYzUDdFM0tGZ0loNEgyd1FUSEpmNDNuenlY?= =?utf-8?B?ZEJZSEtUb3cydnBsSkZFT1pVTXRzRzN2cjBnRjh4Vzk4Vys2YWI5OWMrUTRs?= =?utf-8?B?K3ZHUlN4SGlKcTFoZUlmQWx2cGR1VFg5MnkwelV3TnJBb0lEMU5uS2Y0Mmd0?= =?utf-8?B?Nm9IRWRKazFHaytvVjJaRHhOUzV5SDI1VnJFL2NVczBIT20weks5OTZCRy8y?= =?utf-8?B?ZlJUbW13L3lMM0YrbEQ1RkVsd0FwS2c5SHY5czN5MTJmNXptcUJqZVFTZUhR?= =?utf-8?B?OEtENTBFcUZSMWgxTDFzN2Zma1dDMlBCUU5IdzJDZHEvdHc2UFFzSGFzREpI?= =?utf-8?B?RWJPbjFUcEhMWm9pdnZYcUFhNEYxS1NCNUFrUlBENjNhWnY4WGxNSzFxS1Zj?= =?utf-8?B?cnpDeE90Y1ZIeXFSQVZ0QTR3YlZ1b1BGR2haOFZvaHZzOUtTSXZYVGFWRExW?= =?utf-8?B?QWx5YytFSjFoVWZQZlJDdDc0N2x3blN2SjZXZkV2SldML245VzdWUWdUNWt0?= =?utf-8?B?TksrWTNaeStvSXYralZFRGp6VkRIak5uWVNrcDVNZjFKOEd0RmxQR2FTaDZU?= =?utf-8?B?ZzZhakE1cFp6RGNOY1BRcUc0Qk0zNGpkU3htbDlPT3lUL1RFUnUxUUU5VnFx?= =?utf-8?B?akVlZWVhMWo0SlhsWDNKTVZUd2gwZ3hmNVhiOGZBSXNMWGQ2azhCVm8vRHFz?= =?utf-8?Q?/Oj9b3lYFcRt9TWDWyz/AnaXCY6B/cU5Xm0NzuF8R?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0711;6:Cfa/kWOdKS4nUOaWF7h71efJ4N1jav/mr9wF+nNCotEE1HqNkO4M52TeWyXtKOWXOmd4ggcV79+kxP7zidly/gHA326hk2LBV7skA7599FqebZAnJ/6UMFnlNU4QcCghaDp7EiI4TtqiBWs0P6c5EkyUeAFYl1x02xV/Jheq3ZCQoJguC8oCpRMVA7cr1Q1GttdC0RcZEcwlQ2knKsK3TxGAfQuaxcXSOWwoIfRjb8+devPIUwXQLI0+lmMYuxmIgYrImD8JCLTrEt9MORFKTtq2sM4LbzBnBXj5O8LpnMAGH1bC7UyQcjcZWJwKqlQKcbXA2JQJTmRtlew9DEscFSvBPxMNwcUjdwJQLDH9VrIjgZexUCMQ3tsOz+nY/jBMyKV3Hx8B6r+PKoiK3KSbDoYYge7ICXX79VFGzwo9LLc=;5:h7qIAXdzrGJ6xU6AjgQkJQSjfGIdp8gICGhR7ewnptIxuYHysAH/R44DHnmfqmkzcxDdkYf40v6fUbqYbuNJfR8HyaUhVnh1a02Cmg5DDx29NgpVO9KQvvv1tItYAQcBL7a+RpApaaqbAzgJxQX5CA==;24:KcLehDrBokVRBwtRMQg4RHrPsE3/uZ772CuejjD29nz5knyebzJN0aruhcbqv5BMe1ily1oxM7dJI1J24BP3UmjjPfSSn3CT+maBbIJ6E7M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0711;7:16g93XDvQ1qqdW2zkBab1G5zq5VwXdOOlvMiFMsnAFddz+Hy99o94I7Vxe+E7dlZ/rE6dRjZ6gpKsDSo7MbZdSskvmFmtBJP8VuJNbcdOZ5lZVHp75GxadVNItFRqALetgT9aBuN9e1lteuvYuPRXJcVoRpaqnPD2zvLdGwvBrXG4FT9bJDfRY3S72x0FAx930BNoL1RCpwt4OFR/fxs/1E4fXK2dq3TbJHUyVyCFA/LubEtXbnm5p84Y+/7S6xsj3mDM95efBba4kz6tERQgkZ8NMxyldU0WAzLc3SPzfuHoTPfEiYJ7rpviBn2FVhLafnNH//xrVhA6DcznXvArA== X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2017 10:54:33.1080 (UTC) 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: BY2PR0201MB0711 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17.3.2017 01:51, Moritz Fischer wrote: > This adds support for the Xilinx LogiCORE PR Decoupler > soft-ip that does decoupling of PR regions in the FPGA > fabric during partial reconfiguration. > > Signed-off-by: Moritz Fischer > Cc: Michal Simek > Cc: Sören Brinkmann > Cc: linux-kernel@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > > Changes from v1: > - Added Michal as Co-Author since I pulled in some of his code > - Reworked clk handling in _remove() > - Pulled in Michal's version of show_enable(), ditched priv->enabled > > --- > drivers/fpga/Kconfig | 9 +++ > drivers/fpga/Makefile | 1 + > drivers/fpga/xilinx-pr-decoupler.c | 147 +++++++++++++++++++++++++++++++++++++ > 3 files changed, 157 insertions(+) > create mode 100644 drivers/fpga/xilinx-pr-decoupler.c > > diff --git a/drivers/fpga/Kconfig b/drivers/fpga/Kconfig > index 967cda4..e42c7dc 100644 > --- a/drivers/fpga/Kconfig > +++ b/drivers/fpga/Kconfig > @@ -69,6 +69,15 @@ config ALTERA_FREEZE_BRIDGE > isolate one region of the FPGA from the busses while that > region is being reprogrammed. > > +config XILINX_PR_DECOUPLER > + tristate "Xilinx LogiCORE PR Decoupler" > + depends on FPGA_BRIDGE > + help > + Say Y to enable drivers for Xilinx LogiCORE PR Decoupler. > + The PR Decoupler exists in the FPGA fabric to isolate one > + region of the FPGA from the busses while that region is > + being reprogrammed during partial reconfig. > + > endif # FPGA > > endmenu > diff --git a/drivers/fpga/Makefile b/drivers/fpga/Makefile > index cc0d364..3f04bcf 100644 > --- a/drivers/fpga/Makefile > +++ b/drivers/fpga/Makefile > @@ -15,6 +15,7 @@ obj-$(CONFIG_FPGA_MGR_ZYNQ_FPGA) += zynq-fpga.o > obj-$(CONFIG_FPGA_BRIDGE) += fpga-bridge.o > obj-$(CONFIG_SOCFPGA_FPGA_BRIDGE) += altera-hps2fpga.o altera-fpga2sdram.o > obj-$(CONFIG_ALTERA_FREEZE_BRIDGE) += altera-freeze-bridge.o > +obj-$(CONFIG_XILINX_PR_DECOUPLER) += xilinx-pr-decoupler.o > > # High Level Interfaces > obj-$(CONFIG_FPGA_REGION) += fpga-region.o > diff --git a/drivers/fpga/xilinx-pr-decoupler.c b/drivers/fpga/xilinx-pr-decoupler.c > new file mode 100644 > index 0000000..761700c > --- /dev/null > +++ b/drivers/fpga/xilinx-pr-decoupler.c > @@ -0,0 +1,147 @@ > +/* > + * Copyright (c) 2017, National Instruments Corp. > + * Copyright (c) 2017, Xilix Inc > + * > + * FPGA Bridge Driver for the Xilinx LogiCORE Partial Reconfiguration > + * Decoupler IP Core. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; version 2 of the License. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define CTRL_CMD_DECOUPLE BIT(0) > +#define CTRL_CMD_COUPLE ~BIT(0) > + > +struct xlnx_pr_decoupler_data { > + void __iomem *io_base; > + struct clk *clk; > +}; > + > +static int xlnx_pr_decoupler_enable_set(struct fpga_bridge *bridge, bool enable) > +{ > + int err; > + struct xlnx_pr_decoupler_data *priv = bridge->priv; > + > + err = clk_enable(priv->clk); > + if (err) > + return err; > + > + if (enable) > + writel(CTRL_CMD_COUPLE, priv->io_base); > + else > + writel(CTRL_CMD_DECOUPLE, priv->io_base); > + > + clk_disable(priv->clk); > + > + return 0; > +} > + > +static int xlnx_pr_decoupler_enable_show(struct fpga_bridge *bridge) > +{ > + const struct xlnx_pr_decoupler_data *priv = bridge->priv; > + u32 status; > + int err; > + > + err = clk_enable(priv->clk); > + if (err) > + return err; > + > + status = readl(priv->io_base); > + > + clk_disable(priv->clk); > + > + return !status; > +} > + > +static struct fpga_bridge_ops xlnx_pr_decoupler_br_ops = { > + .enable_set = xlnx_pr_decoupler_enable_set, > + .enable_show = xlnx_pr_decoupler_enable_show, > +}; > + > +static const struct of_device_id xlnx_pr_decoupler_of_match[] = { > + { .compatible = "xlnx,pr-decoupler-1.00", }, I would add here that generic compatible string too. Signed-off-by: Michal Simek Thanks, Michal