From: Tony Lindgren <tony@atomide.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>,
sakari.ailus@iki.fi
Subject: Re: [PATCH/RFC] ARM: omap3: Split the pinmux core device
Date: Wed, 4 Dec 2013 13:49:49 -0800 [thread overview]
Message-ID: <20131204214949.GW26766@atomide.com> (raw)
In-Reply-To: <20131204185341.GV26766@atomide.com>
* Tony Lindgren <tony@atomide.com> [131204 10:54]:
> * Laurent Pinchart <laurent.pinchart@ideasonboard.com> [131204 10:45]:
> > On Wednesday 04 December 2013 10:24:37 Tony Lindgren wrote:
> > >
> > > OK. I wonder if we should add something like this to make it easier to
> > > use the padconf values from the TRM:
> > >
> > > #define OMAP_IOPAD_OFFSET(pa, offset) ((pa) & 0xffff) - (offset))
> > >
> > > #define OMAP2_CORE_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x0030) (val))
> > > #define OMAP3_CORE1_IOPAD(pa, val) OMAP2_CORE_IOPAD((pa), (val))
> > > #define OMAP3_CORE2_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x05a0) (val))
> > > #define OMAP4_CORE_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x0040) (val))
> > > #define OMAP4_WKUP_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0xe040) (val))
> > > #define OMAP5_CORE_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x0840) (val))
> > > #define OMAP5_WKUP_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0xc850) (val))
> > > ...
> > >
> > > Then we would have entries like:
> > >
> > > pinctrl-single,pins = <
> > > OMAP3_CORE1_IOPAD(0x158, PIN_INPUT_PULLUP | MUX_MODE0)
> > > ...
> > > >;
> > >
> > > instead of:
> > >
> > > pinctrl-single,pins = <
> > > 0x128 (PIN_INPUT_PULLUP | MUX_MODE0)
> > > ...
> > > >;
> >
> > That's a good idea, it would be much more readable. Would you like to submit a
> > patch ? Should I rebase my patch on top of that, or the other way around ?
>
> OK I'll do a patch for that later on today, then you can use that. Might
> cut down the churn a little that way.
Here's the patch for it, needs some checks and testing as I got several
things wrong in the example above :)
Regards,
Tony
8< ----------------------------
From: Tony Lindgren <tony@atomide.com>
Date: Wed, 4 Dec 2013 13:03:58 -0800
Subject: [PATCH] ARM: dts: Add omap specific pinctrl defines to use padconf addresses
As we have one to three pinctrl-single instances for each SoC it is
a bit confusing to configure the padconf register offset from the
base of the padconf register base.
Let's add macros that allow using the physical address of the
padconf register directly, or in most cases, just the last 16-bits
of the address as they are shown in the documentation.
Note that most documentation shows two padconf registers for each
32-bit address, so adding 2 to the documentation address is needed for
the second padconf register as we treat them as 16-bit registers
for omap3+.
For example, omap36xx documentation shows sdmmc2_clk at 0x48002158,
so we can just use the last 16-bits of that value:
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)
...
>;
And we don't need to separately calculate the offset from the 0x2030
base:
pinctrl-single,pins = <
0x128 (PIN_INPUT_PULLUP | MUX_MODE0)
...
>;
Naturally both ways of defining the registers can be used, and I'm
not saying we should replace all the existing defines. But it may
be handy to use these macros for new entries and when doing other
related .dts file clean-up.
Signed-off-by: Tony Lindgren <tony@atomide.com>
--- a/include/dt-bindings/pinctrl/omap.h
+++ b/include/dt-bindings/pinctrl/omap.h
@@ -49,5 +49,24 @@
#define PIN_OFF_INPUT_PULLDOWN (OFF_EN | OFF_PULL_EN)
#define PIN_OFF_WAKEUPENABLE WAKEUP_EN
+/*
+ * Macros to allow using the absolute physical address instead of the
+ * padconf registers instead of the offset from padconf base.
+ */
+#define OMAP_IOPAD_OFFSET(pa, offset) ((pa) & 0xffff) - (offset))
+
+#define OMAP2420_CORE_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x0030) (val))
+#define OMAP2430_CORE_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x2030) (val))
+#define OMAP3_CORE1_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x2030) (val))
+#define OMAP3_CORE2_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x25a0) (val))
+#define OMAP3_WKUP_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x2a00) (val))
+#define AM33XX_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x0800) (val))
+#define OMAP4_CORE_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x0040) (val))
+#define OMAP4_WKUP_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0xe040) (val))
+#define AM4372_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x0800) (val))
+#define OMAP5_CORE_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x2840) (val))
+#define OMAP5_WKUP_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0xc840) (val))
+#define DRA7XX_CORE_IOPAD(pa, val) (OMAP_IOPAD_OFFSET((pa), 0x3400) (val))
+
#endif
next prev parent reply other threads:[~2013-12-04 21:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-04 17:11 [PATCH/RFC] ARM: omap3: Split the pinmux core device Laurent Pinchart
[not found] ` <1386177110-26424-1-git-send-email-laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
2013-12-04 17:28 ` Tony Lindgren
2013-12-04 17:58 ` Laurent Pinchart
2013-12-04 18:24 ` Tony Lindgren
2013-12-04 18:44 ` Laurent Pinchart
2013-12-04 18:53 ` Tony Lindgren
2013-12-04 21:49 ` Tony Lindgren [this message]
2013-12-19 17:17 ` Sebastian Reichel
2013-12-19 18:30 ` Tony Lindgren
2013-12-20 23:05 ` Laurent Pinchart
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=20131204214949.GW26766@atomide.com \
--to=tony@atomide.com \
--cc=devicetree@vger.kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=sakari.ailus@iki.fi \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).