← Documents Documentation/devicetree/bindings/usb/maxim,max33359.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Maxim MAX33359 TCPCI Type-C PD Controller

MAX33359 TCPCI의 USB-C connector, dual-role PD 정책과 source·sink PDO 예제를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

maxim,max33359.yaml:1-81

MAX33359 TCPCI의 USB-C connector, dual-role PD 정책과 source·sink PDO 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, PHY, connector, 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/maxim,max33359.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Maxim TCPCI Type-C PD controller
8
9 maintainers:
10 - Badhri Jagan Sridharan <[email protected]>
11
12 description: Maxim TCPCI Type-C PD controller
13
14 properties:
15 compatible:
16 oneOf:
17 - enum:
18 - maxim,max33359
19 - items:
20 - const: maxim,max77759-tcpci
21 - const: maxim,max33359
22
23 reg:
24 maxItems: 1
25
26 interrupts:
27 maxItems: 1
28
29 connector:
30 type: object
31 $ref: ../connector/usb-connector.yaml#
32 description:
33 Properties for usb c connector.
34
35 required:
36 - compatible
37 - reg
38 - interrupts
39 - connector
40
41 additionalProperties: false
42
43 examples:
44 - |
45 #include <dt-bindings/interrupt-controller/irq.h>
46 #include <dt-bindings/usb/pd.h>
47 i2c {
48 #address-cells = <1>;
49 #size-cells = <0>;
50
51 maxtcpc@25 {
52 compatible = "maxim,max33359";
53 reg = <0x25>;
54 interrupt-parent = <&gpa8>;
55 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
56
57 connector {
58 compatible = "usb-c-connector";
59 label = "USB-C";
60 data-role = "dual";
61 power-role = "dual";
62 try-power-role = "sink";
63 self-powered;
64 op-sink-microwatt = <2600000>;
65 new-source-frs-typec-current = <FRS_5V_1P5A>;
66 source-pdos = <PDO_FIXED(5000, 900,
67 PDO_FIXED_SUSPEND |
68 PDO_FIXED_USB_COMM |
69 PDO_FIXED_DATA_SWAP |
70 PDO_FIXED_DUAL_ROLE)>;
71 sink-pdos = <PDO_FIXED(5000, 3000,
72 PDO_FIXED_USB_COMM |
73 PDO_FIXED_DATA_SWAP |
74 PDO_FIXED_DUAL_ROLE)
75 PDO_FIXED(9000, 2000, 0)>;
76 sink-bc12-completion-time-ms = <500>;
77 pd-revision = /bits/ 8 <0x03 0x01 0x01 0x08>;
78 };
79 };
80 };
81 ...
82

3. 한국어 전문 번역

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

Maxim TCPCI Type-C PD controller

1-13

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 schema는 Maxim TCPCI Type-C Power Delivery controller를 정의합니다. 관리자는 Badhri Jagan Sridharan입니다.

Compatible, interrupt와 connector

14-34

`compatible`은 `maxim,max33359` 단독이거나 `maxim,max77759-tcpci` 뒤에 `maxim,max33359` fallback을 두는 조합입니다. register와 interrupt는 각각 하나만 허용합니다.

`connector` child object는 `usb-connector.yaml`을 따르며 USB-C connector 속성을 담습니다.

properties:
  compatible:
    oneOf:
      - enum:
          - maxim,max33359
      - items:
          - const: maxim,max77759-tcpci
          - const: maxim,max33359

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  connector:
    type: object
    $ref: ../connector/usb-connector.yaml#
    description:
      Properties for usb c connector.

필수 controller 속성

35-42

필수 속성은 `compatible`, `reg`, `interrupts`, `connector`입니다. 정의되지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg
  - interrupts
  - connector

additionalProperties: false

Dual-role USB-C PD 예제

43-81

예제 TCPC는 I2C address 0x25와 level-low GPIO interrupt를 사용합니다. connector는 data role과 power role 모두 `dual`, 선호 power role은 `sink`이고 self-powered로 선언됩니다.

sink 동작 전력은 2,600,000 microwatt이고 Fast Role Swap source current는 5 V 1.5 A입니다. source PDO는 5 V 900 mA, sink PDO는 5 V 3 A와 9 V 2 A를 제공합니다.

BC1.2 완료 시간은 500 ms이며 PD revision은 `/bits/ 8 <0x03 0x01 0x01 0x08>` 값으로 지정합니다.

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/usb/pd.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        maxtcpc@25 {
            compatible = "maxim,max33359";
            reg = <0x25>;
            interrupt-parent = <&gpa8>;
            interrupts = <2 IRQ_TYPE_LEVEL_LOW>;

            connector {
                compatible = "usb-c-connector";
                label = "USB-C";
                data-role = "dual";
                power-role = "dual";
                try-power-role = "sink";
                self-powered;
                op-sink-microwatt = <2600000>;
                new-source-frs-typec-current = <FRS_5V_1P5A>;
                source-pdos = <PDO_FIXED(5000, 900,
                                         PDO_FIXED_SUSPEND |
                                         PDO_FIXED_USB_COMM |
                                         PDO_FIXED_DATA_SWAP |
                                         PDO_FIXED_DUAL_ROLE)>;
                sink-pdos = <PDO_FIXED(5000, 3000,
                                       PDO_FIXED_USB_COMM |
                                       PDO_FIXED_DATA_SWAP |
                                       PDO_FIXED_DUAL_ROLE)
                                       PDO_FIXED(9000, 2000, 0)>;
                sink-bc12-completion-time-ms = <500>;
                pd-revision = /bits/ 8 <0x03 0x01 0x01 0x08>;
            };
        };
    };
...