---
 sys/arch/armv7/conf/GENERIC |  1 +
 sys/dev/fdt/rkusbphy.c      | 25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/sys/arch/armv7/conf/GENERIC b/sys/arch/armv7/conf/GENERIC
index 994fa565976..a51819233a6 100644
--- a/sys/arch/armv7/conf/GENERIC
+++ b/sys/arch/armv7/conf/GENERIC
@@ -214,6 +214,7 @@ mvtemp*             at fdt?
 rkclock*       at fdt? early 1
 rkgrf*         at fdt? early 1
 rkpinctrl*     at fdt? early 1
+rkusbphy*      at fdt? early 1
 rkgpio*                at fdt?
 rkiic*         at fdt?
 iic*           at rkiic?
diff --git a/sys/dev/fdt/rkusbphy.c b/sys/dev/fdt/rkusbphy.c
index 032d7b454d3..ccd69c279fa 100644
--- a/sys/dev/fdt/rkusbphy.c
+++ b/sys/dev/fdt/rkusbphy.c
@@ -61,6 +61,30 @@ struct rkusbphy_chip {
        const struct rkusbphy_regs      *c_regs;
 };
 
+/*
+ * RK3128 has one USB2PHY.
+ */
+
+static const struct rkusbphy_regs rkusbphy_rk3128_usb_regs = {
+       /*                              shift,  mask,   set */
+       .clk_enable =   { 0x0190,       15,     0x1,    0x0 },
+
+       .otg = {
+               .phy_enable =   { 0x017c,       0,      0x1ff,  0 },
+       },
+
+       .host = {
+               .phy_enable =   { 0x0194,       0,      0x1ff,  0 },
+       },
+};
+
+static const struct rkusbphy_chip rkusbphy_rk3128[] = {
+       {
+               .c_base_addr = 0x17c,
+               .c_regs = &rkusbphy_rk3128_usb_regs,
+       },
+};
+
 /*
  * RK3399 has two USB2PHY nodes that share a GRF.
  */
@@ -258,6 +282,7 @@ struct rkusbphy_id {
 #define RKUSBPHY_ID(_n, _c) { _n, _c, nitems(_c) }
 
 static const struct rkusbphy_id rkusbphy_ids[] = {
+       RKUSBPHY_ID("rockchip,rk3128-usb2phy", rkusbphy_rk3128),
        RKUSBPHY_ID("rockchip,rk3399-usb2phy", rkusbphy_rk3399),
        RKUSBPHY_ID("rockchip,rk3528-usb2phy", rkusbphy_rk3528),
        RKUSBPHY_ID("rockchip,rk3568-usb2phy", rkusbphy_rk3568),
-- 
2.47.1

Reply via email to