On Fri, Dec 6, 2013 at 12:54 AM, Stephen Warren <swarren@xxxxxxxxxxxxx> wrote: > On 12/03/2013 02:29 AM, Linus Walleij wrote: (skipped the conversation on weak hogs, we are on the same page here, just waiting for someone to start working on it ...) > Related, I prefer to put /all/ static pinctrl configuration into the > pinctrl device's "default" state (i.e. use a hog) rather than > configuring the static pinctrl setup per device, for another reason too: > > If a particular IO controller's signals can be routed to n different > (sets of) pins, then we need to do *both* of the following when setting > up the pinmux: > > a) Configure the pins we want to host those signals to route to/from > that particular IO controller. > > b) Configure any other pins that could route to/from that particular IO > controller as some other function; either disabled, or routed to/from > some different IO controller. > > That is so that the IO controller's RX/input signals are not connected > from two different sets of pins at once, which would cause two things to > driver them. Depending on HW, this could cause on of: > > 1) Multiple drivers -> high power usage, or even Silicon damage. > > 2) Inconsistent configuration, with the "wrong" set of pins driving the > IO controller's inputs, and hence the signals on the "correct" pins > being ignored -> hard to find bug. I'm following, I think what we need here is to think about additional behaviours and electronic constraints we can encode into the drivers and/or the pin tables to safeguard pin states from electronically unsound states. That is to say, I prefer the subsystem to be conscious about the electronic constraints and navigate around them or put up a road block, rather than trying ti avoid driving into the roadblocks by means of carefully crafted tables if you get the picture ... Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html