← Documents Documentation/devicetree/bindings/sound/fsl,mqs.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Sound

NXP Medium Quality Sound

GPIO 기반 MQS 출력과 i.MX8Q·기타 SoC별 clock·resource 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/sound/fsl,mqs.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

fsl,mqs.yaml:1-117

NXP/Freescale digital microphone, GPIO audio, SGTL5000 machine card와 QMC multichannel audio의 핵심 signal 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/sound/fsl,mqs.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NXP Medium Quality Sound (MQS)
8
9 maintainers:
10 - Shengjiu Wang <shengjiu.wang@nxp.com>
11 - Chancel Liu <chancel.liu@nxp.com>
12
13 description: |
14 Medium quality sound (MQS) is used to generate medium quality audio
15 via a standard GPIO in the pinmux, allowing the user to connect
16 stereo speakers or headphones to a power amplifier without an
17 additional DAC chip.
18
19 properties:
20 compatible:
21 enum:
22 - fsl,imx6sx-mqs
23 - fsl,imx8qm-mqs
24 - fsl,imx8qxp-mqs
25 - fsl,imx93-mqs
26 - fsl,imx943-aonmix-mqs
27 - fsl,imx943-wakeupmix-mqs
28 - fsl,imx95-aonmix-mqs
29 - fsl,imx95-netcmix-mqs
30
31 "#sound-dai-cells":
32 const: 0
33
34 clocks:
35 minItems: 1
36 maxItems: 2
37
38 clock-names:
39 minItems: 1
40 maxItems: 2
41
42 gpr:
43 $ref: /schemas/types.yaml#/definitions/phandle
44 description: The phandle to the General Purpose Register (GPR) node
45
46 reg:
47 maxItems: 1
48
49 power-domains:
50 maxItems: 1
51
52 resets:
53 maxItems: 1
54
55 port:
56 $ref: audio-graph-port.yaml#
57 unevaluatedProperties: false
58
59 required:
60 - compatible
61 - clocks
62 - clock-names
63
64 allOf:
65 - $ref: dai-common.yaml#
66 - if:
67 properties:
68 compatible:
69 contains:
70 enum:
71 - fsl,imx8qm-mqs
72 - fsl,imx8qxp-mqs
73 then:
74 properties:
75 clocks:
76 items:
77 - description: Master clock
78 - description: Clock for register access
79 clock-names:
80 items:
81 - const: mclk
82 - const: core
83 required:
84 - reg
85 - power-domains
86 else:
87 properties:
88 clocks:
89 items:
90 - description: Master clock
91 clock-names:
92 items:
93 - const: mclk
94 required:
95 - gpr
96
97 unevaluatedProperties: false
98
99 examples:
100 - |
101 #include <dt-bindings/clock/imx6sx-clock.h>
102 mqs0: mqs {
103 compatible = "fsl,imx6sx-mqs";
104 gpr = <&gpr>;
105 clocks = <&clks IMX6SX_CLK_SAI1>;
106 clock-names = "mclk";
107 };
108
109 - |
110 #include <dt-bindings/firmware/imx/rsrc.h>
111 mqs1: mqs@59850000 {
112 compatible = "fsl,imx8qm-mqs";
113 reg = <0x59850000 0x10000>;
114 clocks = <&mqs0_lpcg 0>, <&mqs0_lpcg 1>;
115 clock-names = "mclk", "core";
116 power-domains = <&pd IMX_SC_R_MQS_0>;
117 };
118

3. 한국어 전문 번역

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

NXP Medium Quality Sound

1-18

Medium Quality Sound(MQS)는 pinmux의 표준 GPIO를 통해 중간 품질 audio를 생성합니다. 별도의 DAC chip 없이 power amplifier에 stereo speaker 또는 headphone을 연결할 수 있습니다. Schema ID는 `http://devicetree.org/schemas/sound/fsl,mqs.yaml#`이며 Shengjiu Wang과 Chancel Liu가 유지관리합니다.

Compatible, clock와 resource 속성

19-58

지원 `compatible`은 `fsl,imx6sx-mqs`, `fsl,imx8qm-mqs`, `fsl,imx8qxp-mqs`, `fsl,imx93-mqs`, `fsl,imx943-aonmix-mqs`, `fsl,imx943-wakeupmix-mqs`, `fsl,imx95-aonmix-mqs`, `fsl,imx95-netcmix-mqs`입니다. `#sound-dai-cells`는 0입니다.

`clocks`와 `clock-names`는 각각 1~2개입니다. `gpr`은 General Purpose Register node의 phandle이고, `reg`, `power-domains`, `resets`는 각각 최대 한 항목입니다. `port`는 `audio-graph-port.yaml#`을 참조하며 추가 속성을 허용하지 않습니다.

기본 필수 속성

59-63

모든 MQS node에 필요한 속성은 `compatible`, `clocks`, `clock-names`입니다.

i.MX8Q 계열과 그 밖의 SoC 조건

64-98

Binding은 `dai-common.yaml#`을 상속합니다. `fsl,imx8qm-mqs` 또는 `fsl,imx8qxp-mqs`에서는 첫 clock이 master clock `mclk`, 두 번째가 register 접근용 `core`이며 `reg`와 `power-domains`가 필수입니다.

그 밖의 compatible에서는 master clock `mclk` 한 개를 사용하고 `gpr`이 필수입니다. 공통 schema 평가 뒤 남는 추가 속성은 허용하지 않습니다.

i.MX6SX와 i.MX8QM MQS 예제

99-117

첫 예제는 i.MX6SX SAI1 clock과 GPR을 사용하는 register 없는 MQS node입니다. 두 번째는 `0x59850000` register, `mclk`와 `core` 두 clock, `IMX_SC_R_MQS_0` power domain을 사용하는 i.MX8QM MQS입니다.

#include <dt-bindings/clock/imx6sx-clock.h>
mqs0: mqs {
    compatible = "fsl,imx6sx-mqs";
    gpr = <&gpr>;
    clocks = <&clks IMX6SX_CLK_SAI1>;
    clock-names = "mclk";
};
#include <dt-bindings/firmware/imx/rsrc.h>
mqs1: mqs@59850000 {
    compatible = "fsl,imx8qm-mqs";
    reg = <0x59850000 0x10000>;
    clocks = <&mqs0_lpcg 0>, <&mqs0_lpcg 1>;
    clock-names = "mclk", "core";
    power-domains = <&pd IMX_SC_R_MQS_0>;
};