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

Linux 6.18.37 · Devicetree Bindings / Sound

Cirrus CS35L33 speaker amplifier

CS35L33의 boost, ramp, IMON과 Class H/G 전원 추적 속성을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

cs35l33.txt:1-124

스피커 증폭기의 전원, boost, audio timing과 보호 제어 속성을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 CS35L33 Speaker Amplifier
2
3 Required properties:
4
5 - compatible : "cirrus,cs35l33"
6
7 - reg : the I2C address of the device for I2C
8
9 - VA-supply, VP-supply : power supplies for the device,
10 as covered in
11 Documentation/devicetree/bindings/regulator/regulator.txt.
12
13 Optional properties:
14
15 - reset-gpios : gpio used to reset the amplifier
16
17 - interrupts : IRQ line info CS35L33.
18 (See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
19 for further information relating to interrupt properties)
20
21 - cirrus,boost-ctl : Booster voltage use to supply the amp. If the value is
22 0, then VBST = VP. If greater than 0, the boost voltage will be 3300mV with
23 a value of 1 and will increase at a step size of 100mV until a maximum of
24 8000mV.
25
26 - cirrus,ramp-rate : On power up, it affects the time from when the power
27 up sequence begins to the time the audio reaches a full-scale output.
28 On power down, it affects the time from when the power-down sequence
29 begins to when the amplifier disables the PWM outputs. If this property
30 is not set then soft ramping will be disabled and ramp time would be
31 20ms. If this property is set to 0,1,2,3 then ramp times would be 40ms,
32 60ms,100ms,175ms respectively for 48KHz sample rate.
33
34 - cirrus,boost-ipk : The maximum current allowed for the boost converter.
35 The range starts at 1850000uA and goes to a maximum of 3600000uA
36 with a step size of 15625uA. The default is 2500000uA.
37
38 - cirrus,imon-adc-scale : Configures the scaling of data bits from the IMON
39 ADC data word. This property can be set as a value of 0 for bits 15 down
40 to 0, 6 for 21 down to 6, 7, for 22 down to 7, 8 for 23 down to 8.
41
42
43 Optional H/G Algorithm sub-node:
44
45 The cs35l33 node can have a single "cirrus,hg-algo" sub-node that will enable
46 the internal H/G Algorithm.
47
48 - cirrus,hg-algo : Sub-node for internal Class H/G algorithm that
49 controls the amplifier supplies.
50
51 Optional properties for the "cirrus,hg-algo" sub-node:
52
53 - cirrus,mem-depth : Memory depth for the Class H/G algorithm measured in
54 LRCLK cycles. If this property is set to 0, 1, 2, or 3 then the memory
55 depths will be 1, 4, 8, 16 LRCLK cycles. The default is 16 LRCLK cycles.
56
57 cirrus,release-rate : The number of consecutive LRCLK periods before
58 allowing release condition tracking updates. The number of LRCLK periods
59 start at 3 to a maximum of 255.
60
61 - cirrus,ldo-thld : Configures the signal threshold at which the PWM output
62 stage enters LDO operation. Starts as a default value of 50mV for a value
63 of 1 and increases with a step size of 50mV to a maximum of 750mV (value of
64 0xF).
65
66 - cirrus,ldo-path-disable : This is a boolean property. If present, the H/G
67 algorithm uses the max detection path. If not present, the LDO
68 detection path is used.
69
70 - cirrus,ldo-entry-delay : The LDO entry delay in milliseconds before the H/G
71 algorithm switches to the LDO voltage. This property can be set to values
72 from 0 to 7 for delays of 5ms, 10ms, 50ms, 100ms, 200ms, 500ms, 1000ms.
73 The default is 100ms.
74
75 - cirrus,vp-hg-auto : This is a boolean property. When set, class H/G VPhg
76 automatic updating is enabled.
77
78 - cirrus,vp-hg : Class H/G algorithm VPhg. Controls the H/G algorithm's
79 reference to the VP voltage for when to start generating a boosted VBST.
80 The reference voltage starts at 3000mV with a value of 0x3 and is increased
81 by 100mV per step to a maximum of 5500mV.
82
83 - cirrus,vp-hg-rate : The rate (number of LRCLK periods) at which the VPhg is
84 allowed to increase to a higher voltage when using VPhg automatic
85 tracking. This property can be set to values from 0 to 3 with rates of 128
86 periods, 2048 periods, 32768 periods, and 524288 periods.
87 The default is 32768 periods.
88
89 - cirrus,vp-hg-va : VA calculation reference for automatic VPhg tracking
90 using VPMON. This property can be set to values from 0 to 6 starting at
91 1800mV with a step size of 50mV up to a maximum value of 1750mV.
92 Default is 1800mV.
93
94 Example:
95
96 cs35l33: cs35l33@40 {
97 compatible = "cirrus,cs35l33";
98 reg = <0x40>;
99
100 VA-supply = <&ldo5_reg>;
101 VP-supply = <&ldo5_reg>;
102
103 interrupt-parent = <&gpio8>;
104 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
105
106 reset-gpios = <&cs47l91 34 0>;
107
108 cirrus,ramp-rate = <0x0>;
109 cirrus,boost-ctl = <0x30>; /* VBST = 8000mV */
110 cirrus,boost-ipk = <0xE0>; /* 3600mA */
111 cirrus,imon-adc-scale = <0> /* Bits 15 down to 0 */
112
113 cirrus,hg-algo {
114 cirrus,mem-depth = <0x3>;
115 cirrus,release-rate = <0x3>;
116 cirrus,ldo-thld = <0x1>;
117 cirrus,ldo-path-disable = <0x0>;
118 cirrus,ldo-entry-delay=<0x4>;
119 cirrus,vp-hg-auto;
120 cirrus,vp-hg=<0xF>;
121 cirrus,vp-hg-rate=<0x2>;
122 cirrus,vp-hg-va=<0x0>;
123 };
124 };
125

3. 한국어 전문 번역

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

CS35L33 필수 속성

1-12

CS35L33 스피커 증폭기의 `compatible` 값은 `cirrus,cs35l33`입니다. `reg`에는 I2C 장치 주소를 지정합니다.

`VA-supply`와 `VP-supply`는 장치 전원 공급 장치를 가리키며, `Documentation/devicetree/bindings/regulator/regulator.txt`의 규칙을 따릅니다.

Reset, IRQ와 boost 전압

13-25

선택 속성 `reset-gpios`는 증폭기를 reset하는 GPIO이고, `interrupts`는 CS35L33의 IRQ 선 정보입니다. Interrupt 속성에 관한 자세한 내용은 `Documentation/devicetree/bindings/interrupt-controller/interrupts.txt`를 참조합니다.

`cirrus,boost-ctl`은 증폭기에 공급할 booster 전압을 정합니다. 값이 0이면 `VBST = VP`이고, 0보다 크면 값 1에서 3300mV로 시작하여 단계마다 100mV씩 증가하며 최대 8000mV까지 설정됩니다.

Ramp 시간, boost 전류와 IMON 배치

26-40

`cirrus,ramp-rate`는 전원을 켤 때 power-up sequence 시작부터 audio가 full-scale output에 도달할 때까지의 시간과, 전원을 끌 때 power-down sequence 시작부터 증폭기가 PWM output을 비활성화할 때까지의 시간에 영향을 줍니다. 속성이 없으면 soft ramping이 비활성화되고 ramp time은 20ms입니다. 48KHz sample rate에서 값 0, 1, 2, 3은 각각 40ms, 60ms, 100ms, 175ms에 대응합니다.

`cirrus,boost-ipk`는 boost converter의 최대 허용 전류입니다. 범위는 1850000uA부터 3600000uA까지이고 단계 크기는 15625uA이며 기본값은 2500000uA입니다.

`cirrus,imon-adc-scale`은 IMON ADC data word에서 data bit의 배치를 정합니다. 값 0은 bit 15:0, 6은 21:6, 7은 22:7, 8은 23:8을 선택합니다.

Class H/G 알고리즘 하위 노드

41-50

