S5P4418: AXP-228电源管理芯片适配

1. 前言

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

2. 背景

将电源管理芯片 AXP-228 适配到 S5P4418 + Linux 3.4.y 系统。

3. 适配过程

电源管理芯片AXP-228是挂接在I2C总线上,电源管理芯片AXP-228的I2C接口使用的复用GPIO为:

PMIC_SCL: GPIOE30
PMIC_SDA: GPIOE31

电源管理芯片还有个中断信号脚,其PIN脚为:

GPIO Alive 4

3.1 配置电源管理芯片挂接的I2C总线

/* @arch/arm/plat-s5p4418/nanopi2/include/cfg_main.h */

/* AXP228 PMIC */
#define CFG_PMIC_I2_CBUS   	3 /* i2c channel */
#define CFG_BATTERY_CAP		3000 /* Battery Capacity */
/* PMIC Common */
#define CFG_GPIO_PMIC_INTR (PAD_GPIO_ALV + 4) /* PMIC Interrupt */
#define CONFIG_ENABLE_INIT_VOLTAGE /* Enalbe init voltage for ARM, CORE */
/* @arch/arm/plat-s5p4418/nanopi2/include/axp22-cfg.h */

/*
 *	Config Value
 */

/* i2c channel */
#define AXP_I2CBUS 3

/* interrupt */
#define AXP_IRQNO	CFG_GPIO_PMIC_INTR // 164

3.2 适配 AXP-228 I2C 客户端信息

/* @drivers/power/axp_power/axp22-board.c */

static struct i2c_board_info __initdata 
axp_mfd_i2c_board_info[] = {
	{
		.type = "axp22_mfd",
		.addr = AXP_DEVICES_ADDR,
		.platform_data = &axp_pdata,
		.irq = AXP_IRQNO,
	},
};

3.3 配置 AXP-228 I2C 地址

/* @drivers/power/axp_power/axp-cfg.h */

/* i2c slave address */
#define	AXP_DEVICES_ADDR	(0x68 >> 1)

3.4 注册 AXP-228 I2C 客户端到总线

/* @arch/arm/plat-s5p4418/nanopi2/device.c */

/*------------------------------------------------------------------------------
 * register board platform devices
 */
void __init nxp_board_devices_register(void)
{#if 0
	if (board_is_nanopi()) {
#if defined(CONFIG_REGULATOR_FIXED_VOLTAGE)
		printk("plat: add device fixed voltage\n");
		platform_device_register(&fixed_supply_dummy_device);
#endif
	} else {
#endif
#if defined(CONFIG_I2C_NXP_PORT3)
		platform_add_devices(i2c_devices, ARRAY_SIZE(i2c_devices));
#endif
#if 0
	}
#endif}

3.5 I2C PIN脚GPIO复用适配

/* @arch/arm/plat-s5p4418/nanopi2/include/cfg_gpio.h */

#define PAD_GPIOE30     (PAD_MODE_OUT | PAD_FUNC_ALT1 | 
PAD_LEVEL_LOW  | PAD_PULL_OFF | 
PAD_STRENGTH_0)     
// 0: MCUS_nSOE
// 1: GPIO,
// 2:_, 
// 3:_ =
// PMIC_SCL

#define PAD_GPIOE31     (PAD_MODE_IN  | PAD_FUNC_ALT1 | 
PAD_LEVEL_LOW  | PAD_PULL_OFF | 
PAD_STRENGTH_0)     
// 0: MCUS_nSWE     
// 1: GPIO, 
// 2:_, 
// 3:_ = 
// PMIC_SDA
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值