← Documents Documentation/devicetree/bindings/usb/renesas,rzv2m-usb3drd.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Renesas RZ/V2M USB 3.1 DRD Controller

RZ/V2M DRD의 role swapping, charging과 host·peripheral child 구성을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

renesas,rzv2m-usb3drd.yaml:1-129

RZ/V2M DRD의 role swapping, charging과 host·peripheral child 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, clock, PHY, graph endpoint, 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/renesas,rzv2m-usb3drd.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Renesas RZ/V2M USB 3.1 DRD controller
8
9 maintainers:
10 - Biju Das <biju.das.jz@bp.renesas.com>
11
12 description: |
13 The RZ/V2{M, MA} USB3.1 DRD module supports the following functions
14 * Role swapping function by the ID pin of the Micro-AB receptacle
15 * Battery Charging Specification Revision 1.2
16
17 properties:
18 compatible:
19 items:
20 - enum:
21 - renesas,r9a09g011-usb3drd # RZ/V2M
22 - renesas,r9a09g055-usb3drd # RZ/V2MA
23 - const: renesas,rzv2m-usb3drd
24
25 reg:
26 maxItems: 1
27
28 interrupts:
29 items:
30 - description: Dual Role Device (DRD)
31 - description: Battery Charging
32 - description: Global Purpose Input
33
34 interrupt-names:
35 items:
36 - const: drd
37 - const: bc
38 - const: gpi
39
40 clocks:
41 items:
42 - description: Peripheral AXI clock
43 - description: APB clock
44
45 clock-names:
46 items:
47 - const: axi
48 - const: reg
49
50 power-domains:
51 maxItems: 1
52
53 resets:
54 maxItems: 1
55
56 ranges: true
57
58 '#address-cells':
59 enum: [ 1, 2 ]
60
61 '#size-cells':
62 enum: [ 1, 2 ]
63
64 patternProperties:
65 "^usb3peri@[0-9a-f]+$":
66 type: object
67 $ref: /schemas/usb/renesas,usb3-peri.yaml
68
69 "^usb@[0-9a-f]+$":
70 type: object
71 $ref: renesas,usb-xhci.yaml#
72
73 required:
74 - compatible
75 - reg
76 - interrupts
77 - interrupt-names
78 - clocks
79 - clock-names
80 - power-domains
81 - resets
82
83 additionalProperties: false
84
85 examples:
86 - |
87 #include <dt-bindings/clock/r9a09g011-cpg.h>
88 #include <dt-bindings/interrupt-controller/arm-gic.h>
89
90 usb3drd: usb@85070400 {
91 compatible = "renesas,r9a09g011-usb3drd", "renesas,rzv2m-usb3drd";
92 reg = <0x85070400 0x100>;
93 interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
94 <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
95 <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
96 interrupt-names = "drd", "bc", "gpi";
97 clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_P>,
98 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
99 clock-names = "axi", "reg";
100 power-domains = <&cpg>;
101 resets = <&cpg R9A09G011_USB_DRD_RESET>;
102 ranges;
103 #address-cells = <1>;
104 #size-cells = <1>;
105
106 usb3host: usb@85060000 {
107 compatible = "renesas,r9a09g011-xhci",
108 "renesas,rzv2m-xhci";
109 reg = <0x85060000 0x2000>;
110 interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
111 clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_H>,
112 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
113 clock-names = "axi", "reg";
114 power-domains = <&cpg>;
115 resets = <&cpg R9A09G011_USB_ARESETN_H>;
116 };
117
118 usb3peri: usb3peri@85070000 {
119 compatible = "renesas,r9a09g011-usb3-peri",
120 "renesas,rzv2m-usb3-peri";
121 reg = <0x85070000 0x400>;
122 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
123 clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_P>,
124 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
125 clock-names = "axi", "reg";
126 power-domains = <&cpg>;
127 resets = <&cpg R9A09G011_USB_ARESETN_P>;
128 };
129 };
130

3. 한국어 전문 번역

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

RZ/V2M USB 3.1 dual-role module

1-16

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 스키마는 Renesas RZ/V2M과 RZ/V2MA의 USB 3.1 DRD controller를 정의합니다. 이 module은 Micro-AB receptacle의 ID pin에 따른 role swapping과 Battery Charging Specification Revision 1.2를 지원합니다. 관리자는 Biju Das입니다.

