요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Texas Instruments TWL6040 family
The TWL6040s are 8-channel high quality low-power audio codecs providing audio,
vibra and GPO functionality on OMAP4+ platforms.
They are connected to the host processor via i2c for commands, McPDM for audio
data and commands.
Required properties:
- compatible : "ti,twl6040" for twl6040, "ti,twl6041" for twl6041
- reg: must be 0x4b for i2c address
- interrupts: twl6040 has one interrupt line connecteded to the main SoC
- gpio-controller:
- #gpio-cells = <1>: twl6040 provides GPO lines.
- #clock-cells = <0>; twl6040 is a provider of pdmclk which is used by McPDM
- twl6040,audpwron-gpio: Power on GPIO line for the twl6040
- vio-supply: Regulator for the twl6040 VIO supply
- v2v1-supply: Regulator for the twl6040 V2V1 supply
Optional properties, nodes:
- enable-active-high: To power on the twl6040 during boot.
- clocks: phandle to the clk32k and/or to mclk clock provider
- clock-names: Must be "clk32k" for the 32K clock and "mclk" for the MCLK.
Vibra functionality
Required properties:
- vddvibl-supply: Regulator for the left vibra motor
- vddvibr-supply: Regulator for the right vibra motor
- vibra { }: Configuration section for vibra parameters containing the following
properties:
- ti,vibldrv-res: Resistance parameter for left driver
- ti,vibrdrv-res: Resistance parameter for right driver
- ti,viblmotor-res: Resistance parameter for left motor
- ti,viblmotor-res: Resistance parameter for right motor
Optional properties within vibra { } section:
- vddvibl_uV: If the vddvibl default voltage need to be changed
- vddvibr_uV: If the vddvibr default voltage need to be changed
Example:
&i2c1 {
twl6040: twl@4b {
compatible = "ti,twl6040";
interrupts = <0 119 4>;
interrupt-parent = <&gic>;
twl6040,audpwron-gpio = <&gpio4 31 0>;
vio-supply = <&v1v8>;
v2v1-supply = <&v2v1>;
enable-active-high;
/* regulators for vibra motor */
vddvibl-supply = <&vbat>;
vddvibr-supply = <&vbat>;
vibra {
/* Vibra driver, motor resistance parameters */
ti,vibldrv-res = <8>;
ti,vibrdrv-res = <3>;
ti,viblmotor-res = <10>;
ti,vibrmotor-res = <10>;
};
};
};
/include/ "twl6040.dtsi"
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
TI TWL6040 계열
1-7TWL6040 계열은 OMAP4 이상 플랫폼에서 audio, vibra, GPO 기능을 제공하는 8-channel 고품질 저전력 audio codec입니다. 명령은 I2C로, audio data와 command는 McPDM으로 host processor에 연결됩니다.
제어·오디오·부가 기능의 연결 경로를 분리해 나타냈습니다.
I2C·IRQ·GPIO·clock·supply
8-19`compatible`은 TWL6040에 `ti,twl6040`, TWL6041에 `ti,twl6041`입니다. `reg`는 I2C 주소 `0x4b`, `interrupts`는 main SoC에 연결된 TWL6040의 단일 interrupt line입니다.
`gpio-controller`와 `#gpio-cells = <1>`은 TWL6040이 GPO line을 제공함을 나타냅니다. `#clock-cells = <0>`은 McPDM이 사용하는 `pdmclk` provider임을 뜻합니다. `twl6040,audpwron-gpio`는 power-on GPIO line입니다.
`vio-supply`는 TWL6040 VIO supply regulator, `v2v1-supply`는 V2V1 supply regulator입니다.
선택 clock과 vibra 구성
20-39선택 `enable-active-high`는 boot 중 TWL6040을 power-on합니다. `clocks`는 `clk32k` 또는 `mclk` clock provider의 phandle이며 `clock-names`는 32K clock에 `clk32k`, MCLK에 `mclk`를 사용해야 합니다.
Vibra 기능에는 left motor용 `vddvibl-supply`, right motor용 `vddvibr-supply`가 필요합니다. `vibra` 구성은 left·right driver와 motor의 resistance parameter를 담습니다.
원문 속성 이름과 역할입니다. 오른쪽 motor 항목의 설명에는 `ti,viblmotor-res`가 반복되지만 예제는 `ti,vibrmotor-res`를 사용합니다.
OMAP4 TWL6040·vibra 예제
40-67예제는 GIC interrupt 119, GPIO4 pin 31의 audio power-on, 1.8V VIO와 V2V1 supply, active-high enable을 설정합니다. 양쪽 vibra motor는 battery supply를 사용하고 driver resistance 8·3, motor resistance 10·10을 지정합니다.
예제는 필수라고 설명된 `reg = <0x4b>`를 직접 적지 않고 마지막에 `twl6040.dtsi`를 include합니다. 또한 오른쪽 motor 속성은 설명의 반복 표기와 달리 `ti,vibrmotor-res`입니다.
&i2c1 {
twl6040: twl@4b {
compatible = "ti,twl6040";
interrupts = <0 119 4>;
interrupt-parent = <&gic>;
twl6040,audpwron-gpio = <&gpio4 31 0>;
vio-supply = <&v1v8>;
v2v1-supply = <&v2v1>;
enable-active-high;
/* regulators for vibra motor */
vddvibl-supply = <&vbat>;
vddvibr-supply = <&vbat>;
vibra {
/* Vibra driver, motor resistance parameters */
ti,vibldrv-res = <8>;
ti,vibrdrv-res = <3>;
ti,viblmotor-res = <10>;
ti,vibrmotor-res = <10>;
};
};
};
/include/ "twl6040.dtsi"
요약과 해설
twl6040.txt:1-678-channel audio와 vibra motor supply·resistance, OMAP4 예제의 원문 표기 차이를 설명합니다.