一、背景
FCU2601的RTC芯片为RX8010SJ,OK3568的RTC芯片为PCF8563。BCU3.0使用的RTC芯片为RX8010SJ。因为BCU3.0使用的核心板和OK3568开发板是一致的,所以需要把OK3568那套软件从PCF8563适配到RX8010SJ

二、方法
1.根据BCU原理图和OK3568原理得到RTC芯片的IIC都是挂在rk3568芯片的IIC3上,因此IIC驱动不需要修改
2.OK3568源码中有rtc-rx8010.c和rtc-pcf8563.c,因此不需要自己编写RTC相关的驱动,希望已经把相关接口封装好,并绑定到了/dev/rtc0
3.需要修改设备树驱动:
文件位置:OK3568_Linux_fs/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi

原代码:

&i2c3 {
	status = "okay";

	rx8010: rx8010@32 {
		compatible = "epson,rx8010";
		reg = <0x32>;
	};

	pcf8563: pcf8563@51 {
		compatible = "nxp,pcf8563";
		reg = <0x51>;
		#clock-cells = <0>;
	};
};

修改后:

&i2c3 {
    status = "okay";

    rx8010: rx8010@32 {
        compatible = "epson,rx8010";
        reg = <0x32>;
        status = "okay";
    };

    pcf8563: pcf8563@51 {
        compatible = "nxp,pcf8563";
        reg = <0x51>;
        status = "disabled";   /* 禁用原有PCF8563 */
    };
};

4.配置内核,启用RX8010驱动

当前你的系统中该驱动未启用(# CONFIG_RTC_DRV_RX8010 is not set),需要在内核配置中打开
这块儿需要在摸索一下

5.编译内核镜像,并烧写到开发板

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