#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mfd/core.h>
#include <linux/of_device.h>
#include <linux/regmap.h>
#include <linux/spi/spi.h>
#define SPRD_PMIC_INT_MASK_STATUS 0x0
#define SPRD_PMIC_INT_RAW_STATUS 0x4
#define SPRD_PMIC_INT_EN 0x8
#define SPRD_SC2731_IRQ_BASE 0x140
#define SPRD_SC2731_IRQ_NUMS 16
struct regmap_irq_chip irq_chip;
struct regmap_irq_chip_data *irq_data;
static const struct sprd_pmic_data sc2731_data = {
.irq_base = SPRD_SC2731_IRQ_BASE,
.num_irqs = SPRD_SC2731_IRQ_NUMS,
static const struct mfd_cell sprd_pmic_devs[] = {
.of_compatible = "sprd,sc2731-wdt",
.of_compatible = "sprd,sc2731-rtc",
.name = "sc27xx-charger",
.of_compatible = "sprd,sc2731-charger",
.name = "sc27xx-chg-timer",
.of_compatible = "sprd,sc2731-chg-timer",
.name = "sc27xx-fast-chg",
.of_compatible = "sprd,sc2731-fast-chg",
.name = "sc27xx-chg-wdt",
.of_compatible = "sprd,sc2731-chg-wdt",