← Documents Documentation/devicetree/bindings/usb/usb251xb.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Microchip USB 2.0 Hi-Speed Hub Controller

Microchip USB251xB hub의 descriptor, 전원, port와 전류 설정을 설명합니다.

Source pathDocumentation/devicetree/bindings/usb/usb251xb.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

usb251xb.yaml:1-278

Microchip USB251xB hub의 descriptor, 전원, port와 전류 설정을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, property, enum, phandle, example, source path와 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/usb251xb.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Microchip USB 2.0 Hi-Speed Hub Controller
8
9 maintainers:
10 - Richard Leitner <richard.leitner@skidata.com>
11
12 properties:
13 compatible:
14 enum:
15 - microchip,usb2422
16 - microchip,usb2512b
17 - microchip,usb2512bi
18 - microchip,usb2513b
19 - microchip,usb2513bi
20 - microchip,usb2514b
21 - microchip,usb2514bi
22 - microchip,usb2517
23 - microchip,usb2517i
24 - microchip,usb251xb
25
26 reg:
27 maxItems: 1
28
29 reset-gpios:
30 description: |
31 Should specify the gpio for hub reset
32
33 vdd-supply:
34 description: |
35 Should specify the phandle to the regulator supplying vdd
36
37 skip-config:
38 $ref: /schemas/types.yaml#/definitions/flag
39 description: |
40 Skip Hub configuration, but only send the USB-Attach command
41
42 vendor-id:
43 $ref: /schemas/types.yaml#/definitions/uint16
44 default: 0x0424
45 description: |
46 Set USB Vendor ID of the hub
47
48 product-id:
49 $ref: /schemas/types.yaml#/definitions/uint16
50 description: |
51 Set USB Product ID of the hub
52
53 device-id:
54 $ref: /schemas/types.yaml#/definitions/uint16
55 default: 0x0bb3
56 description: |
57 Set USB Device ID of the hub
58
59 language-id:
60 $ref: /schemas/types.yaml#/definitions/uint16
61 default: 0x0000
62 description: |
63 Set USB Language ID
64
65 manufacturer:
66 $ref: /schemas/types.yaml#/definitions/string
67 description: |
68 Set USB Manufacturer string (max 31 characters long)
69
70 product:
71 $ref: /schemas/types.yaml#/definitions/string
72 description: |
73 Set USB Product string (max 31 characters long)
74
75 serial:
76 $ref: /schemas/types.yaml#/definitions/string
77 description: |
78 Set USB Serial string (max 31 characters long)
79
80 bus-powered:
81 $ref: /schemas/types.yaml#/definitions/flag
82 description: |
83 selects between self- and bus-powered operation
84 (boolean, default is self-powered)
85
86 self-powered:
87 $ref: /schemas/types.yaml#/definitions/flag
88 description: |
89 selects between self- and bus-powered operation
90 (boolean, default is self-powered)
91
92 disable-hi-speed:
93 $ref: /schemas/types.yaml#/definitions/flag
94 description: |
95 disable USB Hi-Speed support (boolean)
96
97 multi-tt:
98 $ref: /schemas/types.yaml#/definitions/flag
99 description: |
100 selects between multi- and single-transaction-translator
101 (boolean, default is multi-tt)
102
103 single-tt:
104 $ref: /schemas/types.yaml#/definitions/flag
105 description: |
106 selects between multi- and single-transaction-translator
107 (boolean, default is multi-tt)
108
109 disable-eop:
110 $ref: /schemas/types.yaml#/definitions/flag
111 description: |
112 disable End of Packet generation in full-speed mode (boolean)
113
114 ganged-sensing:
115 $ref: /schemas/types.yaml#/definitions/flag
116 description: |
117 select over-current sense type in self-powered mode
118 (boolean, default is individual)
119
120 individual-sensing:
121 $ref: /schemas/types.yaml#/definitions/flag
122 description: |
123 select over-current sense type in self-powered mode
124 (boolean, default is individual)
125
126 ganged-port-switching:
127 $ref: /schemas/types.yaml#/definitions/flag
128 description: |
129 select port power switching mode (boolean, default is individual)
130
131 individual-port-switching:
132 $ref: /schemas/types.yaml#/definitions/flag
133 description: |
134 select port power switching mode (boolean, default is individual)
135
136 dynamic-power-switching:
137 $ref: /schemas/types.yaml#/definitions/flag
138 description: |
139 enable auto-switching from self- to bus-powered operation if the
140 local power source is removed or unavailable (boolean)
141
142 oc-delay-us:
143 enum: [100, 4000, 8000, 16000]
144 default: 8000
145 description: |
146 Delay time (in microseconds) for filtering the over-current sense
147 inputs. If an invalid value is given, the default is used instead.
148
149 compound-device:
150 $ref: /schemas/types.yaml#/definitions/flag
151 description: |
152 indicate the hub is part of a compound device (boolean)
153
154 port-mapping-mode:
155 $ref: /schemas/types.yaml#/definitions/flag
156 description: |
157 enable port mapping mode (boolean)
158
159 led-usb-mode:
160 $ref: /schemas/types.yaml#/definitions/flag
161 description: |
162 led usb/speed indication mode selection (boolean, default is speed mode)
163
164 led-speed-mode:
165 $ref: /schemas/types.yaml#/definitions/flag
166 description: |
167 led usb/speed indication mode selection (boolean, default is speed mode)
168
169 string-support:
170 $ref: /schemas/types.yaml#/definitions/flag
171 description: |
172 enable string descriptor support (required for manufacturer, product
173 and serial string configuration)
174
175 non-removable-ports:
176 $ref: /schemas/types.yaml#/definitions/uint8-array
177 description: |
178 Should specify the ports which have a non-removable device connected.
179
180 sp-disabled-ports:
181 $ref: /schemas/types.yaml#/definitions/uint8-array
182 description: |
183 Specifies the ports which will be self-power disabled
184
185 bp-disabled-ports:
186 $ref: /schemas/types.yaml#/definitions/uint8-array
187 description: |
188 Specifies the ports which will be bus-power disabled
189
190 sp-max-total-current-microamp:
191 maximum: 100000
192 default: 1000
193 description: |
194 Specifies max current consumed by the hub from VBUS when
195 operating in self-powered hub. It includes the hub silicon
196 along with all associated circuitry including a permanently
197 attached peripheral.
198
199 bp-max-total-current-microamp:
200 maximum: 510000
201 default: 100000
202 description: |
203 Specifies max current consumed by the hub from VBUS when
204 operating in self-powered hub. It includes the hub silicon
205 along with all associated circuitry including a permanently
206 attached peripheral.
207
208 sp-max-removable-current-microamp:
209 maximum: 100000
210 default: 1000
211 description: |
212 Specifies max current consumed by the hub from VBUS when
213 operating in self-powered hub. It includes the hub silicon
214 along with all associated circuitry excluding a permanently
215 attached peripheral.
216
217 bp-max-removable-current-microamp:
218 maximum: 510000
219 default: 100000
220 description: |
221 Specifies max current consumed by the hub from VBUS when
222 operating in self-powered hub. It includes the hub silicon
223 along with all associated circuitry excluding a permanently
224 attached peripheral.
225
226 power-on-time-ms:
227 maximum: 510
228 default: 100
229 description: |
230 Specifies the time it takes from the time the host initiates the
231 power-on sequence to a port until the port has adequate power.
232
233 swap-dx-lanes:
234 $ref: /schemas/types.yaml#/definitions/uint32-array
235 description: |
236 Specifies the ports which will swap the differential-pair (D+/D-),
237 default is not-swapped.
238
239 additionalProperties: false
240
241 required:
242 - compatible
243
244 examples:
245 - |
246 #include <dt-bindings/gpio/gpio.h>
247
248 i2c {
249 #address-cells = <1>;
250 #size-cells = <0>;
251
252 usb-hub@2c {
253 compatible = "microchip,usb2512b";
254 reg = <0x2c>;
255 reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
256 };
257
258 usb-hub@2d {
259 compatible = "microchip,usb2514b";
260 reg = <0x2d>;
261 vendor-id = /bits/ 16 <0x0000>;
262 product-id = /bits/ 16 <0x0000>;
263 string-support;
264 manufacturer = "Foo";
265 product = "Foo-Bar";
266 serial = "1234567890A";
267 /* correct misplaced usb connectors on port 1,2 */
268 swap-dx-lanes = <1 2>;
269 };
270 };
271
272 - |
273 #include <dt-bindings/gpio/gpio.h>
274 usb-hub {
275 /* I2C is not connected */
276 compatible = "microchip,usb2512b";
277 reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
278 };
279

