[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