요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
* Linear Technology / Analog Devices I2C bus switch
Required Properties:
- compatible: Must contain one of the following.
"lltc,ltc4305", "lltc,ltc4306"
- reg: The I2C address of the device.
The following required properties are defined externally:
- Standard I2C mux properties. See i2c-mux.yaml in this directory.
- I2C child bus nodes. See i2c-mux.yaml in this directory.
Optional Properties:
- enable-gpios: Reference to the GPIO connected to the enable input.
- i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all
children in idle state. This is necessary for example, if there are several
multiplexers on the bus and the devices behind them use same I2C addresses.
- gpio-controller: Marks the device node as a GPIO Controller.
- #gpio-cells: Should be two. The first cell is the pin number and
the second cell is used to specify flags.
See ../gpio/gpio.txt for more information.
- ltc,downstream-accelerators-enable: Enables the rise time accelerators
on the downstream port.
- ltc,upstream-accelerators-enable: Enables the rise time accelerators
on the upstream port.
Example:
ltc4306: i2c-mux@4a {
compatible = "lltc,ltc4306";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x4a>;
gpio-controller;
#gpio-cells = <2>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;
};
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
LTC4305/LTC4306 bus switch 속성
1-28Linear Technology/Analog Devices I2C bus switch의 필수 `compatible`은 `lltc,ltc4305` 또는 `lltc,ltc4306`이며, `reg`는 device의 I2C address입니다. 표준 I2C mux property와 I2C child bus node는 이 directory의 `i2c-mux.yaml`에서 외부 정의합니다.
선택 `enable-gpios`는 enable input에 연결한 GPIO를 참조합니다. Boolean `i2c-mux-idle-disconnect`는 idle 상태에서 모든 child를 분리합니다. 같은 bus에 multiplexer가 여러 개 있고 그 뒤의 device들이 같은 I2C address를 사용할 때 필요합니다. `gpio-controller`는 node를 GPIO controller로 표시하고, `#gpio-cells`는 2여야 합니다. 첫 cell은 pin number, 둘째 cell은 flag이며 자세한 내용은 `../gpio/gpio.txt`에 있습니다.
`ltc,downstream-accelerators-enable`은 downstream port의 rise-time accelerator를, `ltc,upstream-accelerators-enable`은 upstream port의 rise-time accelerator를 활성화합니다.
한 upstream I2C address에서 두 downstream child bus와 GPIO 기능을 제공하는 구조입니다.
두 downstream EEPROM 예제
29-61예제의 `ltc4306`은 address `0x4a`에서 GPIO controller로 동작합니다. Channel 0과 1은 각각 `reg = <0>`과 `<1>`을 사용하며, 두 child bus 모두 동일한 address `0x50`의 Atmel 24C02 EEPROM을 둡니다.
ltc4306: i2c-mux@4a {
compatible = "lltc,ltc4306";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x4a>;
gpio-controller;
#gpio-cells = <2>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;
};
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;
};
};
};
요약과 해설
i2c-mux-ltc4306.txt:1-61동일 address의 downstream device를 분리하는 I2C switch를 설명합니다.