3. 한국어 전문 번역

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

Microchip USB 2.0 Hi-Speed hub controller

1-11

GPL-2.0으로 배포되는 이 스키마는 Microchip USB 2.0 Hi-Speed hub controller 계열을 정의합니다. 관리자는 Richard Leitner입니다.

지원 제품과 기본 자원

12-35

`compatible`은 USB2422, USB2512B·2512BI, USB2513B·2513BI, USB2514B·2514BI, USB2517·2517I와 일반 `microchip,usb251xb`를 지원합니다.

`reg`는 최대 한 항목입니다. `reset-gpios`는 hub reset GPIO를, `vdd-supply`는 VDD를 공급하는 regulator phandle을 지정합니다.

properties:
  compatible:
    enum:
      - microchip,usb2422
      - microchip,usb2512b
      - microchip,usb2512bi
      - microchip,usb2513b
      - microchip,usb2513bi
      - microchip,usb2514b
      - microchip,usb2514bi
      - microchip,usb2517
      - microchip,usb2517i
      - microchip,usb251xb

  reg:
    maxItems: 1

  reset-gpios:
    description: |
      Should specify the gpio for hub reset

  vdd-supply:
    description: |
      Should specify the phandle to the regulator supplying vdd

configuration 생략과 descriptor ID

36-64

