Android max17044平台驱动注册

本文详细介绍了在Android系统中如何进行max17044硬件平台驱动的注册步骤,包括驱动的编写、加载和系统集成过程,为Android开发者提供指导。
摘要由CSDN通过智能技术生成


Android max17044平台驱动注册


#ifdef CONFIG_BATTERY_MAX17040
#include <linux/max17040_battery.h>
static int max17043_charger_online(void)
{
	int res = 0;
	gpio_request(S5PV210_GPH1(6), "GPH1_6");
    s3c_gpio_cfgpin(S5PV210_GPH1(6), S3C_GPIO_INPUT);
    res = gpio_get_value(S5PV210_GPH1(6));
	gpio_free(S5PV210_GPH1(6));

	return res;
}
//static int max17043_battery_online(void)
static int max17043_ac_online(void)
{
	return max17043_charger_online();
}

static int max17043_charger_enable(void)
{
	int res = 0;
	gpio_request(S5PV210_GPH0(5), "GPH0_5");
    s3c_gpio_cfgpin(S5PV210_GPH0(5), S3C_GPIO_INPUT);
    res = gpio_get_value(S5PV210_GPH0(5));
	gpio_free(S5PV210_GPH0(5));

	return res>0 ? 0:1;
}
static struct max17040_platform_data max17043_plat = {
	.ac_online = max17043_ac_online,
	//.battery_online = max17043_battery_online,
	.charger_online = max17043_charger_online,
	.charger_enable = max17043_charger_enable,
};
#endif
static struct i2c_board_info smdkv210_i2c_devs0[] __initdata = {
#ifdef CONFIG_BATTERY_MAX17040
	{ I2C_BOARD_INFO("max17043", 0x36), 
	.platform_data = &max17043_plat},     /* MAX17043 */
#endif
};


在内核中配置Power supply class support中打开 Maxim MAX17040 Fuel Gauge的支持

在include/linux/max17040_battery.h中添加如下代码
struct max17040_platform_data {
	int (*ac_online)(void);
	int (*battery_online)(void);
	int (*charger_online)(void);
	int (*charger_enable)(void);
};



并修改drivers/power/max17040_battery.c

#define MAX17040_VCELL_MSB	0x02
#define MAX17040_VCELL_LSB	0x03
#define MAX17040_SOC_MSB	0x04
#define MAX17040_SOC_LSB	0x05
#define MAX17040_MODE_MSB	0x06
#define MAX17040_MODE_LSB	0x07
#define MAX17040_VER_MSB	0x08
#define MAX17040_VER_LSB	0x09
#define MAX17040_RCOMP_MSB	0x0C
#define MAX17040_RCOMP_LSB	0x0D
#define MAX17040_CMD_MSB	0xFE
#define MAX17040_CMD_LSB	0xFF

#define MAX17040_DELAY		1000
#define MAX17040_BATTERY_FULL	95

#undef _DPRINT_
#ifdef _DPRINT_
#define dprint(fmt, arg...) printk(fmt, ##arg)
#else
#define dprint(fmt, arg...)
#endif
struct max17040_ch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值