mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Linus Walleij <linus.walleij@stericsson.com>
Cc: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Grant Likely <grant.likely@secretlab.ca>,
	Martin Persson <martin.persson@stericsson.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Lee Jones <lee.jones@linaro.org>
Subject: Re: [PATCH 0/4] Pinmux subsystem
Date: Thu, 12 May 2011 09:44:21 +0200	[thread overview]
Message-ID: <20110512074421.GA2429@pengutronix.de> (raw)
In-Reply-To: <1304363768-30338-1-git-send-email-linus.walleij@stericsson.com>

Hi Linus,

On Mon, May 02, 2011 at 09:16:08PM +0200, Linus Walleij wrote:
> From: Linus Walleij <linus.walleij@linaro.org>
> 
> This patchset creates a pinmux subsystem and switches U300 to use that new
> subsystem as an example. The problem is not that fantastically hard to
> solve in a general way, nobody got around to it because it requires some
> upfront code I believe, and this is my stab at it.

This is a good step in the right direction. It solves the problem of
potential conflicts between different mux functions. Also it gives a
well defined interface between drivers and board code.

What I'm missing though is a generic way a single pad/mux mode
combination can be described. Let me take a look around how the
different subarchs do this:

omap:

	_OMAP3_MUXENTRY(DSS_DATA21, 91,
		"dss_data21", NULL, "mcspi3_cs0", "dss_data3",
		"gpio_91", NULL, NULL, "safe_mode"),
	_OMAP3_MUXENTRY(DSS_DATA22, 92,
		"dss_data22", NULL, "mcspi3_cs1", "dss_data4",
		"gpio_92", NULL, NULL, "safe_mode"),

pxa:

#define GPIO16_FFUART_TXD       MFP_CFG_OUT(GPIO16, AF3, DRIVE_HIGH)
#define GPIO37_FFUART_TXD       MFP_CFG_OUT(GPIO37, AF3, DRIVE_HIGH)
#define GPIO39_FFUART_TXD       MFP_CFG_OUT(GPIO39, AF2, DRIVE_HIGH)
#define GPIO83_FFUART_TXD       MFP_CFG_OUT(GPIO83, AF2, DRIVE_HIGH)
#define GPIO99_FFUART_TXD       MFP_CFG_OUT(GPIO99, AF3, DRIVE_HIGH)

i.MX:

#define _MX51_PAD_UART3_RXD__CSI1_D0            IOMUX_PAD(0x630, 0x240, 2, 0x0000, 0, 0)
#define _MX51_PAD_UART3_RXD__GPIO1_22           IOMUX_PAD(0x630, 0x240, 3, 0x0000, 0, 0)
#define _MX51_PAD_UART3_RXD__UART1_DTR          IOMUX_PAD(0x630, 0x240, 0, 0x0000, 0, 0)
#define _MX51_PAD_UART3_RXD__UART3_RXD          IOMUX_PAD(0x630, 0x240, 1, 0x09f4, 4, 0)
#define _MX51_PAD_UART3_TXD__CSI1_D1            IOMUX_PAD(0x634, 0x244, 2, 0x0000, 0, 0)

These all basically describe the same thing: put pad x into one of modes
a, b, c and apply certain flags like drive strength on this.

the other class of pin muxing I know of is that a whole group of pads
can be switched to a particular mode using a mux register like I think
is used used in your ux300 driver.

I'd like to have a unified way to describe this. If we ever want to move
this into the device tree we need this anyway as I think it's not an
option to have completely different SoC specific descriptions in the
device tree.

Do you think it's possible to do some consolidation on this level
aswell? It would really bring different SoCs more together.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

  parent reply	other threads:[~2011-05-12  7:44 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-02 19:16 Linus Walleij
2011-05-02 22:57 ` Russell King - ARM Linux
2011-05-10 21:25   ` Linus Walleij
2011-05-10 21:45     ` Russell King - ARM Linux
2011-05-10 23:15       ` Linus Walleij
2011-05-03 17:27 ` Andrew Lunn
2011-05-03 19:29   ` Valdis.Kletnieks
2011-05-10 21:42   ` Linus Walleij
2011-05-11  9:50     ` Andrew Lunn
2011-05-12  0:41       ` Linus Walleij
2011-05-12  7:00         ` Andrew Lunn
2011-05-15 13:33     ` Andrew Lunn
2011-05-15 17:50       ` Linus Walleij
2011-05-17  1:57         ` Kyungmin Park
2011-05-18 20:02           ` Linus Walleij
2011-05-18 21:21             ` Mark Brown
2011-05-12  7:44 ` Sascha Hauer [this message]
2011-05-12  9:40   ` Tony Lindgren
2011-05-12 14:02   ` Linus Walleij
2011-05-12 21:17     ` RE : " Matthieu Castet
2011-05-13  7:05       ` Linus Walleij
2011-05-13 16:03         ` Matthieu CASTET
2011-05-14  7:57           ` Linus Walleij
2011-05-13  9:59     ` Sascha Hauer

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=20110512074421.GA2429@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=grant.likely@secretlab.ca \
    --cc=lee.jones@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linus.walleij@stericsson.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.persson@stericsson.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®