[PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver
Shawn Guo
shawn.guo at linaro.org
Fri Apr 27 01:48:44 EDT 2012
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.
More information about the linux-arm-kernel
mailing list