From: boris.brezillon@free-electrons.com (Boris Brezillon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 05/11] memory: add Atmel EBI (External Bus Interface) driver
Date: Mon, 1 Dec 2014 19:29:23 +0100 [thread overview]
Message-ID: <20141201192923.6a85e52b@bbrezillon> (raw)
In-Reply-To: <4214030.Z2iCEM6hVA@wuerfel>
Hi Arnd,
On Mon, 01 Dec 2014 17:26:27 +0100
Arnd Bergmann <arnd@arndb.de> wrote:
> On Monday 01 December 2014 11:27:21 Boris Brezillon wrote:
> > The EBI (External Bus Interface) is used to access external peripherals
> > (NOR, SRAM, NAND, and other specific devices like ethernet controllers).
> > Each device is assigned a CS line and an address range and can have its
> > own configuration (timings, access mode, bus width, ...).
> > This driver provides a generic DT binding to configure a device according
> > to its requirements.
> > For specific device controllers (like the NAND one) the SMC timings
> > should be configured by the controller driver through the matrix and
> > smc syscon regmaps.
>
> Nice!
>
> > +
> > +#define AT91_EBICSA_REGFIELD(soc) \
> > + REG_FIELD(soc ## _MATRIX_EBICSA_OFF, 0, \
> > + AT91_MATRIX_EBI_NUM_CS - 1)
> > +
> > +#define AT91_MULTI_EBICSA_REGFIELD(soc, n) \
> > + REG_FIELD(soc ## _MATRIX_EBI ## n ## CSA_OFF, \
> > + 0, AT91_MATRIX_EBI_NUM_CS - 1)
>
> I don't like the use macros that concatenate symbol names like
> this. Why not do either
>
> - open-code the macro contents in the few uses, to allow
> grepping for them, or
I'm not sure to get this one, are you suggesting to do something like
this:
#define AT91_EBICSA_REGFIELD(off) \
REG_FIELD(ebicsa_off, AT91_MATRIX_EBI_NUM_CS - 1)
>
> - put the register number in the syscon reference and look it
> up from there (this would be slightly more complicated for the
> second macro)
I've told several times not to encode register offsets or register ids
in the DT :-) (and if I'm not mistaken that's what you're suggesting
here).
>
> > +
> > + np = of_parse_phandle(pdev->dev.of_node, "atmel,smc", 0);
> > + if (!np)
> > + return -EINVAL;
> > +
> > + ebi->smc = syscon_node_to_regmap(np);
> > + if (IS_ERR(ebi->smc))
> > + return PTR_ERR(ebi->smc);
>
> I think this and the second instance of it can be shortened to
>
> ebi->smc = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "atmel,smc");
Sure.
Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Nicolas Ferre
<nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>,
Jean-Christophe Plagniol-Villard
<plagnioj-sclMFOaUSTBWk0Htik3J/w@public.gmane.org>,
Alexandre Belloni
<alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Andrew Victor <linux-PelNFVqkFnVyf+4FbqDuWQ@public.gmane.org>,
Samuel Ortiz <sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Jean-Jacques Hiblot
<jjhiblot-dLKeG7h1OhBDOHtkgc7UlQ@public.gmane.org>,
Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
Ian Campbell
<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Subject: Re: [PATCH v3 05/11] memory: add Atmel EBI (External Bus Interface) driver
Date: Mon, 1 Dec 2014 19:29:23 +0100 [thread overview]
Message-ID: <20141201192923.6a85e52b@bbrezillon> (raw)
In-Reply-To: <4214030.Z2iCEM6hVA@wuerfel>
Hi Arnd,
On Mon, 01 Dec 2014 17:26:27 +0100
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org> wrote:
> On Monday 01 December 2014 11:27:21 Boris Brezillon wrote:
> > The EBI (External Bus Interface) is used to access external peripherals
> > (NOR, SRAM, NAND, and other specific devices like ethernet controllers).
> > Each device is assigned a CS line and an address range and can have its
> > own configuration (timings, access mode, bus width, ...).
> > This driver provides a generic DT binding to configure a device according
> > to its requirements.
> > For specific device controllers (like the NAND one) the SMC timings
> > should be configured by the controller driver through the matrix and
> > smc syscon regmaps.
>
> Nice!
>
> > +
> > +#define AT91_EBICSA_REGFIELD(soc) \
> > + REG_FIELD(soc ## _MATRIX_EBICSA_OFF, 0, \
> > + AT91_MATRIX_EBI_NUM_CS - 1)
> > +
> > +#define AT91_MULTI_EBICSA_REGFIELD(soc, n) \
> > + REG_FIELD(soc ## _MATRIX_EBI ## n ## CSA_OFF, \
> > + 0, AT91_MATRIX_EBI_NUM_CS - 1)
>
> I don't like the use macros that concatenate symbol names like
> this. Why not do either
>
> - open-code the macro contents in the few uses, to allow
> grepping for them, or
I'm not sure to get this one, are you suggesting to do something like
this:
#define AT91_EBICSA_REGFIELD(off) \
REG_FIELD(ebicsa_off, AT91_MATRIX_EBI_NUM_CS - 1)
>
> - put the register number in the syscon reference and look it
> up from there (this would be slightly more complicated for the
> second macro)
I've told several times not to encode register offsets or register ids
in the DT :-) (and if I'm not mistaken that's what you're suggesting
here).
>
> > +
> > + np = of_parse_phandle(pdev->dev.of_node, "atmel,smc", 0);
> > + if (!np)
> > + return -EINVAL;
> > +
> > + ebi->smc = syscon_node_to_regmap(np);
> > + if (IS_ERR(ebi->smc))
> > + return PTR_ERR(ebi->smc);
>
> I think this and the second instance of it can be shortened to
>
> ebi->smc = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "atmel,smc");
Sure.
Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
--
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
WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arm-kernel@lists.infradead.org,
Nicolas Ferre <nicolas.ferre@atmel.com>,
Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
Andrew Victor <linux@maxim.org.za>,
Samuel Ortiz <sameo@linux.intel.com>,
Lee Jones <lee.jones@linaro.org>,
Mark Rutland <mark.rutland@arm.com>,
devicetree@vger.kernel.org,
Jean-Jacques Hiblot <jjhiblot@traphandler.com>,
Pawel Moll <pawel.moll@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Kumar Gala <galak@codeaurora.org>
Subject: Re: [PATCH v3 05/11] memory: add Atmel EBI (External Bus Interface) driver
Date: Mon, 1 Dec 2014 19:29:23 +0100 [thread overview]
Message-ID: <20141201192923.6a85e52b@bbrezillon> (raw)
In-Reply-To: <4214030.Z2iCEM6hVA@wuerfel>
Hi Arnd,
On Mon, 01 Dec 2014 17:26:27 +0100
Arnd Bergmann <arnd@arndb.de> wrote:
> On Monday 01 December 2014 11:27:21 Boris Brezillon wrote:
> > The EBI (External Bus Interface) is used to access external peripherals
> > (NOR, SRAM, NAND, and other specific devices like ethernet controllers).
> > Each device is assigned a CS line and an address range and can have its
> > own configuration (timings, access mode, bus width, ...).
> > This driver provides a generic DT binding to configure a device according
> > to its requirements.
> > For specific device controllers (like the NAND one) the SMC timings
> > should be configured by the controller driver through the matrix and
> > smc syscon regmaps.
>
> Nice!
>
> > +
> > +#define AT91_EBICSA_REGFIELD(soc) \
> > + REG_FIELD(soc ## _MATRIX_EBICSA_OFF, 0, \
> > + AT91_MATRIX_EBI_NUM_CS - 1)
> > +
> > +#define AT91_MULTI_EBICSA_REGFIELD(soc, n) \
> > + REG_FIELD(soc ## _MATRIX_EBI ## n ## CSA_OFF, \
> > + 0, AT91_MATRIX_EBI_NUM_CS - 1)
>
> I don't like the use macros that concatenate symbol names like
> this. Why not do either
>
> - open-code the macro contents in the few uses, to allow
> grepping for them, or
I'm not sure to get this one, are you suggesting to do something like
this:
#define AT91_EBICSA_REGFIELD(off) \
REG_FIELD(ebicsa_off, AT91_MATRIX_EBI_NUM_CS - 1)
>
> - put the register number in the syscon reference and look it
> up from there (this would be slightly more complicated for the
> second macro)
I've told several times not to encode register offsets or register ids
in the DT :-) (and if I'm not mistaken that's what you're suggesting
here).
>
> > +
> > + np = of_parse_phandle(pdev->dev.of_node, "atmel,smc", 0);
> > + if (!np)
> > + return -EINVAL;
> > +
> > + ebi->smc = syscon_node_to_regmap(np);
> > + if (IS_ERR(ebi->smc))
> > + return PTR_ERR(ebi->smc);
>
> I think this and the second instance of it can be shortened to
>
> ebi->smc = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "atmel,smc");
Sure.
Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2014-12-01 18:29 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-01 10:27 [PATCH v3 00/11] memory: add Atmel EBI (External Bus Interface) driver Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 01/11] mfd: syscon: Add atmel-matrix registers definition Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-03 15:57 ` Nicolas Ferre
2014-12-03 15:57 ` Nicolas Ferre
2014-12-03 15:57 ` Nicolas Ferre
2014-12-01 10:27 ` [PATCH v3 02/11] mfd: syscon: Add Atmel Matrix bus DT binding documentation Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-03 14:32 ` Nicolas Ferre
2014-12-03 14:32 ` Nicolas Ferre
2014-12-03 14:32 ` Nicolas Ferre
2014-12-03 14:52 ` Boris Brezillon
2014-12-03 14:52 ` Boris Brezillon
2014-12-03 14:52 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 03/11] mfd: syscon: Add atmel-smc registers definition Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 04/11] mfd: syscon: Add Atmel SMC binding doc Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 05/11] memory: add Atmel EBI (External Bus Interface) driver Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:40 ` Alexander Stein
2014-12-01 10:40 ` Alexander Stein
2014-12-01 10:40 ` Alexander Stein
2014-12-01 10:50 ` Boris Brezillon
2014-12-01 10:50 ` Boris Brezillon
2014-12-01 10:50 ` Boris Brezillon
2014-12-01 16:17 ` Arnd Bergmann
2014-12-01 16:17 ` Arnd Bergmann
2014-12-02 9:18 ` Alexander Stein
2014-12-02 9:18 ` Alexander Stein
2014-12-02 9:41 ` Arnd Bergmann
2014-12-02 9:41 ` Arnd Bergmann
2014-12-02 9:41 ` Arnd Bergmann
2014-12-01 16:26 ` Arnd Bergmann
2014-12-01 16:26 ` Arnd Bergmann
2014-12-01 16:26 ` Arnd Bergmann
2014-12-01 18:29 ` Boris Brezillon [this message]
2014-12-01 18:29 ` Boris Brezillon
2014-12-01 18:29 ` Boris Brezillon
2014-12-01 19:43 ` Arnd Bergmann
2014-12-01 19:43 ` Arnd Bergmann
2014-12-01 19:43 ` Arnd Bergmann
2014-12-01 20:28 ` Boris Brezillon
2014-12-01 20:28 ` Boris Brezillon
2014-12-01 20:28 ` Boris Brezillon
2014-12-01 21:28 ` Arnd Bergmann
2014-12-01 21:28 ` Arnd Bergmann
2014-12-09 20:53 ` Alexander Stein
2014-12-09 20:53 ` Alexander Stein
2014-12-09 20:53 ` Alexander Stein
2014-12-15 10:22 ` Boris Brezillon
2014-12-15 10:22 ` Boris Brezillon
2014-12-15 10:22 ` Boris Brezillon
2014-12-15 10:29 ` Alexander Stein
2014-12-15 10:29 ` Alexander Stein
2014-12-15 10:29 ` Alexander Stein
2014-12-15 10:43 ` Boris Brezillon
2014-12-15 10:43 ` Boris Brezillon
2014-12-15 10:43 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 06/11] memory: atmel-ebi: add DT bindings documentation Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-03 14:56 ` Nicolas Ferre
2014-12-03 14:56 ` Nicolas Ferre
2014-12-03 14:56 ` Nicolas Ferre
2014-12-03 15:15 ` Nicolas Ferre
2014-12-03 15:15 ` Nicolas Ferre
2014-12-03 15:15 ` Nicolas Ferre
2014-12-03 15:34 ` Boris Brezillon
2014-12-03 15:34 ` Boris Brezillon
2014-12-03 15:34 ` Boris Brezillon
2014-12-03 15:38 ` Boris Brezillon
2014-12-03 15:38 ` Boris Brezillon
2014-12-03 15:38 ` Boris Brezillon
2014-12-03 19:28 ` Boris Brezillon
2014-12-03 19:28 ` Boris Brezillon
2014-12-03 19:28 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 07/11] ARM: at91: select ATMEL_EBI when compiling a kernel for at91sam9 or sama5d3 Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-03 16:21 ` Nicolas Ferre
2014-12-03 16:21 ` Nicolas Ferre
2014-12-03 16:21 ` Nicolas Ferre
2014-12-01 10:27 ` [PATCH v3 08/11] ARM: at91/dt: add HSMC (Static Memory Controller) node in sama5d3 dtsi Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 09/11] ARM: at91/dt: add matrix " Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 10/11] ARM: at91/dt: add EBI (External Bus Interface) " Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-01 10:27 ` [PATCH v3 11/11] ARM: at91/dt: add NOR definition in sama5d3xcm dtsi Boris Brezillon
2014-12-01 10:27 ` Boris Brezillon
2014-12-02 8:47 ` [PATCH v4 05/11] memory: add Atmel EBI (External Bus Interface) driver Boris Brezillon
2014-12-02 8:47 ` Boris Brezillon
2014-12-02 8:47 ` Boris Brezillon
2014-12-03 15:24 ` Nicolas Ferre
2014-12-03 15:24 ` Nicolas Ferre
2014-12-03 15:24 ` Nicolas Ferre
2014-12-03 11:14 ` [PATCH v4 01/11] mfd: syscon: Add atmel-matrix registers definition Boris Brezillon
2014-12-03 11:14 ` Boris Brezillon
2014-12-03 11:14 ` Boris Brezillon
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=20141201192923.6a85e52b@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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.