xref: /linux-6.15/include/linux/regulator/fixed.h (revision f7907e57)
12874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
248d335baSMark Brown /*
348d335baSMark Brown  * fixed.h
448d335baSMark Brown  *
548d335baSMark Brown  * Copyright 2008 Wolfson Microelectronics PLC.
648d335baSMark Brown  *
748d335baSMark Brown  * Author: Mark Brown <[email protected]>
848d335baSMark Brown  *
986d9884bSRoger Quadros  * Copyright (c) 2009 Nokia Corporation
1086d9884bSRoger Quadros  * Roger Quadros <[email protected]>
1148d335baSMark Brown  */
1248d335baSMark Brown 
1348d335baSMark Brown #ifndef __REGULATOR_FIXED_H
1448d335baSMark Brown #define __REGULATOR_FIXED_H
1548d335baSMark Brown 
16bcf3402cSMark Brown struct regulator_init_data;
17bcf3402cSMark Brown 
1886d9884bSRoger Quadros /**
1986d9884bSRoger Quadros  * struct fixed_voltage_config - fixed_voltage_config structure
2086d9884bSRoger Quadros  * @supply_name:	Name of the regulator supply
216be5bfc3SLaxman Dewangan  * @input_supply:	Name of the input regulator supply
2286d9884bSRoger Quadros  * @microvolts:		Output voltage of regulator
23eda79a30SAdrian Hunter  * @startup_delay:	Start-up time in microseconds
2486d9884bSRoger Quadros  * @enabled_at_boot:	Whether regulator has been enabled at
2586d9884bSRoger Quadros  * 			boot or not. 1 = Yes, 0 = No
2686d9884bSRoger Quadros  * 			This is used to keep the regulator at
2786d9884bSRoger Quadros  * 			the default state
2886d9884bSRoger Quadros  * @init_data:		regulator_init_data
2986d9884bSRoger Quadros  *
3086d9884bSRoger Quadros  * This structure contains fixed voltage regulator configuration
3186d9884bSRoger Quadros  * information that must be passed by platform code to the fixed
3286d9884bSRoger Quadros  * voltage regulator driver.
3386d9884bSRoger Quadros  */
3448d335baSMark Brown struct fixed_voltage_config {
3548d335baSMark Brown 	const char *supply_name;
366be5bfc3SLaxman Dewangan 	const char *input_supply;
3748d335baSMark Brown 	int microvolts;
38eda79a30SAdrian Hunter 	unsigned startup_delay;
39*f7907e57SPeng Fan 	unsigned int off_on_delay;
4086d9884bSRoger Quadros 	unsigned enabled_at_boot:1;
41bcf3402cSMark Brown 	struct regulator_init_data *init_data;
4248d335baSMark Brown };
4348d335baSMark Brown 
44613330a0SSascha Hauer struct regulator_consumer_supply;
45613330a0SSascha Hauer 
46613330a0SSascha Hauer #if IS_ENABLED(CONFIG_REGULATOR)
47dfad84aeSGuennadi Liakhovetski struct platform_device *regulator_register_always_on(int id, const char *name,
4815719cccSGuennadi Liakhovetski 		struct regulator_consumer_supply *supplies, int num_supplies, int uv);
49613330a0SSascha Hauer #else
regulator_register_always_on(int id,const char * name,struct regulator_consumer_supply * supplies,int num_supplies,int uv)50dfad84aeSGuennadi Liakhovetski static inline struct platform_device *regulator_register_always_on(int id, const char *name,
5115719cccSGuennadi Liakhovetski 		struct regulator_consumer_supply *supplies, int num_supplies, int uv)
52613330a0SSascha Hauer {
53613330a0SSascha Hauer 	return NULL;
54613330a0SSascha Hauer }
55613330a0SSascha Hauer #endif
56613330a0SSascha Hauer 
57dfad84aeSGuennadi Liakhovetski #define regulator_register_fixed(id, s, ns) regulator_register_always_on(id, \
5815719cccSGuennadi Liakhovetski 						"fixed-dummy", s, ns, 0)
59dfad84aeSGuennadi Liakhovetski 
6048d335baSMark Brown #endif
61