[PATCH v1 0/8] Convert Tegra pinctrl to DM

Thierry Reding treding at nvidia.com
Mon Dec 4 11:26:42 CET 2023


On Mon, Dec 04, 2023 at 10:20:46AM +0200, Svyatoslav Ryhel wrote:
> Create a DM supported wrapper arround existing Tegra pinmux logic.
> This implementation is backwards compatible with all existing board
> setups and early stages of setup. All new boards must be device tree
> based. Linux dts pinmux nodes are fully compatible with this driver.
> 
> As an example I have converted recently merged T30 boards to this
> layout (I have those devices and was able to test them properly) and
> Paz00 T20 board which was tested as well by owner.
> 
> Svyatoslav Ryhel (8):
>   ARM: mach-tegra: rearrange SPL configs
>   drivers: pinctrl: create Tegra DM pinctrl driver
>   drivers: pinctrl: tegra: incorporate existing code
>   board: asus: grouper: switch to DM pinmux
>   board: lg: x3-t30: switch to DM pinmux
>   board: asus: transformer: switch to DM pinmux
>   board: htc: endeavoru: switch to DM pinmux
>   board: compal: paz00: clean up the board
> 
>  arch/arm/dts/tegra20-paz00.dts                |    4 +-
>  arch/arm/dts/tegra30-asus-grouper-common.dtsi |  712 ++++++++++
>  .../dts/tegra30-asus-nexus7-grouper-E1565.dts |  113 ++
>  .../dts/tegra30-asus-nexus7-grouper-PM269.dts |  113 ++
>  .../dts/tegra30-asus-nexus7-tilapia-E1565.dts |  149 +++
>  arch/arm/dts/tegra30-asus-p1801-t.dts         |  982 ++++++++++++++
>  arch/arm/dts/tegra30-asus-tf201.dts           |   45 +
>  arch/arm/dts/tegra30-asus-tf300t.dts          |   45 +
>  arch/arm/dts/tegra30-asus-tf300tg.dts         |  128 ++
>  arch/arm/dts/tegra30-asus-tf300tl.dts         |  163 +++
>  arch/arm/dts/tegra30-asus-tf600t.dts          |  889 +++++++++++++
>  arch/arm/dts/tegra30-asus-tf700t.dts          |   53 +
>  arch/arm/dts/tegra30-asus-transformer.dtsi    |  984 ++++++++++++++
>  arch/arm/dts/tegra30-htc-endeavoru.dts        | 1147 +++++++++++++++++
>  arch/arm/dts/tegra30-lg-p880.dts              |   90 ++
>  arch/arm/dts/tegra30-lg-p895.dts              |   93 ++
>  arch/arm/dts/tegra30-lg-x3.dtsi               |  845 ++++++++++++
>  arch/arm/include/asm/arch-tegra114/pinmux.h   |  303 +++++
>  arch/arm/include/asm/arch-tegra124/pinmux.h   |  327 +++++
>  arch/arm/include/asm/arch-tegra20/pinmux.h    |  291 +++++
>  arch/arm/include/asm/arch-tegra210/pinmux.h   |  394 ++++++
>  arch/arm/include/asm/arch-tegra30/pinmux.h    |  381 ++++++
>  arch/arm/mach-tegra/Kconfig                   |   16 +-
>  arch/arm/mach-tegra/Makefile                  |    1 -
>  arch/arm/mach-tegra/board.c                   |    6 +-
>  arch/arm/mach-tegra/board2.c                  |    2 +-
>  arch/arm/mach-tegra/tegra114/Makefile         |    2 +-
>  arch/arm/mach-tegra/tegra124/Makefile         |    2 -
>  arch/arm/mach-tegra/tegra20/Makefile          |    2 +-
>  arch/arm/mach-tegra/tegra210/Makefile         |    1 -
>  arch/arm/mach-tegra/tegra30/Makefile          |    2 +-
>  board/asus/grouper/grouper.c                  |   18 -
>  board/asus/grouper/pinmux-config-grouper.h    |  362 ------
>  .../pinmux-config-transformer.h               |  365 ------
>  board/asus/transformer-t30/transformer-t30.c  |   23 -
>  board/compal/paz00/Makefile                   |    8 -
>  board/compal/paz00/paz00.c                    |   53 -
>  board/htc/endeavoru/endeavoru.c               |   14 -
>  board/htc/endeavoru/pinmux-config-endeavoru.h |  362 ------
>  board/lg/x3-t30/Kconfig                       |   12 -
>  board/lg/x3-t30/configs/p880.config           |    1 -
>  board/lg/x3-t30/configs/p895.config           |    1 -
>  board/lg/x3-t30/pinmux-config-x3.h            |  449 -------
>  board/lg/x3-t30/x3-t30.c                      |   23 -
>  configs/paz00_defconfig                       |    3 +
>  drivers/pinctrl/Kconfig                       |    1 +
>  drivers/pinctrl/Makefile                      |    1 +
>  drivers/pinctrl/tegra/Kconfig                 |   18 +
>  drivers/pinctrl/tegra/Makefile                |   16 +
>  .../pinctrl/tegra/funcmux-tegra114.c          |    0
>  .../pinctrl/tegra/funcmux-tegra124.c          |    0
>  .../pinctrl/tegra/funcmux-tegra20.c           |    0
>  .../pinctrl/tegra/funcmux-tegra210.c          |    0
>  .../pinctrl/tegra/funcmux-tegra30.c           |    0
>  drivers/pinctrl/tegra/pinctrl-tegra.c         |  248 ++++
>  drivers/pinctrl/tegra/pinctrl-tegra20.c       |  177 +++
>  .../pinctrl/tegra}/pinmux-common.c            |    0
>  .../pinctrl/tegra/pinmux-tegra114.c           |    0
>  .../pinctrl/tegra/pinmux-tegra124.c           |    0
>  .../pinctrl/tegra/pinmux-tegra20.c            |    0
>  drivers/pinctrl/tegra/pinmux-tegra210.c       |  190 +++
>  .../pinctrl/tegra/pinmux-tegra30.c            |    0
>  include/configs/x3-t30.h                      |   13 +-
>  63 files changed, 8920 insertions(+), 1723 deletions(-)

So we're adding 7000 extra lines here just to get the same level of
functionality? Do we really want this?

For things like the kernel this makes a bit more sense because we can
have generic kernel images for a wide variety of boards, and
additionally we can have dynamic reconfiguration of the pinmux at
runtime. We have neither of those in U-Boot, so do we really need to
move all this into DT and add this extra overhead?

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20231204/ca7b5743/attachment.sig>


More information about the U-Boot mailing list