[09] TDA4VH - mcu_i2c0 활성화
TI/TDA4VH

[09] TDA4VH - mcu_i2c0 활성화

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