[PATCH 0/4] Align sama5 and sama7 DT's with Linux
Eugen.Hristev at microchip.com
Eugen.Hristev at microchip.com
Mon Sep 19 10:21:55 CEST 2022
On 9/1/22 5:22 PM, Sergiu Moga wrote:
> 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.
>
> Furthermore, this fixes a GPIO request issue existent on sama7g5,
> which was caused by the fact that there was no UCLASS_GPIO driver
> bound to the pioA node label.
>
> To make the two Devicetrees even more similar (the one from Linux and the
> one from U-Boot), make the pinctrl driver's node support multiple subnodes
> for its subnode.
>
> Sergiu Moga (4):
> ARM: dts: at91: sama5: Align with Linux Devicetree
> ARM: dts: at91: sama7: Align with Linux Devicetree
> pinctrl: at91-pio4: Bind GPIO driver to the pinctrl DT node
> pinctrl: at91-pio4: Add support for pinctrl config subnodes
>
> arch/arm/dts/at91-sama5d27_giantboard.dts | 59 +++--
> arch/arm/dts/at91-sama5d27_som1_ek.dts | 80 +++----
> .../dts/at91-sama5d27_wlsom1_ek-u-boot.dtsi | 6 +-
> arch/arm/dts/at91-sama5d27_wlsom1_ek.dts | 92 ++++----
> arch/arm/dts/at91-sama5d2_icp.dts | 134 ++++++------
> arch/arm/dts/at91-sama5d2_ptc_ek.dts | 98 ++++-----
> arch/arm/dts/at91-sama5d2_xplained.dts | 204 +++++++++---------
> arch/arm/dts/at91-sama7g5ek-u-boot.dtsi | 2 +-
> arch/arm/dts/at91-sama7g5ek.dts | 85 +++++---
> arch/arm/dts/sama5d2.dtsi | 9 +-
> arch/arm/dts/sama5d27_som1.dtsi | 94 ++++----
> arch/arm/dts/sama5d27_wlsom1.dtsi | 54 +++--
> arch/arm/dts/sama7g5.dtsi | 16 +-
> drivers/gpio/atmel_pio4.c | 2 -
> drivers/pinctrl/pinctrl-at91-pio4.c | 138 ++++++++++--
> 15 files changed, 592 insertions(+), 481 deletions(-)
>
Applied to u-boot-at91/next , thanks !
More information about the U-Boot
mailing list