Re: An extremely simplified pinctrl bindings proposal

From: Mitch Bradley
Date: Mon Feb 06 2012 - 14:06:31 EST


I like the general approach of simplifying the pinctrl thing, as the previous approach did not appear to be converging.

One possible name would be "gpconfig" - for general purpose configuration.

The register access model in the strawman proposal is probably too simple. 32-bit memory mapped registers are certainly the most common subcase on ARM, but there are many other cases that occur in practice:

* Registers that must be accessed with 8, 16, or 64-bit cycles.
* Registers that have side effects on read, so read-mask-write must be avoided
* Registers accessed via an index/data cycle pair, thus having locking requirements
* Registers that must be read after being written, or otherwise requiring some sort of memory-ordering enforcement.
* Time delays between pairs of writes
* PCI configuration registers, which often have some combination of the above
* Registers behind serial buses like I2C

Both Open Firmware and ACPI have addressed this general problem. In addition to a numeric identifier for the register, you need to specify the access semantics. It's difficult to finitely enumerate all possible cases, but you can get to 99.9% with a modest number of access models, and then add new models as needed.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/