Introduce a new file, which will be used to configure common pmic (TWL) devices, regulators, and TWL audio. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Tony Lindgren <tony@atomide.com>tirimbino
parent
48cb1258e8
commit
a53b8e3b99
@ -0,0 +1,46 @@ |
||||
/*
|
||||
* twl-common.c |
||||
* |
||||
* Copyright (C) 2011 Texas Instruments, Inc.. |
||||
* Author: Peter Ujfalusi <peter.ujfalusi@ti.com> |
||||
* |
||||
* This program is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU General Public License |
||||
* version 2 as published by the Free Software Foundation. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, but |
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||||
* General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program; if not, write to the Free Software |
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
||||
* 02110-1301 USA |
||||
* |
||||
*/ |
||||
|
||||
#include <linux/i2c.h> |
||||
#include <linux/i2c/twl.h> |
||||
#include <linux/gpio.h> |
||||
|
||||
#include <plat/i2c.h> |
||||
|
||||
#include "twl-common.h" |
||||
|
||||
static struct i2c_board_info __initdata pmic_i2c_board_info = { |
||||
.addr = 0x48, |
||||
.flags = I2C_CLIENT_WAKE, |
||||
}; |
||||
|
||||
void __init omap_pmic_init(int bus, u32 clkrate, |
||||
const char *pmic_type, int pmic_irq, |
||||
struct twl4030_platform_data *pmic_data) |
||||
{ |
||||
strncpy(pmic_i2c_board_info.type, pmic_type, |
||||
sizeof(pmic_i2c_board_info.type)); |
||||
pmic_i2c_board_info.irq = pmic_irq; |
||||
pmic_i2c_board_info.platform_data = pmic_data; |
||||
|
||||
omap_register_i2c_bus(bus, clkrate, &pmic_i2c_board_info, 1); |
||||
} |
@ -0,0 +1,28 @@ |
||||
#ifndef __OMAP_PMIC_COMMON__ |
||||
#define __OMAP_PMIC_COMMON__ |
||||
|
||||
struct twl4030_platform_data; |
||||
|
||||
void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq, |
||||
struct twl4030_platform_data *pmic_data); |
||||
|
||||
static inline void omap2_pmic_init(const char *pmic_type, |
||||
struct twl4030_platform_data *pmic_data) |
||||
{ |
||||
omap_pmic_init(2, 2600, pmic_type, INT_24XX_SYS_NIRQ, pmic_data); |
||||
} |
||||
|
||||
static inline void omap3_pmic_init(const char *pmic_type, |
||||
struct twl4030_platform_data *pmic_data) |
||||
{ |
||||
omap_pmic_init(1, 2600, pmic_type, INT_34XX_SYS_NIRQ, pmic_data); |
||||
} |
||||
|
||||
static inline void omap4_pmic_init(const char *pmic_type, |
||||
struct twl4030_platform_data *pmic_data) |
||||
{ |
||||
/* Phoenix Audio IC needs I2C1 to start with 400 KHz or less */ |
||||
omap_pmic_init(1, 400, pmic_type, OMAP44XX_IRQ_SYS_1N, pmic_data); |
||||
} |
||||
|
||||
#endif /* __OMAP_PMIC_COMMON__ */ |
Loading…
Reference in new issue