hc
2023-03-13 25c72f09e887f85fcff4a3f978d294da97ab1420
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
ST DWC3 glue logic
 
This file documents the parameters for the dwc3-st driver.
This driver controls the glue logic used to configure the dwc3 core on
STiH407 based platforms.
 
Required properties:
 - compatible    : must be "st,stih407-dwc3"
 - reg        : glue logic base address and USB syscfg ctrl register offset
 - reg-names    : should be "reg-glue" and "syscfg-reg"
 - st,syscon    : should be phandle to system configuration node which
         encompasses the glue registers
 - resets    : list of phandle and reset specifier pairs. There should be two entries, one
         for the powerdown and softreset lines of the usb3 IP
 - reset-names    : list of reset signal names. Names should be "powerdown" and "softreset"
See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
See: Documentation/devicetree/bindings/reset/reset.txt
 
 - #address-cells, #size-cells : should be '1' if the device has sub-nodes
   with 'reg' property
 
 - pinctl-names    : A pinctrl state named "default" must be defined
See: Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
 
 - pinctrl-0    : Pin control group
See: Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
 
 - ranges    : allows valid 1:1 translation between child's address space and
         parent's address space
 
Sub-nodes:
The dwc3 core should be added as subnode to ST DWC3 glue as shown in the
example below. The DT binding details of dwc3 can be found in:
Documentation/devicetree/bindings/usb/dwc3.txt
 
NB: The dr_mode property described in [1] is NOT optional for this driver, as the default value
is "otg", which isn't supported by this SoC. Valid dr_mode values for dwc3-st are either "host"
or "device".
 
[1] Documentation/devicetree/bindings/usb/generic.txt
 
Example:
 
st_dwc3: dwc3@8f94000 {
   compatible    = "st,stih407-dwc3";
   reg        = <0x08f94000 0x1000>, <0x110 0x4>;
   reg-names    = "reg-glue", "syscfg-reg";
   st,syscfg    = <&syscfg_core>;
   resets        = <&powerdown STIH407_USB3_POWERDOWN>,
             <&softreset STIH407_MIPHY2_SOFTRESET>;
   reset-names    = "powerdown", "softreset";
   #address-cells    = <1>;
   #size-cells    = <1>;
   pinctrl-names    = "default";
   pinctrl-0    = <&pinctrl_usb3>;
   ranges;
 
   dwc3: dwc3@9900000 {
       compatible    = "snps,dwc3";
       reg        = <0x09900000 0x100000>;
       interrupts    = <GIC_SPI 155 IRQ_TYPE_NONE>;
       dr_mode        = "host";
       phy-names    = "usb2-phy", "usb3-phy";
       phys        = <&usb2_picophy2>, <&phy_port2 PHY_TYPE_USB3>;
   };
};