xref: /openbmc/linux/Documentation/devicetree/bindings/usb/starfive,jh7110-usb.yaml (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*5aa735a4SMinda Chen# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*5aa735a4SMinda Chen%YAML 1.2
3*5aa735a4SMinda Chen---
4*5aa735a4SMinda Chen$id: http://devicetree.org/schemas/usb/starfive,jh7110-usb.yaml#
5*5aa735a4SMinda Chen$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5aa735a4SMinda Chen
7*5aa735a4SMinda Chentitle: StarFive JH7110 wrapper module for the Cadence USBSS-DRD controller
8*5aa735a4SMinda Chen
9*5aa735a4SMinda Chenmaintainers:
10*5aa735a4SMinda Chen  - Minda Chen <minda.chen@starfivetech.com>
11*5aa735a4SMinda Chen
12*5aa735a4SMinda Chenproperties:
13*5aa735a4SMinda Chen  compatible:
14*5aa735a4SMinda Chen    const: starfive,jh7110-usb
15*5aa735a4SMinda Chen
16*5aa735a4SMinda Chen  ranges: true
17*5aa735a4SMinda Chen
18*5aa735a4SMinda Chen  starfive,stg-syscon:
19*5aa735a4SMinda Chen    $ref: /schemas/types.yaml#/definitions/phandle-array
20*5aa735a4SMinda Chen    items:
21*5aa735a4SMinda Chen      - items:
22*5aa735a4SMinda Chen          - description: phandle to System Register Controller stg_syscon node.
23*5aa735a4SMinda Chen          - description: dr mode register offset of STG_SYSCONSAIF__SYSCFG register for USB.
24*5aa735a4SMinda Chen    description:
25*5aa735a4SMinda Chen      The phandle to System Register Controller syscon node and the offset
26*5aa735a4SMinda Chen      of STG_SYSCONSAIF__SYSCFG register for USB.
27*5aa735a4SMinda Chen
28*5aa735a4SMinda Chen  dr_mode:
29*5aa735a4SMinda Chen    enum: [host, otg, peripheral]
30*5aa735a4SMinda Chen
31*5aa735a4SMinda Chen  "#address-cells":
32*5aa735a4SMinda Chen    enum: [1, 2]
33*5aa735a4SMinda Chen
34*5aa735a4SMinda Chen  "#size-cells":
35*5aa735a4SMinda Chen    enum: [1, 2]
36*5aa735a4SMinda Chen
37*5aa735a4SMinda Chen  clocks:
38*5aa735a4SMinda Chen    items:
39*5aa735a4SMinda Chen      - description: link power management clock
40*5aa735a4SMinda Chen      - description: standby clock
41*5aa735a4SMinda Chen      - description: APB clock
42*5aa735a4SMinda Chen      - description: AXI clock
43*5aa735a4SMinda Chen      - description: UTMI APB clock
44*5aa735a4SMinda Chen
45*5aa735a4SMinda Chen  clock-names:
46*5aa735a4SMinda Chen    items:
47*5aa735a4SMinda Chen      - const: lpm
48*5aa735a4SMinda Chen      - const: stb
49*5aa735a4SMinda Chen      - const: apb
50*5aa735a4SMinda Chen      - const: axi
51*5aa735a4SMinda Chen      - const: utmi_apb
52*5aa735a4SMinda Chen
53*5aa735a4SMinda Chen  resets:
54*5aa735a4SMinda Chen    items:
55*5aa735a4SMinda Chen      - description: Power up reset
56*5aa735a4SMinda Chen      - description: APB clock reset
57*5aa735a4SMinda Chen      - description: AXI clock reset
58*5aa735a4SMinda Chen      - description: UTMI APB clock reset
59*5aa735a4SMinda Chen
60*5aa735a4SMinda Chen  reset-names:
61*5aa735a4SMinda Chen    items:
62*5aa735a4SMinda Chen      - const: pwrup
63*5aa735a4SMinda Chen      - const: apb
64*5aa735a4SMinda Chen      - const: axi
65*5aa735a4SMinda Chen      - const: utmi_apb
66*5aa735a4SMinda Chen
67*5aa735a4SMinda ChenpatternProperties:
68*5aa735a4SMinda Chen  "^usb@[0-9a-f]+$":
69*5aa735a4SMinda Chen    $ref: cdns,usb3.yaml#
70*5aa735a4SMinda Chen    description: Required child node
71*5aa735a4SMinda Chen
72*5aa735a4SMinda Chenrequired:
73*5aa735a4SMinda Chen  - compatible
74*5aa735a4SMinda Chen  - ranges
75*5aa735a4SMinda Chen  - starfive,stg-syscon
76*5aa735a4SMinda Chen  - '#address-cells'
77*5aa735a4SMinda Chen  - '#size-cells'
78*5aa735a4SMinda Chen  - dr_mode
79*5aa735a4SMinda Chen  - clocks
80*5aa735a4SMinda Chen  - resets
81*5aa735a4SMinda Chen
82*5aa735a4SMinda ChenadditionalProperties: false
83*5aa735a4SMinda Chen
84*5aa735a4SMinda Chenexamples:
85*5aa735a4SMinda Chen  - |
86*5aa735a4SMinda Chen    usb@10100000 {
87*5aa735a4SMinda Chen        compatible = "starfive,jh7110-usb";
88*5aa735a4SMinda Chen        ranges = <0x0 0x10100000 0x100000>;
89*5aa735a4SMinda Chen        #address-cells = <1>;
90*5aa735a4SMinda Chen        #size-cells = <1>;
91*5aa735a4SMinda Chen        starfive,stg-syscon = <&stg_syscon 0x4>;
92*5aa735a4SMinda Chen        clocks = <&syscrg 4>,
93*5aa735a4SMinda Chen                 <&stgcrg 5>,
94*5aa735a4SMinda Chen                 <&stgcrg 1>,
95*5aa735a4SMinda Chen                 <&stgcrg 3>,
96*5aa735a4SMinda Chen                 <&stgcrg 2>;
97*5aa735a4SMinda Chen        clock-names = "lpm", "stb", "apb", "axi", "utmi_apb";
98*5aa735a4SMinda Chen        resets = <&stgcrg 10>,
99*5aa735a4SMinda Chen                 <&stgcrg 8>,
100*5aa735a4SMinda Chen                 <&stgcrg 7>,
101*5aa735a4SMinda Chen                 <&stgcrg 9>;
102*5aa735a4SMinda Chen        reset-names = "pwrup", "apb", "axi", "utmi_apb";
103*5aa735a4SMinda Chen        dr_mode = "host";
104*5aa735a4SMinda Chen
105*5aa735a4SMinda Chen        usb@0 {
106*5aa735a4SMinda Chen            compatible = "cdns,usb3";
107*5aa735a4SMinda Chen            reg = <0x0 0x10000>,
108*5aa735a4SMinda Chen                  <0x10000 0x10000>,
109*5aa735a4SMinda Chen                  <0x20000 0x10000>;
110*5aa735a4SMinda Chen            reg-names = "otg", "xhci", "dev";
111*5aa735a4SMinda Chen            interrupts = <100>, <108>, <110>;
112*5aa735a4SMinda Chen            interrupt-names = "host", "peripheral", "otg";
113*5aa735a4SMinda Chen            maximum-speed = "super-speed";
114*5aa735a4SMinda Chen        };
115*5aa735a4SMinda Chen    };
116