All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Tony Lindgren <tony@atomide.com>
Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org,
	Linus Walleij <linus.walleij@linaro.org>,
	Sebastian Reichel <sre@debian.org>,
	Sakari Ailus <sakari.ailus@iki.fi>
Subject: Re: [PATCH v2 1/2] ARM: dts: Add omap specific pinctrl defines to use padconf addresses
Date: Wed, 08 Jan 2014 00:09:37 +0100	[thread overview]
Message-ID: <1562680.iFW31kAxBU@avalon> (raw)
In-Reply-To: <20140107223021.GA5074@atomide.com>

Hi Tony,

On Tuesday 07 January 2014 14:30:21 Tony Lindgren wrote:
> * Laurent Pinchart <laurent.pinchart@ideasonboard.com> [131220 07:52]:
> > From: Tony Lindgren <tony@atomide.com>
> > +/*
> > + * 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)
> 
> Sorry for the delay on these, I'm only now getting back to looking
> at all the emails since the holidays :)
> 
> After looking at Nishant's omap3 pinctrl core2 patch, looks like we need
> to have separate OMAP3430_CORE2_IOPAD and OMAP3630_CORE2_IOPAD defines.

That was my first impression as well, but I think we actually don't need to. 
The OMAP3430 just has no useful registers in the 0x25a0 - 0x25d7 area, so we 
can make the CORE2 macro span that for both 3430 and 3630.

> I've committed the following updated version of this patch into
> omap-for-v3.14/dt branch.
> 
> Regards,
> 
> Tony
> 
> 8< ----------------------
> From: Tony Lindgren <tony@atomide.com>
> Date: Tue, 7 Jan 2014 14:01:38 -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: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> [tony@atomide.com: updated for 3430 vs 3630 core2 range]
> 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,25 @@
>  #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 OMAP3430_CORE2_IOPAD(pa, val)	OMAP_IOPAD_OFFSET((pa), 0x25d8) (val)
> +#define OMAP3630_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
-- 
Regards,

Laurent Pinchart


WARNING: multiple messages have this Message-ID (diff)
From: laurent.pinchart@ideasonboard.com (Laurent Pinchart)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/2] ARM: dts: Add omap specific pinctrl defines to use padconf addresses
Date: Wed, 08 Jan 2014 00:09:37 +0100	[thread overview]
Message-ID: <1562680.iFW31kAxBU@avalon> (raw)
In-Reply-To: <20140107223021.GA5074@atomide.com>

Hi Tony,

On Tuesday 07 January 2014 14:30:21 Tony Lindgren wrote:
> * Laurent Pinchart <laurent.pinchart@ideasonboard.com> [131220 07:52]:
> > From: Tony Lindgren <tony@atomide.com>
> > +/*
> > + * 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)
> 
> Sorry for the delay on these, I'm only now getting back to looking
> at all the emails since the holidays :)
> 
> After looking at Nishant's omap3 pinctrl core2 patch, looks like we need
> to have separate OMAP3430_CORE2_IOPAD and OMAP3630_CORE2_IOPAD defines.

That was my first impression as well, but I think we actually don't need to. 
The OMAP3430 just has no useful registers in the 0x25a0 - 0x25d7 area, so we 
can make the CORE2 macro span that for both 3430 and 3630.

> I've committed the following updated version of this patch into
> omap-for-v3.14/dt branch.
> 
> Regards,
> 
> Tony
> 
> 8< ----------------------
> From: Tony Lindgren <tony@atomide.com>
> Date: Tue, 7 Jan 2014 14:01:38 -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: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> [tony at atomide.com: updated for 3430 vs 3630 core2 range]
> 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,25 @@
>  #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 OMAP3430_CORE2_IOPAD(pa, val)	OMAP_IOPAD_OFFSET((pa), 0x25d8) (val)
> +#define OMAP3630_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
-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2014-01-07 23:08 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-20 15:51 [PATCH v2 0/2] ARM: omap3: Split the pinmux core device Laurent Pinchart
2013-12-20 15:51 ` Laurent Pinchart
2013-12-20 15:51 ` [PATCH v2 1/2] ARM: dts: Add omap specific pinctrl defines to use padconf addresses Laurent Pinchart
2013-12-20 15:51   ` Laurent Pinchart
2014-01-07 22:30   ` Tony Lindgren
2014-01-07 22:30     ` Tony Lindgren
2014-01-07 23:09     ` Laurent Pinchart [this message]
2014-01-07 23:09       ` Laurent Pinchart
2014-01-07 23:20       ` Tony Lindgren
2014-01-07 23:20         ` Tony Lindgren
2014-01-07 23:24         ` Laurent Pinchart
2014-01-07 23:24           ` Laurent Pinchart
2014-01-07 23:33           ` Tony Lindgren
2014-01-07 23:33             ` Tony Lindgren
2014-01-09 19:51         ` Florian Vaussard
2014-01-09 19:51           ` Florian Vaussard
2013-12-20 15:51 ` [PATCH v2 2/2] ARM: omap3: Split the pinmux core device Laurent Pinchart
2013-12-20 15:51   ` Laurent Pinchart
2014-01-07 22:36   ` Tony Lindgren
2014-01-07 22:36     ` Tony Lindgren

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=1562680.iFW31kAxBU@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=sakari.ailus@iki.fi \
    --cc=sre@debian.org \
    --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.