← Documents Documentation/devicetree/bindings/sound/brcm,cygnus-audio.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Sound

Broadcom Cygnus Audio

Cygnus I2S/TDM/SPDIF controller, PLL과 SSP port를 설명합니다.

Source pathDocumentation/devicetree/bindings/sound/brcm,cygnus-audio.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

brcm,cygnus-audio.txt:1-63

Audio routing, clock, port와 codec control 속성을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 BROADCOM Cygnus Audio I2S/TDM/SPDIF controller
2
3 Required properties:
4 - compatible : "brcm,cygnus-audio"
5 - #address-cells: 32bit valued, 1 cell.
6 - #size-cells: 32bit valued, 0 cell.
7 - reg : Should contain audio registers location and length
8 - reg-names: names of the registers listed in "reg" property
9 Valid names are "aud" and "i2s_in". "aud" contains a
10 set of DMA, I2S_OUT and SPDIF registers. "i2s_in" contains
11 a set of I2S_IN registers.
12 - clocks: PLL and leaf clocks used by audio ports
13 - assigned-clocks: PLL and leaf clocks
14 - assigned-clock-parents: parent clocks of the assigned clocks
15 (usually the PLL)
16 - assigned-clock-rates: List of clock frequencies of the
17 assigned clocks
18 - clock-names: names of 3 leaf clocks used by audio ports
19 Valid names are "ch0_audio", "ch1_audio", "ch2_audio"
20 - interrupts: audio DMA interrupt number
21
22 SSP Subnode properties:
23 - reg: The index of ssp port interface to use
24 Valid value are 0, 1, 2, or 3 (for spdif)
25
26 Example:
27 cygnus_audio: audio@180ae000 {
28 compatible = "brcm,cygnus-audio";
29 #address-cells = <1>;
30 #size-cells = <0>;
31 reg = <0x180ae000 0xafd>, <0x180aec00 0x1f8>;
32 reg-names = "aud", "i2s_in";
33 clocks = <&audiopll BCM_CYGNUS_AUDIOPLL_CH0>,
34 <&audiopll BCM_CYGNUS_AUDIOPLL_CH1>,
35 <&audiopll BCM_CYGNUS_AUDIOPLL_CH2>;
36 assigned-clocks = <&audiopll BCM_CYGNUS_AUDIOPLL>,
37 <&audiopll BCM_CYGNUS_AUDIOPLL_CH0>,
38 <&audiopll BCM_CYGNUS_AUDIOPLL_CH1>,
39 <&audiopll BCM_CYGNUS_AUDIOPLL_CH2>;
40 assigned-clock-parents = <&audiopll BCM_CYGNUS_AUDIOPLL>;
41 assigned-clock-rates = <1769470191>,
42 <0>,
43 <0>,
44 <0>;
45 clock-names = "ch0_audio", "ch1_audio", "ch2_audio";
46 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
47
48 ssp0: ssp_port@0 {
49 reg = <0>;
50 };
51
52 ssp1: ssp_port@1 {
53 reg = <1>;
54 };
55
56 ssp2: ssp_port@2 {
57 reg = <2>;
58 };
59
60 spdif: spdif_port@3 {
61 reg = <3>;
62 };
63 };
64

3. 한국어 전문 번역

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

Cygnus Audio root 속성

1-21

BROADCOM Cygnus Audio controller는 I2S, TDM, SPDIF를 지원하며 `compatible`은 `brcm,cygnus-audio`입니다. `#address-cells`는 한 cell, `#size-cells`는 0 cell입니다.

`reg`의 `aud` 영역은 DMA·I2S_OUT·SPDIF register를, `i2s_in` 영역은 I2S_IN register를 담으며 `reg-names`로 이름을 지정합니다.

`clocks`, `assigned-clocks`, `assigned-clock-parents`, `assigned-clock-rates`는 audio port의 PLL과 leaf clock 구성을 정의합니다. `clock-names`의 유효한 세 leaf 이름은 `ch0_audio`, `ch1_audio`, `ch2_audio`입니다.

`interrupts`는 audio DMA interrupt 번호입니다.

SSP 자식 노드

22-25

SSP 자식 노드의 `reg`는 사용할 port interface index입니다. 유효한 값은 I2S/TDM port 0·1·2와 SPDIF용 3입니다.

Cygnus Audio와 PLL 예제

26-47

예제 root는 `aud`·`i2s_in` register, Audio PLL의 channel 0~2, parent와 assigned rate, 세 leaf clock 이름, DMA interrupt를 정의합니다.

cygnus_audio: audio@180ae000 {
        compatible = "brcm,cygnus-audio";
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0x180ae000 0xafd>, <0x180aec00 0x1f8>;
        reg-names = "aud", "i2s_in";
        clocks = <&audiopll BCM_CYGNUS_AUDIOPLL_CH0>,
                        <&audiopll BCM_CYGNUS_AUDIOPLL_CH1>,
                        <&audiopll BCM_CYGNUS_AUDIOPLL_CH2>;
        assigned-clocks = <&audiopll BCM_CYGNUS_AUDIOPLL>,
                                                <&audiopll BCM_CYGNUS_AUDIOPLL_CH0>,
                                                <&audiopll BCM_CYGNUS_AUDIOPLL_CH1>,
                                                <&audiopll BCM_CYGNUS_AUDIOPLL_CH2>;
        assigned-clock-parents = <&audiopll BCM_CYGNUS_AUDIOPLL>;
        assigned-clock-rates = <1769470191>,
                                                        <0>,
                                                        <0>,
                                                        <0>;
        clock-names = "ch0_audio", "ch1_audio", "ch2_audio";
        interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;

SSP와 SPDIF port 예제

48-63

자식 노드는 SSP port index 0·1·2와 SPDIF port index 3을 각각 정의합니다.

        ssp0: ssp_port@0 {
                reg = <0>;
        };

        ssp1: ssp_port@1 {
                reg = <1>;
        };

        ssp2: ssp_port@2 {
                reg = <2>;
        };

        spdif: spdif_port@3 {
                reg = <3>;
        };
};