linux/include/linux/mfd/max8925.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Maxim8925 Interface
 *
 * Copyright (C) 2009 Marvell International Ltd.
 *	Haojian Zhuang <[email protected]>
 */

#ifndef __LINUX_MFD_MAX8925_H
#define __LINUX_MFD_MAX8925_H

#include <linux/mutex.h>
#include <linux/interrupt.h>

/* Unified sub device IDs for MAX8925 */
enum {};

enum {};

enum {};

/* Charger registers */
#define MAX8925_CHG_IRQ1
#define MAX8925_CHG_IRQ2
#define MAX8925_CHG_IRQ1_MASK
#define MAX8925_CHG_IRQ2_MASK
#define MAX8925_CHG_STATUS

/* GPM registers */
#define MAX8925_SYSENSEL
#define MAX8925_ON_OFF_IRQ1
#define MAX8925_ON_OFF_IRQ1_MASK
#define MAX8925_ON_OFF_STATUS
#define MAX8925_ON_OFF_IRQ2
#define MAX8925_ON_OFF_IRQ2_MASK
#define MAX8925_RESET_CNFG

/* Touch registers */
#define MAX8925_TSC_IRQ
#define MAX8925_TSC_IRQ_MASK
#define MAX8925_TSC_CNFG1
#define MAX8925_ADC_SCHED
#define MAX8925_ADC_RES_END

#define MAX8925_NREF_OK

/* RTC registers */
#define MAX8925_ALARM0_CNTL
#define MAX8925_ALARM1_CNTL
#define MAX8925_RTC_IRQ
#define MAX8925_RTC_IRQ_MASK
#define MAX8925_MPL_CNTL

/* WLED registers */
#define MAX8925_WLED_MODE_CNTL
#define MAX8925_WLED_CNTL

/* MAX8925 Registers */
#define MAX8925_SDCTL1
#define MAX8925_SDCTL2
#define MAX8925_SDCTL3
#define MAX8925_SDV1
#define MAX8925_SDV2
#define MAX8925_SDV3
#define MAX8925_LDOCTL1
#define MAX8925_LDOCTL2
#define MAX8925_LDOCTL3
#define MAX8925_LDOCTL4
#define MAX8925_LDOCTL5
#define MAX8925_LDOCTL6
#define MAX8925_LDOCTL7
#define MAX8925_LDOCTL8
#define MAX8925_LDOCTL9
#define MAX8925_LDOCTL10
#define MAX8925_LDOCTL11
#define MAX8925_LDOCTL12
#define MAX8925_LDOCTL13
#define MAX8925_LDOCTL14
#define MAX8925_LDOCTL15
#define MAX8925_LDOCTL16
#define MAX8925_LDOCTL17
#define MAX8925_LDOCTL18
#define MAX8925_LDOCTL19
#define MAX8925_LDOCTL20
#define MAX8925_LDOVOUT1
#define MAX8925_LDOVOUT2
#define MAX8925_LDOVOUT3
#define MAX8925_LDOVOUT4
#define MAX8925_LDOVOUT5
#define MAX8925_LDOVOUT6
#define MAX8925_LDOVOUT7
#define MAX8925_LDOVOUT8
#define MAX8925_LDOVOUT9
#define MAX8925_LDOVOUT10
#define MAX8925_LDOVOUT11
#define MAX8925_LDOVOUT12
#define MAX8925_LDOVOUT13
#define MAX8925_LDOVOUT14
#define MAX8925_LDOVOUT15
#define MAX8925_LDOVOUT16
#define MAX8925_LDOVOUT17
#define MAX8925_LDOVOUT18
#define MAX8925_LDOVOUT19
#define MAX8925_LDOVOUT20

/* bit definitions */
#define CHG_IRQ1_MASK
#define CHG_IRQ2_MASK
#define ON_OFF_IRQ1_MASK
#define ON_OFF_IRQ2_MASK
#define TSC_IRQ_MASK
#define RTC_IRQ_MASK

#define MAX8925_NAME_SIZE

/* IRQ definitions */
enum {};



struct max8925_chip {};

struct max8925_backlight_pdata {};

struct max8925_touch_pdata {};

struct max8925_power_pdata {};

/*
 * irq_base: stores IRQ base number of MAX8925 in platform
 * tsc_irq: stores IRQ number of MAX8925 TSC
 */
struct max8925_platform_data {};

extern int max8925_reg_read(struct i2c_client *, int);
extern int max8925_reg_write(struct i2c_client *, int, unsigned char);
extern int max8925_bulk_read(struct i2c_client *, int, int, unsigned char *);
extern int max8925_bulk_write(struct i2c_client *, int, int, unsigned char *);
extern int max8925_set_bits(struct i2c_client *, int, unsigned char,
			unsigned char);

extern int max8925_device_init(struct max8925_chip *,
				struct max8925_platform_data *);
extern void max8925_device_exit(struct max8925_chip *);
#endif /* __LINUX_MFD_MAX8925_H */