|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | /* | 
|  | * Header file for device driver Hi6421 PMIC | 
|  | * | 
|  | * Copyright (c) 2013 Linaro Ltd. | 
|  | * Copyright (C) 2011 Hisilicon. | 
|  | * | 
|  | * Guodong Xu <[email protected]> | 
|  | */ | 
|  |  | 
|  | #ifndef	__HISI_PMIC_H | 
|  | #define	__HISI_PMIC_H | 
|  |  | 
|  | #include <linux/irqdomain.h> | 
|  |  | 
|  | #define HISI_REGS_ENA_PROTECT_TIME	(0)	/* in microseconds */ | 
|  | #define HISI_ECO_MODE_ENABLE		(1) | 
|  | #define HISI_ECO_MODE_DISABLE		(0) | 
|  |  | 
|  | struct hi6421_spmi_pmic { | 
|  | struct resource				*res; | 
|  | struct device				*dev; | 
|  | void __iomem				*regs; | 
|  | spinlock_t				lock; | 
|  | struct irq_domain			*domain; | 
|  | int					irq; | 
|  | int					gpio; | 
|  | unsigned int				*irqs; | 
|  | }; | 
|  |  | 
|  | int hi6421_spmi_pmic_read(struct hi6421_spmi_pmic *pmic, int reg); | 
|  | int hi6421_spmi_pmic_write(struct hi6421_spmi_pmic *pmic, int reg, u32 val); | 
|  | int hi6421_spmi_pmic_rmw(struct hi6421_spmi_pmic *pmic, int reg, | 
|  | u32 mask, u32 bits); | 
|  |  | 
|  | enum hi6421_spmi_pmic_irq_list { | 
|  | OTMP = 0, | 
|  | VBUS_CONNECT, | 
|  | VBUS_DISCONNECT, | 
|  | ALARMON_R, | 
|  | HOLD_6S, | 
|  | HOLD_1S, | 
|  | POWERKEY_UP, | 
|  | POWERKEY_DOWN, | 
|  | OCP_SCP_R, | 
|  | COUL_R, | 
|  | SIM0_HPD_R, | 
|  | SIM0_HPD_F, | 
|  | SIM1_HPD_R, | 
|  | SIM1_HPD_F, | 
|  | PMIC_IRQ_LIST_MAX, | 
|  | }; | 
|  | #endif		/* __HISI_PMIC_H */ |