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

Linux 6.18.37 · Devicetree Bindings / USB

Generic Platform UHCI Controller

일반 UHCI controller의 compatible, clock 조건과 Aspeed 예제를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

usb-uhci.yaml:1-75

일반 UHCI controller의 compatible, clock 조건과 Aspeed 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, property, enum, phandle, example, 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/usb-uhci.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Generic Platform UHCI Controller
8
9 maintainers:
10 - Greg Kroah-Hartman <[email protected]>
11
12 properties:
13 compatible:
14 oneOf:
15 - const: generic-uhci
16 - const: platform-uhci
17 deprecated: true
18 - items:
19 - enum:
20 - aspeed,ast2400-uhci
21 - aspeed,ast2500-uhci
22 - aspeed,ast2600-uhci
23 - const: generic-uhci
24
25 reg:
26 maxItems: 1
27
28 interrupts:
29 maxItems: 1
30
31 '#ports':
32 $ref: /schemas/types.yaml#/definitions/uint32
33
34 clocks:
35 maxItems: 1
36
37 required:
38 - compatible
39 - reg
40 - interrupts
41
42 allOf:
43 - $ref: usb-hcd.yaml
44 - if:
45 properties:
46 compatible:
47 contains:
48 const: generic-uhci
49 then:
50 required:
51 - clocks
52
53 unevaluatedProperties: false
54
55 examples:
56 - |
57 #include <dt-bindings/clock/aspeed-clock.h>
58
59 usb@d8007b00 {
60 compatible = "generic-uhci";
61 reg = <0xd8007b00 0x200>;
62 interrupts = <43>;
63 clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
64 };
65 - |
66 #include <dt-bindings/clock/aspeed-clock.h>
67
68 usb@1e6b0000 {
69 compatible = "aspeed,ast2500-uhci", "generic-uhci";
70 reg = <0x1e6b0000 0x100>;
71 interrupts = <14>;
72 #ports = <2>;
73 clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
74 };
75 ...
76

3. 한국어 전문 번역

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

Generic platform UHCI controller

1-11

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 스키마는 일반 platform UHCI controller를 정의합니다. 관리자는 Greg Kroah-Hartman입니다.

compatible과 controller 자원

12-36

`compatible`은 `generic-uhci`를 직접 사용하거나, Aspeed AST2400·AST2500·AST2600 식별자 뒤에 `generic-uhci` fallback을 둡니다. 이전 `platform-uhci` 값은 deprecated 상태입니다.

`reg`와 `interrupts`는 각각 최대 한 항목입니다. `#ports`는 32-bit 정수이고 controller clock도 최대 하나입니다.

properties:
  compatible:
    oneOf:
      - const: generic-uhci
      - const: platform-uhci
        deprecated: true
      - items:
          - enum:
              - aspeed,ast2400-uhci
              - aspeed,ast2500-uhci
              - aspeed,ast2600-uhci
          - const: generic-uhci

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  '#ports':
    $ref: /schemas/types.yaml#/definitions/uint32

  clocks:
    maxItems: 1

필수 속성과 generic clock 조건

37-53

`compatible`, `reg`, `interrupts`가 필수이며 공통 `usb-hcd.yaml`을 상속합니다. compatible 목록에 `generic-uhci`가 들어가면 `clocks`도 반드시 제공해야 합니다. 스키마가 평가하지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg
  - interrupts

allOf:
  - $ref: usb-hcd.yaml
  - if:
      properties:
        compatible:
          contains:
            const: generic-uhci
    then:
      required:
        - clocks

unevaluatedProperties: false

단일 compatible과 Aspeed fallback 예제

54-75

첫 예제는 `generic-uhci` controller에 register, interrupt와 Aspeed USB UHCI gate clock을 지정합니다. 두 번째 AST2500 예제는 SoC별 compatible과 generic fallback을 함께 쓰고 두 개의 port를 선언합니다.


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

    usb@d8007b00 {
        compatible = "generic-uhci";
        reg = <0xd8007b00 0x200>;
        interrupts = <43>;
        clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
    };
  - |
    #include <dt-bindings/clock/aspeed-clock.h>

    usb@1e6b0000 {
        compatible = "aspeed,ast2500-uhci", "generic-uhci";
        reg = <0x1e6b0000 0x100>;
        interrupts = <14>;
        #ports = <2>;
        clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
    };
...