u-boot/drivers/pinctrl
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
..
aspeed pinctrl: aspeed: FWSPICS1 and SPI1CS1 pin support 2022-09-13 12:08:40 -04:00
ath79 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
broadcom dm: treewide: Rename ofdata_to_platdata() to of_to_plat() 2020-12-13 16:51:09 -07:00
exynos exynos78x0: pinctrl: set const to structs 2021-11-09 14:07:46 +09:00
intel doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mediatek pinctrl: mediatek: add support for different types of IO pins 2022-05-05 09:29:58 -04:00
meson pinctrl: meson: Correct the driver GPIO declaration 2021-11-19 18:15:26 +01:00
mscc pinctrl: mscc: Fix multiple definition error 2021-07-07 10:17:54 -04:00
mtmips pinctrl: mtmips: add support for MediaTek MT7621 SoC 2022-07-13 23:03:37 +02:00
mvebu arm64: a37xx: pinctrl: Improve description for pinmux command 2022-08-09 08:58:27 +02:00
nexell global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
nuvoton pinctrl: nuvoton: Add NPCM7xx pinctrl driver 2022-06-10 13:37:32 -04:00
nxp imx: pinctrl: add pinctrl and pinfunc file for i.MX93 2022-07-26 11:29:00 +02:00
renesas WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
rockchip rockchip: rk3066: add rk3066 pinctrl driver 2022-04-18 11:25:13 +08:00
sunxi pinctrl: sunxi: Add SPI0 pinmuxes 2022-04-04 23:24:17 +01:00
uniphier dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
Kconfig stm32mp1: fix reference for STMicroelectronics 2022-06-17 14:12:27 +02:00
Makefile pinctrl: nuvoton: Add NPCM7xx pinctrl driver 2022-06-10 13:37:32 -04:00
pinctrl_pic32.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
pinctrl_stm32.c pinctrl: pinctrl_stm32: Populate uc_priv->name[] with pinmux node's name 2022-09-15 09:55:30 -04:00
pinctrl-apple.c pinctrl: Add Apple pinctrl driver 2021-11-17 17:04:58 -05:00
pinctrl-at91-pio4.c pinctrl: at91-pio4: Bind GPIO driver to the pinctrl DT node 2022-09-19 09:51:04 +03:00
pinctrl-at91.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
pinctrl-generic.c pinctrl: Add new function pinctrl_generic_set_state_prefix() 2022-07-28 08:41:44 +02:00
pinctrl-k210.c pinctrl: k210: Fix bias-pull-up 2022-03-15 17:43:11 +08:00
pinctrl-qe-io.c treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
pinctrl-sandbox.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
pinctrl-single.c pinctrl: single: add support for pinctrl-single, pins when #pinctrl-cells = 2 2022-01-18 08:31:02 -05:00
pinctrl-sti.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
pinctrl-stmfx.c pinctrl: stmfx: define LOG_CATEGORY 2021-11-30 11:20:34 +01:00
pinctrl-uclass.c pinctrl: Add third argument label for pinctrl_gpio_request() function 2022-07-28 15:17:45 +02:00
pinctrl-zynqmp.c pinctrl: zynqmp: Add support for output-enable and bias-high-impedance 2022-06-24 14:14:29 +02:00