DRD resource와 bus 범위

17-63

RZ/V2M은 `renesas,r9a09g011-usb3drd`, RZ/V2MA는 `renesas,r9a09g055-usb3drd`를 사용하고 둘 다 `renesas,rzv2m-usb3drd`로 fallback합니다. register 영역은 하나입니다.

interrupt 세 개는 Dual Role Device `drd`, Battery Charging `bc`, Global Purpose Input `gpi` 순서입니다. clock 두 개는 peripheral AXI `axi`와 APB register clock `reg` 순서입니다. power domain과 reset은 각각 하나이며 `ranges`를 사용할 수 있고 address/size cell 수는 1 또는 2입니다.

properties:
  compatible:
    items:
      - enum:
          - renesas,r9a09g011-usb3drd  # RZ/V2M
          - renesas,r9a09g055-usb3drd  # RZ/V2MA
      - const: renesas,rzv2m-usb3drd

  reg:
    maxItems: 1

  interrupts:
    items:
      - description: Dual Role Device (DRD)
      - description: Battery Charging
      - description: Global Purpose Input

  interrupt-names:
    items:
      - const: drd
      - const: bc
      - const: gpi

  clocks:
    items:
      - description: Peripheral AXI clock
      - description: APB clock

  clock-names:
    items:
      - const: axi
      - const: reg

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

  ranges: true

  '#address-cells':
    enum: [ 1, 2 ]

  '#size-cells':
    enum: [ 1, 2 ]

peripheral·host child와 필수 속성

64-83

이 DRD node는 `usb3peri@...` child를 `/schemas/usb/renesas,usb3-peri.yaml`에, `usb@...` host child를 `renesas,usb-xhci.yaml`에 맞춰 검증합니다.

필수 속성은 `compatible`, `reg`, 세 interrupt와 이름, 두 clock과 이름, `power-domains`, `resets`입니다. 정의되지 않은 추가 속성은 허용하지 않습니다.

patternProperties:
  "^usb3peri@[0-9a-f]+$":
    type: object
    $ref: /schemas/usb/renesas,usb3-peri.yaml

  "^usb@[0-9a-f]+$":
    type: object
    $ref: renesas,usb-xhci.yaml#

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - clocks
  - clock-names
  - power-domains
  - resets

additionalProperties: false

RZ/V2M DRD 상위 node 예제

84-104

예제 `usb3drd: usb@85070400`은 0x100-byte register 영역과 GIC SPI 242, 243, 244를 `drd`, `bc`, `gpi`에 연결합니다. AXI와 APB clock, DRD reset, 빈 `ranges`, 1-cell child 주소 체계를 설정합니다.


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

    usb3drd: usb@85070400 {
        compatible = "renesas,r9a09g011-usb3drd", "renesas,rzv2m-usb3drd";
        reg = <0x85070400 0x100>;
        interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-names = "drd", "bc", "gpi";
        clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_P>,
                 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
        clock-names = "axi", "reg";
        power-domains = <&cpg>;
        resets = <&cpg R9A09G011_USB_DRD_RESET>;
        ranges;
        #address-cells = <1>;
        #size-cells = <1>;

xHCI host와 USB3 peripheral child

105-129

host child `usb3host: usb@85060000`은 RZ/V2M xHCI compatible, GIC SPI 245, host AXI와 APB clock, host reset을 사용합니다. peripheral child `usb3peri@85070000`은 RZ/V2M USB3 peripheral compatible, GIC SPI 246, peripheral AXI와 APB clock, peripheral reset을 사용합니다.


    usb3host: usb@85060000 {
        compatible = "renesas,r9a09g011-xhci",
                     "renesas,rzv2m-xhci";
        reg = <0x85060000 0x2000>;
        interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_H>,
                 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
        clock-names = "axi", "reg";
        power-domains = <&cpg>;
        resets = <&cpg R9A09G011_USB_ARESETN_H>;
    };

    usb3peri: usb3peri@85070000 {
        compatible = "renesas,r9a09g011-usb3-peri",
                     "renesas,rzv2m-usb3-peri";
        reg = <0x85070000 0x400>;
        interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_P>,
                 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
        clock-names = "axi", "reg";
        power-domains = <&cpg>;
        resets = <&cpg R9A09G011_USB_ARESETN_P>;
    };
};