`skip-config`는 hub configuration을 건너뛰고 USB-Attach command만 전송합니다. `vendor-id`의 기본값은 0x0424, `device-id`는 0x0bb3, `language-id`는 0x0000이며 `product-id`에는 별도 기본값이 없습니다. 각 ID는 16-bit 정수입니다.


skip-config:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    Skip Hub configuration, but only send the USB-Attach command

vendor-id:
  $ref: /schemas/types.yaml#/definitions/uint16
  default: 0x0424
  description: |
    Set USB Vendor ID of the hub

product-id:
  $ref: /schemas/types.yaml#/definitions/uint16
  description: |
    Set USB Product ID of the hub

device-id:
  $ref: /schemas/types.yaml#/definitions/uint16
  default: 0x0bb3
  description: |
    Set USB Device ID of the hub

language-id:
  $ref: /schemas/types.yaml#/definitions/uint16
  default: 0x0000
  description: |
    Set USB Language ID

문자열 descriptor와 전원 방식

65-91

`manufacturer`, `product`, `serial`은 각각 최대 31자의 USB 문자열 descriptor를 설정합니다. `bus-powered`와 `self-powered` flag는 bus 전원과 자체 전원 동작 사이를 선택하며 기본값은 self-powered입니다.

manufacturer:
  $ref: /schemas/types.yaml#/definitions/string
  description: |
    Set USB Manufacturer string (max 31 characters long)

product:
  $ref: /schemas/types.yaml#/definitions/string
  description: |
    Set USB Product string (max 31 characters long)

serial:
  $ref: /schemas/types.yaml#/definitions/string
  description: |
    Set USB Serial string (max 31 characters long)

