Device Tree
A DTS/DTSI file is used to store all the device tree configuration.
The device tree of USB is stored in the following path:
linux-5.15/arch/riscv/boot/dts/starfive/The following is an example of the USB configuration in the file
jh7110-common.dtsi.
&usbdrd30 {
pinctrl-names = "default";
pinctrl-0 = <&usb_pins>;
dr_mode = "host"; /*host or peripheral*/
status = "disabled";
};
The following is an example of the USB configuration in the file
jh7110.dtsi.
usbdrd30: usbdrd{
compatible = "starfive,jh7110-cdns3";
reg = <0x0 0x10210000 0x0 0x1000>,
<0x0 0x10200000 0x0 0x1000>;
clocks = <&clkgen JH7110_USB_125M>,
<&clkgen JH7110_USB0_CLK_APP_125>,
<&clkgen JH7110_USB0_CLK_LPM>,
<&clkgen JH7110_USB0_CLK_STB>,
<&clkgen JH7110_USB0_CLK_USB_APB>,
<&clkgen JH7110_USB0_CLK_AXI>,
<&clkgen JH7110_USB0_CLK_UTMI_APB>,
<&clkgen JH7110_PCIE0_CLK_APB>;
clock-names = "125m","app","lpm","stb","apb","axi","utmi", "phy";
resets = <&rstgen RSTN_U0_CDN_USB_PWRUP>,
<&rstgen RSTN_U0_CDN_USB_APB>,
<&rstgen RSTN_U0_CDN_USB_AXI>,
<&rstgen RSTN_U0_CDN_USB_UTMI_APB>,
<&rstgen RSTN_U0_PLDA_PCIE_APB>;
reset-names = "pwrup","apb","axi","utmi", "phy";
starfive,stg-syscon = <&stg_syscon 0x4 0xc4 0x148 0x1f4>;
starfive,sys-syscon = <&sys_syscon 0x18>;
status = "disabled";
#address-cells = <2>;
#size-cells = <2>;
#interrupt-cells = <1>;
ranges;
usbdrd_cdns3: usb@10100000 {
compatible = "cdns,usb3";
reg = <0x0 0x10100000 0x0 0x10000>,
<0x0 0x10110000 0x0 0x10000>,
<0x0 0x10120000 0x0 0x10000>;
reg-names = "otg", "xhci", "dev";
interrupts = <100>, <108>, <110>;
interrupt-names = "host", "peripheral", "otg";
phy-names = "cdns3,usb3-phy", "cnds3,usb2-phy";
maximum-speed = "super-speed";
};
};
The following list provides an example of the parameters contained in the code block
above.
- reg: The basic address and the max offset of the module.
- clocks: The clocks used by the module. Usually, this parameter is filled with the system clock source or the clock of the module.
- resets: The reset items used by the module.
- starfive,stg-syscon: The register values for the StarFive STG SYSCON control registers.
- starfive,sys-syscon: The register values for the StarFive SYS SYSCON control registers.
- status: The status of the module.
- okay: The module is enabled.
- disabled: The module is disabled.
- other: Other parameters for USB registration and association.
