← Documents Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

ON Semiconductor FSA4480 Analog Audio Switch

FSA4480·OCP96011 Type-C audio switch의 전원, OF graph와 AUX/SBU lane 배치를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

fcs,fsa4480.yaml:1-108

FSA4480·OCP96011 Type-C audio switch의 전원, OF graph와 AUX/SBU lane 배치를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, reset, 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/fcs,fsa4480.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: ON Semiconductor Analog Audio Switch
8
9 maintainers:
10 - Bjorn Andersson <[email protected]>
11
12 properties:
13 compatible:
14 oneOf:
15 - const: fcs,fsa4480
16 - items:
17 - enum:
18 - ocs,ocp96011
19 - const: fcs,fsa4480
20
21 reg:
22 maxItems: 1
23
24 interrupts:
25 maxItems: 1
26
27 vcc-supply:
28 description: power supply (2.7V-5.5V)
29
30 mode-switch: true
31 orientation-switch: true
32
33 port:
34 $ref: /schemas/graph.yaml#/$defs/port-base
35 description:
36 A port node to link the FSA4480 to a TypeC controller for the purpose of
37 handling altmode muxing and orientation switching.
38 unevaluatedProperties: false
39
40 properties:
41 endpoint:
42 $ref: /schemas/graph.yaml#/$defs/endpoint-base
43 unevaluatedProperties: false
44
45 properties:
46 data-lanes:
47 $ref: /schemas/types.yaml#/definitions/uint32-array
48 description:
49 Specifies how the AUX+/- lines are connected to SBU1/2.
50 oneOf:
51 - items:
52 - const: 0
53 - const: 1
54 description: |
55 Default AUX/SBU layout (FSA4480)
56 - AUX+ connected to SBU2
57 - AUX- connected to SBU1
58 Default AUX/SBU layout (OCP96011)
59 - AUX+ connected to SBU1
60 - AUX- connected to SBU2
61 - items:
62 - const: 1
63 - const: 0
64 description: |
65 Swapped AUX/SBU layout (FSA4480)
66 - AUX+ connected to SBU1
67 - AUX- connected to SBU2
68 Swapped AUX/SBU layout (OCP96011)
69 - AUX+ connected to SBU2
70 - AUX- connected to SBU1
71
72 required:
73 - compatible
74 - reg
75 - port
76
77 allOf:
78 - $ref: usb-switch.yaml#
79 - $ref: usb-switch-ports.yaml#
80
81 additionalProperties: false
82
83 examples:
84 - |
85 #include <dt-bindings/interrupt-controller/irq.h>
86 i2c13 {
87 #address-cells = <1>;
88 #size-cells = <0>;
89
90 typec-mux@42 {
91 compatible = "fcs,fsa4480";
92 reg = <0x42>;
93
94 interrupts-extended = <&tlmm 2 IRQ_TYPE_LEVEL_LOW>;
95
96 vcc-supply = <&vreg_bob>;
97
98 mode-switch;
99 orientation-switch;
100
101 port {
102 fsa4480_ept: endpoint {
103 remote-endpoint = <&typec_controller>;
104 };
105 };
106 };
107 };
108 ...
109

3. 한국어 전문 번역

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

ON Semiconductor analog audio switch

1-11

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 schema는 ON Semiconductor analog audio switch를 정의합니다. 관리자는 Bjorn Andersson입니다.

Compatible, interrupt와 switch 기능

12-31

`compatible`은 `fcs,fsa4480` 단독이거나 `ocs,ocp96011` 뒤에 `fcs,fsa4480` fallback을 둔 조합입니다. register와 interrupt는 각각 최대 하나입니다.

`vcc-supply`는 2.7~5.5 V 전원입니다. `mode-switch`와 `orientation-switch` 기능을 모두 지원합니다.

properties:
  compatible:
    oneOf:
      - const: fcs,fsa4480
      - items:
          - enum:
              - ocs,ocp96011
          - const: fcs,fsa4480

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  vcc-supply:
    description: power supply (2.7V-5.5V)

  mode-switch: true
  orientation-switch: true

Type-C graph와 AUX/SBU data lane

32-71

`port`는 altmode muxing과 orientation switching을 처리하도록 FSA4480을 Type-C controller에 연결하는 OF graph node입니다. port와 endpoint에는 평가되지 않은 추가 속성을 허용하지 않습니다.

endpoint의 `data-lanes` 배열은 AUX+/- line을 SBU1/2에 연결하는 방식을 지정합니다. 값 `<0 1>`은 FSA4480에서 AUX+→SBU2, AUX-→SBU1인 기본 배치이고, OCP96011에서는 AUX+→SBU1, AUX-→SBU2인 기본 배치입니다.

값 `<1 0>`은 반대 배치입니다. FSA4480에서는 AUX+→SBU1, AUX-→SBU2이고, OCP96011에서는 AUX+→SBU2, AUX-→SBU1입니다.


port:
  $ref: /schemas/graph.yaml#/$defs/port-base
  description:
    A port node to link the FSA4480 to a TypeC controller for the purpose of
    handling altmode muxing and orientation switching.
  unevaluatedProperties: false

  properties:
    endpoint:
      $ref: /schemas/graph.yaml#/$defs/endpoint-base
      unevaluatedProperties: false

      properties:
        data-lanes:
          $ref: /schemas/types.yaml#/definitions/uint32-array
          description:
            Specifies how the AUX+/- lines are connected to SBU1/2.
          oneOf:
            - items:
                - const: 0
                - const: 1
              description: |
                Default AUX/SBU layout (FSA4480)
                - AUX+ connected to SBU2
                - AUX- connected to SBU1
                Default AUX/SBU layout (OCP96011)
                - AUX+ connected to SBU1
                - AUX- connected to SBU2
            - items:
                - const: 1
                - const: 0
              description: |
                Swapped AUX/SBU layout (FSA4480)
                - AUX+ connected to SBU1
                - AUX- connected to SBU2
                Swapped AUX/SBU layout (OCP96011)
                - AUX+ connected to SBU2
                - AUX- connected to SBU1

필수 속성과 USB switch schema

72-82

필수 속성은 `compatible`, `reg`, `port`입니다. 공통 `usb-switch.yaml`과 `usb-switch-ports.yaml` 제약을 상속하며 그 밖의 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg
  - port

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

additionalProperties: false

I2C address 0x42 switch 예제

83-108

예제 `typec-mux@42`는 I2C address 0x42, level-low GPIO interrupt, `vreg_bob` 전원을 사용하고 mode·orientation switch를 활성화합니다.

port endpoint `fsa4480_ept`는 `remote-endpoint`로 `typec_controller`에 연결됩니다.

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

        typec-mux@42 {
            compatible = "fcs,fsa4480";
            reg = <0x42>;

            interrupts-extended = <&tlmm 2 IRQ_TYPE_LEVEL_LOW>;

            vcc-supply = <&vreg_bob>;

            mode-switch;
            orientation-switch;

            port {
                fsa4480_ept: endpoint {
                    remote-endpoint = <&typec_controller>;
                };
            };
        };
    };
...