bus-powered:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    selects between self- and bus-powered operation
    (boolean, default is self-powered)

self-powered:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    selects between self- and bus-powered operation
    (boolean, default is self-powered)

Hi-Speed, transaction translator와 EOP

92-113

`disable-hi-speed`는 USB Hi-Speed 지원을 끕니다. `multi-tt`와 `single-tt`는 multi 또는 single transaction translator를 선택하며 기본값은 multi-TT입니다. `disable-eop`는 full-speed mode에서 End of Packet 생성을 비활성화합니다.

disable-hi-speed:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    disable USB Hi-Speed support (boolean)

multi-tt:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    selects between multi- and single-transaction-translator
    (boolean, default is multi-tt)

single-tt:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    selects between multi- and single-transaction-translator
    (boolean, default is multi-tt)

disable-eop:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    disable End of Packet generation in full-speed mode (boolean)

과전류 감지와 port power switching

114-148

`ganged-sensing`과 `individual-sensing`은 self-powered mode의 over-current sense 방식을 선택하며 기본값은 individual입니다. `ganged-port-switching`과 `individual-port-switching`도 port power switching 방식을 선택하고 기본값은 individual입니다.

`dynamic-power-switching`은 local power source가 제거되거나 사용할 수 없을 때 self-powered에서 bus-powered 동작으로 자동 전환합니다. `oc-delay-us`는 과전류 감지 입력의 filtering delay로 100, 4000, 8000, 16000 microseconds 중 하나이며 기본값은 8000입니다. 잘못된 값에는 기본값을 사용합니다.

ganged-sensing:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    select over-current sense type in self-powered mode
    (boolean, default is individual)

individual-sensing:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    select over-current sense type in self-powered mode
    (boolean, default is individual)

ganged-port-switching:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    select port power switching mode (boolean, default is individual)

individual-port-switching:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    select port power switching mode (boolean, default is individual)

dynamic-power-switching:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    enable auto-switching from self- to bus-powered operation if the
    local power source is removed or unavailable (boolean)

oc-delay-us:
  enum: [100, 4000, 8000, 16000]
  default: 8000
  description: |
    Delay time (in microseconds) for filtering the over-current sense
    inputs. If an invalid value is given, the default is used instead.

compound device, port mapping과 LED

149-174

`compound-device`는 hub가 compound device의 일부임을 나타내고 `port-mapping-mode`는 port mapping mode를 활성화합니다.

`led-usb-mode`와 `led-speed-mode`는 LED의 USB 또는 speed indication mode를 선택하며 기본값은 speed mode입니다. `string-support`는 문자열 descriptor 지원을 켜며 manufacturer, product, serial 문자열을 설정하려면 필요합니다.

compound-device:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    indicate the hub is part of a compound device (boolean)

port-mapping-mode:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    enable port mapping mode (boolean)

led-usb-mode:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    led usb/speed indication mode selection (boolean, default is speed mode)

led-speed-mode:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    led usb/speed indication mode selection (boolean, default is speed mode)

string-support:
  $ref: /schemas/types.yaml#/definitions/flag
  description: |
    enable string descriptor support (required for manufacturer, product
    and serial string configuration)

고정 port와 VBUS 전류 제한

175-224

`non-removable-ports`는 제거할 수 없는 device가 연결된 port 목록입니다. `sp-disabled-ports`와 `bp-disabled-ports`는 각각 self-power와 bus-power에서 비활성화할 port를 지정합니다.

`sp-max-total-current-microamp`와 `bp-max-total-current-microamp`는 hub silicon, 관련 회로와 영구 연결 peripheral을 포함한 VBUS 최대 총전류입니다. self-power 항목은 최대 100000µA·기본 1000µA, bus-power 항목은 최대 510000µA·기본 100000µA입니다.

