一、硬件结构
在I2C 2总线下接了一片K24C02O(华虹宏力),和AT24C02兼容,所以驱动用at24的。
![1.jpg](//file.elecfans.com/web2/M00/70/06/poYBAGNJFoGAZDMzAADuu4uonac502.jpg)
注意:如果R32焊接,则EEPROM内容只读,如果R32 NC,则EEPROM可读、可写。
二、驱动
驱动文件位于..\kernel\drivers\misc\eeprom路径下。
三、加入设备
1.DTS文件中i2c2节点下加入设备描述:
eeprom: at24c02@50 {
status = "okay";
compatible = "atmel,24c02";
reg = <0x50>;
size = <256>;
pagesize = <8>;
};
2.内核配置
make ARCH=arm64 menuconfig
Devices Drivers --->
Misc devices --->
EEPROM support --->
<*> I2C EEPROMs / RAMs /ROMs from most vendors
保存配置文件:
cp .config arch/arm64/configs/rockchip_linux_defconfig
![1.jpg](//file.elecfans.com/web2/M00/70/06/poYBAGNJFpmAFUbgAACdPwxYSHk292.jpg)
四、测试
修改SDK后,重新编译kernel,并将新生成的boot.img烧写到主板。
系统启动后查看设备是否存在:
[root@RK356X:/]# ls /sys/bus/i2c/drivers/at24/
2-0050 bind uevent unbind
内容读写:
[root@RK356X:/]# cd /sys/bus/i2c/drivers/at24/2-0050/
[root@RK356X:/sys/devices/platform/fe5b0000.i2c/i2c-2/2-0050]# echo "123456" > e
eprom
[root@RK356X:/sys/devices/platform/fe5b0000.i2c/i2c-2/2-0050]# cat eeprom
123456
原作者:火柴棍mcu
|