[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120427054842.GJ2234@S2101-09.ap.freescale.net>
Date: Fri, 27 Apr 2012 13:48:44 +0800
From: Shawn Guo <shawn.guo@...aro.org>
To: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@...osoft.com>
Cc: Dong Aisheng <b29396@...escale.com>, b20223@...escale.com,
linus.walleij@...ricsson.com, devicetree-discuss@...ts.ozlabs.org,
linux-kernel@...r.kernel.org, rob.herring@...xeda.com,
kernel@...gutronix.de, cjb@...top.org, s.hauer@...gutronix.de,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver
On Thu, Apr 26, 2012 at 05:15:36PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> We have on Imx mxc at91 and other SoC controler hich you configure per pin
>
> which means one pin have multiple function and the same function is on
> multiple pins
>
> so the groups are just a list of possible pins
>
> Instead of re-inventing bindings we do need to come with a common binding whre
> it's possible
>
> So instead I proppose (send in the v2) to use common way to describe the group
>
Let's see how many nodes we will have in device tree. For imx6q
example, there are 332 pins and each pin has up to 8 function selects.
We will end up with having 332 x 8 = 2656 sub nodes under node
"functions". Device tree simply cannot afford such a bloating.
Regards,
Shawn
> 1) we describe one function per pin
>
> functions {
> rxd_pb12 {
> atmel,pin-id = <44>;
> atmel,mux = <0>;
> };
>
> txd_pb13 {
> atmel,pin-id = <45>;
> atmel,pull = <2>;
> atmel,mux = <0>;
> };
>
> txd0_pb19 {
> atmel,pin-id = <51>;
> atmel,pull = <2>;
> atmel,mux = <0>;
> };
>
> rxd0_pb18 {
> atmel,pin-id = <50>;
> atmel,mux = <0>;
> };
>
> rts0_pb17 {
> atmel,pin-id = <49>;
> atmel,mux = <1>;
> };
>
> cts0_pb15 {
> atmel,pin-id = <47>;
> atmel,mux = <1>;
> };
> };
>
>
> advantage if you need to set a pull-up or any pin parameter different on your board
> you can overwrite it without re-creating a group
>
> This is controller specific
>
> and then we have the common bindings to describe the group
> by using phandle of the functions to describe the group
>
> groups {
> dbgu {
> pinctrl,functions = < &rxd_pb12
> &txd_pb13 >;
> };
>
> uart0_rxd_txd {
> pinctrl,functions = < &rxd0_pb18
> &txd0_pb19 >;
> };
>
> uart0_rts_cts {
> pinctrl,functions = < &rxd0_pb18
> &txd0_pb19
> &rts0_pb17
> &cts0_pb15 >;
> };
> };
>
> this will be handle by a generic code in c
>
> Best Regards,
> J.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists