87 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-only */
 | |
| /*
 | |
|  * Copyright 2012 Texas Instruments
 | |
|  *
 | |
|  * Author: Milo(Woogyom) Kim <milo.kim@ti.com>
 | |
|  */
 | |
| 
 | |
| #ifndef __LP872X_REGULATOR_H__
 | |
| #define __LP872X_REGULATOR_H__
 | |
| 
 | |
| #include <linux/regulator/machine.h>
 | |
| #include <linux/platform_device.h>
 | |
| #include <linux/gpio/consumer.h>
 | |
| 
 | |
| #define LP872X_MAX_REGULATORS		9
 | |
| 
 | |
| #define LP8720_ENABLE_DELAY		200
 | |
| #define LP8725_ENABLE_DELAY		30000
 | |
| 
 | |
| enum lp872x_regulator_id {
 | |
| 	LP8720_ID_BASE,
 | |
| 	LP8720_ID_LDO1 = LP8720_ID_BASE,
 | |
| 	LP8720_ID_LDO2,
 | |
| 	LP8720_ID_LDO3,
 | |
| 	LP8720_ID_LDO4,
 | |
| 	LP8720_ID_LDO5,
 | |
| 	LP8720_ID_BUCK,
 | |
| 
 | |
| 	LP8725_ID_BASE,
 | |
| 	LP8725_ID_LDO1 = LP8725_ID_BASE,
 | |
| 	LP8725_ID_LDO2,
 | |
| 	LP8725_ID_LDO3,
 | |
| 	LP8725_ID_LDO4,
 | |
| 	LP8725_ID_LDO5,
 | |
| 	LP8725_ID_LILO1,
 | |
| 	LP8725_ID_LILO2,
 | |
| 	LP8725_ID_BUCK1,
 | |
| 	LP8725_ID_BUCK2,
 | |
| 
 | |
| 	LP872X_ID_MAX,
 | |
| };
 | |
| 
 | |
| enum lp872x_dvs_sel {
 | |
| 	SEL_V1,
 | |
| 	SEL_V2,
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * lp872x_dvs
 | |
|  * @gpio       : gpio descriptor for dvs control
 | |
|  * @vsel       : dvs selector for buck v1 or buck v2 register
 | |
|  * @init_state : initial dvs pin state
 | |
|  */
 | |
| struct lp872x_dvs {
 | |
| 	struct gpio_desc *gpio;
 | |
| 	enum lp872x_dvs_sel vsel;
 | |
| 	enum gpiod_flags init_state;
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * lp872x_regdata
 | |
|  * @id        : regulator id
 | |
|  * @init_data : init data for each regulator
 | |
|  */
 | |
| struct lp872x_regulator_data {
 | |
| 	enum lp872x_regulator_id id;
 | |
| 	struct regulator_init_data *init_data;
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * lp872x_platform_data
 | |
|  * @general_config    : the value of LP872X_GENERAL_CFG register
 | |
|  * @update_config     : if LP872X_GENERAL_CFG register is updated, set true
 | |
|  * @regulator_data    : platform regulator id and init data
 | |
|  * @dvs               : dvs data for buck voltage control
 | |
|  * @enable_gpio       : gpio descriptor for enable control
 | |
|  */
 | |
| struct lp872x_platform_data {
 | |
| 	u8 general_config;
 | |
| 	bool update_config;
 | |
| 	struct lp872x_regulator_data regulator_data[LP872X_MAX_REGULATORS];
 | |
| 	struct lp872x_dvs *dvs;
 | |
| 	struct gpio_desc *enable_gpio;
 | |
| };
 | |
| 
 | |
| #endif
 |