mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	power: regulator: qcom-rpmh-regulator: port over lineage_range helpers
Import struct linear_range() and builder macro from Linux regulator core. Acked-by: Sumit Garg <sumit.garg@linaro.org> Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
This commit is contained in:
		
							parent
							
								
									13bed6c903
								
							
						
					
					
						commit
						21c7b74a56
					
				@ -29,6 +29,13 @@ enum rpmh_regulator_type {
 | 
			
		||||
	XOB,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum rpmh_regulator_mode {
 | 
			
		||||
	REGULATOR_MODE_RETENTION,
 | 
			
		||||
	REGULATOR_MODE_LPM,
 | 
			
		||||
	REGULATOR_MODE_AUTO,
 | 
			
		||||
	REGULATOR_MODE_HPM,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define RPMH_REGULATOR_REG_VRM_VOLTAGE		0x0
 | 
			
		||||
#define RPMH_REGULATOR_REG_ENABLE		0x4
 | 
			
		||||
#define RPMH_REGULATOR_REG_VRM_MODE		0x8
 | 
			
		||||
@ -61,6 +68,36 @@ enum rpmh_regulator_type {
 | 
			
		||||
#define PMIC5_BOB_MODE_AUTO			6
 | 
			
		||||
#define PMIC5_BOB_MODE_PWM			7
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * struct linear_range - table of selector - value pairs
 | 
			
		||||
 *
 | 
			
		||||
 * Define a lookup-table for range of values. Intended to help when looking
 | 
			
		||||
 * for a register value matching certaing physical measure (like voltage).
 | 
			
		||||
 * Usable when increment of one in register always results a constant increment
 | 
			
		||||
 * of the physical measure (like voltage).
 | 
			
		||||
 *
 | 
			
		||||
 * @min:  Lowest value in range
 | 
			
		||||
 * @min_sel: Lowest selector for range
 | 
			
		||||
 * @max_sel: Highest selector for range
 | 
			
		||||
 * @step: Value step size
 | 
			
		||||
 */
 | 
			
		||||
struct linear_range {
 | 
			
		||||
	unsigned int min;
 | 
			
		||||
	unsigned int min_sel;
 | 
			
		||||
	unsigned int max_sel;
 | 
			
		||||
	unsigned int step;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Initialize struct linear_range for regulators */
 | 
			
		||||
#define REGULATOR_LINEAR_RANGE(_min_uV, _min_sel, _max_sel, _step_uV)	\
 | 
			
		||||
{									\
 | 
			
		||||
	.min		= _min_uV,					\
 | 
			
		||||
	.min_sel	= _min_sel,					\
 | 
			
		||||
	.max_sel	= _max_sel,					\
 | 
			
		||||
	.step		= _step_uV,					\
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * struct rpmh_vreg_hw_data - RPMh regulator hardware configurations
 | 
			
		||||
 * @regulator_type:		RPMh accelerator type used to manage this
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user