linux/include/linux/mfd/pcf50633/core.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * core.h  -- Core driver for NXP PCF50633
 *
 * (C) 2006-2008 by Openmoko, Inc.
 * All rights reserved.
 */

#ifndef __LINUX_MFD_PCF50633_CORE_H
#define __LINUX_MFD_PCF50633_CORE_H

#include <linux/i2c.h>
#include <linux/workqueue.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/pm.h>
#include <linux/power_supply.h>
#include <linux/mfd/pcf50633/backlight.h>

struct pcf50633;
struct regmap;

#define PCF50633_NUM_REGULATORS

struct pcf50633_platform_data {};

struct pcf50633_irq {};

int pcf50633_register_irq(struct pcf50633 *pcf, int irq,
			void (*handler) (int, void *), void *data);
int pcf50633_free_irq(struct pcf50633 *pcf, int irq);

int pcf50633_irq_mask(struct pcf50633 *pcf, int irq);
int pcf50633_irq_unmask(struct pcf50633 *pcf, int irq);
int pcf50633_irq_mask_get(struct pcf50633 *pcf, int irq);

int pcf50633_read_block(struct pcf50633 *, u8 reg,
					int nr_regs, u8 *data);
int pcf50633_write_block(struct pcf50633 *pcf, u8 reg,
					int nr_regs, u8 *data);
u8 pcf50633_reg_read(struct pcf50633 *, u8 reg);
int pcf50633_reg_write(struct pcf50633 *pcf, u8 reg, u8 val);

int pcf50633_reg_set_bit_mask(struct pcf50633 *pcf, u8 reg, u8 mask, u8 val);
int pcf50633_reg_clear_bits(struct pcf50633 *pcf, u8 reg, u8 bits);

/* Interrupt registers */

#define PCF50633_REG_INT1
#define PCF50633_REG_INT2
#define PCF50633_REG_INT3
#define PCF50633_REG_INT4
#define PCF50633_REG_INT5

#define PCF50633_REG_INT1M
#define PCF50633_REG_INT2M
#define PCF50633_REG_INT3M
#define PCF50633_REG_INT4M
#define PCF50633_REG_INT5M

enum {};

struct pcf50633 {};

enum pcf50633_reg_int1 {};

enum pcf50633_reg_int2 {};

enum pcf50633_reg_int3 {};

enum pcf50633_reg_int4 {};

enum pcf50633_reg_int5 {};

/* misc. registers */
#define PCF50633_REG_OOCSHDWN

/* LED registers */
#define PCF50633_REG_LEDOUT
#define PCF50633_REG_LEDENA
#define PCF50633_REG_LEDCTL
#define PCF50633_REG_LEDDIM

static inline struct pcf50633 *dev_to_pcf50633(struct device *dev)
{}

int pcf50633_irq_init(struct pcf50633 *pcf, int irq);
void pcf50633_irq_free(struct pcf50633 *pcf);
extern const struct dev_pm_ops pcf50633_pm;

#endif