mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-29 08:00:26 +09:00
9c08fbfc95
The pinmux property allows for smaller and more compact device trees, especially when there are many pins which need to be assigned individually. Instead of specifying an array of strings to be parsed as pins and a function property, the pinmux property contains an array of integers representing pinmux groups. A pinmux group consists of the pin identifier and mux settings represented as a single integer or an array of integers. Each individual pin controller driver specifies the exact format of a pinmux group. As specified in the Linux documentation, a pinmux group may be multiple integers long. However, no existing drivers use multi-integer pinmux groups, so I have chosen to omit this feature. This makes the implementation easier, since there is no need to allocate a buffer to do endian conversions. Support for the pinmux property is done differently than in Linux. As far as I can tell, inversion of control is used when implementing support for the pins and groups properties to avoid allocating. This results in some duplication of effort; every property in a config node is parsed once for each pin in that node. This is not such an overhead with pins and groups properties, since having multiple pins in one config node does not occur especially often. However, the semantics of the pinmux property make such a configuration much more appealing. A future patch could parse all config properties at once and store them in an array. This would make it easier to create drivers which do not function solely as callbacks from pinctrl-generic. This commit increases the size of the sandbox build by approximately 48 bytes. However, it also decreases the size of the K210 device tree by 2 KiB from the previous version of this series. The documentation has been updated from the last Linux commit before it was split off into yaml files. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
||
---|---|---|
.. | ||
adc | ||
arm | ||
ata | ||
axi | ||
board | ||
bus | ||
clock | ||
cpu | ||
exynos | ||
firmware | ||
fpga | ||
fsp/fsp2/apollolake | ||
gpio | ||
gpu | ||
i2c | ||
input | ||
interrupt-controller | ||
leds | ||
mailbox | ||
memory | ||
memory-controller | ||
memory-controllers | ||
mfd | ||
misc | ||
mmc | ||
mtd | ||
nand | ||
net | ||
pci | ||
pci_endpoint | ||
phy | ||
pinctrl | ||
pmic | ||
power | ||
pwm | ||
ram | ||
regulator | ||
remoteproc | ||
reserved-memory | ||
reset | ||
rtc | ||
serial | ||
soc/fsl/cpm_qe/qe | ||
sound | ||
spi | ||
spmi | ||
sysreset | ||
thermal | ||
timer | ||
tpm2 | ||
usb | ||
video | ||
w1 | ||
w1-eeprom | ||
chosen.txt | ||
config.txt | ||
device.txt | ||
README | ||
root.txt |
Device Tree Bindings Staging Area ================================= This directory contains device tree bindings for U-Boot. These follow along with Linux kernel bindings, with a few additions. By adding the files here, U-Boot patches can clearly show thees additions. This makes it easier for device tree people to review these additions in patches sent to the U-Boot mailing list. The intent IS to commit these files to U-Boot. Hopefully at some point the files will be stored in another repo (shared with Linux) which is brought in as needed. Changes here are intended to mirror changes in the Linux Documentation/devicetree/bindings/ directory. sjg@chromium.org 17-Jan-12