70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-only */
 | |
| #ifndef __MFD_88PM886_H
 | |
| #define __MFD_88PM886_H
 | |
| 
 | |
| #include <linux/i2c.h>
 | |
| #include <linux/regmap.h>
 | |
| 
 | |
| #define PM886_A1_CHIP_ID		0xa1
 | |
| 
 | |
| #define PM886_IRQ_ONKEY			0
 | |
| 
 | |
| #define PM886_PAGE_OFFSET_REGULATORS	1
 | |
| 
 | |
| #define PM886_REG_ID			0x00
 | |
| 
 | |
| #define PM886_REG_STATUS1		0x01
 | |
| #define PM886_ONKEY_STS1		BIT(0)
 | |
| 
 | |
| #define PM886_REG_INT_STATUS1		0x05
 | |
| 
 | |
| #define PM886_REG_INT_ENA_1		0x0a
 | |
| #define PM886_INT_ENA1_ONKEY		BIT(0)
 | |
| 
 | |
| #define PM886_REG_MISC_CONFIG1		0x14
 | |
| #define PM886_SW_PDOWN			BIT(5)
 | |
| 
 | |
| #define PM886_REG_MISC_CONFIG2		0x15
 | |
| #define PM886_INT_INV			BIT(0)
 | |
| #define PM886_INT_CLEAR			BIT(1)
 | |
| #define PM886_INT_RC			0x00
 | |
| #define PM886_INT_WC			BIT(1)
 | |
| #define PM886_INT_MASK_MODE		BIT(2)
 | |
| 
 | |
| #define PM886_REG_RTC_SPARE6		0xef
 | |
| 
 | |
| #define PM886_REG_BUCK_EN		0x08
 | |
| #define PM886_REG_LDO_EN1		0x09
 | |
| #define PM886_REG_LDO_EN2		0x0a
 | |
| #define PM886_REG_LDO1_VOUT		0x20
 | |
| #define PM886_REG_LDO2_VOUT		0x26
 | |
| #define PM886_REG_LDO3_VOUT		0x2c
 | |
| #define PM886_REG_LDO4_VOUT		0x32
 | |
| #define PM886_REG_LDO5_VOUT		0x38
 | |
| #define PM886_REG_LDO6_VOUT		0x3e
 | |
| #define PM886_REG_LDO7_VOUT		0x44
 | |
| #define PM886_REG_LDO8_VOUT		0x4a
 | |
| #define PM886_REG_LDO9_VOUT		0x50
 | |
| #define PM886_REG_LDO10_VOUT		0x56
 | |
| #define PM886_REG_LDO11_VOUT		0x5c
 | |
| #define PM886_REG_LDO12_VOUT		0x62
 | |
| #define PM886_REG_LDO13_VOUT		0x68
 | |
| #define PM886_REG_LDO14_VOUT		0x6e
 | |
| #define PM886_REG_LDO15_VOUT		0x74
 | |
| #define PM886_REG_LDO16_VOUT		0x7a
 | |
| #define PM886_REG_BUCK1_VOUT		0xa5
 | |
| #define PM886_REG_BUCK2_VOUT		0xb3
 | |
| #define PM886_REG_BUCK3_VOUT		0xc1
 | |
| #define PM886_REG_BUCK4_VOUT		0xcf
 | |
| #define PM886_REG_BUCK5_VOUT		0xdd
 | |
| 
 | |
| #define PM886_LDO_VSEL_MASK		0x0f
 | |
| #define PM886_BUCK_VSEL_MASK		0x7f
 | |
| 
 | |
| struct pm886_chip {
 | |
| 	struct i2c_client *client;
 | |
| 	unsigned int chip_id;
 | |
| 	struct regmap *regmap;
 | |
| };
 | |
| #endif /* __MFD_88PM886_H */
 |