An extremely simplified pinctrl bindings proposal
Mitch Bradley
wmb at firmworks.com
Mon Feb 6 14:05:24 EST 2012
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.
More information about the linux-arm-kernel
mailing list