RE: [PATCH v4 2/2] dt-bindings: usb: dwc3: Add Realtek DHC RTD SoC DWC3 USB

From: Stanley Chang[昌育德]
Date: Tue Aug 22 2023 - 03:34:32 EST


Hi Rob,

> > +examples:
> > + - |
> > + usb@98013e00 {
> > + compatible = "realtek,rtd1319d-dwc3", "realtek,rtd-dwc3";
> > + reg = <0x98013e00 0x140>, <0x98013f60 0x4>;
>
> These look like registers in some other block rather than a standalone wrapper
> block. Are these part of some syscon block? If so, I don't think a wrapper node
> is the right approach here, but a phandle to the syscon would be instead.
>
They are the same block of registers.
We have three dwc3 controllers in one SoC. The register wrapper is located at
USB1. 0x98013200 to 0x980133ff
USB2. 0x98013c00 to 0x98013dff
USB3. 0x98013e00 to 0x98013fff

Why are they split into two blocks?
Since USB_DBUS_PWR_CTRL_REG has a different offset at usb1 (0x164) than other USBs (0x160).
We split two blocks one 0x98013200 to 0x9801333f and one 0x98013364 to 0x98013367, to solve this question.

> From the register definitions, much of it looks phy related, but this is not part
> of the phys?

In our hardware design, these phy settings are location the register of wrapper.

Thanks,
Stanley

>
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + ranges;
> > +
> > + usb@98050000 {
> > + compatible = "snps,dwc3";
> > + reg = <0x98050000 0x9000>;
> > + interrupts = <0 94 4>;
> > + phys = <&usb2phy &usb3phy>;
> > + phy-names = "usb2-phy", "usb3-phy";
> > + dr_mode = "otg";
> > + usb-role-switch;
> > + role-switch-default-mode = "host";
> > + snps,dis_u2_susphy_quirk;
> > + snps,parkmode-disable-ss-quirk;
> > + snps,parkmode-disable-hs-quirk;
> > + maximum-speed = "high-speed";
> > + };
> > + };
> > --