rtc芯片rx8025t在linux 3.10下的的驱动

本文档详细介绍了如何在Linux 3.10内核下为MT7688硬件平台编写和配置RTC芯片RX8025T的I2C驱动。内容包括在arch/mips/ralink/dev-i2c.c中添加I2C平台设备,以及编写drivers/char/i2c_rx8025t.c驱动文件,涉及I2C消息结构体和驱动注册过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件平台:mt7688
软件平台:原生sdk MediaTek_ApSoC_SDK_4300_20140916  linux-3.10.14内核

1. 在arch/mips/ralink/dev-i2c.c 添加i2c平台设备:
static struct i2c_board_info i2c_info[] __initconst =  { 
	{
                I2C_BOARD_INFO("rx8025t", 0x32), //设置device name和从机地址
                .platform_data = (void*)(long)500, //设置平台数据,这个值是分频系数
		//我们的i2c 主机驱动改了所以这个值就是分频系数,clk_peri外围时钟(25/40MHZ)除以500就是i2c传输速率
        },
};

用到的一些flag标志,定义在linux-3.10.14.x/include/uapi/linux/i2c.h
struct i2c_msg {
	__u16 addr;	/* slave address			*/
	__u16 flags;
#define I2C_M_TEN		0x0010	/* this is a ten bit chip address */
#define I2C_M_RD		0x0001	/* read data, from slave to master */
#define I2C_M_STOP		0x8000	/* if I2C_FUNC_PROTOCOL_MANGLING */
#define I2C_M_NOSTART		0x4000	/* if I2C_FUNC_NOSTART */
#define I2C_M_REV_DIR_ADDR	0x2000	/* if I2C_FUNC_PROTOCOL_MANGLING */
#define I2C_M_IGNORE_NAK	0x1000	/* if I2C_FUNC_PROTOCOL_MANGLI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值