← Documents Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

NVIDIA Tegra124 xHCI Controller

Tegra124·132 XUSB의 세 register, 11개 clock, reset·PHY와 필수 supply를 설명합니다.

Source pathDocumentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

nvidia,tegra124-xusb.yaml:1-200

Tegra124·132 XUSB의 세 register, 11개 clock, reset·PHY와 필수 supply를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, clock, PHY, power, supply, source path와 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/nvidia,tegra124-xusb.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NVIDIA Tegra124 xHCI controller
8
9 maintainers:
10 - Thierry Reding <[email protected]>
11 - Jon Hunter <[email protected]>
12
13 description: The Tegra xHCI controller supports both USB2 and USB3 interfaces
14 exposed by the Tegra XUSB pad controller.
15
16 properties:
17 # required
18 compatible:
19 oneOf:
20 - description: NVIDIA Tegra124
21 const: nvidia,tegra124-xusb
22
23 - description: NVIDIA Tegra132
24 items:
25 - const: nvidia,tegra132-xusb
26 - const: nvidia,tegra124-xusb
27
28 reg:
29 items:
30 - description: base and length of the xHCI host registers
31 - description: base and length of the XUSB FPCI registers
32 - description: base and length of the XUSB IPFS registers
33
34 reg-names:
35 items:
36 - const: hcd
37 - const: fpci
38 - const: ipfs
39
40 interrupts:
41 items:
42 - description: xHCI host interrupt
43 - description: mailbox interrupt
44
45 clocks:
46 items:
47 - description: XUSB host clock
48 - description: XUSB host source clock
49 - description: XUSB Falcon source clock
50 - description: XUSB SuperSpeed clock
51 - description: XUSB SuperSpeed clock divider
52 - description: XUSB SuperSpeed source clock
53 - description: XUSB HighSpeed clock source
54 - description: XUSB FullSpeed clock source
55 - description: USB PLL
56 - description: reference clock
57 - description: I/O PLL
58
59 clock-names:
60 items:
61 - const: xusb_host
62 - const: xusb_host_src
63 - const: xusb_falcon_src
64 - const: xusb_ss
65 - const: xusb_ss_div2
66 - const: xusb_ss_src
67 - const: xusb_hs_src
68 - const: xusb_fs_src
69 - const: pll_u_480m
70 - const: clk_m
71 - const: pll_e
72
73 resets:
74 items:
75 - description: reset for the XUSB host controller
76 - description: reset for the SuperSpeed logic
77 - description: shared reset for xusb_{ss,hs,fs,falcon,host}_src.
78
79 reset-names:
80 items:
81 - const: xusb_host
82 - const: xusb_ss
83 - const: xusb_src
84
85 nvidia,xusb-padctl:
86 $ref: /schemas/types.yaml#/definitions/phandle
87 description: phandle to the XUSB pad controller that is used to configure
88 the USB pads used by the XHCI controller
89
90 # optional
91 phys:
92 minItems: 1
93 maxItems: 7
94
95 phy-names:
96 minItems: 1
97 maxItems: 7
98 items:
99 enum:
100 - usb2-0
101 - usb2-1
102 - usb2-2
103 - hsic-0
104 - hsic-1
105 - usb3-0
106 - usb3-1
107
108 avddio-pex-supply:
109 description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
110
111 dvddio-pex-supply:
112 description: PCIe/USB3 digital logic power supply. Must supply 1.05 V.
113
114 avdd-usb-supply:
115 description: USB controller power supply. Must supply 3.3 V.
116
117 avdd-pll-utmip-supply:
118 description: UTMI PLL power supply. Must supply 1.8 V.
119
120 avdd-pll-erefe-supply:
121 description: PLLE reference PLL power supply. Must supply 1.05 V.
122
123 avdd-usb-ss-pll-supply:
124 description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
125
126 hvdd-usb-ss-supply:
127 description: High-voltage PCIe/USB3 power supply. Must supply 3.3 V.
128
129 hvdd-usb-ss-pll-e-supply:
130 description: High-voltage PLLE power supply. Must supply 3.3 V.
131
132 allOf:
133 - $ref: usb-xhci.yaml
134
135 unevaluatedProperties: false
136
137 required:
138 - compatible
139 - reg
140 - reg-names
141 - interrupts
142 - clocks
143 - clock-names
144 - resets
145 - reset-names
146 - nvidia,xusb-padctl
147 - phys
148 - phy-names
149 - avddio-pex-supply
150 - dvddio-pex-supply
151 - avdd-usb-supply
152 - hvdd-usb-ss-supply
153
154 examples:
155 - |
156 #include <dt-bindings/clock/tegra124-car.h>
157 #include <dt-bindings/interrupt-controller/arm-gic.h>
158
159 usb@70090000 {
160 compatible = "nvidia,tegra124-xusb";
161 reg = <0x70090000 0x8000>,
162 <0x70098000 0x1000>,
163 <0x70099000 0x1000>;
164 reg-names = "hcd", "fpci", "ipfs";
165
166 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
167 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
168
169 clocks = <&tegra_car TEGRA124_CLK_XUSB_HOST>,
170 <&tegra_car TEGRA124_CLK_XUSB_HOST_SRC>,
171 <&tegra_car TEGRA124_CLK_XUSB_FALCON_SRC>,
172 <&tegra_car TEGRA124_CLK_XUSB_SS>,
173 <&tegra_car TEGRA124_CLK_XUSB_SS_DIV2>,
174 <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
175 <&tegra_car TEGRA124_CLK_XUSB_HS_SRC>,
176 <&tegra_car TEGRA124_CLK_XUSB_FS_SRC>,
177 <&tegra_car TEGRA124_CLK_PLL_U_480M>,
178 <&tegra_car TEGRA124_CLK_CLK_M>,
179 <&tegra_car TEGRA124_CLK_PLL_E>;
180 clock-names = "xusb_host", "xusb_host_src", "xusb_falcon_src",
181 "xusb_ss", "xusb_ss_div2", "xusb_ss_src",
182 "xusb_hs_src", "xusb_fs_src", "pll_u_480m",
183 "clk_m", "pll_e";
184 resets = <&tegra_car 89>, <&tegra_car 156>, <&tegra_car 143>;
185 reset-names = "xusb_host", "xusb_ss", "xusb_src";
186
187 nvidia,xusb-padctl = <&padctl>;
188
189 phys = <&phy_usb2_1>, <&phy_usb2_2>, <&phy_pcie_0>;
190 phy-names = "usb2-1", "usb2-2", "usb3-0";
191
192 avddio-pex-supply = <&vdd_1v05_run>;
193 dvddio-pex-supply = <&vdd_1v05_run>;
194 avdd-usb-supply = <&vdd_3v3_lp0>;
195 avdd-pll-utmip-supply = <&vddio_1v8>;
196 avdd-pll-erefe-supply = <&avdd_1v05_run>;
197 avdd-usb-ss-pll-supply = <&vdd_1v05_run>;
198 hvdd-usb-ss-supply = <&vdd_3v3_lp0>;
199 hvdd-usb-ss-pll-e-supply = <&vdd_3v3_lp0>;
200 };
201

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

