← Documents Documentation/devicetree/bindings/usb/allwinner,sun4i-a10-musb.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Allwinner A10 mUSB OTG Controller

Allwinner A10 계열 MUSB OTG controller의 SoC별 compatible, register, interrupt, PHY, extcon, 동작 모드와 reset 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/usb/allwinner,sun4i-a10-musb.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

allwinner,sun4i-a10-musb.yaml:1-108

Allwinner A10 계열 MUSB OTG controller의 SoC별 compatible, register, interrupt, PHY, extcon, 동작 모드와 reset 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, clock, PHY, DMA, 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/allwinner,sun4i-a10-musb.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Allwinner A10 mUSB OTG Controller
8
9 maintainers:
10 - Chen-Yu Tsai <wens@csie.org>
11 - Maxime Ripard <mripard@kernel.org>
12
13 properties:
14 compatible:
15 oneOf:
16 - enum:
17 - allwinner,sun4i-a10-musb
18 - allwinner,sun6i-a31-musb
19 - allwinner,sun8i-a33-musb
20 - allwinner,sun8i-h3-musb
21 - allwinner,suniv-f1c100s-musb
22 - items:
23 - enum:
24 - allwinner,sun8i-a83t-musb
25 - allwinner,sun20i-d1-musb
26 - allwinner,sun50i-a100-musb
27 - allwinner,sun50i-h6-musb
28 - allwinner,sun55i-a523-musb
29 - const: allwinner,sun8i-a33-musb
30 - items:
31 - const: allwinner,sun50i-h616-musb
32 - const: allwinner,sun8i-h3-musb
33
34 reg:
35 maxItems: 1
36
37 interrupts:
38 maxItems: 1
39
40 interrupt-names:
41 const: mc
42
43 clocks:
44 maxItems: 1
45
46 resets:
47 maxItems: 1
48
49 phys:
50 maxItems: 1
51
52 phy-names:
53 const: usb
54
55 extcon:
56 description: Extcon specifier for the OTG PHY
57
58 dr_mode:
59 enum:
60 - host
61 - otg
62 - peripheral
63
64 allwinner,sram:
65 description: Phandle to the device SRAM
66 $ref: /schemas/types.yaml#/definitions/phandle-array
67
68 required:
69 - compatible
70 - reg
71 - interrupts
72 - interrupt-names
73 - clocks
74 - phys
75 - phy-names
76 - dr_mode
77 - extcon
78
79 if:
80 properties:
81 compatible:
82 contains:
83 enum:
84 - allwinner,sun6i-a31-musb
85 - allwinner,sun8i-a33-musb
86 - allwinner,sun8i-h3-musb
87
88 then:
89 required:
90 - resets
91
92 additionalProperties: false
93
94 examples:
95 - |
96 usb_otg: usb@1c13000 {
97 compatible = "allwinner,sun4i-a10-musb";
98 reg = <0x01c13000 0x0400>;
99 clocks = <&ahb_gates 0>;
100 interrupts = <38>;
101 interrupt-names = "mc";
102 phys = <&usbphy 0>;
103 phy-names = "usb";
104 extcon = <&usbphy 0>;
105 dr_mode = "peripheral";
106 };
107
108 ...
109

3. 한국어 전문 번역

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

Allwinner A10 mUSB OTG controller

1-12

GPL-2.0 라이선스의 이 YAML schema는 Allwinner A10 계열 mUSB OTG controller를 정의합니다. Schema 식별자는 `allwinner,sun4i-a10-musb.yaml`이며 관리자는 Chen-Yu Tsai와 Maxime Ripard입니다.

SoC별 compatible 조합

13-33

A10, A31, A33, H3, F1C100s는 각각의 compatible을 단독으로 사용합니다. A83T, D1, A100, H6, A523는 SoC별 compatible 다음에 fallback `allwinner,sun8i-a33-musb`를 둡니다. H616은 `allwinner,sun50i-h616-musb` 다음에 fallback `allwinner,sun8i-h3-musb`를 둡니다.

properties:
  compatible:
    oneOf:
      - enum:
          - allwinner,sun4i-a10-musb
          - allwinner,sun6i-a31-musb
          - allwinner,sun8i-a33-musb
          - allwinner,sun8i-h3-musb
          - allwinner,suniv-f1c100s-musb
      - items:
          - enum:
              - allwinner,sun8i-a83t-musb
              - allwinner,sun20i-d1-musb
              - allwinner,sun50i-a100-musb
              - allwinner,sun50i-h6-musb
              - allwinner,sun55i-a523-musb
          - const: allwinner,sun8i-a33-musb
      - items:
          - const: allwinner,sun50i-h616-musb
          - const: allwinner,sun8i-h3-musb

Register, interrupt, clock, PHY와 동작 모드

34-67

`reg`, `interrupts`, `clocks`, `resets`, `phys`는 각각 최대 한 항목입니다. Interrupt 이름은 `mc`, PHY 이름은 `usb`여야 합니다. `extcon`은 OTG PHY용 extcon 지정자입니다.

`dr_mode`는 `host`, `otg`, `peripheral` 중 하나입니다. `allwinner,sram`은 device SRAM을 가리키는 phandle array이며 공통 type 정의를 참조합니다.

reg:
  maxItems: 1

interrupts:
  maxItems: 1

interrupt-names:
  const: mc

clocks:
  maxItems: 1

resets:
  maxItems: 1

phys:
  maxItems: 1

phy-names:
  const: usb

extcon:
  description: Extcon specifier for the OTG PHY

dr_mode:
  enum:
    - host
    - otg
    - peripheral

allwinner,sram:
  description: Phandle to the device SRAM
  $ref: /schemas/types.yaml#/definitions/phandle-array

필수 속성과 reset 조건

68-93

필수 속성은 `compatible`, `reg`, `interrupts`, `interrupt-names`, `clocks`, `phys`, `phy-names`, `dr_mode`, `extcon`입니다.

Compatible 목록에 A31, A33 또는 H3 MUSB가 포함되면 `resets`도 필수입니다. Schema에 정의되지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - clocks
  - phys
  - phy-names
  - dr_mode
  - extcon

if:
  properties:
    compatible:
      contains:
        enum:
          - allwinner,sun6i-a31-musb
          - allwinner,sun8i-a33-musb
          - allwinner,sun8i-h3-musb

then:
  required:
    - resets

additionalProperties: false

A10 peripheral mode 예제

94-108

예제 `usb_otg: usb@1c13000` node는 A10 MUSB compatible과 0x400-byte register 영역, AHB gate clock, interrupt 38을 사용합니다. Interrupt 이름은 `mc`이고 PHY와 extcon은 모두 `usbphy`의 index 0을 참조합니다. PHY 이름은 `usb`, 동작 모드는 `peripheral`입니다.

examples:
  - |
    usb_otg: usb@1c13000 {
      compatible = "allwinner,sun4i-a10-musb";
      reg = <0x01c13000 0x0400>;
      clocks = <&ahb_gates 0>;
      interrupts = <38>;
      interrupt-names = "mc";
      phys = <&usbphy 0>;
      phy-names = "usb";
      extcon = <&usbphy 0>;
      dr_mode = "peripheral";
    };

...