IMX6Q: rtc:使用的rx_8025t芯片,断电重启date 不保存

MYD-Y6ULX开发板
修改RTC芯片,使用rx_8025T
现象:
date -s "2022-1-2 3:4:5"
hwclock -w 能够写,
hwclock -r 能够读:2022-1-2 3:4:5
但是断电重启,date打印 1970-1-1
不断电重启,时间是对的。

查看系统输出信息为读写寄存器失败:

rx8025 will be probe
rx8025 will be init
rx8025 0-0032: Unable to read registers #14..#15
i2c i2c-0: probing for rx8025 failed
rx8025: probe of 0-0032 failed with error -110
snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc0
i2c /dev entries driver

下面内容是我这里本机的配置内容:

硬件配置引脚为:

设备树配置是:

&i2c1 {
    status = "okay";
    rtc: rtc@32 {
        // compatible = "espon,rx8025";
        compatible = "rx8025";
        reg = <0x32>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_rx8025_irq>;
    };
};

其中i2c1引脚配置:

Device Driver ---->
      Real Time Clock ---->
              <*> Epson RX-8025A/NB

make menuconfig:

Device Driver ----> Real Time Clock ----> <*> Epson RX-8025A/NB

rtc-rx8025.c文件配置修改

static int rx8025_read_reg(struct i2c_client *client, int number, u8 *value)
{
	// int ret = i2c_smbus_read_byte_data(client, (number << 4) | 0x08);
	int ret = i2c_smbus_read_byte_data(client, number );
.....
}

static int rx8025_read_regs(struct i2c_client *client,
			    int number, u8 length, u8 *values)
{
	// int ret = i2c_smbus_read_i2c_block_data(client, (number << 4) | 0x08,
	// 					length, values);
	int ret = i2c_smbus_read_i2c_block_data(client, number ,
						length, values);
....
}

static int rx8025_write_reg(struct i2c_client *client, int number, u8 value)
{
	// int ret = i2c_smbus_write_byte_data(client, number << 4, value);
	int ret = i2c_smbus_write_byte_data(client, number , value);
....
}

static int rx8025_write_regs(struct i2c_client *client,
			     int number, u8 length, u8 *values)
{
	// int ret = i2c_smbus_write_i2c_block_data(client, (number << 4) | 0x08,
	// 					 length, values);
	int ret = i2c_smbus_write_i2c_block_data(client, number ,
						 length, values);
....
}
static struct i2c_driver rx8025_driver = {
	.driver = {
		// .name = "rtc-rx8025",
        .name = "rx8025",
		.owner = THIS_MODULE,
	},
	.probe		= rx8025_probe,
	.remove		= rx8025_remove,
	.id_table	= rx8025_id,
};

module_i2c_driver(rx8025_driver);

MODULE_AUTHOR("Wolfgang Grandegger <wg@grandegger.com>");
//MODULE_DESCRIPTION("RX-8025 SA/NB RTC driver");
MODULE_DESCRIPTION("RX-8025T RTC driver");
MODULE_LICENSE("GPL");

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值