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