S5P4418: RTC 芯片 HYM8563 驱动移植

1. 前言

限于作者能力水平,本文可能存在的谬误,因此而给读者带来的损失,作者不做任何承诺。

2. 背景

移植 RTC 芯片HYM8563驱动移植到 S5P4418 + Linux 3.4.y 系统。

3. 适配和测试

3.1 适配

(1) 拷贝rtc-HYM8563.c, rtc-HYM8563.h到目录drivers/rtc
(2) 修改文件drivers/rtc/Kconfig,增加如下内容:

if I2C
	...
	
config RTC_DRV_HYM8563
   tristate "H&M SEMI RTC HYM8563"

endif # I2C

(3) 修改文件drivers/rtc/Makefile,增加如下内容:

obj-$(CONFIG_RTC_DRV_HYM8563) += rtc-HYM8563.o

(4) 运行 make menuconfig 修改内核配置,使能rtc hym8563驱动:

Device Drivers
    -> Real Time Clock
         -> <*> H&M SEMI RTC HYM8563

同时,关闭SoC RTC

Device Drivers
   -> Real Time Clock
       -> <> SLsiAP RTC

(5) 修改文件arch/arm/plat-s5p4418/nanopi2/device.c,注册HYM8563 I2C设备到I2C总线:

#if defined(CONFIG_RTC_DRV_HYM8563)
#define HYM8563_I2C_BUS (1)

static struct i2c_board_info __initdata hym8563_i2c_bdi = {
       I2C_BOARD_INFO("rtc_hym8563", 0x51),
       .irq    = -1/*PB_PIO_IRQ(CFG_IO_RTC_INT)*/,
};
#endif

void __init nxp_board_devices_register(void)
{
	...
#if defined(CONFIG_RTC_DRV_HYM8563)
	printk("plat: add hym8563 device\n");
    i2c_register_board_info(HYM8563_I2C_BUS, &hym8563_i2c_bdi, 1);
#endif
	...
}

(6) 修改文件arch/arm/plat-s5p4418/nanopi2/include/cfg_gpio.h,适配HYM8563中断引脚:

/* RTC_INT gpio, RTC_INT IRQ number. */
#define CFG_RTC_IRQ                         (IRQ_GPIO_C_START + 25)
#define CFG_IO_RTC_INT                      (PAD_GPIO_C + 25)

3.2 测试

hwclockdate命令测试RTC的:

date -s 2017.06.13-15:12  # 设置系统时钟
hwclock -w                  # 把系统时间写回rtc芯片

之后就可以重启或重新上电系统,然后查看时间或rtc芯片时间,看rtc有没有正常工作

hwclock -r
date
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值