NVIDIA Tegra124 xHCI

1-15

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 schema는 NVIDIA Tegra124 xHCI controller를 정의합니다. 이 controller는 Tegra XUSB pad controller가 제공하는 USB2와 USB3 interface를 모두 지원합니다. 관리자는 Thierry Reding과 Jon Hunter입니다.

Tegra124·132 compatible, register와 interrupt

16-44

Tegra124는 `nvidia,tegra124-xusb`를 사용하고 Tegra132는 `nvidia,tegra132-xusb` 뒤에 Tegra124 fallback을 둡니다.

register는 xHCI host `hcd`, XUSB FPCI `fpci`, XUSB IPFS `ipfs` 순서의 세 개입니다. interrupt는 xHCI host와 mailbox 순서의 두 개입니다.

properties:
  # required
  compatible:
    oneOf:
      - description: NVIDIA Tegra124
        const: nvidia,tegra124-xusb

      - description: NVIDIA Tegra132
        items:
          - const: nvidia,tegra132-xusb
          - const: nvidia,tegra124-xusb

  reg:
    items:
      - description: base and length of the xHCI host registers
      - description: base and length of the XUSB FPCI registers
      - description: base and length of the XUSB IPFS registers

  reg-names:
    items:
      - const: hcd
      - const: fpci
      - const: ipfs

  interrupts:
    items:
      - description: xHCI host interrupt
      - description: mailbox interrupt

11개 clock, 세 reset과 pad controller

45-89

clock은 XUSB host, host source, Falcon source, SuperSpeed, SuperSpeed divider, SuperSpeed source, High-Speed source, Full-Speed source, USB PLL, reference, I/O PLL 순서입니다.

이름은 `xusb_host`, `xusb_host_src`, `xusb_falcon_src`, `xusb_ss`, `xusb_ss_div2`, `xusb_ss_src`, `xusb_hs_src`, `xusb_fs_src`, `pll_u_480m`, `clk_m`, `pll_e`입니다.

reset은 host controller용 `xusb_host`, SuperSpeed logic용 `xusb_ss`, 여러 source clock이 공유하는 `xusb_src` 순서입니다. `nvidia,xusb-padctl`은 controller가 사용하는 USB pad를 구성하는 XUSB pad controller phandle입니다.

clocks:
  items:
    - description: XUSB host clock
    - description: XUSB host source clock
    - description: XUSB Falcon source clock
    - description: XUSB SuperSpeed clock
    - description: XUSB SuperSpeed clock divider
    - description: XUSB SuperSpeed source clock
    - description: XUSB HighSpeed clock source
    - description: XUSB FullSpeed clock source
    - description: USB PLL
    - description: reference clock
    - description: I/O PLL

clock-names:
  items:
    - const: xusb_host
    - const: xusb_host_src
    - const: xusb_falcon_src
    - const: xusb_ss
    - const: xusb_ss_div2
    - const: xusb_ss_src
    - const: xusb_hs_src
    - const: xusb_fs_src
    - const: pll_u_480m
    - const: clk_m
    - const: pll_e

resets:
  items:
    - description: reset for the XUSB host controller
    - description: reset for the SuperSpeed logic
    - description: shared reset for xusb_{ss,hs,fs,falcon,host}_src.

reset-names:
  items:
    - const: xusb_host
    - const: xusb_ss
    - const: xusb_src

nvidia,xusb-padctl:
  $ref: /schemas/types.yaml#/definitions/phandle
  description: phandle to the XUSB pad controller that is used to configure
    the USB pads used by the XHCI controller

일곱 PHY 이름과 여덟 supply

90-131

PHY와 이름은 1~7개이며 허용 이름은 `usb2-0`~`usb2-2`, `hsic-0`~`hsic-1`, `usb3-0`~`usb3-1`입니다.

PCIe/USB3 analog·digital logic, USB controller, UTMI PLL, PLLE reference PLL, PCIe/USB3 PLL, high-voltage PCIe/USB3, high-voltage PLLE용 supply를 정의합니다. 요구 전압은 1.05 V, 1.8 V 또는 3.3 V로 각 설명에 고정됩니다.

# optional
phys:
  minItems: 1
  maxItems: 7

phy-names:
  minItems: 1
  maxItems: 7
  items:
    enum:
      - usb2-0
      - usb2-1
      - usb2-2
      - hsic-0
      - hsic-1
      - usb3-0
      - usb3-1

avddio-pex-supply:
  description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.

dvddio-pex-supply:
  description: PCIe/USB3 digital logic power supply. Must supply 1.05 V.

avdd-usb-supply:
  description: USB controller power supply. Must supply 3.3 V.

avdd-pll-utmip-supply:
  description: UTMI PLL power supply. Must supply 1.8 V.

avdd-pll-erefe-supply:
  description: PLLE reference PLL power supply. Must supply 1.05 V.

avdd-usb-ss-pll-supply:
  description: PCIe/USB3 PLL power supply. Must supply 1.05 V.

hvdd-usb-ss-supply:
  description: High-voltage PCIe/USB3 power supply. Must supply 3.3 V.

hvdd-usb-ss-pll-e-supply:
  description: High-voltage PLLE power supply. Must supply 3.3 V.

공통 xHCI 상속과 필수 속성

132-153

공통 `usb-xhci.yaml`을 상속하고 평가되지 않은 추가 속성을 허용하지 않습니다.

필수 속성에는 compatible, 세 register와 이름, 두 interrupt, 11개 clock과 이름, 세 reset과 이름, XUSB pad controller, PHY와 이름이 포함됩니다. supply 중 `avddio-pex`, `dvddio-pex`, `avdd-usb`, `hvdd-usb-ss`가 필수입니다.

allOf:
  - $ref: usb-xhci.yaml

unevaluatedProperties: false

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - clocks
  - clock-names
  - resets
  - reset-names
  - nvidia,xusb-padctl
  - phys
  - phy-names
  - avddio-pex-supply
  - dvddio-pex-supply
  - avdd-usb-supply
  - hvdd-usb-ss-supply

Tegra124 XUSB host 예제

154-200

예제 `usb@70090000`은 `hcd`, `fpci`, `ipfs` register, level-high GIC SPI 39·40, 11개 clock과 세 reset을 사용합니다.

USB2 PHY 1·2와 USB3 PHY 0을 연결하고, 1.05 V·1.8 V·3.3 V regulator를 각 analog·digital·PLL supply에 배치합니다.

examples:
  - |
    #include <dt-bindings/clock/tegra124-car.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    usb@70090000 {
        compatible = "nvidia,tegra124-xusb";
        reg = <0x70090000 0x8000>,
              <0x70098000 0x1000>,
              <0x70099000 0x1000>;
        reg-names = "hcd", "fpci", "ipfs";

        interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;

        clocks = <&tegra_car TEGRA124_CLK_XUSB_HOST>,
                 <&tegra_car TEGRA124_CLK_XUSB_HOST_SRC>,
                 <&tegra_car TEGRA124_CLK_XUSB_FALCON_SRC>,
                 <&tegra_car TEGRA124_CLK_XUSB_SS>,
                 <&tegra_car TEGRA124_CLK_XUSB_SS_DIV2>,
                 <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
                 <&tegra_car TEGRA124_CLK_XUSB_HS_SRC>,
                 <&tegra_car TEGRA124_CLK_XUSB_FS_SRC>,
                 <&tegra_car TEGRA124_CLK_PLL_U_480M>,
                 <&tegra_car TEGRA124_CLK_CLK_M>,
                 <&tegra_car TEGRA124_CLK_PLL_E>;
        clock-names = "xusb_host", "xusb_host_src", "xusb_falcon_src",
                      "xusb_ss", "xusb_ss_div2", "xusb_ss_src",
                      "xusb_hs_src", "xusb_fs_src", "pll_u_480m",
                      "clk_m", "pll_e";
        resets = <&tegra_car 89>, <&tegra_car 156>, <&tegra_car 143>;
        reset-names = "xusb_host", "xusb_ss", "xusb_src";

        nvidia,xusb-padctl = <&padctl>;

        phys = <&phy_usb2_1>, <&phy_usb2_2>, <&phy_pcie_0>;
        phy-names = "usb2-1", "usb2-2", "usb3-0";

        avddio-pex-supply = <&vdd_1v05_run>;
        dvddio-pex-supply = <&vdd_1v05_run>;
        avdd-usb-supply = <&vdd_3v3_lp0>;
        avdd-pll-utmip-supply = <&vddio_1v8>;
        avdd-pll-erefe-supply = <&avdd_1v05_run>;
        avdd-usb-ss-pll-supply = <&vdd_1v05_run>;
        hvdd-usb-ss-supply = <&vdd_3v3_lp0>;
        hvdd-usb-ss-pll-e-supply = <&vdd_3v3_lp0>;
    };