`sp-max-removable-current-microamp`와 `bp-max-removable-current-microamp`는 영구 연결 peripheral을 제외한 최대 전류이며 같은 최대값과 기본값 쌍을 사용합니다. 원문은 네 전류 설명 모두 동작 상태를 self-powered hub로 표기하므로 그 문구를 그대로 보존합니다.

non-removable-ports:
  $ref: /schemas/types.yaml#/definitions/uint8-array
  description: |
    Should specify the ports which have a non-removable device connected.

sp-disabled-ports:
  $ref: /schemas/types.yaml#/definitions/uint8-array
  description: |
    Specifies the ports which will be self-power disabled

bp-disabled-ports:
  $ref: /schemas/types.yaml#/definitions/uint8-array
  description: |
    Specifies the ports which will be bus-power disabled

sp-max-total-current-microamp:
  maximum: 100000
  default: 1000
  description: |
    Specifies max current consumed by the hub from VBUS when
    operating in self-powered hub. It includes the hub silicon
    along with all associated circuitry including a permanently
    attached peripheral.

bp-max-total-current-microamp:
  maximum: 510000
  default: 100000
  description: |
    Specifies max current consumed by the hub from VBUS when
    operating in self-powered hub. It includes the hub silicon
    along with all associated circuitry including a permanently
    attached peripheral.

sp-max-removable-current-microamp:
  maximum: 100000
  default: 1000
  description: |
    Specifies max current consumed by the hub from VBUS when
    operating in self-powered hub. It includes the hub silicon
    along with all associated circuitry excluding a permanently
    attached peripheral.

bp-max-removable-current-microamp:
  maximum: 510000
  default: 100000
  description: |
    Specifies max current consumed by the hub from VBUS when
    operating in self-powered hub. It includes the hub silicon
    along with all associated circuitry excluding a permanently
    attached peripheral.

power-on 시간과 D+/D- lane 교환

225-243

`power-on-time-ms`는 host가 port power-on sequence를 시작한 뒤 충분한 전력이 공급될 때까지의 시간이며 최대 510ms, 기본 100ms입니다. `swap-dx-lanes`는 D+/D- differential pair를 서로 바꿀 port를 지정하며 기본값은 교환하지 않음입니다.

스키마가 정의하지 않은 추가 속성은 허용하지 않고 `compatible`은 필수입니다.


  power-on-time-ms:
    maximum: 510
    default: 100
    description: |
      Specifies the time it takes from the time the host initiates the
      power-on sequence to a port until the port has adequate power.

  swap-dx-lanes:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
      Specifies the ports which will swap the differential-pair (D+/D-),
      default is not-swapped.

additionalProperties: false

required:
  - compatible

I2C 연결 hub 예제

244-270

첫 I2C 예제의 USB2512B hub는 address 0x2c와 active-low reset GPIO만 사용합니다. address 0x2d의 USB2514B는 vendor·product ID와 문자열 descriptor를 설정하고, 잘못 배치된 port 1·2 connector를 보정하기 위해 `swap-dx-lanes = <1 2>`를 사용합니다.

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      usb-hub@2c {
        compatible = "microchip,usb2512b";
        reg = <0x2c>;
        reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
      };

      usb-hub@2d {
        compatible = "microchip,usb2514b";
        reg = <0x2d>;
        vendor-id = /bits/ 16 <0x0000>;
        product-id = /bits/ 16 <0x0000>;
        string-support;
        manufacturer = "Foo";
        product = "Foo-Bar";
        serial = "1234567890A";
        /* correct misplaced usb connectors on port 1,2 */
        swap-dx-lanes = <1 2>;
      };
    };

I2C 비연결 예제

271-278

두 번째 예제는 I2C가 연결되지 않은 USB2512B를 일반 `usb-hub` node로 선언하고 active-low reset GPIO만 제공합니다.


- |
  #include <dt-bindings/gpio/gpio.h>
  usb-hub {
    /* I2C is not connected */
    compatible = "microchip,usb2512b";
    reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
  };