From: Mark Rutland <mark.rutland@arm.com>
To: Andre Heider <a.heider@gmail.com>
Cc: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
"Matt Porter" <mporter@linaro.org>,
"Hans J . Koch" <hjk@hansjkoch.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Benoît Cousson" <bcousson@baylibre.com>,
"Paul Walmsley" <paul@pwsan.com>,
"Tony Lindgren" <tony@atomide.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>
Subject: Re: [PATCH 09/13] uio: uio_pruss: add devicetree support
Date: Mon, 30 Jun 2014 10:36:06 +0100 [thread overview]
Message-ID: <20140630093606.GU7262@leverpostej> (raw)
In-Reply-To: <1404058907-21112-10-git-send-email-a.heider@gmail.com>
On Sun, Jun 29, 2014 at 05:21:43PM +0100, Andre Heider wrote:
> Add support to probe via devicetree.
>
> Signed-off-by: Andre Heider <a.heider@gmail.com>
> ---
> drivers/uio/uio_pruss.c | 46 +++++++++++++++++++++++++++++++++++++++-------
> 1 file changed, 39 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/uio/uio_pruss.c b/drivers/uio/uio_pruss.c
> index afaf726..2df54ab 100644
> --- a/drivers/uio/uio_pruss.c
> +++ b/drivers/uio/uio_pruss.c
> @@ -26,6 +26,7 @@
> #include <linux/dma-mapping.h>
> #include <linux/slab.h>
> #include <linux/genalloc.h>
> +#include <linux/of_device.h>
>
> #define DRV_NAME "pruss_uio"
> #define DRV_VERSION "1.0"
> @@ -70,6 +71,27 @@ struct uio_pruss_dev {
> struct gen_pool *sram_pool;
> };
>
> +#ifdef CONFIG_OF
> +struct uio_pruss_params {
> + u32 pintc_offset;
> +};
> +
> +static const struct uio_pruss_params uio_pruss_v1_params = {
> + .pintc_offset = 0x4000,
> +};
> +
> +static const struct uio_pruss_params uio_pruss_v2_params = {
> + .pintc_offset = 0x20000,
> +};
> +
> +static const struct of_device_id pruss_of_match_table[] = {
> + { .compatible = "ti,pruss-v1", .data = &uio_pruss_v1_params, },
> + { .compatible = "ti,pruss-v2", .data = &uio_pruss_v2_params, },
> + {},
> +};
> +MODULE_DEVICE_TABLE(of, pruss_of_match_table);
> +#endif
> +
> static irqreturn_t pruss_handler(int irq, struct uio_info *info)
> {
> struct uio_pruss_dev *gdev = info->priv;
> @@ -111,6 +133,8 @@ static int pruss_probe(struct platform_device *pdev)
> struct uio_pruss_dev *gdev;
> struct resource *regs_prussio;
> struct device *dev = &pdev->dev;
> + const struct of_device_id *match;
> + const struct uio_pruss_params *params;
> int ret = -ENODEV, cnt = 0, i;
> struct uio_pruss_pdata *pdata = dev_get_platdata(dev);
> dma_addr_t ddr_paddr;
> @@ -123,13 +147,21 @@ static int pruss_probe(struct platform_device *pdev)
> if (!gdev->info)
> return -ENOMEM;
>
> - /* Power on PRU in case its not done as part of boot-loader */
> - gdev->pruss_clk = clk_get(dev, "pruss");
> - if (IS_ERR(gdev->pruss_clk)) {
> - dev_err(dev, "Failed to get clock\n");
> - return PTR_ERR(gdev->pruss_clk);
> + if (dev->of_node) {
> + match = of_match_device(pruss_of_match_table, dev);
> + params = match->data;
> + gdev->pintc_base = params->pintc_offset;
> } else {
> + /* Power on PRU in case its not done as part of boot-loader */
> + gdev->pruss_clk = clk_get(dev, "pruss");
> + if (IS_ERR(gdev->pruss_clk)) {
> + dev_err(dev, "Failed to get clock\n");
> + return PTR_ERR(gdev->pruss_clk);
> + }
The "pruss" clock was not documented in the binding.
Is the clock really called "pruss", or is it given a specific name in
the manual?
Cheers,
Mark.
WARNING: multiple messages have this Message-ID (diff)
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 09/13] uio: uio_pruss: add devicetree support
Date: Mon, 30 Jun 2014 10:36:06 +0100 [thread overview]
Message-ID: <20140630093606.GU7262@leverpostej> (raw)
In-Reply-To: <1404058907-21112-10-git-send-email-a.heider@gmail.com>
On Sun, Jun 29, 2014 at 05:21:43PM +0100, Andre Heider wrote:
> Add support to probe via devicetree.
>
> Signed-off-by: Andre Heider <a.heider@gmail.com>
> ---
> drivers/uio/uio_pruss.c | 46 +++++++++++++++++++++++++++++++++++++++-------
> 1 file changed, 39 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/uio/uio_pruss.c b/drivers/uio/uio_pruss.c
> index afaf726..2df54ab 100644
> --- a/drivers/uio/uio_pruss.c
> +++ b/drivers/uio/uio_pruss.c
> @@ -26,6 +26,7 @@
> #include <linux/dma-mapping.h>
> #include <linux/slab.h>
> #include <linux/genalloc.h>
> +#include <linux/of_device.h>
>
> #define DRV_NAME "pruss_uio"
> #define DRV_VERSION "1.0"
> @@ -70,6 +71,27 @@ struct uio_pruss_dev {
> struct gen_pool *sram_pool;
> };
>
> +#ifdef CONFIG_OF
> +struct uio_pruss_params {
> + u32 pintc_offset;
> +};
> +
> +static const struct uio_pruss_params uio_pruss_v1_params = {
> + .pintc_offset = 0x4000,
> +};
> +
> +static const struct uio_pruss_params uio_pruss_v2_params = {
> + .pintc_offset = 0x20000,
> +};
> +
> +static const struct of_device_id pruss_of_match_table[] = {
> + { .compatible = "ti,pruss-v1", .data = &uio_pruss_v1_params, },
> + { .compatible = "ti,pruss-v2", .data = &uio_pruss_v2_params, },
> + {},
> +};
> +MODULE_DEVICE_TABLE(of, pruss_of_match_table);
> +#endif
> +
> static irqreturn_t pruss_handler(int irq, struct uio_info *info)
> {
> struct uio_pruss_dev *gdev = info->priv;
> @@ -111,6 +133,8 @@ static int pruss_probe(struct platform_device *pdev)
> struct uio_pruss_dev *gdev;
> struct resource *regs_prussio;
> struct device *dev = &pdev->dev;
> + const struct of_device_id *match;
> + const struct uio_pruss_params *params;
> int ret = -ENODEV, cnt = 0, i;
> struct uio_pruss_pdata *pdata = dev_get_platdata(dev);
> dma_addr_t ddr_paddr;
> @@ -123,13 +147,21 @@ static int pruss_probe(struct platform_device *pdev)
> if (!gdev->info)
> return -ENOMEM;
>
> - /* Power on PRU in case its not done as part of boot-loader */
> - gdev->pruss_clk = clk_get(dev, "pruss");
> - if (IS_ERR(gdev->pruss_clk)) {
> - dev_err(dev, "Failed to get clock\n");
> - return PTR_ERR(gdev->pruss_clk);
> + if (dev->of_node) {
> + match = of_match_device(pruss_of_match_table, dev);
> + params = match->data;
> + gdev->pintc_base = params->pintc_offset;
> } else {
> + /* Power on PRU in case its not done as part of boot-loader */
> + gdev->pruss_clk = clk_get(dev, "pruss");
> + if (IS_ERR(gdev->pruss_clk)) {
> + dev_err(dev, "Failed to get clock\n");
> + return PTR_ERR(gdev->pruss_clk);
> + }
The "pruss" clock was not documented in the binding.
Is the clock really called "pruss", or is it given a specific name in
the manual?
Cheers,
Mark.
next prev parent reply other threads:[~2014-06-30 9:36 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-29 16:21 [PATCH 00/13] uio_pruss: add support for devicetree and am33xx Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-29 16:21 ` [PATCH 02/13] uio: uio_pruss: use devm_kzalloc() Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-30 9:38 ` Mark Rutland
2014-06-30 9:38 ` Mark Rutland
2014-06-30 19:42 ` Andre Heider
2014-06-30 19:42 ` Andre Heider
2014-06-29 16:21 ` [PATCH 03/13] uio: uio_pruss: use devm_ioremap_resource() Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-29 16:21 ` [PATCH 04/13] uio: uio_pruss: use dmam_alloc_coherent() Andre Heider
2014-06-29 16:21 ` Andre Heider
[not found] ` <1404058907-21112-1-git-send-email-a.heider-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-06-29 16:21 ` [PATCH 01/13] uio: uio_pruss: use struct device Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-29 16:21 ` [PATCH 05/13] ARM: OMAP2+: hwmod: Introduce a flag to deassert the HW reset line Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-29 16:21 ` [PATCH 06/13] ARM: AM33XX: hwmod: deassert PRUSS' hardreset lines Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-29 16:21 ` [PATCH 07/13] Documentation: devicetree: add bindings for TI PRUSS Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-30 9:33 ` Mark Rutland
2014-06-30 9:33 ` Mark Rutland
2014-06-30 19:36 ` Andre Heider
2014-06-30 19:36 ` Andre Heider
2014-06-29 16:21 ` [PATCH 08/13] uio: uio_pruss: make the UIO SRAM memory region optional Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-29 16:21 ` [PATCH 09/13] uio: uio_pruss: add devicetree support Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-30 9:36 ` Mark Rutland [this message]
2014-06-30 9:36 ` Mark Rutland
2014-06-30 19:39 ` Andre Heider
2014-06-30 19:39 ` Andre Heider
2014-06-29 16:21 ` [PATCH 10/13] uio: uio_pruss: add runtime pm support Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-29 16:21 ` [PATCH 11/13] uio: uio_pruss: enable the driver for am33xx SoCs Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-29 16:21 ` [PATCH 12/13] ARM: dts: am33xx: add the PRUSSv2 device Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-06-30 9:36 ` Mark Rutland
2014-06-30 9:36 ` Mark Rutland
2014-06-30 19:40 ` Andre Heider
2014-06-30 19:40 ` Andre Heider
2014-06-29 16:21 ` [PATCH 13/13] ARM: dts: am335x-boneblack: enable " Andre Heider
2014-06-29 16:21 ` Andre Heider
2014-07-07 8:48 ` [PATCH 00/13] uio_pruss: add support for devicetree and am33xx Andre Heider
2014-07-07 8:48 ` Andre Heider
2014-07-07 17:50 ` Paul Walmsley
2014-07-07 17:50 ` Paul Walmsley
2014-07-09 10:16 ` Hans J. Koch
2014-07-09 10:16 ` Hans J. Koch
2014-07-09 13:19 ` Andre Heider
2014-07-09 13:19 ` Andre Heider
2014-08-01 20:44 ` Bob Bailey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140630093606.GU7262@leverpostej \
--to=mark.rutland@arm.com \
--cc=a.heider@gmail.com \
--cc=bcousson@baylibre.com \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hjk@hansjkoch.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=mporter@linaro.org \
--cc=paul@pwsan.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.