u-boot-brain/drivers
Sean Anderson 9c08fbfc95 pinctrl: Add pinmux property support to pinctrl-generic
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>
2020-10-08 11:42:36 -04:00
..
adc adc: Drop dm.h header file 2020-08-03 22:19:54 -04:00
ata ata: dwc-ahci: change trace level for phy errors managed by uclass 2020-09-08 08:46:32 -04:00
axi common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
bios_emulator common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
block xen: pvblock: Add initial support for para-virtualized block driver 2020-08-14 15:18:30 -04:00
board common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
bootcount bootcount_ext: Add Ext4 build dependency 2020-06-02 17:27:04 -04:00
bus bus: uniphier-system-bus: move hardware init from board files 2020-07-11 21:30:21 +09:00
button dm: button: add a driver for button driven by gpio 2020-07-28 19:30:39 -06:00
cache common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
clk dm: add cells_count parameter in *_count_phandle_with_args 2020-10-06 09:07:54 -06:00
core dm: add cells_count parameter in *_count_phandle_with_args 2020-10-06 09:07:54 -06:00
cpu First set of u-boot-atmel features for 2021.01 cycle 2020-10-05 10:54:27 -04:00
crypto crypto/fsl: add RNG support 2020-07-27 14:16:29 +05:30
ddr imx8m: ddrphy_utils: Improve coding style 2020-07-27 14:02:28 +02:00
demo common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
dfu dfu: fix dfu tftp on sandbox 2020-09-01 14:47:43 +02:00
dma dma: Reduce error level when DMA channel type does not exist 2020-10-08 09:04:41 +02:00
fastboot fastboot: getvar: fix partition-size return value 2020-09-01 14:47:43 +02:00
firmware firmware: smci: sandbox test for SCMI reset controllers 2020-09-30 11:55:24 -04:00
fpga fpga: zynqmp: Protect zynqmp_loads() for SPL 2020-09-23 10:31:41 +02:00
gpio Merge branch 'next' 2020-10-05 14:10:59 -04:00
hwspinlock common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
i2c Merge branch 'next' 2020-10-05 14:10:59 -04:00
input treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
led led: led_cortina: Add CAxxx LED support 2020-08-07 22:31:32 -04:00
mailbox mailbox: stm32_ipcc: Convert to use APIs which support live DT 2020-10-02 15:05:14 +02:00
memory memory: stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver 2020-08-13 09:53:34 +02:00
misc i2c: eeprom: Use reg property instead of offset and size 2020-08-20 09:49:20 +02:00
mmc Merge branch 'next' 2020-10-05 14:10:59 -04:00
mtd cfi_flash: Fix devicetree address determination 2020-10-08 09:04:41 +02:00
net dm: add cells_count parameter in *_count_phandle_with_args 2020-10-06 09:07:54 -06:00
nvme nvme: Invalidate dcache before submitting admin cmd 2020-06-23 14:43:23 -04:00
pch common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
pci Merge branch 'next' 2020-10-05 14:10:59 -04:00
pci_endpoint Merge https://gitlab.denx.de/u-boot/custodians/u-boot-fsl-qoriq 2020-07-27 15:18:15 -04:00
phy bloblist enhancement for alignment 2020-10-06 13:59:01 -04:00
pinctrl pinctrl: Add pinmux property support to pinctrl-generic 2020-10-08 11:42:36 -04:00
power dm: add cells_count parameter in *_count_phandle_with_args 2020-10-06 09:07:54 -06:00
pwm pwm: Add driver for Amlogic Meson PWM controller 2020-10-05 18:02:16 +02:00
qe net, qe: add DM support for QE UEC ethernet 2020-09-17 06:09:53 +02:00
ram ram: add ddr4 dual x8 configuration 2020-10-08 10:58:45 -04:00
remoteproc remoteproc: k3: Fix not calling dev_xxx with a device 2020-09-30 08:53:42 -04:00
reset dm: add cells_count parameter in *_count_phandle_with_args 2020-10-06 09:07:54 -06:00
rng rng: meson: make core clock optional 2020-09-28 09:38:11 +02:00
rtc treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
scsi common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
serial serial: uartlite: Add support to work with any endianness 2020-09-23 10:31:40 +02:00
smem soc: qualcomm: Fix not calling dev_err with a device 2020-09-30 08:53:43 -04:00
soc soc: soc_ti_k3: Add device identification for J7200 SoC 2020-08-11 20:34:46 +05:30
sound dm: acpi: Use correct GPIO polarity type in acpi_dp_add_gpio() 2020-09-25 11:27:14 +08:00
spi Merge branch 'next' 2020-10-05 14:10:59 -04:00
spmi treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
sysreset sysreset: ti: Fix not calling dev_err with a device 2020-09-30 08:53:48 -04:00
tee drivers: tee: broadcom: add optee based bnxt fw load driver 2020-07-29 10:37:11 -04:00
thermal thermal: imx_scu_thermal: prevent boot hang with zero pdata 2020-05-22 13:29:25 +02:00
timer First set of u-boot-atmel features for 2021.01 cycle 2020-10-05 10:54:27 -04:00
tpm tpm: cr50: Add ACPI support 2020-09-25 11:27:21 +08:00
ufs ufs: Drop dm.h header file 2020-08-03 22:19:54 -04:00
usb - mips: octeon: add support for DDR4 memory controller 2020-10-07 17:25:25 -04:00
video Merge branch 'next' 2020-10-05 14:10:59 -04:00
virtio virtio_blk: set log2blksz correctly 2020-08-24 14:11:31 -04:00
w1 treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
w1-eeprom common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
watchdog watchdog: Add reset support for OcteonTX / TX2 2020-08-25 08:01:16 +02:00
xen xen: Code style conformity 2020-08-24 14:11:31 -04:00
Kconfig xen: pvblock: Add initial support for para-virtualized block driver 2020-08-14 15:18:30 -04:00
Makefile fpga: kconfig: Rename SPL_FPGA_SUPPORT to SPL_FPGA 2020-09-23 10:31:41 +02:00