[RFC PATCH v1 0/2] Add Rockchip USBPHY DM driver

Johan Jonker jbx6244 at gmail.com
Thu Apr 2 03:31:14 CEST 2026


The Rockchip SoCs with an USB node and compatible = "snps,dwc2" can be HOST or OTG
while the PHY driver is hard coded and initiated in the board.c file.
Above construction is not very U-boot DM alike.
This is an attempt to decouple the USBPHY into a DM driver.

Tested on RK3066.
Feedback request for RK3188 and RK3288.

On older Rockchip SOCs an usbphy DT node is placed under a SYSCOM node.

grf: grf at 20008000 {
	usbphy: usbphy {

		usbphy0: usb-phy at 17c {
		};

		usbphy1: usb-phy at 188 {
		};
	};
};

PROBLEM:
The usbphy node does not show up in the DM tree to be found by the
generic_phy_get_by_index() function. Only by manual transfer to the DT root
is gets detected.

REQUEST:
A little bit of help from the U-boot FDT and DM experts.
Locking/bind a driver in the DM model that is not in DT root.
Is this solvable with current DM stack?

=> dm tree
 Class     Seq    Probed  Driver                Name
-----------------------------------------------------------
 root          0  [ + ]   root_driver           root_driver
 nop           1  [ + ]   rockchip_usbphy       |-- usbphy
 phy           0  [ + ]   rockchip_usbphy_port  |   |-- usb-phy at 17c
 phy           1  [ + ]   rockchip_usbphy_port  |   `-- usb-phy at 188

Johan Jonker (2):
  phy: rockchip: add phy-rockchip-usb2.c
  usb: phy: remove rockchip_usb2_phy.c

 arch/arm/dts/rk3066a-u-boot.dtsi         |  29 ++
 arch/arm/dts/rk3188-u-boot.dtsi          |  29 ++
 arch/arm/dts/rk3288-u-boot.dtsi          |  40 +++
 arch/arm/mach-rockchip/board.c           |  28 --
 configs/chromebit_mickey_defconfig       |   2 +-
 configs/chromebook_jerry_defconfig       |   2 +-
 configs/chromebook_minnie_defconfig      |   2 +-
 configs/chromebook_speedy_defconfig      |   2 +-
 configs/evb-rk3288-rk808_defconfig       |   2 +-
 configs/firefly-rk3288_defconfig         |   4 +-
 configs/miqi-rk3288_defconfig            |   4 +-
 configs/mk808_defconfig                  |   2 +-
 configs/phycore-rk3288_defconfig         |   3 +-
 configs/popmetal-rk3288_defconfig        |   3 +-
 configs/rock-pi-n8-rk3288_defconfig      |   2 +-
 configs/rock2_defconfig                  |   3 +-
 configs/rock_defconfig                   |   3 +-
 configs/tinker-rk3288_defconfig          |   4 +-
 configs/tinker-s-rk3288_defconfig        |   4 +-
 configs/vyasa-rk3288_defconfig           |   2 +-
 drivers/phy/rockchip/Kconfig             |  28 +-
 drivers/phy/rockchip/Makefile            |   5 +-
 drivers/phy/rockchip/phy-rockchip-usb2.c | 379 +++++++++++++++++++++++
 drivers/usb/phy/Kconfig                  |   3 -
 drivers/usb/phy/Makefile                 |   1 -
 drivers/usb/phy/rockchip_usb2_phy.c      | 113 -------
 include/usb/dwc2_udc.h                   |   1 -
 27 files changed, 522 insertions(+), 178 deletions(-)
 create mode 100644 drivers/phy/rockchip/phy-rockchip-usb2.c
 delete mode 100644 drivers/usb/phy/rockchip_usb2_phy.c

--
2.39.5



More information about the U-Boot mailing list