linux/drivers/mfd/88pm860x-core.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Base driver for Marvell 88PM8607
 *
 * Copyright (C) 2009 Marvell International Ltd.
 *
 * Author: Haojian Zhuang <[email protected]>
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/irqdomain.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#include <linux/mfd/core.h>
#include <linux/mfd/88pm860x.h>
#include <linux/regulator/machine.h>
#include <linux/power/charger-manager.h>

#define INT_STATUS_NUM

static const struct resource bk0_resources[] =;
static const struct resource bk1_resources[] =;
static const struct resource bk2_resources[] =;

static const struct resource led0_resources[] =;
static const struct resource led1_resources[] =;
static const struct resource led2_resources[] =;
static const struct resource led3_resources[] =;
static const struct resource led4_resources[] =;
static const struct resource led5_resources[] =;

static const struct resource buck1_resources[] =;
static const struct resource buck2_resources[] =;
static const struct resource buck3_resources[] =;
static const struct resource ldo1_resources[] =;
static const struct resource ldo2_resources[] =;
static const struct resource ldo3_resources[] =;
static const struct resource ldo4_resources[] =;
static const struct resource ldo5_resources[] =;
static const struct resource ldo6_resources[] =;
static const struct resource ldo7_resources[] =;
static const struct resource ldo8_resources[] =;
static const struct resource ldo9_resources[] =;
static const struct resource ldo10_resources[] =;
static const struct resource ldo12_resources[] =;
static const struct resource ldo_vibrator_resources[] =;
static const struct resource ldo14_resources[] =;

static struct resource touch_resources[] =;

static struct resource onkey_resources[] =;

static struct resource codec_resources[] =;

static struct resource battery_resources[] =;

static struct resource charger_resources[] =;

static struct resource rtc_resources[] =;

static struct mfd_cell bk_devs[] =;

static struct mfd_cell led_devs[] =;

static struct mfd_cell reg_devs[] =;

static struct mfd_cell touch_devs[] =;

static struct mfd_cell onkey_devs[] =;

static struct mfd_cell codec_devs[] =;

static struct regulator_consumer_supply preg_supply[] =;

static struct regulator_init_data preg_init_data =;

static struct charger_regulator chg_desc_regulator_data[] =;

static struct mfd_cell power_devs[] =;

static struct mfd_cell rtc_devs[] =;


struct pm860x_irq_data {};

static struct pm860x_irq_data pm860x_irqs[] =;

static irqreturn_t pm860x_irq(int irq, void *data)
{}

static void pm860x_irq_lock(struct irq_data *data)
{}

static void pm860x_irq_sync_unlock(struct irq_data *data)
{}

static void pm860x_irq_enable(struct irq_data *data)
{}

static void pm860x_irq_disable(struct irq_data *data)
{}

static struct irq_chip pm860x_irq_chip =;

static int pm860x_irq_domain_map(struct irq_domain *d, unsigned int virq,
				 irq_hw_number_t hw)
{}

static const struct irq_domain_ops pm860x_irq_domain_ops =;

static int device_irq_init(struct pm860x_chip *chip,
				     struct pm860x_platform_data *pdata)
{}

static void device_irq_exit(struct pm860x_chip *chip)
{}

int pm8606_osc_enable(struct pm860x_chip *chip, unsigned short client)
{}
EXPORT_SYMBOL();

int pm8606_osc_disable(struct pm860x_chip *chip, unsigned short client)
{}
EXPORT_SYMBOL();

static void device_osc_init(struct i2c_client *i2c)
{}

static void device_bk_init(struct pm860x_chip *chip,
				     struct pm860x_platform_data *pdata)
{}

static void device_led_init(struct pm860x_chip *chip,
				      struct pm860x_platform_data *pdata)
{}

static void device_regulator_init(struct pm860x_chip *chip,
					    struct pm860x_platform_data *pdata)
{}

static void device_rtc_init(struct pm860x_chip *chip,
				      struct pm860x_platform_data *pdata)
{}

static void device_touch_init(struct pm860x_chip *chip,
					struct pm860x_platform_data *pdata)
{}

static void device_power_init(struct pm860x_chip *chip,
					struct pm860x_platform_data *pdata)
{}

static void device_onkey_init(struct pm860x_chip *chip,
					struct pm860x_platform_data *pdata)
{}

static void device_codec_init(struct pm860x_chip *chip,
					struct pm860x_platform_data *pdata)
{}

static void device_8607_init(struct pm860x_chip *chip,
				       struct i2c_client *i2c,
				       struct pm860x_platform_data *pdata)
{}

static void device_8606_init(struct pm860x_chip *chip,
				       struct i2c_client *i2c,
				       struct pm860x_platform_data *pdata)
{}

static int pm860x_device_init(struct pm860x_chip *chip,
					struct pm860x_platform_data *pdata)
{}

static void pm860x_device_exit(struct pm860x_chip *chip)
{}

static int verify_addr(struct i2c_client *i2c)
{}

static const struct regmap_config pm860x_regmap_config =;

static int pm860x_dt_init(struct device_node *np,
				    struct device *dev,
				    struct pm860x_platform_data *pdata)
{}

static int pm860x_probe(struct i2c_client *client)
{}

static void pm860x_remove(struct i2c_client *client)
{}

static int pm860x_suspend(struct device *dev)
{}

static int pm860x_resume(struct device *dev)
{}

static DEFINE_SIMPLE_DEV_PM_OPS(pm860x_pm_ops, pm860x_suspend, pm860x_resume);

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

static const struct of_device_id pm860x_dt_ids[] =;
MODULE_DEVICE_TABLE(of, pm860x_dt_ids);

static struct i2c_driver pm860x_driver =;

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

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

MODULE_DESCRIPTION();
MODULE_AUTHOR();