요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
CS35L35 Boosted Speaker Amplifier
Required properties:
- compatible : "cirrus,cs35l35"
- reg : the I2C address of the device for I2C
- VA-supply, VP-supply : power supplies for the device,
as covered in
Documentation/devicetree/bindings/regulator/regulator.txt.
- interrupts : IRQ line info CS35L35.
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
for further information relating to interrupt properties)
- cirrus,boost-ind-nanohenry: Inductor value for boost converter. The value is
in nH and they can be values of 1000nH, 1200nH, 1500nH, and 2200nH.
Optional properties:
- reset-gpios : gpio used to reset the amplifier
- cirrus,stereo-config : Boolean to determine if there are 2 AMPs for a
Stereo configuration
- cirrus,audio-channel : Set Location of Audio Signal on Serial Port
0 = Data Packet received on Left I2S Channel
1 = Data Packet received on Right I2S Channel
- cirrus,advisory-channel : Set Location of Advisory Signal on Serial Port
0 = Data Packet received on Left I2S Channel
1 = Data Packet received on Right I2S Channel
- cirrus,shared-boost : Boolean to enable ClassH tracking of Advisory Signal
if 2 Devices share Boost BST_CTL
- cirrus,external-boost : Boolean to specify the device is using an external
boost supply, note that sharing a boost from another cs35l35 would constitute
using an external supply for the slave device
- cirrus,sp-drv-strength : Value for setting the Serial Port drive strength
Table 3-10 of the datasheet lists drive-strength specifications
0 = 1x (Default)
1 = .5x
- cirrus,sp-drv-unused : Determines how unused slots should be driven on the
Serial Port.
0 - Hi-Z
2 - Drive 0's (Default)
3 - Drive 1's
- cirrus,bst-pdn-fet-on : Boolean to determine if the Boost PDN control
powers down with a rectification FET On or Off. If VSPK is supplied
externally then FET is off.
- cirrus,boost-ctl-millivolt : Boost Voltage Value. Configures the boost
converter's output voltage in mV. The range is from 2600mV to 9000mV with
increments of 100mV.
(Default) VP
- cirrus,boost-peak-milliamp : Boost-converter peak current limit in mA.
Configures the peak current by monitoring the current through the boost FET.
Range starts at 1680mA and goes to a maximum of 4480mA with increments of
110mA.
(Default) 2.46 Amps
- cirrus,amp-gain-zc : Boolean to determine if to use Amplifier gain-change
zero-cross
Optional H/G Algorithm sub-node:
The cs35l35 node can have a single "cirrus,classh-internal-algo" sub-node
that will disable automatic control of the internal H/G Algorithm.
It is strongly recommended that the Datasheet be referenced when adjusting
or using these Class H Algorithm controls over the internal Algorithm.
Serious damage can occur to the Device and surrounding components.
- cirrus,classh-internal-algo : Sub-node for the Internal Class H Algorithm
See Section 4.3 Internal Class H Algorithm in the Datasheet.
If not used, the device manages the ClassH Algorithm internally.
Optional properties for the "cirrus,classh-internal-algo" Sub-node
Section 7.29 Class H Control
- cirrus,classh-bst-overide : Boolean
- cirrus,classh-bst-max-limit
- cirrus,classh-mem-depth
Section 7.30 Class H Headroom Control
- cirrus,classh-headroom
Section 7.31 Class H Release Rate
- cirrus,classh-release-rate
Section 7.32 Class H Weak FET Drive Control
- cirrus,classh-wk-fet-disable
- cirrus,classh-wk-fet-delay
- cirrus,classh-wk-fet-thld
Section 7.34 Class H VP Control
- cirrus,classh-vpch-auto
- cirrus,classh-vpch-rate
- cirrus,classh-vpch-man
Optional Monitor Signal Format sub-node:
The cs35l35 node can have a single "cirrus,monitor-signal-format" sub-node
for adjusting the Depth, Location and Frame of the Monitoring Signals
for Algorithms.
See Sections 4.8.2 through 4.8.4 Serial-Port Control in the Datasheet
-cirrus,monitor-signal-format : Sub-node for the Monitor Signaling Formatting
on the I2S Port. Each of the 3 8 bit values in the array contain the settings
for depth, location, and frame.
If not used, the defaults for the 6 monitor signals is used.
Sections 7.44 - 7.53 lists values for the depth, location, and frame
for each monitoring signal.
- cirrus,imon : 4 8 bit values to set the depth, location, frame and ADC
scale of the IMON monitor signal.
- cirrus,vmon : 3 8 bit values to set the depth, location, and frame
of the VMON monitor signal.
- cirrus,vpmon : 3 8 bit values to set the depth, location, and frame
of the VPMON monitor signal.
- cirrus,vbstmon : 3 8 bit values to set the depth, location, and frame
of the VBSTMON monitor signal
- cirrus,vpbrstat : 3 8 bit values to set the depth, location, and frame
of the VPBRSTAT monitor signal
- cirrus,zerofill : 3 8 bit values to set the depth, location, and frame\
of the ZEROFILL packet in the monitor signal
Example:
cs35l35: cs35l35@20 {
compatible = "cirrus,cs35l35";
reg = <0x20>;
VA-supply = <&dummy_vreg>;
VP-supply = <&dummy_vreg>;
reset-gpios = <&axi_gpio 54 0>;
interrupt-parent = <&gpio8>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
cirrus,boost-ctl-millivolt = <9000>;
cirrus,stereo-config;
cirrus,audio-channel = <0x00>;
cirrus,advisory-channel = <0x01>;
cirrus,shared-boost;
cirrus,classh-internal-algo {
cirrus,classh-bst-overide;
cirrus,classh-bst-max-limit = <0x01>;
cirrus,classh-mem-depth = <0x01>;
cirrus,classh-release-rate = <0x08>;
cirrus,classh-headroom-millivolt = <0x0B>;
cirrus,classh-wk-fet-disable = <0x01>;
cirrus,classh-wk-fet-delay = <0x04>;
cirrus,classh-wk-fet-thld = <0x01>;
cirrus,classh-vpch-auto = <0x01>;
cirrus,classh-vpch-rate = <0x02>;
cirrus,classh-vpch-man = <0x05>;
};
/* Depth, Location, Frame */
cirrus,monitor-signal-format {
cirrus,imon = /bits/ 8 <0x03 0x00 0x01>;
cirrus,vmon = /bits/ 8 <0x03 0x00 0x00>;
cirrus,vpmon = /bits/ 8 <0x03 0x04 0x00>;
cirrus,vbstmon = /bits/ 8 <0x03 0x04 0x01>;
cirrus,vpbrstat = /bits/ 8 <0x00 0x04 0x00>;
cirrus,zerofill = /bits/ 8 <0x00 0x00 0x00>;
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
CS35L35 필수 속성
1-19CS35L35 boosted speaker amplifier의 `compatible` 값은 `cirrus,cs35l35`이고, `reg`에는 I2C 장치 주소를 지정합니다.
`VA-supply`와 `VP-supply`는 `Documentation/devicetree/bindings/regulator/regulator.txt`에 정의된 장치 전원 공급 장치를 가리킵니다.
`interrupts`는 CS35L35 IRQ 선 정보이며 자세한 interrupt 속성 규칙은 `Documentation/devicetree/bindings/interrupt-controller/interrupts.txt`를 참조합니다.
`cirrus,boost-ind-nanohenry`는 boost converter inductor 값을 nH 단위로 정합니다. 허용값은 1000nH, 1200nH, 1500nH, 2200nH입니다.
Stereo channel과 boost 공유
20-40선택 속성 `reset-gpios`는 증폭기를 reset하는 GPIO입니다. Boolean `cirrus,stereo-config`는 증폭기 두 개를 사용하는 stereo 구성을 나타냅니다.
`cirrus,audio-channel`은 serial port에서 audio signal의 위치를 정하며 0은 left I2S channel, 1은 right I2S channel에서 받은 data packet을 뜻합니다. `cirrus,advisory-channel`도 같은 값 체계로 advisory signal의 위치를 정합니다.
Boolean `cirrus,shared-boost`는 장치 두 개가 boost `BST_CTL`을 공유할 때 advisory signal을 Class H로 추적하도록 합니다.
Boolean `cirrus,external-boost`는 장치가 외부 boost supply를 사용함을 나타냅니다. 다른 CS35L35의 boost를 공유하는 slave 장치도 외부 supply를 사용하는 것으로 간주합니다.
Serial port와 boost 전기 설정
41-68`cirrus,sp-drv-strength`는 serial port drive strength를 정합니다. Datasheet 표 3-10에 규격이 있으며 값 0은 기본 1x, 값 1은 0.5x입니다.
`cirrus,sp-drv-unused`는 serial port의 사용하지 않는 slot을 구동하는 방법입니다. 값 0은 Hi-Z, 기본값 2는 0을 출력하고 값 3은 1을 출력합니다.
Boolean `cirrus,bst-pdn-fet-on`은 boost PDN control이 전원을 끌 때 rectification FET를 켠 상태로 둘지 정합니다. VSPK가 외부에서 공급되면 FET는 꺼집니다.
`cirrus,boost-ctl-millivolt`는 boost converter output voltage를 2600mV부터 9000mV까지 100mV 단위로 설정하며 기본값은 VP입니다.
`cirrus,boost-peak-milliamp`는 boost FET를 흐르는 전류를 감시해 peak current limit를 설정합니다. 1680mA부터 최대 4480mA까지 110mA 단위로 증가하며 기본값은 2.46A입니다.
Boolean `cirrus,amp-gain-zc`는 amplifier gain 변경에 zero-cross를 사용할지 정합니다.
내부 Class H 알고리즘 제어
69-81CS35L35 노드에는 자동 내부 H/G algorithm 제어를 비활성화하는 `cirrus,classh-internal-algo` 하위 노드를 하나 둘 수 있습니다. 이 노드를 사용하지 않으면 장치가 Class H algorithm을 내부적으로 관리합니다.
속성을 직접 조정할 때는 Datasheet의 4.3절 Internal Class H Algorithm을 참조해야 합니다.
원문은 내부 algorithm보다 이 Class H 제어를 우선 사용하거나 조정할 때 장치와 주변 부품에 심각한 손상이 발생할 수 있다고 강하게 경고합니다.
Class H 세부 속성
82-104Datasheet 7.29절 Class H Control에는 Boolean `cirrus,classh-bst-overide`, `cirrus,classh-bst-max-limit`, `cirrus,classh-mem-depth`가 대응합니다.
7.30절 Class H Headroom Control에는 `cirrus,classh-headroom`, 7.31절 Class H Release Rate에는 `cirrus,classh-release-rate`가 대응합니다.
7.32절 Class H Weak FET Drive Control에는 `cirrus,classh-wk-fet-disable`, `cirrus,classh-wk-fet-delay`, `cirrus,classh-wk-fet-thld`가 대응합니다.
7.34절 Class H VP Control에는 `cirrus,classh-vpch-auto`, `cirrus,classh-vpch-rate`, `cirrus,classh-vpch-man`이 대응합니다.
속성 이름의 `overide` 철자는 원문과 binding에 적힌 형태를 그대로 유지했습니다.
Monitor signal format 하위 노드
105-121CS35L35 노드에는 algorithm이 사용할 monitoring signal의 depth, location, frame을 조정하는 `cirrus,monitor-signal-format` 하위 노드를 하나 둘 수 있습니다. 자세한 serial-port control은 Datasheet 4.8.2~4.8.4절을 참조합니다.
`cirrus,monitor-signal-format`의 각 monitor 설정은 세 개의 8-bit 값으로 depth, location, frame을 나타냅니다. 이 노드를 사용하지 않으면 여섯 monitor signal의 기본값을 사용합니다.
각 monitoring signal의 depth, location, frame 값은 Datasheet 7.44~7.53절에 나열되어 있습니다.
여섯 monitor signal
122-139`cirrus,imon`은 IMON monitor signal의 depth, location, frame과 ADC scale을 정하는 네 개의 8-bit 값입니다.
`cirrus,vmon`, `cirrus,vpmon`, `cirrus,vbstmon`, `cirrus,vpbrstat`은 각각 VMON, VPMON, VBSTMON, VPBRSTAT monitor signal의 depth, location, frame을 정하는 세 개의 8-bit 값입니다.
`cirrus,zerofill`은 monitor signal 안의 ZEROFILL packet에 사용할 depth, location, frame을 정하는 세 개의 8-bit 값입니다.
CS35L35와 Class H 예제
140-169예제는 I2C 주소 `0x20`, VA·VP supply, reset GPIO, level-low interrupt와 9000mV boost를 지정합니다. Stereo mode에서 audio는 left, advisory는 right channel을 사용하고 boost를 공유합니다.
`cirrus,classh-internal-algo` 하위 노드는 boost override와 limit, memory depth, release rate, headroom, weak-FET 조건과 Vpch 자동 추적 값을 구성합니다.
cs35l35: cs35l35@20 {
compatible = "cirrus,cs35l35";
reg = <0x20>;
VA-supply = <&dummy_vreg>;
VP-supply = <&dummy_vreg>;
reset-gpios = <&axi_gpio 54 0>;
interrupt-parent = <&gpio8>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
cirrus,boost-ctl-millivolt = <9000>;
cirrus,stereo-config;
cirrus,audio-channel = <0x00>;
cirrus,advisory-channel = <0x01>;
cirrus,shared-boost;
cirrus,classh-internal-algo {
cirrus,classh-bst-overide;
cirrus,classh-bst-max-limit = <0x01>;
cirrus,classh-mem-depth = <0x01>;
cirrus,classh-release-rate = <0x08>;
cirrus,classh-headroom-millivolt = <0x0B>;
cirrus,classh-wk-fet-disable = <0x01>;
cirrus,classh-wk-fet-delay = <0x04>;
cirrus,classh-wk-fet-thld = <0x01>;
cirrus,classh-vpch-auto = <0x01>;
cirrus,classh-vpch-rate = <0x02>;
cirrus,classh-vpch-man = <0x05>;
};
Monitor format 예제
170-181`cirrus,monitor-signal-format` 예제는 `/bits/ 8` 배열로 IMON, VMON, VPMON, VBSTMON, VPBRSTAT, ZEROFILL packet의 depth, location, frame을 배치합니다.
/* Depth, Location, Frame */
cirrus,monitor-signal-format {
cirrus,imon = /bits/ 8 <0x03 0x00 0x01>;
cirrus,vmon = /bits/ 8 <0x03 0x00 0x00>;
cirrus,vpmon = /bits/ 8 <0x03 0x04 0x00>;
cirrus,vbstmon = /bits/ 8 <0x03 0x04 0x01>;
cirrus,vpbrstat = /bits/ 8 <0x00 0x04 0x00>;
cirrus,zerofill = /bits/ 8 <0x00 0x00 0x00>;
};
};
요약과 해설
cs35l35.txt:1-181증폭기의 전원과 boost 설정부터 stereo signal 배치, 위험도가 높은 Class H override, monitor packet 형식까지 단계별로 해설합니다. 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 함께 제공합니다.