u-boot/drivers
Sergiu Moga 2ed96a87d2 pinctrl: at91-pio4: Bind GPIO driver to the pinctrl DT node
This has been done in order to align the DT of U-Boot with the DT
of Linux. In Linux, a phandle from a '-gpio' DT property is linked
to the pinctrl driver, a single driver that handles both pinctrl
settings and offers GPIO API to callers. On the other hand,
U-Boot redirects such phandle to a corresponding UCLASS_GPIO
driver, because U-Boot offers two different types of drivers
in this case: UCLASS_PINCTRL which handles pin functions and
UCLASS_GPIO which handles gpio requests as a gpio provider.
Due to this, we have two drivers in Uboot, but the Devicetree
has a single node. Thus, just one of the drivers can be probed
for the DT node during platform initialization, before relocation.

Our previous solution in U-Boot was to have a different devicetree:
the gpio node has a subnode for the pinctrl driver, which
is not compliant with Linux ABI. Furthermore, our documentation
for this type of nodes mentions no such gpio compatible.

After this patch, we can no longer add nodes with a gpio
compatible in the DT. Thus, in order to link the pinctrl driver to
the gpio one, a hook to the bind method of the former in U-Boot has
been added and the GPIO related compatibles have been removed to
avoid conflict when compatibles are enumerated and bound to drivers
during platform start before relocation. The bind method will attach
the GPIO driver to the pinctrl DT node so that every phandle coming
from '-gpio' DT properties will be redirected to a valid driver
attached to the pinctrl DT node.

Signed-off-by: Sergiu Moga <sergiu.moga@microchip.com>
2022-09-19 09:51:04 +03:00
..
adc adc: meson-saradc: add AXG variant 2022-04-25 09:25:00 +02:00
ata blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
axi WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
bios_emulator video: Rename structs and functions to avoid VBE 2022-08-12 08:14:23 -04:00
block cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
bootcount Convert CONFIG_SYS_BOOTCOUNT_LE et al to Kconfig 2022-07-07 14:01:09 -04:00
bus bus: ti-sysc: change in a normal driver 2021-03-22 19:23:27 +13:00
button button: gpio: add DM_GPIO dependency 2022-08-23 12:39:06 +02:00
cache drivers: cache: ncore: Disable snoop filter 2022-06-17 16:27:05 +08:00
clk clk: at91: sam9x60: change parent clock from mck_pres to mck_div 2022-09-19 09:50:17 +03:00
core dm: core: Add functions to read 8/16-bit integers 2022-09-14 15:23:03 -04:00
cpu cpu: microblaze: add error handling in microblaze_cpu_get_desc() 2022-09-13 11:32:48 +02:00
crypto cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
ddr cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
demo demo: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
dfu blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
dma arm: mach-k3: Rename SOC_K3_AM6 to SOC_K3_AM654 2022-07-25 13:02:04 -04:00
fastboot Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
firmware firmware: ti_sci: Move ACK checking to ti_sci_do_xfer() function 2022-08-26 10:55:46 -04:00
fpga cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
fuzz sandbox: Implement fuzzing engine driver 2022-06-23 12:58:19 -04:00
gpio pinctrl: at91-pio4: Bind GPIO driver to the pinctrl DT node 2022-09-19 09:51:04 +03:00
hwspinlock treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
i2c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
input input: apple: Add support for Apple SPI keyboard 2022-02-10 16:44:23 -05:00
iommu iommu: Add M2 support to Apple DART driver 2022-07-25 09:38:47 -04:00
led led: pwm: Use NOP uclass driver for top-level node 2022-07-08 10:56:45 -04:00
mailbox arm64: versal: Enable power domain driver and its dependencies 2022-07-26 08:36:25 +02:00
memory keystone2: Move CONFIG_AEMIF_CNTRL_BASE out of CONFIG namespace 2021-09-27 21:38:34 -04:00
misc misc: usb251xb: Support 8/16 bit device tree values 2022-09-14 15:23:03 -04:00
mmc mmc: atmel_sdhci: re-enable sdhci after SD Card re-insertion 2022-09-19 09:50:17 +03:00
mtd cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
mux treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
net cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
nvme blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
pch treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
pci video: Rename structs and functions to avoid VBE 2022-08-12 08:14:23 -04:00
pci_endpoint dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
phy phy: Add support for drivers to enable USB on QCS404 SoC 2022-08-26 10:55:45 -04:00
pinctrl pinctrl: at91-pio4: Bind GPIO driver to the pinctrl DT node 2022-09-19 09:51:04 +03:00
power firmware: zynqmp: Skip loading config object for Versal 2022-09-13 11:32:48 +02:00
pwm pwm: aspeed: Select SYSCON to get parent detail. 2022-08-04 13:59:59 -04:00
qe powerpc: remove support for kmtergr1 and MPC8309 2022-08-20 22:45:00 -04:00
ram cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
reboot-mode reboot-mode: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
remoteproc remoteproc: ipu: Add driver to bring up ipu 2022-02-08 11:00:03 -05:00
reset reset: qcom: Add support for QCS404 SoC reset table 2022-08-26 10:55:45 -04:00
rng drivers: rng: optee_rng: register to CONFIG_OPTEE_SERVICE_DISCOVERY 2022-09-14 15:23:03 -04:00
rtc treewide: Fix Marek's name and change my e-mail address 2022-07-21 10:14:04 +02:00
scsi blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
serial cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
smem dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
soc soc: soc_ti_k3: identify j7200 SR2.0 SoCs 2022-07-06 14:30:51 -04:00
sound sound: enable building DA7219 driver with ACPIGEN=n 2022-07-08 09:05:47 -04:00
spi cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
spmi spmi: msm: add arbiter version 5 support 2021-10-31 08:46:44 -04:00
sysinfo sysinfo: rcar3: Add Renesas R-Car Gen3 sysinfo driver 2021-07-20 23:33:54 +02:00
sysreset sysreset: socfpga: Use parent device for reading base address 2022-07-01 14:57:14 +08:00
tee blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
thermal WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
timer cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
tpm common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
ufs lib: fix selection of CONFIG_CHARSET 2022-05-03 21:39:22 +02:00
usb cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
video cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
virtio blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
w1 arm: Remove zmx25 board and ARCH_MX25 2021-10-01 21:08:18 -04:00
w1-eeprom dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
watchdog watchdog: Integrate watchdog triggering into the cyclic framework 2022-09-18 10:26:04 +02:00
xen blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
Kconfig fuzzing_engine: Add fuzzing engine uclass 2022-06-23 12:58:18 -04:00
Makefile blk: Rename HAVE_BLOCK_DEVICE 2022-09-16 11:05:16 -04:00