[PATCH 00/15] arm: am335x: Switch to upstream devicetree

Markus Schneider-Pargmann (TI.com) msp at baylibre.com
Tue Nov 18 11:40:20 CET 2025


The series is split into two logical groups:

- Patches 1-4: Fixes for am335x-evm to boot and support the LCD panel
  with the current u-boot devicetree.
- Patches 5-15: Make upstream devicetree working with uboot. This
  touches different areas, power-domain, USB and simple_panel/ti-lcdc:
  - Upstream DT uses simple-pm-bus a lot instead of the simple-bus that
    is currently in use in u-boot devicetree. To support simple-pm-bus,
    power domain support has to be added which required me to add a stub
    driver for PRM to implement a of_xlate function that does not accept
    any arguments. Also I had to make the clocks in the uboot
    simple-pm-bus driver optional.
  - USB in the u-boot devicetree is using a wrapper driver binding to
    ti,am33xx-usb that creates new devices bound to a host or peripheral
    driver depending on the dr_mode property. But that does not exist in
    upstream devicetree.

    Current uboot devicetree:
      usb: usb at 47400000 {
          compatible = "ti,am33xx-usb";
          usb0: usb at 47401000 {
              compatible = "ti,musb-am33xx";
              dr_mode = "otg";
              ...
          };
      };

    upstream devicetree:
      target-module at 47400000 {
          compatible = "ti,sysc-omap4", "ti,sysc";
          usb0: usb at 0 {
              compatible = "ti,musb-am33xx";
              dr_mode = "otg";
          };
      };

    To solve this I chose to use the compatible for both drivers, host
    and peripheral and return -ENODEV if the dr_mode property does not
    match the driver type. This required a slight adjustment in the core
    probing mechanism.
  - And last I ported the hardcoded panel settings from Linux
    simple-panel driver to the u-boot simple_panel driver. I also added
    support for the simple_panel to ti-lcdc.

The series has been tested on am335x-evm. This series should make it
much easier to port other am335x boards to use upstream devicetrees as
well.

Best,
Markus

Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp at baylibre.com>
---
Markus Schneider-Pargmann (TI.com) (15):
      board: ti: am335x: Fix DM_TPS65910 condition
      arm: dts: am335x-evm: Add backlight to the panel
      arm: omap2plus: Select REGMAP
      configs: am335x_evm_defconfig: Enable panel
      simple-pm-bus: Make clocks optional
      power: domain: Add ti-omap-prm stub
      arm: dts: am335x-evm-u-boot: Add chosen tick-timer
      dm: core: Support multiple drivers with same compatibles
      usb: musb-new: Relative ctrl_mod address parsing
      usb: musb-new: Add compatibles for ti,musb-am33xx
      am33xx: Fix comment about config symbols
      am33xx: Support upstream devicetree binding
      video: simple_panel: Add tfc_s9700rtwv43tr_01b
      video: ti: am335x: Support OF graph
      configs: am335x_evm_defconfig: Switch to upstream devicetree

 arch/arm/Kconfig                    |  1 +
 arch/arm/dts/am335x-evm-u-boot.dtsi |  6 ++++
 arch/arm/dts/am335x-evm.dts         |  3 +-
 arch/arm/mach-omap2/am33xx/board.c  | 16 ++++++----
 board/ti/am335x/board.c             |  2 +-
 configs/am335x_evm_defconfig        | 18 +++++++++--
 drivers/core/lists.c                | 62 +++++++++++++++++++------------------
 drivers/core/simple-pm-bus.c        |  2 +-
 drivers/power/domain/Kconfig        |  8 +++++
 drivers/power/domain/Makefile       |  1 +
 drivers/power/domain/ti-omap-prm.c  | 36 +++++++++++++++++++++
 drivers/usb/musb-new/ti-musb.c      | 36 ++++++++++++++++++++-
 drivers/video/simple_panel.c        | 48 ++++++++++++++++++++++++----
 drivers/video/ti/tilcdc.c           | 46 ++++++++++++++++++++++-----
 14 files changed, 229 insertions(+), 56 deletions(-)
---
base-commit: 365a7079fb918643da0f0709660a7d8ea76dd6f3
change-id: 20251118-topic-am33-evm-oftree-v2026-01-ea701e03f8cf

Best regards,
-- 
Markus Schneider-Pargmann (TI.com) <msp at baylibre.com>



More information about the U-Boot mailing list