요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
STA350 audio CODEC
The driver for this device only supports I2C.
Required properties:
- compatible: "st,sta350"
- reg: the I2C address of the device for I2C
- reset-gpios: a GPIO spec for the reset pin. If specified, it will be
deasserted before communication to the codec starts.
- power-down-gpios: a GPIO spec for the power down pin. If specified,
it will be deasserted before communication to the codec
starts.
- vdd-dig-supply: regulator spec, providing 3.3V
- vdd-pll-supply: regulator spec, providing 3.3V
- vcc-supply: regulator spec, providing 5V - 26V
Optional properties:
- st,output-conf: number, Selects the output configuration:
0: 2-channel (full-bridge) power, 2-channel data-out
1: 2 (half-bridge). 1 (full-bridge) on-board power
2: 2 Channel (Full-Bridge) Power, 1 Channel FFX
3: 1 Channel Mono-Parallel
If parameter is missing, mode 0 will be enabled.
This property has to be specified as '/bits/ 8' value.
- st,ch1-output-mapping: Channel 1 output mapping
- st,ch2-output-mapping: Channel 2 output mapping
- st,ch3-output-mapping: Channel 3 output mapping
0: Channel 1
1: Channel 2
2: Channel 3
If parameter is missing, channel 1 is chosen.
This properties have to be specified as '/bits/ 8' values.
- st,thermal-warning-recover:
If present, thermal warning recovery is enabled.
- st,thermal-warning-adjustment:
If present, thermal warning adjustment is enabled.
- st,fault-detect-recovery:
If present, then fault recovery will be enabled.
- st,ffx-power-output-mode: string
The FFX power output mode selects how the FFX output timing is
configured. Must be one of these values:
- "drop-compensation"
- "tapered-compensation"
- "full-power-mode"
- "variable-drop-compensation" (default)
- st,drop-compensation-ns: number
Only required for "st,ffx-power-output-mode" ==
"variable-drop-compensation".
Specifies the drop compensation in nanoseconds.
The value must be in the range of 0..300, and only
multiples of 20 are allowed. Default is 140ns.
- st,overcurrent-warning-adjustment:
If present, overcurrent warning adjustment is enabled.
- st,max-power-use-mpcc:
If present, then MPCC bits are used for MPC coefficients,
otherwise standard MPC coefficients are used.
- st,max-power-corr:
If present, power bridge correction for THD reduction near maximum
power output is enabled.
- st,am-reduction-mode:
If present, FFX mode runs in AM reduction mode, otherwise normal
FFX mode is used.
- st,odd-pwm-speed-mode:
If present, PWM speed mode run on odd speed mode (341.3 kHz) on all
channels. If not present, normal PWM speed mode (384 kHz) will be used.
- st,distortion-compensation:
If present, distortion compensation variable uses DCC coefficient.
If not present, preset DC coefficient is used.
- st,invalid-input-detect-mute:
If present, automatic invalid input detect mute is enabled.
- st,activate-mute-output:
If present, a mute output will be activated in ase the volume will
reach a value lower than -76 dBFS.
- st,bridge-immediate-off:
If present, the bridge will be switched off immediately after the
power-down-gpio goes low. Otherwise, the bridge will wait for 13
million clock cycles to pass before shutting down.
- st,noise-shape-dc-cut:
If present, the noise-shaping technique on the DC cutoff filter are
enabled.
- st,powerdown-master-volume:
If present, the power-down pin and I2C power-down functions will
act on the master volume. Otherwise, the functions will act on the
mute commands.
- st,powerdown-delay-divider:
If present, the bridge power-down time will be divided by the provided
value. If not specified, a divider of 1 will be used. Allowed values
are 1, 2, 4, 8, 16, 32, 64 and 128.
This property has to be specified as '/bits/ 8' value.
Example:
codec: sta350@38 {
compatible = "st,sta350";
reg = <0x1c>;
reset-gpios = <&gpio1 19 0>;
power-down-gpios = <&gpio1 16 0>;
st,output-conf = /bits/ 8 <0x3>; // set output to 2-channel
// (full-bridge) power,
// 2-channel data-out
st,ch1-output-mapping = /bits/ 8 <0>; // set channel 1 output ch 1
st,ch2-output-mapping = /bits/ 8 <0>; // set channel 2 output ch 1
st,ch3-output-mapping = /bits/ 8 <0>; // set channel 3 output ch 1
st,max-power-correction; // enables power bridge
// correction for THD reduction
// near maximum power output
st,invalid-input-detect-mute; // mute if no valid digital
// audio signal is provided.
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
STA350 I2C·GPIO·전원 속성
1-19STA350 driver는 I2C만 지원합니다. `compatible`은 `st,sta350`, `reg`는 I2C address입니다. `reset-gpios`와 `power-down-gpios`를 지정하면 통신 전에 deassert합니다. `vdd-dig-supply`·`vdd-pll-supply`는 3.3 V, `vcc-supply`는 5~26 V regulator입니다.
Output mode와 channel mapping
20-378-bit `st,output-conf` 값 0은 2-channel full-bridge·2-channel data, 1은 half-bridge 2개와 onboard full-bridge 1개, 2는 full-bridge 2-channel power·1-channel FFX, 3은 mono-parallel입니다. 기본값은 0입니다.
8-bit `st,ch1-output-mapping`~`st,ch3-output-mapping` 값 0·1·2는 channel 1·2·3을 선택하고 기본값은 channel 1입니다.
Thermal·fault·FFX timing
38-61`st,thermal-warning-recover`, `st,thermal-warning-adjustment`, `st,fault-detect-recovery`는 해당 보호·복구 기능을 활성화합니다.
`st,ffx-power-output-mode`는 `drop-compensation`, `tapered-compensation`, `full-power-mode`, 기본 `variable-drop-compensation` 중 하나입니다. Variable mode에서는 `st,drop-compensation-ns`가 필요하며 0~300 ns 범위의 20 ns 배수이고 기본값은 140 ns입니다.
Power·PWM·distortion·mute 옵션
62-87`st,overcurrent-warning-adjustment`는 overcurrent warning 조정을, `st,max-power-use-mpcc`는 MPCC coefficient 사용을, `st,max-power-corr`는 maximum power 부근 THD 감소 correction을 켭니다.
`st,am-reduction-mode`는 FFX AM reduction, `st,odd-pwm-speed-mode`는 341.3 kHz odd PWM을 사용하며 기본 PWM은 384 kHz입니다. `st,distortion-compensation`은 DCC coefficient 기반 distortion compensation을, `st,invalid-input-detect-mute`는 invalid input 자동 mute를 켭니다.
Mute·bridge power-down 옵션
88-112`st,activate-mute-output`은 volume이 -76 dBFS 아래로 내려갈 때 mute output을 활성화합니다. `st,bridge-immediate-off`는 power-down GPIO low 직후 bridge를 끄며, 없으면 1,300만(13,000,000) clock cycle을 기다립니다.
`st,noise-shape-dc-cut`은 DC cutoff filter의 noise shaping을 켭니다. `st,powerdown-master-volume`은 power-down pin과 I2C power-down이 mute command 대신 master volume에 작용하게 합니다. 8-bit `st,powerdown-delay-divider`는 bridge power-down 시간을 1·2·4·8·16·32·64·128 중 하나로 나누며 기본값은 1입니다.
STA350 예제와 property 이름
113-131예제는 reset·power-down GPIO, output/channel mapping과 invalid-input mute를 설정합니다. 예제의 `st,max-power-correction`은 앞에서 정의한 `st,max-power-corr`와 다릅니다.
codec: sta350@38 {
compatible = "st,sta350";
reg = <0x1c>;
reset-gpios = <&gpio1 19 0>;
power-down-gpios = <&gpio1 16 0>;
st,output-conf = /bits/ 8 <0x3>; // set output to 2-channel
// (full-bridge) power,
// 2-channel data-out
st,ch1-output-mapping = /bits/ 8 <0>; // set channel 1 output ch 1
st,ch2-output-mapping = /bits/ 8 <0>; // set channel 2 output ch 1
st,ch3-output-mapping = /bits/ 8 <0>; // set channel 3 output ch 1
st,max-power-correction; // enables power bridge
// correction for THD reduction
// near maximum power output
st,invalid-input-detect-mute; // mute if no valid digital
// audio signal is provided.
};
요약과 해설
st,sta350.txt:1-131STA350 FFX timing, protection, distortion·mute와 bridge power-down을 설명합니다. 영어 원문 전체와 줄 좌표를 보존하며 한국어 전문 번역에서는 property·수치·clock·phandle·예제 코드를 원형대로 유지합니다.