← Documents Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Qualcomm WCD939x USBSS Audio Switch

WCD939x USBSS의 Type-C SBU·codec graph와 audio accessory switching을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

qcom,wcd939x-usbss.yaml:1-101

WCD939x USBSS의 Type-C SBU·codec graph와 audio accessory switching을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, clock, PHY, regulator, 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/qcom,wcd939x-usbss.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm WCD9380/WCD9385 USB SubSystem Altmode/Analog Audio Switch
8
9 maintainers:
10 - Neil Armstrong <neil.armstrong@linaro.org>
11
12 description:
13 Qualcomm WCD9390/WCD9395 is a standalone Hi-Fi audio codec IC with a
14 functionally separate USB SubSystem for Altmode/Analog Audio Switch
15 accessible over an I2C interface.
16 The Audio Headphone and Microphone data path between the Codec and the
17 USB-C Mux subsystems are external to the IC, thus requiring DT port-endpoint
18 graph description to handle USB-C altmode & orientation switching for Audio
19 Accessory Mode.
20
21 properties:
22 compatible:
23 oneOf:
24 - const: qcom,wcd9390-usbss
25 - items:
26 - const: qcom,wcd9395-usbss
27 - const: qcom,wcd9390-usbss
28
29 reg:
30 maxItems: 1
31
32 reset-gpios:
33 maxItems: 1
34
35 vdd-supply:
36 description: USBSS VDD power supply
37
38 mode-switch: true
39 orientation-switch: true
40
41 ports:
42 $ref: /schemas/graph.yaml#/properties/ports
43 properties:
44 port@0:
45 $ref: /schemas/graph.yaml#/properties/port
46 description:
47 A port node to link the WCD939x USB SubSystem to a TypeC controller for the
48 purpose of handling altmode muxing and orientation switching.
49
50 port@1:
51 $ref: /schemas/graph.yaml#/properties/port
52 description:
53 A port node to link the WCD939x USB SubSystem to the Codec SubSystem for the
54 purpose of handling USB-C Audio Accessory Mode muxing and orientation switching.
55
56 required:
57 - compatible
58 - reg
59 - ports
60
61 allOf:
62 - $ref: usb-switch.yaml#
63 - $ref: usb-switch-ports.yaml#
64
65 additionalProperties: false
66
67 examples:
68 - |
69 i2c {
70 #address-cells = <1>;
71 #size-cells = <0>;
72
73 typec-mux@42 {
74 compatible = "qcom,wcd9390-usbss";
75 reg = <0x42>;
76
77 vdd-supply = <&vreg_bob>;
78
79 mode-switch;
80 orientation-switch;
81
82 ports {
83 #address-cells = <1>;
84 #size-cells = <0>;
85
86 port@0 {
87 reg = <0>;
88 wcd9390_usbss_sbu: endpoint {
89 remote-endpoint = <&typec_sbu>;
90 };
91 };
92 port@1 {
93 reg = <1>;
94 wcd9390_usbss_codec: endpoint {
95 remote-endpoint = <&wcd9390_codec_usbss>;
96 };
97 };
98 };
99 };
100 };
101 ...
102

3. 한국어 전문 번역

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

WCD939x USBSS audio switch

1-20

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 schema의 title은 Qualcomm WCD9380/WCD9385 USB SubSystem Altmode/Analog Audio Switch이며 관리자는 Neil Armstrong입니다.

본문은 WCD9390/WCD9395를 I2C로 접근하는 standalone Hi-Fi audio codec IC로 설명합니다. USBSS는 altmode/analog audio switch 기능이 분리되어 있고 codec과 USB-C mux 사이 headphone·microphone data path가 IC 외부에 있으므로 Audio Accessory Mode의 altmode·orientation 전환을 DT port-endpoint graph로 표현해야 합니다.

Compatible, reset과 switch

21-40

WCD9390은 `qcom,wcd9390-usbss` 하나를 사용하고 WCD9395는 `qcom,wcd9395-usbss`, `qcom,wcd9390-usbss` fallback 순서입니다. `reg`와 `reset-gpios`는 각각 하나이고 `vdd-supply`는 USBSS VDD 전원입니다. mode switch와 orientation switch를 지원합니다.

properties:
  compatible:
    oneOf:
      - const: qcom,wcd9390-usbss
      - items:
          - const: qcom,wcd9395-usbss
          - const: qcom,wcd9390-usbss

  reg:
    maxItems: 1

  reset-gpios:
    maxItems: 1

  vdd-supply:
    description: USBSS VDD power supply

  mode-switch: true
  orientation-switch: true

Type-C·codec 두 graph port

41-65

`port@0`은 altmode muxing과 orientation switching을 위해 WCD939x USBSS를 Type-C controller에 연결합니다. `port@1`은 USB-C Audio Accessory Mode muxing과 orientation switching을 위해 USBSS를 codec subsystem에 연결합니다.

필수 속성은 `compatible`, `reg`, `ports`입니다. `usb-switch.yaml`과 `usb-switch-ports.yaml`을 상속하고 정의되지 않은 추가 속성을 허용하지 않습니다.

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          A port node to link the WCD939x USB SubSystem to a TypeC controller for the
          purpose of handling altmode muxing and orientation switching.

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          A port node to link the WCD939x USB SubSystem to the Codec SubSystem for the
          purpose of handling USB-C Audio Accessory Mode muxing and orientation switching.

required:
  - compatible
  - reg
  - ports

allOf:
  - $ref: usb-switch.yaml#
  - $ref: usb-switch-ports.yaml#

additionalProperties: false

WCD9390 SBU·codec endpoint 예제

66-101

예제 `typec-mux@42`는 `qcom,wcd9390-usbss`, I2C 주소 0x42, `vreg_bob` supply와 mode·orientation switch를 사용합니다.

`port@0`의 `wcd9390_usbss_sbu`는 Type-C SBU `typec_sbu`, `port@1`의 `wcd9390_usbss_codec`은 codec endpoint `wcd9390_codec_usbss`에 연결됩니다.


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

        typec-mux@42 {
            compatible = "qcom,wcd9390-usbss";
            reg = <0x42>;

            vdd-supply = <&vreg_bob>;

            mode-switch;
            orientation-switch;

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

                port@0 {
                    reg = <0>;
                    wcd9390_usbss_sbu: endpoint {
                        remote-endpoint = <&typec_sbu>;
                    };
                };
                port@1 {
                    reg = <1>;
                    wcd9390_usbss_codec: endpoint {
                        remote-endpoint = <&wcd9390_codec_usbss>;
                    };
                };
            };
        };
    };
...