Messages in this thread | | | From | Dong Aisheng-B29396 <> | Subject | RE: [RFC PATCH v3 2/5] pinctrl: add dt binding support for pinmux mappings | Date | Thu, 12 Jan 2012 07:40:40 +0000 |
| |
... > > * The enumerations above should be purely at the level the HW exposes, > > i.e. if a UART uses 4 signals (RX, TX, CTS, RTS), and the SoC > > configures muxing at a per-pin level, and 6 pins exist which can have > > various UART signals mux'd on to them, there should be a "muxable > > entity" enumeration for each of the 6 pins, not an enumeration for > > each possible combination of assignments of signals to pins, since in > > general that number could be extremely large as Richard Zao points out > > in his email that was sent right after yours. > > > Speaking of the model, yes, it's true. But coming to the practical > implementation, we may need compromise on whether we need to do a full > enumeration. > > > * pinmux properties in device drivers should list the muxable entities > > that they use, and the mux function for each of them. > > > Following on the example above, we will need something below in SD node to > specify each pin and corresponding function selection. > > usdhc@02194000 { /* uSDHC2 */ > #pinmux-cells = <2>; > // The second cell specify the index of the desired function of > given pin > pinmux = < &sd2_dat1 0 > &sd2_dat2 0 > ... >; > status = "okay"; > }; > > IMO, it's not nice for pinctrl client devices. Though it's true that the > muxable entity is pin, what the client device really cares is its pingroup. We > should define the pingroup rather than pin for client device to refer to with a > phandle. This is just like that pinctrl subsystem api pinmux_get/enable operate > on a pingroup as an interface to client device driver, no matter the muxable > entity at HW level is a pin or a group. > +1 It's just like what the current pinctrl subsystem does: the device says "I'm using this function and this pin group, please enable!" But no pins are specified.
Regards Dong Aisheng
| |