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