728x90
테스트 환경
- Ubuntu 22.04
- J78S4XG01EVM
- J75S4XG01EVM Processor SDK Version 09_02_00_05
9.2 SDK 기준으로 muc_i2c0은 기본적으로 비활성화되어 있다. 이를 활성화하기 위해서는 dts 파일에 mcu_i2c0 항목을 추가 시켜주어야 한다.
회로도나 데이터시트를 보게 되면 SOC에 M35, G34핀이 mcu_i2c0 핀에 해당한다.
현재 EVM 기준으로 mcu_i2c0은 PMIC 칩에 물려 있다.
pmic 데이터 시트를 확인해 보면 i2c1에는 0x48로 주소가 잡히게 되고, i2c2에는 0x12로 주소가 잡히게 된다고 적혀있다.
i2c2는 mcu_i2c0을 나타내며, 정상적으로 활성화되어 있다면 0x12 주소가 잡혀야 한다.
KERNEL
mcu_i2c0 활성화를 위해 k3-j784s4-evm.dts 파일을 열어 mcu_i2c0에 대한 항목을 추가해 준다.
&wkup_pmx2 {
...
mcu_i2c0_pins_default: mcu-i2c0-pins-default {
pinctrl-single,pins = <
J784S4_WKUP_IOPAD(0x0a0, PIN_INPUT_PULLUP, 0) /* (M35) MCU_I2C0_SCL */
J784S4_WKUP_IOPAD(0x0a4, PIN_INPUT_PULLUP, 0) /* (G34) MCU_I2C0_SDA */
>;
};
...
}
&mcu_i2c0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mcu_i2c0_pins_default>;
clock-frequency = <400000>;
};
dts 파일을 재 빌드 후 기존 dtb와 교체하여 준다.
dtb를 교체 후 부팅 시 확인해 보면 기존에 존재하지 않던 i2c bus 2가 생성되었으며,
root@j784s4-evm:/# dmesg | grep i2c
[ 0.990765] i2c_dev: i2c /dev entries driver
[ 1.157958] omap_i2c 42120000.i2c: bus 1 rev0.12 at 400 kHz
[ 1.164238] omap_i2c 40b00000.i2c: bus 2 rev0.12 at 400 kHz
[ 1.170301] omap_i2c 2000000.i2c: bus 0 rev0.12 at 400 kHz
해당 버스에 존재하는 장치를 검색해 보면 위 데이터시트에서 확인한 바와 같이 나오게 된다.
root@j784s4-evm:/opt/vision_apps# i2cdetect -r -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- 12 -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
U-BOOT
mcu_i2c0 활성화를 위해 k3-j784s4-evm.dts 파일을 열어 mcu_i2c0에 대한 항목을 추가해 준다.
&wkup_pmx2 {
...
mcu_i2c0_pins_default: mcu-i2c0-pins-default {
pinctrl-single,pins = <
J784S4_WKUP_IOPAD(0x0a0, PIN_INPUT_PULLUP, 0) /* (M35) MCU_I2C0_SCL */
J784S4_WKUP_IOPAD(0x0a4, PIN_INPUT_PULLUP, 0) /* (G34) MCU_I2C0_SDA */
>;
};
...
}
&mcu_i2c0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mcu_i2c0_pins_default>;
clock-frequency = <400000>;
};
dts 파일을 재 빌드 후 기존 u-boot.img 파일을 변경
변경 전 기존 U-Boot 창에서 i2c 명령어를 확인해 보면 아래와 같이 나오게 된다.
변경 후 확인 시 Bus 4가 추가되었으며, 0x12 주소가 잡히는 것을 확인할 수 있다.
728x90
'TI > TDA4VH' 카테고리의 다른 글
[09] TDA4VH - emmc (0) | 2024.12.11 |
---|---|
[TDA4VH] USB 3.0 lane 변경 (1) | 2024.11.16 |
[09] TDA4VH-Q1 - SDCard 이미지 만들기 (0) | 2024.03.17 |
[09] TDA4VH-Q1 Processor SDK (0) | 2024.03.13 |