[PATCH] arm, davinci: configure davinci aemif chipselects through OF
From: Heiko Schocher <hidden>
Date: 2011-12-08 07:47:05
Also in:
linux-devicetree
Hello Nori, Nori, Sekhar wrote:
Hi Heiko, On Sun, Dec 04, 2011 at 15:11:19, Heiko Schocher wrote: Please provide a patch description. Nice to see device tree support being added for DaVinci devices.
fixed.
quoted
Signed-off-by: Heiko Schocher <redacted> Cc: davinci-linux-open-source at linux.davincidsp.com Cc: devicetree-discuss at lists.ozlabs.org Cc: linux-arm-kernel at lists.infradead.org Cc: grant.likely at secretlab.ca Cc: Sekhar Nori <redacted> Cc: Kevin Hilman <redacted> Cc: Wolfgang Denk <redacted> --- .../devicetree/bindings/arm/davinci/aemif.txt | 85 ++++++++++++++++ arch/arm/mach-davinci/aemif.c | 105 +++++++++++++++++++- arch/arm/mach-davinci/include/mach/aemif.h | 1 + 3 files changed, 190 insertions(+), 1 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/davinci/aemif.txtdiff --git a/Documentation/devicetree/bindings/arm/davinci/aemif.txt b/Documentation/devicetree/bindings/arm/davinci/aemif.txt new file mode 100644 index 0000000..c9ed551 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/davinci/aemif.txt@@ -0,0 +1,85 @@ +* Texas Instruments Davinci AEMIF + +This file provides information, what the device node for the +davinci aemifa interface contain.^^^^^^ aemif
fixed, thanks.
quoted
+ +Required properties: +- compatible: "ti,davinci-emifa";
Shouldn't this also be "ti,davinci-aemif" ? [...]
quoted
diff --git a/arch/arm/mach-davinci/aemif.c b/arch/arm/mach-davinci/aemif.c index 1ce70a9..12c559f 100644 --- a/arch/arm/mach-davinci/aemif.c +++ b/arch/arm/mach-davinci/aemif.c@@ -13,12 +13,14 @@ #include <linux/err.h> #include <linux/clk.h> #include <linux/module.h> +#include <linux/of.h> +#include <linux/of_address.h> #include <linux/time.h> #include <mach/aemif.h> /* Timing value configuration */ - +#define ASIZE(x) (x) #define TA(x) ((x) << 2) #define RHOLD(x) ((x) << 4) #define RSTROBE(x) ((x) << 7)@@ -26,7 +28,10 @@ #define WHOLD(x) ((x) << 17) #define WSTROBE(x) ((x) << 20) #define WSETUP(x) ((x) << 26) +#define EW(x) ((x) << 30) +#define SS(x) ((x) << 31)You are adding support for additional configuration parameters which should be done in a separate patch.
Hmm.. they are only used in the OF case ... is this split really needed? [...]
quoted
+static int davinci_aemif_setup_timing_of_one(struct device_node *np, + void __iomem *base) +{
[...]
quoted
+ val = ASIZE(asize) | TA(ta) | RHOLD(rhold) | RSTROBE(rstrobe) | + RSETUP(rsetup) | WHOLD(whold) | WSTROBE(wstrobe) | + WSETUP(wsetup) | EW(ew) | SS(ss); + + __raw_writel(val, base + offset); + + return 0; +}This shares a large amount of code with davinci_aemif_setup_timing(). Can you try writing this as a OF wrapper to the existing function?
Done. Waiting to your response to my 2 questions above, after that sending the v2. bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany