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

Linux 6.18.37 · Devicetree Bindings / USB

NVIDIA Tegra194 xHCI Controller

Tegra194 XUSB의 BPMP resource, 여덟 PHY 이름과 XUSBC·XUSBA power domain을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

nvidia,tegra194-xusb.yaml:1-175

Tegra194 XUSB의 BPMP resource, 여덟 PHY 이름과 XUSBC·XUSBA power domain을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, 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,tegra194-xusb.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NVIDIA Tegra194 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 compatible:
18 const: nvidia,tegra194-xusb
19
20 reg:
21 items:
22 - description: base and length of the xHCI host registers
23 - description: base and length of the XUSB FPCI registers
24
25 reg-names:
26 items:
27 - const: hcd
28 - const: fpci
29
30 interrupts:
31 items:
32 - description: xHCI host interrupt
33 - description: mailbox interrupt
34
35 clocks:
36 items:
37 - description: XUSB host clock
38 - description: XUSB Falcon source clock
39 - description: XUSB SuperSpeed clock
40 - description: XUSB SuperSpeed source clock
41 - description: XUSB HighSpeed clock source
42 - description: XUSB FullSpeed clock source
43 - description: USB PLL
44 - description: reference clock
45 - description: I/O PLL
46
47 clock-names:
48 items:
49 - const: xusb_host
50 - const: xusb_falcon_src
51 - const: xusb_ss
52 - const: xusb_ss_src
53 - const: xusb_hs_src
54 - const: xusb_fs_src
55 - const: pll_u_480m
56 - const: clk_m
57 - const: pll_e
58
59 interconnects:
60 items:
61 - description: read client
62 - description: write client
63
64 interconnect-names:
65 items:
66 - const: dma-mem # read
67 - const: write
68
69 iommus:
70 maxItems: 1
71
72 nvidia,xusb-padctl:
73 $ref: /schemas/types.yaml#/definitions/phandle
74 description: phandle to the XUSB pad controller that is used to configure
75 the USB pads used by the XHCI controller
76
77 phys:
78 minItems: 1
79 maxItems: 8
80
81 phy-names:
82 minItems: 1
83 maxItems: 8
84 items:
85 enum:
86 - usb2-0
87 - usb2-1
88 - usb2-2
89 - usb2-3
90 - usb3-0
91 - usb3-1
92 - usb3-2
93 - usb3-3
94
95 power-domains:
96 items:
97 - description: XUSBC power domain (for Host and USB 2.0)
98 - description: XUSBA power domain (for SuperSpeed)
99
100 power-domain-names:
101 items:
102 - const: xusb_host
103 - const: xusb_ss
104
105 dvddio-pex-supply:
106 description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
107
108 hvddio-pex-supply:
109 description: High-voltage PCIe/USB3 power supply. Must supply 1.8 V.
110
111 avdd-usb-supply:
112 description: USB controller power supply. Must supply 3.3 V.
113
114 avdd-pll-utmip-supply:
115 description: UTMI PLL power supply. Must supply 1.8 V.
116
117 avdd-pll-uerefe-supply:
118 description: PLLE reference PLL power supply. Must supply 1.05 V.
119
120 dvdd-usb-ss-pll-supply:
121 description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
122
123 hvdd-usb-ss-pll-e-supply:
124 description: High-voltage PLLE power supply. Must supply 1.8 V.
125
126 allOf:
127 - $ref: usb-xhci.yaml
128
129 unevaluatedProperties: false
130
131 examples:
132 - |
133 #include <dt-bindings/clock/tegra194-clock.h>
134 #include <dt-bindings/interrupt-controller/arm-gic.h>
135 #include <dt-bindings/memory/tegra194-mc.h>
136 #include <dt-bindings/power/tegra194-powergate.h>
137 #include <dt-bindings/reset/tegra194-reset.h>
138
139 usb@3610000 {
140 compatible = "nvidia,tegra194-xusb";
141 reg = <0x03610000 0x40000>,
142 <0x03600000 0x10000>;
143 reg-names = "hcd", "fpci";
144
145 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
146 <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
147
148 clocks = <&bpmp TEGRA194_CLK_XUSB_CORE_HOST>,
149 <&bpmp TEGRA194_CLK_XUSB_FALCON>,
150 <&bpmp TEGRA194_CLK_XUSB_CORE_SS>,
151 <&bpmp TEGRA194_CLK_XUSB_SS>,
152 <&bpmp TEGRA194_CLK_CLK_M>,
153 <&bpmp TEGRA194_CLK_XUSB_FS>,
154 <&bpmp TEGRA194_CLK_UTMIPLL>,
155 <&bpmp TEGRA194_CLK_CLK_M>,
156 <&bpmp TEGRA194_CLK_PLLE>;
157 clock-names = "xusb_host", "xusb_falcon_src",
158 "xusb_ss", "xusb_ss_src", "xusb_hs_src",
159 "xusb_fs_src", "pll_u_480m", "clk_m",
160 "pll_e";
161 interconnects = <&mc TEGRA194_MEMORY_CLIENT_XUSB_HOSTR &emc>,
162 <&mc TEGRA194_MEMORY_CLIENT_XUSB_HOSTW &emc>;
163 interconnect-names = "dma-mem", "write";
164 iommus = <&smmu TEGRA194_SID_XUSB_HOST>;
165
166 power-domains = <&bpmp TEGRA194_POWER_DOMAIN_XUSBC>,
167 <&bpmp TEGRA194_POWER_DOMAIN_XUSBA>;
168 power-domain-names = "xusb_host", "xusb_ss";
169
170 nvidia,xusb-padctl = <&xusb_padctl>;
171
172 phys = <&phy_usb2_0>, <&phy_usb2_1>, <&phy_usb2_3>, <&phy_usb3_0>,
173 <&phy_usb3_2>, <&phy_usb3_3>;
174 phy-names = "usb2-0", "usb2-1", "usb2-3", "usb3-0", "usb3-2", "usb3-3";
175 };
176

3. 한국어 전문 번역

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

NVIDIA Tegra194 xHCI

1-15

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

Register와 host·mailbox interrupt

16-34

`compatible`은 `nvidia,tegra194-xusb`입니다. register는 xHCI host용 `hcd`와 XUSB FPCI용 `fpci` 두 개이고, interrupt는 xHCI host와 mailbox 순서입니다.

properties:
  compatible:
    const: nvidia,tegra194-xusb

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

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

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

아홉 clock, interconnect와 IOMMU

35-70

clock 구성과 이름은 Tegra186과 같은 아홉 항목으로, host·Falcon·SuperSpeed·HighSpeed·FullSpeed source와 USB PLL·reference·I/O PLL을 포함합니다.

memory interconnect는 read `dma-mem`과 `write` client 두 개이고 IOMMU는 하나만 허용합니다.

clocks:
  items:
    - description: XUSB host clock
    - description: XUSB Falcon source clock
    - description: XUSB SuperSpeed clock
    - 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_falcon_src
    - const: xusb_ss
    - const: xusb_ss_src
    - const: xusb_hs_src
    - const: xusb_fs_src
    - const: pll_u_480m
    - const: clk_m
    - const: pll_e

interconnects:
  items:
    - description: read client
    - description: write client

interconnect-names:
  items:
    - const: dma-mem # read
    - const: write

iommus:
  maxItems: 1

여덟 PHY와 power domain

71-104

XUSB pad controller phandle을 사용합니다. PHY와 이름은 1~8개이며 USB2 port 0~3과 USB3 port 0~3을 허용합니다.

power domain은 Host·USB2용 XUSBC `xusb_host`와 SuperSpeed용 XUSBA `xusb_ss`입니다.


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

phys:
  minItems: 1
  maxItems: 8

