linux/drivers/mfd/88pm800.c

/*
 * Base driver for Marvell 88PM800
 *
 * Copyright (C) 2012 Marvell International Ltd.
 * Haojian Zhuang <[email protected]>
 * Joseph(Yossi) Hanin <[email protected]>
 * Qiao Zhou <[email protected]>
 *
 * This file is subject to the terms and conditions of the GNU General
 * Public License. See the file "COPYING" in the main directory of this
 * archive for more details.
 *
 * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/mfd/core.h>
#include <linux/mfd/88pm80x.h>
#include <linux/slab.h>

/* Interrupt Registers */
#define PM800_INT_STATUS1
#define PM800_ONKEY_INT_STS1
#define PM800_EXTON_INT_STS1
#define PM800_CHG_INT_STS1
#define PM800_BAT_INT_STS1
#define PM800_RTC_INT_STS1
#define PM800_CLASSD_OC_INT_STS1

#define PM800_INT_STATUS2
#define PM800_VBAT_INT_STS2
#define PM800_VSYS_INT_STS2
#define PM800_VCHG_INT_STS2
#define PM800_TINT_INT_STS2
#define PM800_GPADC0_INT_STS2
#define PM800_TBAT_INT_STS2
#define PM800_GPADC2_INT_STS2
#define PM800_GPADC3_INT_STS2

#define PM800_INT_STATUS3

#define PM800_INT_STATUS4
#define PM800_GPIO0_INT_STS4
#define PM800_GPIO1_INT_STS4
#define PM800_GPIO2_INT_STS4
#define PM800_GPIO3_INT_STS4
#define PM800_GPIO4_INT_STS4

#define PM800_INT_ENA_1
#define PM800_ONKEY_INT_ENA1
#define PM800_EXTON_INT_ENA1
#define PM800_CHG_INT_ENA1
#define PM800_BAT_INT_ENA1
#define PM800_RTC_INT_ENA1
#define PM800_CLASSD_OC_INT_ENA1

#define PM800_INT_ENA_2
#define PM800_VBAT_INT_ENA2
#define PM800_VSYS_INT_ENA2
#define PM800_VCHG_INT_ENA2
#define PM800_TINT_INT_ENA2

#define PM800_INT_ENA_3
#define PM800_GPADC0_INT_ENA3
#define PM800_GPADC1_INT_ENA3
#define PM800_GPADC2_INT_ENA3
#define PM800_GPADC3_INT_ENA3
#define PM800_GPADC4_INT_ENA3

#define PM800_INT_ENA_4
#define PM800_GPIO0_INT_ENA4
#define PM800_GPIO1_INT_ENA4
#define PM800_GPIO2_INT_ENA4
#define PM800_GPIO3_INT_ENA4
#define PM800_GPIO4_INT_ENA4

/* number of INT_ENA & INT_STATUS regs */
#define PM800_INT_REG_NUM

/* Interrupt Number in 88PM800 */
enum {};

/* PM800: generation identification number */
#define PM800_CHIP_GEN_ID_NUM

static const struct i2c_device_id pm80x_id_table[] =;
MODULE_DEVICE_TABLE(i2c, pm80x_id_table);

static const struct resource rtc_resources[] =;

static struct mfd_cell rtc_devs[] =;

static struct resource onkey_resources[] =;

static const struct mfd_cell onkey_devs[] =;

static const struct mfd_cell regulator_devs[] =;

static const struct regmap_irq pm800_irqs[] =;

static int device_gpadc_init(struct pm80x_chip *chip,
				       struct pm80x_platform_data *pdata)
{}

static int device_onkey_init(struct pm80x_chip *chip,
				struct pm80x_platform_data *pdata)
{}

static int device_rtc_init(struct pm80x_chip *chip,
				struct pm80x_platform_data *pdata)
{}

static int device_regulator_init(struct pm80x_chip *chip,
					   struct pm80x_platform_data *pdata)
{}

static int device_irq_init_800(struct pm80x_chip *chip)
{}

static void device_irq_exit_800(struct pm80x_chip *chip)
{}

static struct regmap_irq_chip pm800_irq_chip =;

static int pm800_pages_init(struct pm80x_chip *chip)
{}

static void pm800_pages_exit(struct pm80x_chip *chip)
{}

static int device_800_init(struct pm80x_chip *chip,
				     struct pm80x_platform_data *pdata)
{}

static int pm800_probe(struct i2c_client *client)
{}

static void pm800_remove(struct i2c_client *client)
{}

static struct i2c_driver pm800_driver =;

static int __init pm800_i2c_init(void)
{}
subsys_initcall(pm800_i2c_init);

static void __exit pm800_i2c_exit(void)
{}
module_exit(pm800_i2c_exit);

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();