65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Device driver for regulators in hi655x IC
 | |
|  *
 | |
|  * Copyright (c) 2016 Hisilicon.
 | |
|  *
 | |
|  * Authors:
 | |
|  * Chen Feng <puck.chen@hisilicon.com>
 | |
|  * Fei  Wang <w.f@huawei.com>
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2 as
 | |
|  * published by the Free Software Foundation.
 | |
|  */
 | |
| 
 | |
| #ifndef __HI655X_PMIC_H
 | |
| #define __HI655X_PMIC_H
 | |
| 
 | |
| /* Hi655x registers are mapped to memory bus in 4 bytes stride */
 | |
| #define HI655X_STRIDE                   4
 | |
| #define HI655X_BUS_ADDR(x)              ((x) << 2)
 | |
| 
 | |
| #define HI655X_BITS                     8
 | |
| 
 | |
| #define HI655X_NR_IRQ                   32
 | |
| 
 | |
| #define HI655X_IRQ_STAT_BASE            (0x003 << 2)
 | |
| #define HI655X_IRQ_MASK_BASE            (0x007 << 2)
 | |
| #define HI655X_ANA_IRQM_BASE            (0x1b5 << 2)
 | |
| #define HI655X_IRQ_ARRAY                4
 | |
| #define HI655X_IRQ_MASK                 0xFF
 | |
| #define HI655X_IRQ_CLR                  0xFF
 | |
| #define HI655X_VER_REG                  0x00
 | |
| 
 | |
| #define PMU_VER_START                   0x10
 | |
| #define PMU_VER_END                     0x38
 | |
| 
 | |
| #define RESERVE_INT                     7
 | |
| #define PWRON_D20R_INT                  6
 | |
| #define PWRON_D20F_INT                  5
 | |
| #define PWRON_D4SR_INT                  4
 | |
| #define VSYS_6P0_D200UR_INT             3
 | |
| #define VSYS_UV_D3R_INT                 2
 | |
| #define VSYS_2P5_R_INT                  1
 | |
| #define OTMP_D1R_INT                    0
 | |
| 
 | |
| #define RESERVE_INT_MASK                BIT(RESERVE_INT)
 | |
| #define PWRON_D20R_INT_MASK             BIT(PWRON_D20R_INT)
 | |
| #define PWRON_D20F_INT_MASK             BIT(PWRON_D20F_INT)
 | |
| #define PWRON_D4SR_INT_MASK             BIT(PWRON_D4SR_INT)
 | |
| #define VSYS_6P0_D200UR_INT_MASK        BIT(VSYS_6P0_D200UR_INT)
 | |
| #define VSYS_UV_D3R_INT_MASK            BIT(VSYS_UV_D3R_INT)
 | |
| #define VSYS_2P5_R_INT_MASK             BIT(VSYS_2P5_R_INT)
 | |
| #define OTMP_D1R_INT_MASK               BIT(OTMP_D1R_INT)
 | |
| 
 | |
| struct hi655x_pmic {
 | |
| 	struct resource *res;
 | |
| 	struct device *dev;
 | |
| 	struct regmap *regmap;
 | |
| 	int gpio;
 | |
| 	unsigned int ver;
 | |
| 	struct regmap_irq_chip_data *irq_data;
 | |
| };
 | |
| 
 | |
| #endif
 | 