phy-names:
  minItems: 1
  maxItems: 8
  items:
    enum:
      - usb2-0
      - usb2-1
      - usb2-2
      - usb2-3
      - usb3-0
      - usb3-1
      - usb3-2
      - usb3-3

power-domains:
  items:
    - description: XUSBC power domain (for Host and USB 2.0)
    - description: XUSBA power domain (for SuperSpeed)

power-domain-names:
  items:
    - const: xusb_host
    - const: xusb_ss

Tegra194 전원과 공통 schema

105-130

PCIe/USB3 logic·PLL, USB controller, UTMI PLL, PLLE reference에 필요한 1.05 V, 1.8 V, 3.3 V supply를 정의합니다.

공통 `usb-xhci.yaml`을 상속하고 평가되지 않은 추가 속성을 허용하지 않습니다. 이 파일에도 별도의 `required` 목록은 없습니다.

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

  hvddio-pex-supply:
    description: High-voltage PCIe/USB3 power supply. Must supply 1.8 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-uerefe-supply:
    description: PLLE reference PLL power supply. Must supply 1.05 V.

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

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

allOf:
  - $ref: usb-xhci.yaml

unevaluatedProperties: false

Tegra194 BPMP XUSB 예제

131-175

예제 `usb@3610000`은 `hcd`, `fpci` register와 level-high GIC SPI 163·164, BPMP clock 아홉 개를 사용합니다.

host read·write interconnect, Tegra194 XUSB host SMMU stream ID, XUSBC·XUSBA power domain과 pad controller를 연결합니다. PHY는 USB2 port 0·1·3과 USB3 port 0·2·3입니다.

examples:
  - |
    #include <dt-bindings/clock/tegra194-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/memory/tegra194-mc.h>
    #include <dt-bindings/power/tegra194-powergate.h>
    #include <dt-bindings/reset/tegra194-reset.h>

    usb@3610000 {
        compatible = "nvidia,tegra194-xusb";
        reg = <0x03610000 0x40000>,
              <0x03600000 0x10000>;
        reg-names = "hcd", "fpci";

        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;

        clocks = <&bpmp TEGRA194_CLK_XUSB_CORE_HOST>,
                 <&bpmp TEGRA194_CLK_XUSB_FALCON>,
                 <&bpmp TEGRA194_CLK_XUSB_CORE_SS>,
                 <&bpmp TEGRA194_CLK_XUSB_SS>,
                 <&bpmp TEGRA194_CLK_CLK_M>,
                 <&bpmp TEGRA194_CLK_XUSB_FS>,
                 <&bpmp TEGRA194_CLK_UTMIPLL>,
                 <&bpmp TEGRA194_CLK_CLK_M>,
                 <&bpmp TEGRA194_CLK_PLLE>;
        clock-names = "xusb_host", "xusb_falcon_src",
                      "xusb_ss", "xusb_ss_src", "xusb_hs_src",
                      "xusb_fs_src", "pll_u_480m", "clk_m",
                      "pll_e";
        interconnects = <&mc TEGRA194_MEMORY_CLIENT_XUSB_HOSTR &emc>,
                        <&mc TEGRA194_MEMORY_CLIENT_XUSB_HOSTW &emc>;
        interconnect-names = "dma-mem", "write";
        iommus = <&smmu TEGRA194_SID_XUSB_HOST>;

        power-domains = <&bpmp TEGRA194_POWER_DOMAIN_XUSBC>,
                        <&bpmp TEGRA194_POWER_DOMAIN_XUSBA>;
        power-domain-names = "xusb_host", "xusb_ss";

        nvidia,xusb-padctl = <&xusb_padctl>;

        phys = <&phy_usb2_0>, <&phy_usb2_1>, <&phy_usb2_3>, <&phy_usb3_0>,
               <&phy_usb3_2>, <&phy_usb3_3>;
        phy-names = "usb2-0", "usb2-1", "usb2-3", "usb3-0", "usb3-2", "usb3-3";
    };