요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
IMG Serial Control Bus (SCB) I2C Controller
Required Properties:
- compatible: "img,scb-i2c"
- reg: Physical base address and length of controller registers
- interrupts: Interrupt number used by the controller
- clocks : Should contain a clock specifier for each entry in clock-names
- clock-names : Should contain the following entries:
"scb", for the SCB core clock.
"sys", for the system clock.
- clock-frequency: The I2C bus frequency in Hz
- #address-cells: Should be <1>
- #size-cells: Should be <0>
Example:
i2c@18100000 {
compatible = "img,scb-i2c";
reg = <0x18100000 0x200>;
interrupts = <GIC_SHARED 2 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&i2c0_clk>, <&system_clk>;
clock-names = "scb", "sys";
clock-frequency = <400000>;
#address-cells = <1>;
#size-cells = <0>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
IMG SCB I2C 속성
1-14IMG Serial Control Bus(SCB) I2C controller의 필수 `compatible`은 `img,scb-i2c`, `reg`는 controller register의 physical base와 length, `interrupts`는 controller interrupt number입니다.
`clocks`에는 `clock-names`의 각 entry에 대응하는 clock specifier를 넣습니다. `clock-names`에는 SCB core clock용 `scb`, system clock용 `sys`가 있어야 합니다. `clock-frequency`는 Hz 단위 I2C bus frequency이고 `#address-cells`는 1, `#size-cells`는 0입니다.
SCB core와 system clock이 controller와 bus timing을 공급합니다.
IMG SCB 400 kHz 예제
15-26예제는 register `0x18100000`의 0x200-byte 영역, level-high shared interrupt 2, SCB/system clock과 400 kHz bus를 사용합니다.
i2c@18100000 {
compatible = "img,scb-i2c";
reg = <0x18100000 0x200>;
interrupts = <GIC_SHARED 2 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&i2c0_clk>, <&system_clk>;
clock-names = "scb", "sys";
clock-frequency = <400000>;
#address-cells = <1>;
#size-cells = <0>;
};
요약과 해설
i2c-img-scb.txt:1-26두 clock domain과 400 kHz 예제를 설명합니다.