Documentation/devicetree/bindings/i2c/i2c-altera.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Altera FPGA I2C Controller

Altera soft I2C IP의 clock, FIFO와 child bus 바인딩입니다.

Source pathDocumentation/devicetree/bindings/i2c/i2c-altera.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.

1. 요약·해설

원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.

요약과 해설

i2c-altera.txt:1-39

Synthesizable controller와 EEPROM 예제를 설명합니다.

2. 영어 원문 전체

번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.

원문 전체 펼치기
1 * Altera I2C Controller
2 * This is Altera's synthesizable logic block I2C Controller for use
3 * in Altera's FPGAs.
4
5 Required properties :
6 - compatible : should be "altr,softip-i2c-v1.0"
7 - reg : Offset and length of the register set for the device
8 - interrupts : <IRQ> where IRQ is the interrupt number.
9 - clocks : phandle to input clock.
10 - #address-cells = <1>;
11 - #size-cells = <0>;
12
13 Recommended properties :
14 - clock-frequency : desired I2C bus clock frequency in Hz.
15
16 Optional properties :
17 - fifo-size : Size of the RX and TX FIFOs in bytes.
18 - Child nodes conforming to i2c bus binding
19
20 Example :
21
22 i2c@100080000 {
23 compatible = "altr,softip-i2c-v1.0";
24 reg = <0x00000001 0x00080000 0x00000040>;
25 interrupt-parent = <&intc>;
26 interrupts = <0 43 4>;
27 clocks = <&clk_0>;
28 clock-frequency = <100000>;
29 #address-cells = <1>;
30 #size-cells = <0>;
31 fifo-size = <4>;
32
33 eeprom@51 {
34 compatible = "atmel,24c32";
35 reg = <0x51>;
36 pagesize = <32>;
37 };
38 };
39
40

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.

Altera FPGA I2C controller 속성

1-19

Altera I2C Controller는 Altera FPGA에서 사용하는 synthesizable logic block입니다. 필수 `compatible`은 `altr,softip-i2c-v1.0`, `reg`는 register set의 offset과 length, `interrupts`는 IRQ number, `clocks`는 input clock phandle입니다. `#address-cells`는 1, `#size-cells`는 0입니다.

권장 `clock-frequency`는 원하는 I2C bus clock frequency를 Hz 단위로 지정합니다. 선택 `fifo-size`는 RX/TX FIFO 크기를 byte 단위로 지정하고, child node는 I2C bus binding을 따릅니다.

Altera soft I2C datapath
Input clockController timing
Altera soft I2CRX/TX FIFO
IRQTransfer event
I2C childBus address 1 cell

Input clock과 FIFO를 사용하는 FPGA soft IP controller 및 I2C child 구조입니다.

Altera I2C와 EEPROM 예제

20-39

예제 controller는 100 kHz bus와 4-byte FIFO를 사용하며 address `0x51`의 Atmel 24C32 EEPROM child에 page size 32를 지정합니다.

i2c@100080000 {
        compatible = "altr,softip-i2c-v1.0";
        reg = <0x00000001 0x00080000 0x00000040>;
        interrupt-parent = <&intc>;
        interrupts = <0 43 4>;
        clocks = <&clk_0>;
        clock-frequency = <100000>;
        #address-cells = <1>;
        #size-cells = <0>;
        fifo-size = <4>;

        eeprom@51 {
                compatible = "atmel,24c32";
                reg = <0x51>;
                pagesize = <32>;
        };
};