CS35L33 노드에는 내부 H/G Algorithm을 활성화하는 `cirrus,hg-algo` 하위 노드를 하나 둘 수 있습니다. 이 하위 노드는 증폭기 전원 공급을 제어하는 내부 Class H/G algorithm을 나타냅니다.

H/G memory와 LDO 전환

51-73

`cirrus,mem-depth`는 LRCLK cycle 단위의 Class H/G algorithm memory depth입니다. 값 0, 1, 2, 3은 각각 1, 4, 8, 16 LRCLK cycle이고 기본값은 16 cycle입니다.

`cirrus,release-rate`는 release condition tracking update를 허용하기 전에 연속으로 지나야 하는 LRCLK period 수이며, 3부터 최대 255까지 설정합니다.

`cirrus,ldo-thld`는 PWM output stage가 LDO operation에 들어가는 signal threshold를 설정합니다. 값 1은 기본 50mV이고 단계마다 50mV씩 증가하여 값 `0xF`에서 최대 750mV가 됩니다.

Boolean 속성 `cirrus,ldo-path-disable`이 있으면 H/G algorithm은 max detection path를 사용하고, 없으면 LDO detection path를 사용합니다.

`cirrus,ldo-entry-delay`는 H/G algorithm이 LDO voltage로 전환하기 전의 millisecond 단위 지연입니다. 값 0~7은 5ms, 10ms, 50ms, 100ms, 200ms, 500ms, 1000ms 지연을 선택하며 기본값은 100ms입니다.

VPhg 자동 추적

74-92

Boolean 속성 `cirrus,vp-hg-auto`를 설정하면 Class H/G VPhg 자동 갱신이 활성화됩니다.

`cirrus,vp-hg`는 boosted VBST 생성을 시작할 VP voltage 기준을 제어합니다. 기준 전압은 값 `0x3`의 3000mV에서 시작해 단계마다 100mV씩 증가하며 최대 5500mV입니다.

`cirrus,vp-hg-rate`는 VPhg 자동 추적 중 더 높은 전압으로 올릴 수 있는 주기를 LRCLK period 수로 정합니다. 값 0~3은 각각 128, 2048, 32768, 524288 period이고 기본값은 32768 period입니다.

`cirrus,vp-hg-va`는 VPMON을 사용하는 자동 VPhg 추적의 VA 계산 기준입니다. 원문은 값 0~6이 1800mV에서 50mV 단계로 시작해 최대 1750mV라고 설명하며 기본값을 1800mV로 지정합니다.

원문의 시작값 1800mV, 증가 단계 50mV, 최대값 1750mV는 서로 모순됩니다. 수치를 임의로 수정하지 않고 원문 그대로 보존했습니다.

CS35L33 예제

93-124

예제는 I2C 주소 `0x40`, VA·VP regulator, level-low interrupt와 reset GPIO를 지정합니다. Ramp, 8000mV VBST, 3600mA peak current와 IMON bit 배치를 설정하고 `cirrus,hg-algo` 하위 노드에서 memory depth, release rate, LDO와 VPhg 추적 값을 구성합니다.

cs35l33: cs35l33@40 {
        compatible = "cirrus,cs35l33";
        reg = <0x40>;

        VA-supply = <&ldo5_reg>;
        VP-supply = <&ldo5_reg>;

        interrupt-parent = <&gpio8>;
        interrupts = <3 IRQ_TYPE_LEVEL_LOW>;

        reset-gpios = <&cs47l91 34 0>;

        cirrus,ramp-rate = <0x0>;
        cirrus,boost-ctl = <0x30>;  /* VBST = 8000mV */
        cirrus,boost-ipk = <0xE0>; /* 3600mA */
        cirrus,imon-adc-scale = <0> /* Bits 15 down to 0 */

        cirrus,hg-algo {
                cirrus,mem-depth = <0x3>;
                cirrus,release-rate = <0x3>;
                cirrus,ldo-thld = <0x1>;
                cirrus,ldo-path-disable = <0x0>;
                cirrus,ldo-entry-delay=<0x4>;
                cirrus,vp-hg-auto;
                cirrus,vp-hg=<0xF>;
                cirrus,vp-hg-rate=<0x2>;
                cirrus,vp-hg-va=<0x0>;
        };
};