← Documents Documentation/devicetree/bindings/sound/cs42l56.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Sound

Cirrus CS42L56 audio codec

CS42L56의 analog input, adaptive power와 high-pass filter를 설명합니다.

Source pathDocumentation/devicetree/bindings/sound/cs42l56.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

cs42l56.txt:1-63

Codec의 주소·전원·clock·analog input과 측정 속성을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 CS42L52 audio CODEC
2
3 Required properties:
4
5 - compatible : "cirrus,cs42l56"
6
7 - reg : the I2C address of the device for I2C
8
9 - VA-supply, VCP-supply, VLDO-supply : power supplies for the device,
10 as covered in Documentation/devicetree/bindings/regulator/regulator.txt.
11
12 Optional properties:
13
14 - cirrus,gpio-nreset : GPIO controller's phandle and the number
15 of the GPIO used to reset the codec.
16
17 - cirrus,chgfreq-divisor : Values used to set the Charge Pump Frequency.
18 Allowable values of 0x00 through 0x0F. These are raw values written to the
19 register, not the actual frequency. The frequency is determined by the following.
20 Frequency = MCLK / 4 * (N+2)
21 N = chgfreq_val
22 MCLK = Where MCLK is the frequency of the mclk signal after the MCLKDIV2 circuit.
23
24 - cirrus,ain1a-ref-cfg, ain1b-ref-cfg : boolean, If present, AIN1A or AIN1B are configured
25 as a pseudo-differential input referenced to AIN1REF/AIN3A.
26
27 - cirrus,ain2a-ref-cfg, ain2b-ref-cfg : boolean, If present, AIN2A or AIN2B are configured
28 as a pseudo-differential input referenced to AIN2REF/AIN3B.
29
30 - cirrus,micbias-lvl: Set the output voltage level on the MICBIAS Pin.
31 0 = 0.5 x VA
32 1 = 0.6 x VA
33 2 = 0.7 x VA
34 3 = 0.8 x VA
35 4 = 0.83 x VA
36 5 = 0.91 x VA
37
38 - cirrus,adaptive-pwr-cfg : Configures how the power to the Headphone and Lineout
39 Amplifiers adapt to the output signal levels.
40 0 = Adapt to Volume Mode. Voltage level determined by the sum of the relevant volume settings.
41 1 = Fixed - Headphone and Line Amp supply = + or - VCP/2.
42 2 = Fixed - Headphone and Line Amp supply = + or - VCP.
43 3 = Adapted to Signal; Voltage level is dynamically determined by the output signal.
44
45 - cirrus,hpf-left-freq, hpf-right-freq : Sets the corner frequency (-3dB point) for the internal High-Pass
46 Filter.
47 0 = 1.8Hz
48 1 = 119Hz
49 2 = 236Hz
50 3 = 464Hz
51
52
53 Example:
54
55 codec: codec@4b {
56 compatible = "cirrus,cs42l56";
57 reg = <0x4b>;
58 cirrus,gpio-nreset = <&gpio 10 0>;
59 cirrus,chgfreq-divisor = <0x05>;
60 cirrus.ain1_ref_cfg;
61 cirrus,micbias-lvl = <5>;
62 VA-supply = <&reg_audio>;
63 };
64

3. 한국어 전문 번역

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

CS42L56 필수 속성

1-11

이 문서의 `compatible` 값은 `cirrus,cs42l56`이고 `reg`에는 I2C 장치 주소를 지정합니다. `VA-supply`, `VCP-supply`, `VLDO-supply`는 `Documentation/devicetree/bindings/regulator/regulator.txt`에 정의된 전원 공급 장치를 가리킵니다.

원문 첫 줄 제목은 `CS42L52 audio CODEC`이라고 적혀 있지만 compatible과 파일명은 CS42L56을 가리킵니다. 제목을 임의로 고치지 않고 원문 그대로 보존했습니다.

Reset과 charge pump divisor

12-23

`cirrus,gpio-nreset`은 codec reset에 사용하는 GPIO controller phandle과 GPIO 번호입니다.

`cirrus,chgfreq-divisor`는 charge pump frequency register에 쓸 `0x00`~`0x0F` raw 값입니다. 실제 주파수는 `Frequency = MCLK / 4 * (N+2)`이며 `N = chgfreq_val`, MCLK는 MCLKDIV2 회로를 지난 mclk signal frequency입니다.

Analog input과 MICBIAS

24-37

Boolean `cirrus,ain1a-ref-cfg`와 `ain1b-ref-cfg`는 AIN1A 또는 AIN1B를 AIN1REF/AIN3A 기준 pseudo-differential input으로 구성합니다.

Boolean `cirrus,ain2a-ref-cfg`와 `ain2b-ref-cfg`는 AIN2A 또는 AIN2B를 AIN2REF/AIN3B 기준 pseudo-differential input으로 구성합니다.

`cirrus,micbias-lvl` 값 0~5는 MICBIAS pin에 각각 `0.5 x VA`, `0.6 x VA`, `0.7 x VA`, `0.8 x VA`, `0.83 x VA`, `0.91 x VA`를 출력합니다.

Adaptive power와 high-pass filter

38-52

`cirrus,adaptive-pwr-cfg`는 headphone·lineout amplifier 전원이 output signal level에 적응하는 방식을 정합니다. 값 0은 volume setting 합으로 전압을 정하고, 1은 supply를 `+/- VCP/2`, 2는 `+/- VCP`로 고정하며, 3은 output signal에 따라 동적으로 적응합니다.

`cirrus,hpf-left-freq`와 `hpf-right-freq`는 내부 high-pass filter의 corner frequency, 즉 -3dB point를 정합니다. 값 0, 1, 2, 3은 각각 1.8Hz, 119Hz, 236Hz, 464Hz입니다.

CS42L56 예제

53-63

예제는 주소 `0x4b`, reset GPIO, charge pump divisor `0x05`, analog input reference 설정, MICBIAS level 5와 VA supply를 지정합니다.

예제의 `cirrus.ain1_ref_cfg`는 설명의 `cirrus,ain1a-ref-cfg`·`ain1b-ref-cfg`와 표기와 이름이 다릅니다. 예제 코드는 원문 그대로 유지했습니다.

codec: codec@4b {
        compatible = "cirrus,cs42l56";
        reg = <0x4b>;
        cirrus,gpio-nreset = <&gpio 10 0>;
        cirrus,chgfreq-divisor = <0x05>;
        cirrus.ain1_ref_cfg;
        cirrus,micbias-lvl = <5>;
        VA-supply = <&reg_audio>;
};