* [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-10 21:30 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-10 21:30 UTC (permalink / raw) To: linux-fpga Cc: robh+dt, mark.rutland, linux-arm-kernel, Moritz Fischer, Michal Simek, Sören Brinkmann, linux-kernel, devicetree This adds the binding documentation for the Xilinx LogiCORE PR Decoupler soft core. Signed-off-by: Moritz Fischer <mdf@kernel.org> Cc: Michal Simek <michal.simek@xilinx.com> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org --- .../bindings/fpga/xilinx-pr-decoupler.txt | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt new file mode 100644 index 0000000..b82b928 --- /dev/null +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt @@ -0,0 +1,24 @@ +Xilinx LogiCORE Partial Reconfig Decoupler Softcore + +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more +decouplers / fpga bridges. +The controller can decouple/disable the bridges which prevents signal +changes from passing through the bridge. The controller can also +couple /enable the bridges which allows traffic to pass through the +bridge normally. + +Required properties: +- compatible : Should contain "xlnx,pr-decoupler-1.00" +- regs : base address and size for decoupler module + +Optional properties: +- bridge-enable : 0 if driver should disable bridge at startup + 1 if driver should enable bridge at startup + Default is to leave bridge in current state. + +Example: + fpga-bridge@100000450 { + compatible = "xlnx,pr-decoupler-1.00"; + regs = <0x1000 0x10>; + bridge-enable = <0>; + }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-10 21:30 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-10 21:30 UTC (permalink / raw) To: linux-arm-kernel This adds the binding documentation for the Xilinx LogiCORE PR Decoupler soft core. Signed-off-by: Moritz Fischer <mdf@kernel.org> Cc: Michal Simek <michal.simek@xilinx.com> Cc: S?ren Brinkmann <soren.brinkmann@xilinx.com> Cc: linux-kernel at vger.kernel.org Cc: devicetree at vger.kernel.org --- .../bindings/fpga/xilinx-pr-decoupler.txt | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt new file mode 100644 index 0000000..b82b928 --- /dev/null +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt @@ -0,0 +1,24 @@ +Xilinx LogiCORE Partial Reconfig Decoupler Softcore + +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more +decouplers / fpga bridges. +The controller can decouple/disable the bridges which prevents signal +changes from passing through the bridge. The controller can also +couple /enable the bridges which allows traffic to pass through the +bridge normally. + +Required properties: +- compatible : Should contain "xlnx,pr-decoupler-1.00" +- regs : base address and size for decoupler module + +Optional properties: +- bridge-enable : 0 if driver should disable bridge at startup + 1 if driver should enable bridge at startup + Default is to leave bridge in current state. + +Example: + fpga-bridge at 100000450 { + compatible = "xlnx,pr-decoupler-1.00"; + regs = <0x1000 0x10>; + bridge-enable = <0>; + }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-10 21:30 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-10 21:30 UTC (permalink / raw) To: linux-fpga-u79uwXL29TY76Z2rM5mHXA Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Moritz Fischer, Michal Simek, Sören Brinkmann, linux-kernel-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA This adds the binding documentation for the Xilinx LogiCORE PR Decoupler soft core. Signed-off-by: Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org --- .../bindings/fpga/xilinx-pr-decoupler.txt | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt new file mode 100644 index 0000000..b82b928 --- /dev/null +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt @@ -0,0 +1,24 @@ +Xilinx LogiCORE Partial Reconfig Decoupler Softcore + +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more +decouplers / fpga bridges. +The controller can decouple/disable the bridges which prevents signal +changes from passing through the bridge. The controller can also +couple /enable the bridges which allows traffic to pass through the +bridge normally. + +Required properties: +- compatible : Should contain "xlnx,pr-decoupler-1.00" +- regs : base address and size for decoupler module + +Optional properties: +- bridge-enable : 0 if driver should disable bridge at startup + 1 if driver should enable bridge at startup + Default is to leave bridge in current state. + +Example: + fpga-bridge@100000450 { + compatible = "xlnx,pr-decoupler-1.00"; + regs = <0x1000 0x10>; + bridge-enable = <0>; + }; -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler 2017-03-10 21:30 ` Moritz Fischer @ 2017-03-10 21:30 ` Moritz Fischer -1 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-10 21:30 UTC (permalink / raw) To: linux-fpga Cc: robh+dt, mark.rutland, linux-arm-kernel, Moritz Fischer, Michal Simek, Sören Brinkmann, linux-kernel, devicetree 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 <mdf@kernel.org> Cc: Michal Simek <michal.simek@xilinx.com> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org --- drivers/fpga/Kconfig | 9 +++ drivers/fpga/Makefile | 1 + drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ 3 files changed, 166 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..07afdd6 --- /dev/null +++ b/drivers/fpga/xilinx-pr-decoupler.c @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2017, National Instruments Corp. + * + * 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 <linux/clk.h> +#include <linux/io.h> +#include <linux/kernel.h> +#include <linux/of_device.h> +#include <linux/module.h> +#include <linux/fpga/fpga-bridge.h> + +#define CTRL_OFFSET 0x00 +#define STATUS_OFFSET 0x00 + +#define CTRL_CMD_MASK BIT(0) +#define CTRL_CMD_DECOUPLE BIT(0) +#define CTRL_CMD_COUPLE ~BIT(0) + +#define STATUS_STATE_MASK BIT(0) +#define STATUS_STATE_COUPLED ~BIT(0) +#define STATUS_STATE_DECOUPLED BIT(0) + +struct xlnx_pr_decoupler_data { + void __iomem *io_base; + struct clk *clk; + bool enable; +}; + +static inline void xlnx_pr_decoupler_write(struct xlnx_pr_decoupler_data *p, + u32 offset, u32 val) +{ + writel(val, p->io_base + offset); +} + +static inline u32 xlnx_pr_decoupler_read(const struct xlnx_pr_decoupler_data *p, + u32 offset) +{ + return readl(p->io_base + offset); +} + +static int xlnx_pr_decoupler_enable_set(struct fpga_bridge *bridge, bool enable) +{ + int err; + struct xlnx_pr_decoupler_data *priv = bridge->priv; + + if (priv->enable != enable) { + err = clk_enable(priv->clk); + if (err) + return err; + + xlnx_pr_decoupler_write(priv, CTRL_OFFSET, + enable ? CTRL_CMD_COUPLE : + CTRL_CMD_DECOUPLE); + + clk_disable(priv->clk); + } + + return 0; +} + +static int xlnx_pr_decoupler_enable_show(struct fpga_bridge *bridge) +{ + const struct xlnx_pr_decoupler_data *p = bridge->priv; + + return p->enable; +} + +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", }, + {}, +}; +MODULE_DEVICE_TABLE(of, xlnx_pr_decoupler_of_match); + +static int xlnx_pr_decoupler_probe(struct platform_device *pdev) +{ + struct xlnx_pr_decoupler_data *priv; + u32 status; + int err; + struct resource *res; + + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + priv->io_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(priv->io_base)) + return PTR_ERR(priv->io_base); + + priv->clk = devm_clk_get(&pdev->dev, "ref_clk"); + if (IS_ERR(priv->clk)) { + dev_err(&pdev->dev, "input clock not found\n"); + return PTR_ERR(priv->clk); + } + + err = clk_prepare_enable(priv->clk); + if (err) { + dev_err(&pdev->dev, "unable to enable clock\n"); + return err; + } + + status = xlnx_pr_decoupler_read(priv, STATUS_OFFSET); + priv->enable = !!(status & STATUS_STATE_MASK); + + clk_disable(priv->clk); + + err = fpga_bridge_register(&pdev->dev, "Xilinx PR Decoupler", + &xlnx_pr_decoupler_br_ops, priv); + + if (err) { + dev_err(&pdev->dev, "unable to register Xilinx PR Decoupler"); + clk_unprepare(priv->clk); + return err; + } + + return 0; +} + +static int xlnx_pr_decoupler_remove(struct platform_device *pdev) +{ + fpga_bridge_unregister(&pdev->dev); + + return 0; +} + +static struct platform_driver xlnx_pr_decoupler_driver = { + .probe = xlnx_pr_decoupler_probe, + .remove = xlnx_pr_decoupler_remove, + .driver = { + .name = "xlnx_pr_decoupler", + .of_match_table = of_match_ptr(xlnx_pr_decoupler_of_match), + }, +}; + +module_platform_driver(xlnx_pr_decoupler_driver); + +MODULE_DESCRIPTION("Xilinx Partial Reconfiguration Decoupler"); +MODULE_AUTHOR("Moritz Fischer <mdf@kernel.org>"); +MODULE_LICENSE("GPL v2"); -- 2.7.4 ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-10 21:30 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-10 21:30 UTC (permalink / raw) To: linux-arm-kernel 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 <mdf@kernel.org> Cc: Michal Simek <michal.simek@xilinx.com> Cc: S?ren Brinkmann <soren.brinkmann@xilinx.com> Cc: linux-kernel at vger.kernel.org Cc: devicetree at vger.kernel.org --- drivers/fpga/Kconfig | 9 +++ drivers/fpga/Makefile | 1 + drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ 3 files changed, 166 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..07afdd6 --- /dev/null +++ b/drivers/fpga/xilinx-pr-decoupler.c @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2017, National Instruments Corp. + * + * 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 <linux/clk.h> +#include <linux/io.h> +#include <linux/kernel.h> +#include <linux/of_device.h> +#include <linux/module.h> +#include <linux/fpga/fpga-bridge.h> + +#define CTRL_OFFSET 0x00 +#define STATUS_OFFSET 0x00 + +#define CTRL_CMD_MASK BIT(0) +#define CTRL_CMD_DECOUPLE BIT(0) +#define CTRL_CMD_COUPLE ~BIT(0) + +#define STATUS_STATE_MASK BIT(0) +#define STATUS_STATE_COUPLED ~BIT(0) +#define STATUS_STATE_DECOUPLED BIT(0) + +struct xlnx_pr_decoupler_data { + void __iomem *io_base; + struct clk *clk; + bool enable; +}; + +static inline void xlnx_pr_decoupler_write(struct xlnx_pr_decoupler_data *p, + u32 offset, u32 val) +{ + writel(val, p->io_base + offset); +} + +static inline u32 xlnx_pr_decoupler_read(const struct xlnx_pr_decoupler_data *p, + u32 offset) +{ + return readl(p->io_base + offset); +} + +static int xlnx_pr_decoupler_enable_set(struct fpga_bridge *bridge, bool enable) +{ + int err; + struct xlnx_pr_decoupler_data *priv = bridge->priv; + + if (priv->enable != enable) { + err = clk_enable(priv->clk); + if (err) + return err; + + xlnx_pr_decoupler_write(priv, CTRL_OFFSET, + enable ? CTRL_CMD_COUPLE : + CTRL_CMD_DECOUPLE); + + clk_disable(priv->clk); + } + + return 0; +} + +static int xlnx_pr_decoupler_enable_show(struct fpga_bridge *bridge) +{ + const struct xlnx_pr_decoupler_data *p = bridge->priv; + + return p->enable; +} + +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", }, + {}, +}; +MODULE_DEVICE_TABLE(of, xlnx_pr_decoupler_of_match); + +static int xlnx_pr_decoupler_probe(struct platform_device *pdev) +{ + struct xlnx_pr_decoupler_data *priv; + u32 status; + int err; + struct resource *res; + + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + priv->io_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(priv->io_base)) + return PTR_ERR(priv->io_base); + + priv->clk = devm_clk_get(&pdev->dev, "ref_clk"); + if (IS_ERR(priv->clk)) { + dev_err(&pdev->dev, "input clock not found\n"); + return PTR_ERR(priv->clk); + } + + err = clk_prepare_enable(priv->clk); + if (err) { + dev_err(&pdev->dev, "unable to enable clock\n"); + return err; + } + + status = xlnx_pr_decoupler_read(priv, STATUS_OFFSET); + priv->enable = !!(status & STATUS_STATE_MASK); + + clk_disable(priv->clk); + + err = fpga_bridge_register(&pdev->dev, "Xilinx PR Decoupler", + &xlnx_pr_decoupler_br_ops, priv); + + if (err) { + dev_err(&pdev->dev, "unable to register Xilinx PR Decoupler"); + clk_unprepare(priv->clk); + return err; + } + + return 0; +} + +static int xlnx_pr_decoupler_remove(struct platform_device *pdev) +{ + fpga_bridge_unregister(&pdev->dev); + + return 0; +} + +static struct platform_driver xlnx_pr_decoupler_driver = { + .probe = xlnx_pr_decoupler_probe, + .remove = xlnx_pr_decoupler_remove, + .driver = { + .name = "xlnx_pr_decoupler", + .of_match_table = of_match_ptr(xlnx_pr_decoupler_of_match), + }, +}; + +module_platform_driver(xlnx_pr_decoupler_driver); + +MODULE_DESCRIPTION("Xilinx Partial Reconfiguration Decoupler"); +MODULE_AUTHOR("Moritz Fischer <mdf@kernel.org>"); +MODULE_LICENSE("GPL v2"); -- 2.7.4 ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-10 22:42 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-10 22:42 UTC (permalink / raw) To: linux-fpga Cc: Rob Herring, Mark Rutland, linux-arm-kernel, Moritz Fischer, Michal Simek, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> > Cc: Michal Simek <michal.simek@xilinx.com> > Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> > Cc: linux-kernel@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > drivers/fpga/Kconfig | 9 +++ > drivers/fpga/Makefile | 1 + > drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ > 3 files changed, 166 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..07afdd6 > --- /dev/null > +++ b/drivers/fpga/xilinx-pr-decoupler.c > @@ -0,0 +1,156 @@ > +/* > + * Copyright (c) 2017, National Instruments Corp. > + * > + * 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 <linux/clk.h> > +#include <linux/io.h> > +#include <linux/kernel.h> > +#include <linux/of_device.h> > +#include <linux/module.h> > +#include <linux/fpga/fpga-bridge.h> > + > +#define CTRL_OFFSET 0x00 > +#define STATUS_OFFSET 0x00 > + > +#define CTRL_CMD_MASK BIT(0) > +#define CTRL_CMD_DECOUPLE BIT(0) > +#define CTRL_CMD_COUPLE ~BIT(0) > + > +#define STATUS_STATE_MASK BIT(0) > +#define STATUS_STATE_COUPLED ~BIT(0) > +#define STATUS_STATE_DECOUPLED BIT(0) > + > +struct xlnx_pr_decoupler_data { > + void __iomem *io_base; > + struct clk *clk; > + bool enable; > +}; > + > +static inline void xlnx_pr_decoupler_write(struct xlnx_pr_decoupler_data *p, > + u32 offset, u32 val) > +{ > + writel(val, p->io_base + offset); > +} > + > +static inline u32 xlnx_pr_decoupler_read(const struct xlnx_pr_decoupler_data *p, > + u32 offset) > +{ > + return readl(p->io_base + offset); > +} > + > +static int xlnx_pr_decoupler_enable_set(struct fpga_bridge *bridge, bool enable) > +{ > + int err; > + struct xlnx_pr_decoupler_data *priv = bridge->priv; > + > + if (priv->enable != enable) { > + err = clk_enable(priv->clk); > + if (err) > + return err; > + > + xlnx_pr_decoupler_write(priv, CTRL_OFFSET, > + enable ? CTRL_CMD_COUPLE : > + CTRL_CMD_DECOUPLE); Needs: + priv->enable = enable; This is obviously garbage, priv->enable doesn't get set ... > + clk_disable(priv->clk); > + } > + > + return 0; > +} > + > +static int xlnx_pr_decoupler_enable_show(struct fpga_bridge *bridge) > +{ > + const struct xlnx_pr_decoupler_data *p = bridge->priv; > + > + return p->enable; > +} > + > +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", }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, xlnx_pr_decoupler_of_match); > + > +static int xlnx_pr_decoupler_probe(struct platform_device *pdev) > +{ > + struct xlnx_pr_decoupler_data *priv; > + u32 status; > + int err; > + struct resource *res; > + > + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > + if (!priv) > + return -ENOMEM; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + priv->io_base = devm_ioremap_resource(&pdev->dev, res); > + if (IS_ERR(priv->io_base)) > + return PTR_ERR(priv->io_base); > + > + priv->clk = devm_clk_get(&pdev->dev, "ref_clk"); > + if (IS_ERR(priv->clk)) { > + dev_err(&pdev->dev, "input clock not found\n"); > + return PTR_ERR(priv->clk); > + } > + > + err = clk_prepare_enable(priv->clk); > + if (err) { > + dev_err(&pdev->dev, "unable to enable clock\n"); > + return err; > + } > + > + status = xlnx_pr_decoupler_read(priv, STATUS_OFFSET); > + priv->enable = !!(status & STATUS_STATE_MASK); > + > + clk_disable(priv->clk); > + > + err = fpga_bridge_register(&pdev->dev, "Xilinx PR Decoupler", > + &xlnx_pr_decoupler_br_ops, priv); > + > + if (err) { > + dev_err(&pdev->dev, "unable to register Xilinx PR Decoupler"); > + clk_unprepare(priv->clk); > + return err; > + } > + > + return 0; > +} > + > +static int xlnx_pr_decoupler_remove(struct platform_device *pdev) > +{ > + fpga_bridge_unregister(&pdev->dev); > + > + return 0; > +} > + > +static struct platform_driver xlnx_pr_decoupler_driver = { > + .probe = xlnx_pr_decoupler_probe, > + .remove = xlnx_pr_decoupler_remove, > + .driver = { > + .name = "xlnx_pr_decoupler", > + .of_match_table = of_match_ptr(xlnx_pr_decoupler_of_match), > + }, > +}; > + > +module_platform_driver(xlnx_pr_decoupler_driver); > + > +MODULE_DESCRIPTION("Xilinx Partial Reconfiguration Decoupler"); > +MODULE_AUTHOR("Moritz Fischer <mdf@kernel.org>"); > +MODULE_LICENSE("GPL v2"); > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fpga" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-10 22:42 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-10 22:42 UTC (permalink / raw) To: linux-arm-kernel On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> > Cc: Michal Simek <michal.simek@xilinx.com> > Cc: S?ren Brinkmann <soren.brinkmann@xilinx.com> > Cc: linux-kernel at vger.kernel.org > Cc: devicetree at vger.kernel.org > --- > drivers/fpga/Kconfig | 9 +++ > drivers/fpga/Makefile | 1 + > drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ > 3 files changed, 166 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..07afdd6 > --- /dev/null > +++ b/drivers/fpga/xilinx-pr-decoupler.c > @@ -0,0 +1,156 @@ > +/* > + * Copyright (c) 2017, National Instruments Corp. > + * > + * 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 <linux/clk.h> > +#include <linux/io.h> > +#include <linux/kernel.h> > +#include <linux/of_device.h> > +#include <linux/module.h> > +#include <linux/fpga/fpga-bridge.h> > + > +#define CTRL_OFFSET 0x00 > +#define STATUS_OFFSET 0x00 > + > +#define CTRL_CMD_MASK BIT(0) > +#define CTRL_CMD_DECOUPLE BIT(0) > +#define CTRL_CMD_COUPLE ~BIT(0) > + > +#define STATUS_STATE_MASK BIT(0) > +#define STATUS_STATE_COUPLED ~BIT(0) > +#define STATUS_STATE_DECOUPLED BIT(0) > + > +struct xlnx_pr_decoupler_data { > + void __iomem *io_base; > + struct clk *clk; > + bool enable; > +}; > + > +static inline void xlnx_pr_decoupler_write(struct xlnx_pr_decoupler_data *p, > + u32 offset, u32 val) > +{ > + writel(val, p->io_base + offset); > +} > + > +static inline u32 xlnx_pr_decoupler_read(const struct xlnx_pr_decoupler_data *p, > + u32 offset) > +{ > + return readl(p->io_base + offset); > +} > + > +static int xlnx_pr_decoupler_enable_set(struct fpga_bridge *bridge, bool enable) > +{ > + int err; > + struct xlnx_pr_decoupler_data *priv = bridge->priv; > + > + if (priv->enable != enable) { > + err = clk_enable(priv->clk); > + if (err) > + return err; > + > + xlnx_pr_decoupler_write(priv, CTRL_OFFSET, > + enable ? CTRL_CMD_COUPLE : > + CTRL_CMD_DECOUPLE); Needs: + priv->enable = enable; This is obviously garbage, priv->enable doesn't get set ... > + clk_disable(priv->clk); > + } > + > + return 0; > +} > + > +static int xlnx_pr_decoupler_enable_show(struct fpga_bridge *bridge) > +{ > + const struct xlnx_pr_decoupler_data *p = bridge->priv; > + > + return p->enable; > +} > + > +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", }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, xlnx_pr_decoupler_of_match); > + > +static int xlnx_pr_decoupler_probe(struct platform_device *pdev) > +{ > + struct xlnx_pr_decoupler_data *priv; > + u32 status; > + int err; > + struct resource *res; > + > + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > + if (!priv) > + return -ENOMEM; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + priv->io_base = devm_ioremap_resource(&pdev->dev, res); > + if (IS_ERR(priv->io_base)) > + return PTR_ERR(priv->io_base); > + > + priv->clk = devm_clk_get(&pdev->dev, "ref_clk"); > + if (IS_ERR(priv->clk)) { > + dev_err(&pdev->dev, "input clock not found\n"); > + return PTR_ERR(priv->clk); > + } > + > + err = clk_prepare_enable(priv->clk); > + if (err) { > + dev_err(&pdev->dev, "unable to enable clock\n"); > + return err; > + } > + > + status = xlnx_pr_decoupler_read(priv, STATUS_OFFSET); > + priv->enable = !!(status & STATUS_STATE_MASK); > + > + clk_disable(priv->clk); > + > + err = fpga_bridge_register(&pdev->dev, "Xilinx PR Decoupler", > + &xlnx_pr_decoupler_br_ops, priv); > + > + if (err) { > + dev_err(&pdev->dev, "unable to register Xilinx PR Decoupler"); > + clk_unprepare(priv->clk); > + return err; > + } > + > + return 0; > +} > + > +static int xlnx_pr_decoupler_remove(struct platform_device *pdev) > +{ > + fpga_bridge_unregister(&pdev->dev); > + > + return 0; > +} > + > +static struct platform_driver xlnx_pr_decoupler_driver = { > + .probe = xlnx_pr_decoupler_probe, > + .remove = xlnx_pr_decoupler_remove, > + .driver = { > + .name = "xlnx_pr_decoupler", > + .of_match_table = of_match_ptr(xlnx_pr_decoupler_of_match), > + }, > +}; > + > +module_platform_driver(xlnx_pr_decoupler_driver); > + > +MODULE_DESCRIPTION("Xilinx Partial Reconfiguration Decoupler"); > +MODULE_AUTHOR("Moritz Fischer <mdf@kernel.org>"); > +MODULE_LICENSE("GPL v2"); > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fpga" in > the body of a message to majordomo at vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-10 22:42 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-10 22:42 UTC (permalink / raw) To: linux-fpga-u79uwXL29TY76Z2rM5mHXA Cc: Rob Herring, Mark Rutland, linux-arm-kernel, Moritz Fischer, Michal Simek, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 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 <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Cc: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > --- > drivers/fpga/Kconfig | 9 +++ > drivers/fpga/Makefile | 1 + > drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ > 3 files changed, 166 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..07afdd6 > --- /dev/null > +++ b/drivers/fpga/xilinx-pr-decoupler.c > @@ -0,0 +1,156 @@ > +/* > + * Copyright (c) 2017, National Instruments Corp. > + * > + * 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 <linux/clk.h> > +#include <linux/io.h> > +#include <linux/kernel.h> > +#include <linux/of_device.h> > +#include <linux/module.h> > +#include <linux/fpga/fpga-bridge.h> > + > +#define CTRL_OFFSET 0x00 > +#define STATUS_OFFSET 0x00 > + > +#define CTRL_CMD_MASK BIT(0) > +#define CTRL_CMD_DECOUPLE BIT(0) > +#define CTRL_CMD_COUPLE ~BIT(0) > + > +#define STATUS_STATE_MASK BIT(0) > +#define STATUS_STATE_COUPLED ~BIT(0) > +#define STATUS_STATE_DECOUPLED BIT(0) > + > +struct xlnx_pr_decoupler_data { > + void __iomem *io_base; > + struct clk *clk; > + bool enable; > +}; > + > +static inline void xlnx_pr_decoupler_write(struct xlnx_pr_decoupler_data *p, > + u32 offset, u32 val) > +{ > + writel(val, p->io_base + offset); > +} > + > +static inline u32 xlnx_pr_decoupler_read(const struct xlnx_pr_decoupler_data *p, > + u32 offset) > +{ > + return readl(p->io_base + offset); > +} > + > +static int xlnx_pr_decoupler_enable_set(struct fpga_bridge *bridge, bool enable) > +{ > + int err; > + struct xlnx_pr_decoupler_data *priv = bridge->priv; > + > + if (priv->enable != enable) { > + err = clk_enable(priv->clk); > + if (err) > + return err; > + > + xlnx_pr_decoupler_write(priv, CTRL_OFFSET, > + enable ? CTRL_CMD_COUPLE : > + CTRL_CMD_DECOUPLE); Needs: + priv->enable = enable; This is obviously garbage, priv->enable doesn't get set ... > + clk_disable(priv->clk); > + } > + > + return 0; > +} > + > +static int xlnx_pr_decoupler_enable_show(struct fpga_bridge *bridge) > +{ > + const struct xlnx_pr_decoupler_data *p = bridge->priv; > + > + return p->enable; > +} > + > +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", }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, xlnx_pr_decoupler_of_match); > + > +static int xlnx_pr_decoupler_probe(struct platform_device *pdev) > +{ > + struct xlnx_pr_decoupler_data *priv; > + u32 status; > + int err; > + struct resource *res; > + > + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > + if (!priv) > + return -ENOMEM; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + priv->io_base = devm_ioremap_resource(&pdev->dev, res); > + if (IS_ERR(priv->io_base)) > + return PTR_ERR(priv->io_base); > + > + priv->clk = devm_clk_get(&pdev->dev, "ref_clk"); > + if (IS_ERR(priv->clk)) { > + dev_err(&pdev->dev, "input clock not found\n"); > + return PTR_ERR(priv->clk); > + } > + > + err = clk_prepare_enable(priv->clk); > + if (err) { > + dev_err(&pdev->dev, "unable to enable clock\n"); > + return err; > + } > + > + status = xlnx_pr_decoupler_read(priv, STATUS_OFFSET); > + priv->enable = !!(status & STATUS_STATE_MASK); > + > + clk_disable(priv->clk); > + > + err = fpga_bridge_register(&pdev->dev, "Xilinx PR Decoupler", > + &xlnx_pr_decoupler_br_ops, priv); > + > + if (err) { > + dev_err(&pdev->dev, "unable to register Xilinx PR Decoupler"); > + clk_unprepare(priv->clk); > + return err; > + } > + > + return 0; > +} > + > +static int xlnx_pr_decoupler_remove(struct platform_device *pdev) > +{ > + fpga_bridge_unregister(&pdev->dev); > + > + return 0; > +} > + > +static struct platform_driver xlnx_pr_decoupler_driver = { > + .probe = xlnx_pr_decoupler_probe, > + .remove = xlnx_pr_decoupler_remove, > + .driver = { > + .name = "xlnx_pr_decoupler", > + .of_match_table = of_match_ptr(xlnx_pr_decoupler_of_match), > + }, > +}; > + > +module_platform_driver(xlnx_pr_decoupler_driver); > + > +MODULE_DESCRIPTION("Xilinx Partial Reconfiguration Decoupler"); > +MODULE_AUTHOR("Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>"); > +MODULE_LICENSE("GPL v2"); > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fpga" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-13 10:27 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-13 10:27 UTC (permalink / raw) To: Moritz Fischer, linux-fpga Cc: Rob Herring, Mark Rutland, linux-arm-kernel, Michal Simek, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List Hi Moritz, On 10.3.2017 23:42, Moritz Fischer wrote: > On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> >> Cc: Michal Simek <michal.simek@xilinx.com> >> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> >> Cc: linux-kernel@vger.kernel.org >> Cc: devicetree@vger.kernel.org >> --- >> drivers/fpga/Kconfig | 9 +++ >> drivers/fpga/Makefile | 1 + >> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >> 3 files changed, 166 insertions(+) >> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c I have written very similar driver some week ago but didn't sent it out. Here it is. https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c Your clk handling is better and my enable_show is better. You shouldn't rely on setting status before. It is better to read that reg again. The reason is you can connect status signal from one PR decoupler to decouple input which can change status There is another topic I wanted to open in connection to this. There should be gpio based bridge because this pr decoupler can be without axi interface and for that gpio driver would be useful. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-13 10:27 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-13 10:27 UTC (permalink / raw) To: linux-arm-kernel Hi Moritz, On 10.3.2017 23:42, Moritz Fischer wrote: > On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> >> Cc: Michal Simek <michal.simek@xilinx.com> >> Cc: S?ren Brinkmann <soren.brinkmann@xilinx.com> >> Cc: linux-kernel at vger.kernel.org >> Cc: devicetree at vger.kernel.org >> --- >> drivers/fpga/Kconfig | 9 +++ >> drivers/fpga/Makefile | 1 + >> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >> 3 files changed, 166 insertions(+) >> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c I have written very similar driver some week ago but didn't sent it out. Here it is. https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c Your clk handling is better and my enable_show is better. You shouldn't rely on setting status before. It is better to read that reg again. The reason is you can connect status signal from one PR decoupler to decouple input which can change status There is another topic I wanted to open in connection to this. There should be gpio based bridge because this pr decoupler can be without axi interface and for that gpio driver would be useful. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-13 10:27 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-13 10:27 UTC (permalink / raw) To: Moritz Fischer, linux-fpga Cc: Rob Herring, Mark Rutland, linux-arm-kernel, Michal Simek, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List Hi Moritz, On 10.3.2017 23:42, Moritz Fischer wrote: > On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> >> Cc: Michal Simek <michal.simek@xilinx.com> >> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> >> Cc: linux-kernel@vger.kernel.org >> Cc: devicetree@vger.kernel.org >> --- >> drivers/fpga/Kconfig | 9 +++ >> drivers/fpga/Makefile | 1 + >> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >> 3 files changed, 166 insertions(+) >> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c I have written very similar driver some week ago but didn't sent it out. Here it is. https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c Your clk handling is better and my enable_show is better. You shouldn't rely on setting status before. It is better to read that reg again. The reason is you can connect status signal from one PR decoupler to decouple input which can change status There is another topic I wanted to open in connection to this. There should be gpio based bridge because this pr decoupler can be without axi interface and for that gpio driver would be useful. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-13 10:27 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-13 10:27 UTC (permalink / raw) To: Moritz Fischer, linux-fpga-u79uwXL29TY76Z2rM5mHXA Cc: Rob Herring, Mark Rutland, linux-arm-kernel, Michal Simek, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List Hi Moritz, On 10.3.2017 23:42, Moritz Fischer wrote: > On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 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 <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >> Cc: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> >> Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> >> Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> --- >> drivers/fpga/Kconfig | 9 +++ >> drivers/fpga/Makefile | 1 + >> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >> 3 files changed, 166 insertions(+) >> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c I have written very similar driver some week ago but didn't sent it out. Here it is. https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c Your clk handling is better and my enable_show is better. You shouldn't rely on setting status before. It is better to read that reg again. The reason is you can connect status signal from one PR decoupler to decouple input which can change status There is another topic I wanted to open in connection to this. There should be gpio based bridge because this pr decoupler can be without axi interface and for that gpio driver would be useful. Thanks, Michal -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-13 16:18 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-13 16:18 UTC (permalink / raw) To: Michal Simek Cc: linux-fpga, Rob Herring, Mark Rutland, linux-arm-kernel, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List On Mon, Mar 13, 2017 at 3:27 AM, Michal Simek <michal.simek@xilinx.com> wrote: > Hi Moritz, > > On 10.3.2017 23:42, Moritz Fischer wrote: >> On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> >>> Cc: Michal Simek <michal.simek@xilinx.com> >>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> >>> Cc: linux-kernel@vger.kernel.org >>> Cc: devicetree@vger.kernel.org >>> --- >>> drivers/fpga/Kconfig | 9 +++ >>> drivers/fpga/Makefile | 1 + >>> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >>> 3 files changed, 166 insertions(+) >>> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c > > I have written very similar driver some week ago but didn't sent it out. Hah. I'll take a look. > Here it is. > https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c > > Your clk handling is better and my enable_show is better. > You shouldn't rely on setting status before. It is better to read that > reg again. The reason is you can connect status signal from one PR > decoupler to decouple input which can change status I will just merge them together and add you to author's list if that's fine with you? > There is another topic I wanted to open in connection to this. There > should be gpio based bridge because this pr decoupler can be without axi > interface and for that gpio driver would be useful. That's a good idea. I can look at that. This can be pretty generic code I suppose. Cheers, Moritz ^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-13 16:18 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-13 16:18 UTC (permalink / raw) To: linux-arm-kernel On Mon, Mar 13, 2017 at 3:27 AM, Michal Simek <michal.simek@xilinx.com> wrote: > Hi Moritz, > > On 10.3.2017 23:42, Moritz Fischer wrote: >> On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> >>> Cc: Michal Simek <michal.simek@xilinx.com> >>> Cc: S?ren Brinkmann <soren.brinkmann@xilinx.com> >>> Cc: linux-kernel at vger.kernel.org >>> Cc: devicetree at vger.kernel.org >>> --- >>> drivers/fpga/Kconfig | 9 +++ >>> drivers/fpga/Makefile | 1 + >>> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >>> 3 files changed, 166 insertions(+) >>> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c > > I have written very similar driver some week ago but didn't sent it out. Hah. I'll take a look. > Here it is. > https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c > > Your clk handling is better and my enable_show is better. > You shouldn't rely on setting status before. It is better to read that > reg again. The reason is you can connect status signal from one PR > decoupler to decouple input which can change status I will just merge them together and add you to author's list if that's fine with you? > There is another topic I wanted to open in connection to this. There > should be gpio based bridge because this pr decoupler can be without axi > interface and for that gpio driver would be useful. That's a good idea. I can look at that. This can be pretty generic code I suppose. Cheers, Moritz ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-13 16:18 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-03-13 16:18 UTC (permalink / raw) To: Michal Simek Cc: linux-fpga-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Mark Rutland, linux-arm-kernel, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List On Mon, Mar 13, 2017 at 3:27 AM, Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> wrote: > Hi Moritz, > > On 10.3.2017 23:42, Moritz Fischer wrote: >> On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 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 <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >>> Cc: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> >>> Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> >>> Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >>> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >>> --- >>> drivers/fpga/Kconfig | 9 +++ >>> drivers/fpga/Makefile | 1 + >>> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >>> 3 files changed, 166 insertions(+) >>> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c > > I have written very similar driver some week ago but didn't sent it out. Hah. I'll take a look. > Here it is. > https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c > > Your clk handling is better and my enable_show is better. > You shouldn't rely on setting status before. It is better to read that > reg again. The reason is you can connect status signal from one PR > decoupler to decouple input which can change status I will just merge them together and add you to author's list if that's fine with you? > There is another topic I wanted to open in connection to this. There > should be gpio based bridge because this pr decoupler can be without axi > interface and for that gpio driver would be useful. That's a good idea. I can look at that. This can be pretty generic code I suppose. Cheers, Moritz -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-14 6:40 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-14 6:40 UTC (permalink / raw) To: Moritz Fischer, Michal Simek Cc: linux-fpga, Rob Herring, Mark Rutland, linux-arm-kernel, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List On 13.3.2017 17:18, Moritz Fischer wrote: > On Mon, Mar 13, 2017 at 3:27 AM, Michal Simek <michal.simek@xilinx.com> wrote: >> Hi Moritz, >> >> On 10.3.2017 23:42, Moritz Fischer wrote: >>> On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> >>>> Cc: Michal Simek <michal.simek@xilinx.com> >>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> >>>> Cc: linux-kernel@vger.kernel.org >>>> Cc: devicetree@vger.kernel.org >>>> --- >>>> drivers/fpga/Kconfig | 9 +++ >>>> drivers/fpga/Makefile | 1 + >>>> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >>>> 3 files changed, 166 insertions(+) >>>> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c >> >> I have written very similar driver some week ago but didn't sent it out. > > Hah. I'll take a look. > >> Here it is. >> https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c >> >> Your clk handling is better and my enable_show is better. >> You shouldn't rely on setting status before. It is better to read that >> reg again. The reason is you can connect status signal from one PR >> decoupler to decouple input which can change status > > I will just merge them together and add you to author's list if that's > fine with you? sure. Go ahead. > >> There is another topic I wanted to open in connection to this. There >> should be gpio based bridge because this pr decoupler can be without axi >> interface and for that gpio driver would be useful. > > That's a good idea. I can look at that. This can be pretty generic > code I suppose. yes - it should be. Simple gpio driver with polarity support should be enough. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-14 6:40 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-14 6:40 UTC (permalink / raw) To: linux-arm-kernel On 13.3.2017 17:18, Moritz Fischer wrote: > On Mon, Mar 13, 2017 at 3:27 AM, Michal Simek <michal.simek@xilinx.com> wrote: >> Hi Moritz, >> >> On 10.3.2017 23:42, Moritz Fischer wrote: >>> On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> >>>> Cc: Michal Simek <michal.simek@xilinx.com> >>>> Cc: S?ren Brinkmann <soren.brinkmann@xilinx.com> >>>> Cc: linux-kernel at vger.kernel.org >>>> Cc: devicetree at vger.kernel.org >>>> --- >>>> drivers/fpga/Kconfig | 9 +++ >>>> drivers/fpga/Makefile | 1 + >>>> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >>>> 3 files changed, 166 insertions(+) >>>> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c >> >> I have written very similar driver some week ago but didn't sent it out. > > Hah. I'll take a look. > >> Here it is. >> https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c >> >> Your clk handling is better and my enable_show is better. >> You shouldn't rely on setting status before. It is better to read that >> reg again. The reason is you can connect status signal from one PR >> decoupler to decouple input which can change status > > I will just merge them together and add you to author's list if that's > fine with you? sure. Go ahead. > >> There is another topic I wanted to open in connection to this. There >> should be gpio based bridge because this pr decoupler can be without axi >> interface and for that gpio driver would be useful. > > That's a good idea. I can look at that. This can be pretty generic > code I suppose. yes - it should be. Simple gpio driver with polarity support should be enough. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-14 6:40 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-14 6:40 UTC (permalink / raw) To: Moritz Fischer, Michal Simek Cc: linux-fpga, Rob Herring, Mark Rutland <mark.rutland@arm.com>, linux-arm-kernel, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List On 13.3.2017 17:18, Moritz Fischer wrote: > On Mon, Mar 13, 2017 at 3:27 AM, Michal Simek <michal.simek@xilinx.com> wrote: >> Hi Moritz, >> >> On 10.3.2017 23:42, Moritz Fischer wrote: >>> On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf@kernel.org> 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 <mdf@kernel.org> >>>> Cc: Michal Simek <michal.simek@xilinx.com> >>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> >>>> Cc: linux-kernel@vger.kernel.org >>>> Cc: devicetree@vger.kernel.org >>>> --- >>>> drivers/fpga/Kconfig | 9 +++ >>>> drivers/fpga/Makefile | 1 + >>>> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >>>> 3 files changed, 166 insertions(+) >>>> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c >> >> I have written very similar driver some week ago but didn't sent it out. > > Hah. I'll take a look. > >> Here it is. >> https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c >> >> Your clk handling is better and my enable_show is better. >> You shouldn't rely on setting status before. It is better to read that >> reg again. The reason is you can connect status signal from one PR >> decoupler to decouple input which can change status > > I will just merge them together and add you to author's list if that's > fine with you? sure. Go ahead. > >> There is another topic I wanted to open in connection to this. There >> should be gpio based bridge because this pr decoupler can be without axi >> interface and for that gpio driver would be useful. > > That's a good idea. I can look at that. This can be pretty generic > code I suppose. yes - it should be. Simple gpio driver with polarity support should be enough. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler @ 2017-03-14 6:40 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-14 6:40 UTC (permalink / raw) To: Moritz Fischer, Michal Simek Cc: linux-fpga-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Mark Rutland, linux-arm-kernel, Sören Brinkmann, Linux Kernel Mailing List, Devicetree List On 13.3.2017 17:18, Moritz Fischer wrote: > On Mon, Mar 13, 2017 at 3:27 AM, Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> wrote: >> Hi Moritz, >> >> On 10.3.2017 23:42, Moritz Fischer wrote: >>> On Fri, Mar 10, 2017 at 1:30 PM, Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 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 <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >>>> Cc: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> >>>> Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> >>>> Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >>>> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >>>> --- >>>> drivers/fpga/Kconfig | 9 +++ >>>> drivers/fpga/Makefile | 1 + >>>> drivers/fpga/xilinx-pr-decoupler.c | 156 +++++++++++++++++++++++++++++++++++++ >>>> 3 files changed, 166 insertions(+) >>>> create mode 100644 drivers/fpga/xilinx-pr-decoupler.c >> >> I have written very similar driver some week ago but didn't sent it out. > > Hah. I'll take a look. > >> Here it is. >> https://github.com/Xilinx/linux-xlnx/blob/master/drivers/fpga/xilinx-pr-decoupler.c >> >> Your clk handling is better and my enable_show is better. >> You shouldn't rely on setting status before. It is better to read that >> reg again. The reason is you can connect status signal from one PR >> decoupler to decouple input which can change status > > I will just merge them together and add you to author's list if that's > fine with you? sure. Go ahead. > >> There is another topic I wanted to open in connection to this. There >> should be gpio based bridge because this pr decoupler can be without axi >> interface and for that gpio driver would be useful. > > That's a good idea. I can look at that. This can be pretty generic > code I suppose. yes - it should be. Simple gpio driver with polarity support should be enough. Thanks, Michal -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-13 10:29 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-13 10:29 UTC (permalink / raw) To: Moritz Fischer, linux-fpga Cc: robh+dt, mark.rutland, linux-arm-kernel, Michal Simek, Sören Brinkmann, linux-kernel, devicetree On 10.3.2017 22:30, Moritz Fischer wrote: > This adds the binding documentation for the Xilinx LogiCORE PR > Decoupler soft core. > > Signed-off-by: Moritz Fischer <mdf@kernel.org> > Cc: Michal Simek <michal.simek@xilinx.com> > Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> > Cc: linux-kernel@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > .../bindings/fpga/xilinx-pr-decoupler.txt | 24 ++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > new file mode 100644 > index 0000000..b82b928 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > @@ -0,0 +1,24 @@ > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > + > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > +decouplers / fpga bridges. > +The controller can decouple/disable the bridges which prevents signal > +changes from passing through the bridge. The controller can also > +couple /enable the bridges which allows traffic to pass through the > +bridge normally. > + > +Required properties: > +- compatible : Should contain "xlnx,pr-decoupler-1.00" > +- regs : base address and size for decoupler module > + > +Optional properties: > +- bridge-enable : 0 if driver should disable bridge at startup > + 1 if driver should enable bridge at startup > + Default is to leave bridge in current state. > + > +Example: > + fpga-bridge@100000450 { > + compatible = "xlnx,pr-decoupler-1.00"; > + regs = <0x1000 0x10>; > + bridge-enable = <0>; > + }; > Look at. https://github.com/Xilinx/linux-xlnx/blob/master/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt And you miss above required clk property. I do use aclk because this is what it is shown in vivado. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-13 10:29 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-13 10:29 UTC (permalink / raw) To: linux-arm-kernel On 10.3.2017 22:30, Moritz Fischer wrote: > This adds the binding documentation for the Xilinx LogiCORE PR > Decoupler soft core. > > Signed-off-by: Moritz Fischer <mdf@kernel.org> > Cc: Michal Simek <michal.simek@xilinx.com> > Cc: S?ren Brinkmann <soren.brinkmann@xilinx.com> > Cc: linux-kernel at vger.kernel.org > Cc: devicetree at vger.kernel.org > --- > .../bindings/fpga/xilinx-pr-decoupler.txt | 24 ++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > new file mode 100644 > index 0000000..b82b928 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > @@ -0,0 +1,24 @@ > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > + > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > +decouplers / fpga bridges. > +The controller can decouple/disable the bridges which prevents signal > +changes from passing through the bridge. The controller can also > +couple /enable the bridges which allows traffic to pass through the > +bridge normally. > + > +Required properties: > +- compatible : Should contain "xlnx,pr-decoupler-1.00" > +- regs : base address and size for decoupler module > + > +Optional properties: > +- bridge-enable : 0 if driver should disable bridge at startup > + 1 if driver should enable bridge at startup > + Default is to leave bridge in current state. > + > +Example: > + fpga-bridge at 100000450 { > + compatible = "xlnx,pr-decoupler-1.00"; > + regs = <0x1000 0x10>; > + bridge-enable = <0>; > + }; > Look at. https://github.com/Xilinx/linux-xlnx/blob/master/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt And you miss above required clk property. I do use aclk because this is what it is shown in vivado. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-13 10:29 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-13 10:29 UTC (permalink / raw) To: Moritz Fischer, linux-fpga Cc: robh+dt, mark.rutland, linux-arm-kernel, Michal Simek, Sören Brinkmann, linux-kernel, devicetree On 10.3.2017 22:30, Moritz Fischer wrote: > This adds the binding documentation for the Xilinx LogiCORE PR > Decoupler soft core. > > Signed-off-by: Moritz Fischer <mdf@kernel.org> > Cc: Michal Simek <michal.simek@xilinx.com> > Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> > Cc: linux-kernel@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > .../bindings/fpga/xilinx-pr-decoupler.txt | 24 ++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > new file mode 100644 > index 0000000..b82b928 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > @@ -0,0 +1,24 @@ > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > + > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > +decouplers / fpga bridges. > +The controller can decouple/disable the bridges which prevents signal > +changes from passing through the bridge. The controller can also > +couple /enable the bridges which allows traffic to pass through the > +bridge normally. > + > +Required properties: > +- compatible : Should contain "xlnx,pr-decoupler-1.00" > +- regs : base address and size for decoupler module > + > +Optional properties: > +- bridge-enable : 0 if driver should disable bridge at startup > + 1 if driver should enable bridge at startup > + Default is to leave bridge in current state. > + > +Example: > + fpga-bridge@100000450 { > + compatible = "xlnx,pr-decoupler-1.00"; > + regs = <0x1000 0x10>; > + bridge-enable = <0>; > + }; > Look at. https://github.com/Xilinx/linux-xlnx/blob/master/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt And you miss above required clk property. I do use aclk because this is what it is shown in vivado. Thanks, Michal ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-13 10:29 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-03-13 10:29 UTC (permalink / raw) To: Moritz Fischer, linux-fpga-u79uwXL29TY76Z2rM5mHXA Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Michal Simek, Sören Brinkmann, linux-kernel-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA On 10.3.2017 22:30, Moritz Fischer wrote: > This adds the binding documentation for the Xilinx LogiCORE PR > Decoupler soft core. > > Signed-off-by: Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Cc: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > --- > .../bindings/fpga/xilinx-pr-decoupler.txt | 24 ++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > new file mode 100644 > index 0000000..b82b928 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > @@ -0,0 +1,24 @@ > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > + > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > +decouplers / fpga bridges. > +The controller can decouple/disable the bridges which prevents signal > +changes from passing through the bridge. The controller can also > +couple /enable the bridges which allows traffic to pass through the > +bridge normally. > + > +Required properties: > +- compatible : Should contain "xlnx,pr-decoupler-1.00" > +- regs : base address and size for decoupler module > + > +Optional properties: > +- bridge-enable : 0 if driver should disable bridge at startup > + 1 if driver should enable bridge at startup > + Default is to leave bridge in current state. > + > +Example: > + fpga-bridge@100000450 { > + compatible = "xlnx,pr-decoupler-1.00"; > + regs = <0x1000 0x10>; > + bridge-enable = <0>; > + }; > Look at. https://github.com/Xilinx/linux-xlnx/blob/master/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt And you miss above required clk property. I do use aclk because this is what it is shown in vivado. Thanks, Michal -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 0/2] fpga: Xilinx LogiCore PR Decoupler @ 2017-03-24 15:33 Alan Tull 2017-03-24 15:33 ` [PATCH 1/2] doc: Add bindings document for " Alan Tull 0 siblings, 1 reply; 33+ messages in thread From: Alan Tull @ 2017-03-24 15:33 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: Moritz Fischer, Alan Tull, linux-kernel, linux-fpga Hi Greg, Please take these two patches for Xilinx LogiCore PR Decouper for the FPGA bridge framework. Thanks, Alan Moritz Fischer (2): doc: Add bindings document for Xilinx LogiCore PR Decoupler fpga: Add support for Xilinx LogiCORE PR Decoupler .../bindings/fpga/xilinx-pr-decoupler.txt | 35 +++++ drivers/fpga/Kconfig | 10 ++ drivers/fpga/Makefile | 1 + drivers/fpga/xilinx-pr-decoupler.c | 161 +++++++++++++++++++++ 4 files changed, 207 insertions(+) create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt create mode 100644 drivers/fpga/xilinx-pr-decoupler.c -- 2.11.0 ^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler 2017-03-24 15:33 [PATCH 0/2] fpga: " Alan Tull @ 2017-03-24 15:33 ` Alan Tull 2017-03-30 22:44 ` Rob Herring 0 siblings, 1 reply; 33+ messages in thread From: Alan Tull @ 2017-03-24 15:33 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Moritz Fischer, Alan Tull, linux-kernel, linux-fpga, Moritz Fischer, Michal Simek, Sören Brinkmann, devicetree From: Moritz Fischer <mdf@kernel.org> This adds the binding documentation for the Xilinx LogiCORE PR Decoupler soft core. Signed-off-by: Moritz Fischer <mdf@kernel.org> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Acked-by: Alan Tull <atull@kernel.org> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org --- .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt new file mode 100644 index 000000000000..2c527ac30398 --- /dev/null +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt @@ -0,0 +1,35 @@ +Xilinx LogiCORE Partial Reconfig Decoupler Softcore + +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more +decouplers / fpga bridges. +The controller can decouple/disable the bridges which prevents signal +changes from passing through the bridge. The controller can also +couple / enable the bridges which allows traffic to pass through the +bridge normally. + +The Driver supports only MMIO handling. A PR region can have multiple +PR Decouplers which can be handled independently or chained via decouple/ +decouple_status signals. + +Required properties: +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" +- regs : base address and size for decoupler module +- clocks : input clock to IP +- clock-names : should contain "aclk" + +Optional properties: +- bridge-enable : 0 if driver should disable bridge at startup + 1 if driver should enable bridge at startup + Default is to leave bridge in current state. + +See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings. + +Example: + fpga-bridge@100000450 { + compatible = "xlnx,pr-decoupler-1.00", + "xlnx-pr-decoupler"; + regs = <0x10000045 0x10>; + clocks = <&clkc 15>; + clock-names = "aclk"; + bridge-enable = <0>; + }; -- 2.11.0 ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-30 22:44 ` Rob Herring 0 siblings, 0 replies; 33+ messages in thread From: Rob Herring @ 2017-03-30 22:44 UTC (permalink / raw) To: Alan Tull Cc: Greg Kroah-Hartman, Moritz Fischer, linux-kernel, linux-fpga, Moritz Fischer, Michal Simek, Sören Brinkmann, devicetree On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: > From: Moritz Fischer <mdf@kernel.org> Please use "dt-bindings: fpga: ..." for the subject. > > This adds the binding documentation for the Xilinx LogiCORE PR > Decoupler soft core. > > Signed-off-by: Moritz Fischer <mdf@kernel.org> > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > Acked-by: Alan Tull <atull@kernel.org> I'm confused why you are sending these instead of Moritz? If it goes through you, then it should have your S-o-B too. > Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> > Cc: linux-kernel@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > new file mode 100644 > index 000000000000..2c527ac30398 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > @@ -0,0 +1,35 @@ > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > + > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > +decouplers / fpga bridges. > +The controller can decouple/disable the bridges which prevents signal > +changes from passing through the bridge. The controller can also > +couple / enable the bridges which allows traffic to pass through the > +bridge normally. > + > +The Driver supports only MMIO handling. A PR region can have multiple > +PR Decouplers which can be handled independently or chained via decouple/ > +decouple_status signals. > + > +Required properties: > +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather "followed by". Plus the example has both. > +- regs : base address and size for decoupler module > +- clocks : input clock to IP > +- clock-names : should contain "aclk" > + > +Optional properties: > +- bridge-enable : 0 if driver should disable bridge at startup > + 1 if driver should enable bridge at startup > + Default is to leave bridge in current state. > + > +See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings. > + > +Example: > + fpga-bridge@100000450 { > + compatible = "xlnx,pr-decoupler-1.00", > + "xlnx-pr-decoupler"; > + regs = <0x10000045 0x10>; > + clocks = <&clkc 15>; > + clock-names = "aclk"; > + bridge-enable = <0>; > + }; > -- > 2.11.0 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-30 22:44 ` Rob Herring 0 siblings, 0 replies; 33+ messages in thread From: Rob Herring @ 2017-03-30 22:44 UTC (permalink / raw) To: Alan Tull Cc: Greg Kroah-Hartman, Moritz Fischer, linux-kernel, linux-fpga, Moritz Fischer, Michal Simek, Sören Brinkmann, devicetree On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: > From: Moritz Fischer <mdf@kernel.org> Please use "dt-bindings: fpga: ..." for the subject. > > This adds the binding documentation for the Xilinx LogiCORE PR > Decoupler soft core. > > Signed-off-by: Moritz Fischer <mdf@kernel.org> > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > Acked-by: Alan Tull <atull@kernel.org> I'm confused why you are sending these instead of Moritz? If it goes through you, then it should have your S-o-B too. > Cc: S�ren Brinkmann <soren.brinkmann@xilinx.com> > Cc: linux-kernel@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > new file mode 100644 > index 000000000000..2c527ac30398 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > @@ -0,0 +1,35 @@ > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > + > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > +decouplers / fpga bridges. > +The controller can decouple/disable the bridges which prevents signal > +changes from passing through the bridge. The controller can also > +couple / enable the bridges which allows traffic to pass through the > +bridge normally. > + > +The Driver supports only MMIO handling. A PR region can have multiple > +PR Decouplers which can be handled independently or chained via decouple/ > +decouple_status signals. > + > +Required properties: > +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather "followed by". Plus the example has both. > +- regs : base address and size for decoupler module > +- clocks : input clock to IP > +- clock-names : should contain "aclk" > + > +Optional properties: > +- bridge-enable : 0 if driver should disable bridge at startup > + 1 if driver should enable bridge at startup > + Default is to leave bridge in current state. > + > +See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings. > + > +Example: > + fpga-bridge@100000450 { > + compatible = "xlnx,pr-decoupler-1.00", > + "xlnx-pr-decoupler"; > + regs = <0x10000045 0x10>; > + clocks = <&clkc 15>; > + clock-names = "aclk"; > + bridge-enable = <0>; > + }; > -- > 2.11.0 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-03-30 22:44 ` Rob Herring 0 siblings, 0 replies; 33+ messages in thread From: Rob Herring @ 2017-03-30 22:44 UTC (permalink / raw) To: Alan Tull Cc: Greg Kroah-Hartman, Moritz Fischer, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-fpga-u79uwXL29TY76Z2rM5mHXA, Moritz Fischer, Michal Simek, Sören Brinkmann, devicetree-u79uwXL29TY76Z2rM5mHXA On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: > From: Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Please use "dt-bindings: fpga: ..." for the subject. > > This adds the binding documentation for the Xilinx LogiCORE PR > Decoupler soft core. > > Signed-off-by: Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Signed-off-by: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > Acked-by: Alan Tull <atull-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> I'm confused why you are sending these instead of Moritz? If it goes through you, then it should have your S-o-B too. > Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > --- > .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > new file mode 100644 > index 000000000000..2c527ac30398 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > @@ -0,0 +1,35 @@ > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > + > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > +decouplers / fpga bridges. > +The controller can decouple/disable the bridges which prevents signal > +changes from passing through the bridge. The controller can also > +couple / enable the bridges which allows traffic to pass through the > +bridge normally. > + > +The Driver supports only MMIO handling. A PR region can have multiple > +PR Decouplers which can be handled independently or chained via decouple/ > +decouple_status signals. > + > +Required properties: > +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather "followed by". Plus the example has both. > +- regs : base address and size for decoupler module > +- clocks : input clock to IP > +- clock-names : should contain "aclk" > + > +Optional properties: > +- bridge-enable : 0 if driver should disable bridge at startup > + 1 if driver should enable bridge at startup > + Default is to leave bridge in current state. > + > +See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings. > + > +Example: > + fpga-bridge@100000450 { > + compatible = "xlnx,pr-decoupler-1.00", > + "xlnx-pr-decoupler"; > + regs = <0x10000045 0x10>; > + clocks = <&clkc 15>; > + clock-names = "aclk"; > + bridge-enable = <0>; > + }; > -- > 2.11.0 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler 2017-03-30 22:44 ` Rob Herring @ 2017-04-04 23:36 ` Moritz Fischer -1 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-04-04 23:36 UTC (permalink / raw) To: Rob Herring Cc: Alan Tull, Greg Kroah-Hartman, Linux Kernel Mailing List, linux-fpga, Moritz Fischer, Michal Simek, Sören Brinkmann, Devicetree List On Thu, Mar 30, 2017 at 05:44:29PM -0500, Rob Herring wrote: > On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: > > From: Moritz Fischer <mdf@kernel.org> > > Please use "dt-bindings: fpga: ..." for the subject. > > > > > > This adds the binding documentation for the Xilinx LogiCORE PR > > Decoupler soft core. > > > > Signed-off-by: Moritz Fischer <mdf@kernel.org> > > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > > Acked-by: Alan Tull <atull@kernel.org> > > I'm confused why you are sending these instead of Moritz? If it goes > through you, then it should have your S-o-B too. Do you want me to resend this Alan (with Rob's suggestions)? > > > Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> > > Cc: linux-kernel@vger.kernel.org > > Cc: devicetree@vger.kernel.org > > --- > > .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ > > 1 file changed, 35 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > new file mode 100644 > > index 000000000000..2c527ac30398 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > @@ -0,0 +1,35 @@ > > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > > + > > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > > +decouplers / fpga bridges. > > +The controller can decouple/disable the bridges which prevents signal > > +changes from passing through the bridge. The controller can also > > +couple / enable the bridges which allows traffic to pass through the > > +bridge normally. > > + > > +The Driver supports only MMIO handling. A PR region can have multiple > > +PR Decouplers which can be handled independently or chained via decouple/ > > +decouple_status signals. > > + > > +Required properties: > > +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" > > I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather > "followed by". Plus the example has both. Michal wanted to have both, so I put both. Personally I don't care. I think they have some downstream stuff that relied on it. > > > +- regs : base address and size for decoupler module > > +- clocks : input clock to IP > > +- clock-names : should contain "aclk" > > + > > +Optional properties: > > +- bridge-enable : 0 if driver should disable bridge at startup > > + 1 if driver should enable bridge at startup > > + Default is to leave bridge in current state. > > + > > +See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings. > > + > > +Example: > > + fpga-bridge@100000450 { > > + compatible = "xlnx,pr-decoupler-1.00", > > + "xlnx-pr-decoupler"; > > + regs = <0x10000045 0x10>; > > + clocks = <&clkc 15>; > > + clock-names = "aclk"; > > + bridge-enable = <0>; > > + }; > > -- > > 2.11.0 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe devicetree" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html Thanks, Moritz ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-04-04 23:36 ` Moritz Fischer 0 siblings, 0 replies; 33+ messages in thread From: Moritz Fischer @ 2017-04-04 23:36 UTC (permalink / raw) To: Rob Herring Cc: Alan Tull, Greg Kroah-Hartman, Linux Kernel Mailing List, linux-fpga-u79uwXL29TY76Z2rM5mHXA, Moritz Fischer, Michal Simek, Sören Brinkmann, Devicetree List On Thu, Mar 30, 2017 at 05:44:29PM -0500, Rob Herring wrote: > On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: > > From: Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > > Please use "dt-bindings: fpga: ..." for the subject. > > > > > > This adds the binding documentation for the Xilinx LogiCORE PR > > Decoupler soft core. > > > > Signed-off-by: Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > > Signed-off-by: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > > Acked-by: Alan Tull <atull-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > > I'm confused why you are sending these instead of Moritz? If it goes > through you, then it should have your S-o-B too. Do you want me to resend this Alan (with Rob's suggestions)? > > > Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > > Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > > --- > > .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ > > 1 file changed, 35 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > > > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > new file mode 100644 > > index 000000000000..2c527ac30398 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt > > @@ -0,0 +1,35 @@ > > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore > > + > > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more > > +decouplers / fpga bridges. > > +The controller can decouple/disable the bridges which prevents signal > > +changes from passing through the bridge. The controller can also > > +couple / enable the bridges which allows traffic to pass through the > > +bridge normally. > > + > > +The Driver supports only MMIO handling. A PR region can have multiple > > +PR Decouplers which can be handled independently or chained via decouple/ > > +decouple_status signals. > > + > > +Required properties: > > +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" > > I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather > "followed by". Plus the example has both. Michal wanted to have both, so I put both. Personally I don't care. I think they have some downstream stuff that relied on it. > > > +- regs : base address and size for decoupler module > > +- clocks : input clock to IP > > +- clock-names : should contain "aclk" > > + > > +Optional properties: > > +- bridge-enable : 0 if driver should disable bridge at startup > > + 1 if driver should enable bridge at startup > > + Default is to leave bridge in current state. > > + > > +See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings. > > + > > +Example: > > + fpga-bridge@100000450 { > > + compatible = "xlnx,pr-decoupler-1.00", > > + "xlnx-pr-decoupler"; > > + regs = <0x10000045 0x10>; > > + clocks = <&clkc 15>; > > + clock-names = "aclk"; > > + bridge-enable = <0>; > > + }; > > -- > > 2.11.0 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe devicetree" in > > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html Thanks, Moritz -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler 2017-04-04 23:36 ` Moritz Fischer @ 2017-04-05 6:26 ` Michal Simek -1 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-04-05 6:26 UTC (permalink / raw) To: Moritz Fischer, Rob Herring Cc: Alan Tull, Greg Kroah-Hartman, Linux Kernel Mailing List, linux-fpga, Moritz Fischer, Michal Simek, Sören Brinkmann, Devicetree List On 5.4.2017 01:36, Moritz Fischer wrote: > On Thu, Mar 30, 2017 at 05:44:29PM -0500, Rob Herring wrote: >> On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: >>> From: Moritz Fischer <mdf@kernel.org> >> >> Please use "dt-bindings: fpga: ..." for the subject. >> >> >>> >>> This adds the binding documentation for the Xilinx LogiCORE PR >>> Decoupler soft core. >>> >>> Signed-off-by: Moritz Fischer <mdf@kernel.org> >>> Signed-off-by: Michal Simek <michal.simek@xilinx.com> >>> Acked-by: Alan Tull <atull@kernel.org> >> >> I'm confused why you are sending these instead of Moritz? If it goes >> through you, then it should have your S-o-B too. > > Do you want me to resend this Alan (with Rob's suggestions)? >> >>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> >>> Cc: linux-kernel@vger.kernel.org >>> Cc: devicetree@vger.kernel.org >>> --- >>> .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ >>> 1 file changed, 35 insertions(+) >>> create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >>> >>> diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >>> new file mode 100644 >>> index 000000000000..2c527ac30398 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >>> @@ -0,0 +1,35 @@ >>> +Xilinx LogiCORE Partial Reconfig Decoupler Softcore >>> + >>> +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more >>> +decouplers / fpga bridges. >>> +The controller can decouple/disable the bridges which prevents signal >>> +changes from passing through the bridge. The controller can also >>> +couple / enable the bridges which allows traffic to pass through the >>> +bridge normally. >>> + >>> +The Driver supports only MMIO handling. A PR region can have multiple >>> +PR Decouplers which can be handled independently or chained via decouple/ >>> +decouple_status signals. >>> + >>> +Required properties: >>> +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" >> >> I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather >> "followed by". Plus the example has both. > > Michal wanted to have both, so I put both. Personally I don't care. I > think they have some downstream stuff that relied on it. Agree with Rob with using "followed by" instead of or. M ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-04-05 6:26 ` Michal Simek 0 siblings, 0 replies; 33+ messages in thread From: Michal Simek @ 2017-04-05 6:26 UTC (permalink / raw) To: Moritz Fischer, Rob Herring Cc: Alan Tull, Greg Kroah-Hartman, Linux Kernel Mailing List, linux-fpga, Moritz Fischer, Michal Simek, Sören Brinkmann On 5.4.2017 01:36, Moritz Fischer wrote: > On Thu, Mar 30, 2017 at 05:44:29PM -0500, Rob Herring wrote: >> On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: >>> From: Moritz Fischer <mdf@kernel.org> >> >> Please use "dt-bindings: fpga: ..." for the subject. >> >> >>> >>> This adds the binding documentation for the Xilinx LogiCORE PR >>> Decoupler soft core. >>> >>> Signed-off-by: Moritz Fischer <mdf@kernel.org> >>> Signed-off-by: Michal Simek <michal.simek@xilinx.com> >>> Acked-by: Alan Tull <atull@kernel.org> >> >> I'm confused why you are sending these instead of Moritz? If it goes >> through you, then it should have your S-o-B too. > > Do you want me to resend this Alan (with Rob's suggestions)? >> >>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> >>> Cc: linux-kernel@vger.kernel.org >>> Cc: devicetree@vger.kernel.org >>> --- >>> .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ >>> 1 file changed, 35 insertions(+) >>> create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >>> >>> diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >>> new file mode 100644 >>> index 000000000000..2c527ac30398 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >>> @@ -0,0 +1,35 @@ >>> +Xilinx LogiCORE Partial Reconfig Decoupler Softcore >>> + >>> +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more >>> +decouplers / fpga bridges. >>> +The controller can decouple/disable the bridges which prevents signal >>> +changes from passing through the bridge. The controller can also >>> +couple / enable the bridges which allows traffic to pass through the >>> +bridge normally. >>> + >>> +The Driver supports only MMIO handling. A PR region can have multiple >>> +PR Decouplers which can be handled independently or chained via decouple/ >>> +decouple_status signals. >>> + >>> +Required properties: >>> +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" >> >> I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather >> "followed by". Plus the example has both. > > Michal wanted to have both, so I put both. Personally I don't care. I > think they have some downstream stuff that relied on it. Agree with Rob with using "followed by" instead of or. M ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-04-05 14:24 ` Alan Tull 0 siblings, 0 replies; 33+ messages in thread From: Alan Tull @ 2017-04-05 14:24 UTC (permalink / raw) To: Moritz Fischer Cc: Rob Herring, Greg Kroah-Hartman, Linux Kernel Mailing List, linux-fpga, Moritz Fischer, Michal Simek, Sören Brinkmann, Devicetree List On Tue, Apr 4, 2017 at 6:36 PM, Moritz Fischer <moritz.fischer@ettus.com> wrote: > On Thu, Mar 30, 2017 at 05:44:29PM -0500, Rob Herring wrote: >> On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: >> > From: Moritz Fischer <mdf@kernel.org> >> >> Please use "dt-bindings: fpga: ..." for the subject. >> >> >> > >> > This adds the binding documentation for the Xilinx LogiCORE PR >> > Decoupler soft core. >> > >> > Signed-off-by: Moritz Fischer <mdf@kernel.org> >> > Signed-off-by: Michal Simek <michal.simek@xilinx.com> >> > Acked-by: Alan Tull <atull@kernel.org> >> >> I'm confused why you are sending these instead of Moritz? If it goes >> through you, then it should have your S-o-B too. Greg asked me to send patches to him. I should have started adding my signed-of-by at that point. > > Do you want me to resend this Alan (with Rob's suggestions)? I sent a set of patches to Greg on March 24. Looking back on that I realize that it didn't have Rob's ack yet (as well as having my ack where it should have been my signed-of-by). Yes, please resend this patchset with Rob's feedback. Thanks, ALan >> >> > Cc: Sören Brinkmann <soren.brinkmann@xilinx.com> >> > Cc: linux-kernel@vger.kernel.org >> > Cc: devicetree@vger.kernel.org >> > --- >> > .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ >> > 1 file changed, 35 insertions(+) >> > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >> > >> > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >> > new file mode 100644 >> > index 000000000000..2c527ac30398 >> > --- /dev/null >> > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >> > @@ -0,0 +1,35 @@ >> > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore >> > + >> > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more >> > +decouplers / fpga bridges. >> > +The controller can decouple/disable the bridges which prevents signal >> > +changes from passing through the bridge. The controller can also >> > +couple / enable the bridges which allows traffic to pass through the >> > +bridge normally. >> > + >> > +The Driver supports only MMIO handling. A PR region can have multiple >> > +PR Decouplers which can be handled independently or chained via decouple/ >> > +decouple_status signals. >> > + >> > +Required properties: >> > +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" >> >> I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather >> "followed by". Plus the example has both. > > Michal wanted to have both, so I put both. Personally I don't care. I > think they have some downstream stuff that relied on it. > >> >> > +- regs : base address and size for decoupler module >> > +- clocks : input clock to IP >> > +- clock-names : should contain "aclk" >> > + >> > +Optional properties: >> > +- bridge-enable : 0 if driver should disable bridge at startup >> > + 1 if driver should enable bridge at startup >> > + Default is to leave bridge in current state. >> > + >> > +See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings. >> > + >> > +Example: >> > + fpga-bridge@100000450 { >> > + compatible = "xlnx,pr-decoupler-1.00", >> > + "xlnx-pr-decoupler"; >> > + regs = <0x10000045 0x10>; >> > + clocks = <&clkc 15>; >> > + clock-names = "aclk"; >> > + bridge-enable = <0>; >> > + }; >> > -- >> > 2.11.0 >> > >> > -- >> > To unsubscribe from this list: send the line "unsubscribe devicetree" in >> > the body of a message to majordomo@vger.kernel.org >> > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Thanks, > Moritz ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler @ 2017-04-05 14:24 ` Alan Tull 0 siblings, 0 replies; 33+ messages in thread From: Alan Tull @ 2017-04-05 14:24 UTC (permalink / raw) To: Moritz Fischer Cc: Rob Herring, Greg Kroah-Hartman, Linux Kernel Mailing List, linux-fpga-u79uwXL29TY76Z2rM5mHXA, Moritz Fischer, Michal Simek, Sören Brinkmann, Devicetree List On Tue, Apr 4, 2017 at 6:36 PM, Moritz Fischer <moritz.fischer-+aYTwkv1SeIAvxtiuMwx3w@public.gmane.org> wrote: > On Thu, Mar 30, 2017 at 05:44:29PM -0500, Rob Herring wrote: >> On Fri, Mar 24, 2017 at 10:33:20AM -0500, Alan Tull wrote: >> > From: Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >> >> Please use "dt-bindings: fpga: ..." for the subject. >> >> >> > >> > This adds the binding documentation for the Xilinx LogiCORE PR >> > Decoupler soft core. >> > >> > Signed-off-by: Moritz Fischer <mdf-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >> > Signed-off-by: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> >> > Acked-by: Alan Tull <atull-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >> >> I'm confused why you are sending these instead of Moritz? If it goes >> through you, then it should have your S-o-B too. Greg asked me to send patches to him. I should have started adding my signed-of-by at that point. > > Do you want me to resend this Alan (with Rob's suggestions)? I sent a set of patches to Greg on March 24. Looking back on that I realize that it didn't have Rob's ack yet (as well as having my ack where it should have been my signed-of-by). Yes, please resend this patchset with Rob's feedback. Thanks, ALan >> >> > Cc: Sören Brinkmann <soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> >> > Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> > --- >> > .../bindings/fpga/xilinx-pr-decoupler.txt | 35 ++++++++++++++++++++++ >> > 1 file changed, 35 insertions(+) >> > create mode 100644 Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >> > >> > diff --git a/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >> > new file mode 100644 >> > index 000000000000..2c527ac30398 >> > --- /dev/null >> > +++ b/Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt >> > @@ -0,0 +1,35 @@ >> > +Xilinx LogiCORE Partial Reconfig Decoupler Softcore >> > + >> > +The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more >> > +decouplers / fpga bridges. >> > +The controller can decouple/disable the bridges which prevents signal >> > +changes from passing through the bridge. The controller can also >> > +couple / enable the bridges which allows traffic to pass through the >> > +bridge normally. >> > + >> > +The Driver supports only MMIO handling. A PR region can have multiple >> > +PR Decouplers which can be handled independently or chained via decouple/ >> > +decouple_status signals. >> > + >> > +Required properties: >> > +- compatible : Should contain "xlnx,pr-decoupler-1.00" or "xlnx,pr-decoupler" >> >> I'd drop xlnx,pr-decoupler, but in any case, it should not be OR rather >> "followed by". Plus the example has both. > > Michal wanted to have both, so I put both. Personally I don't care. I > think they have some downstream stuff that relied on it. > >> >> > +- regs : base address and size for decoupler module >> > +- clocks : input clock to IP >> > +- clock-names : should contain "aclk" >> > + >> > +Optional properties: >> > +- bridge-enable : 0 if driver should disable bridge at startup >> > + 1 if driver should enable bridge at startup >> > + Default is to leave bridge in current state. >> > + >> > +See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings. >> > + >> > +Example: >> > + fpga-bridge@100000450 { >> > + compatible = "xlnx,pr-decoupler-1.00", >> > + "xlnx-pr-decoupler"; >> > + regs = <0x10000045 0x10>; >> > + clocks = <&clkc 15>; >> > + clock-names = "aclk"; >> > + bridge-enable = <0>; >> > + }; >> > -- >> > 2.11.0 >> > >> > -- >> > To unsubscribe from this list: send the line "unsubscribe devicetree" in >> > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Thanks, > Moritz -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2017-04-05 14:25 UTC | newest] Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-03-10 21:30 [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore PR Decoupler Moritz Fischer 2017-03-10 21:30 ` Moritz Fischer 2017-03-10 21:30 ` Moritz Fischer 2017-03-10 21:30 ` [PATCH 2/2] fpga: Add support for Xilinx LogiCORE " Moritz Fischer 2017-03-10 21:30 ` Moritz Fischer 2017-03-10 22:42 ` Moritz Fischer 2017-03-10 22:42 ` Moritz Fischer 2017-03-10 22:42 ` Moritz Fischer 2017-03-13 10:27 ` Michal Simek 2017-03-13 10:27 ` Michal Simek 2017-03-13 10:27 ` Michal Simek 2017-03-13 10:27 ` Michal Simek 2017-03-13 16:18 ` Moritz Fischer 2017-03-13 16:18 ` Moritz Fischer 2017-03-13 16:18 ` Moritz Fischer 2017-03-14 6:40 ` Michal Simek 2017-03-14 6:40 ` Michal Simek 2017-03-14 6:40 ` Michal Simek 2017-03-14 6:40 ` Michal Simek 2017-03-13 10:29 ` [PATCH 1/2] doc: Add bindings document for Xilinx LogiCore " Michal Simek 2017-03-13 10:29 ` Michal Simek 2017-03-13 10:29 ` Michal Simek 2017-03-13 10:29 ` Michal Simek 2017-03-24 15:33 [PATCH 0/2] fpga: " Alan Tull 2017-03-24 15:33 ` [PATCH 1/2] doc: Add bindings document for " Alan Tull 2017-03-30 22:44 ` Rob Herring 2017-03-30 22:44 ` Rob Herring 2017-03-30 22:44 ` Rob Herring 2017-04-04 23:36 ` Moritz Fischer 2017-04-04 23:36 ` Moritz Fischer 2017-04-05 6:26 ` Michal Simek 2017-04-05 6:26 ` Michal Simek 2017-04-05 14:24 ` Alan Tull 2017-04-05 14:24 ` Alan Tull
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.