[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