Blame view
drivers/regulator/mc13xxx.h
3.11 KB
2874c5fd2 treewide: Replace... |
1 |
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
167e3d8af make mc13783 regu... |
2 3 4 5 |
/* * mc13xxx.h - regulators for the Freescale mc13xxx PMIC * * Copyright (C) 2010 Yong Shen <yong.shen@linaro.org> |
167e3d8af make mc13783 regu... |
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
*/ #ifndef __LINUX_REGULATOR_MC13XXX_H #define __LINUX_REGULATOR_MC13XXX_H #include <linux/regulator/driver.h> struct mc13xxx_regulator { struct regulator_desc desc; int reg; int enable_bit; int vsel_reg; int vsel_shift; int vsel_mask; |
167e3d8af make mc13783 regu... |
20 21 22 23 24 25 |
}; struct mc13xxx_regulator_priv { struct mc13xxx *mc13xxx; u32 powermisc_pwgt_state; struct mc13xxx_regulator *mc13xxx_regulators; |
93bcb23b3 regulator: mc1389... |
26 |
int num_regulators; |
167e3d8af make mc13783 regu... |
27 28 |
struct regulator_dev *regulators[]; }; |
167e3d8af make mc13783 regu... |
29 30 |
extern int mc13xxx_fixed_regulator_set_voltage(struct regulator_dev *rdev, int min_uV, int max_uV, unsigned *selector); |
167e3d8af make mc13783 regu... |
31 |
|
93bcb23b3 regulator: mc1389... |
32 33 34 35 |
#ifdef CONFIG_OF extern int mc13xxx_get_num_regulators_dt(struct platform_device *pdev); extern struct mc13xxx_regulator_init_data *mc13xxx_parse_regulators_dt( struct platform_device *pdev, struct mc13xxx_regulator *regulators, |
eb0d8e7a1 regulator: mc13xx... |
36 |
int num_regulators); |
93bcb23b3 regulator: mc1389... |
37 38 39 40 41 42 43 44 |
#else static inline int mc13xxx_get_num_regulators_dt(struct platform_device *pdev) { return -ENODEV; } static inline struct mc13xxx_regulator_init_data *mc13xxx_parse_regulators_dt( struct platform_device *pdev, struct mc13xxx_regulator *regulators, |
eb0d8e7a1 regulator: mc13xx... |
45 |
int num_regulators) |
93bcb23b3 regulator: mc1389... |
46 47 48 49 |
{ return NULL; } #endif |
e5680c4de regulator: mc13xx... |
50 51 |
extern const struct regulator_ops mc13xxx_regulator_ops; extern const struct regulator_ops mc13xxx_fixed_regulator_ops; |
167e3d8af make mc13783 regu... |
52 |
|
ec520911e regulator: mc13xx... |
53 |
#define MC13xxx_DEFINE(prefix, _name, _node, _reg, _vsel_reg, _voltages, _ops) \ |
167e3d8af make mc13783 regu... |
54 55 |
[prefix ## _name] = { \ .desc = { \ |
ec520911e regulator: mc13xx... |
56 |
.name = #_node, \ |
167e3d8af make mc13783 regu... |
57 |
.n_voltages = ARRAY_SIZE(_voltages), \ |
34e74f39f regulator: mc13xx... |
58 |
.volt_table = _voltages, \ |
167e3d8af make mc13783 regu... |
59 60 61 62 63 64 65 66 67 68 |
.ops = &_ops, \ .type = REGULATOR_VOLTAGE, \ .id = prefix ## _name, \ .owner = THIS_MODULE, \ }, \ .reg = prefix ## _reg, \ .enable_bit = prefix ## _reg ## _ ## _name ## EN, \ .vsel_reg = prefix ## _vsel_reg, \ .vsel_shift = prefix ## _vsel_reg ## _ ## _name ## VSEL,\ .vsel_mask = prefix ## _vsel_reg ## _ ## _name ## VSEL_M,\ |
167e3d8af make mc13783 regu... |
69 |
} |
ec520911e regulator: mc13xx... |
70 |
#define MC13xxx_FIXED_DEFINE(prefix, _name, _node, _reg, _voltages, _ops) \ |
167e3d8af make mc13783 regu... |
71 72 |
[prefix ## _name] = { \ .desc = { \ |
ec520911e regulator: mc13xx... |
73 |
.name = #_node, \ |
167e3d8af make mc13783 regu... |
74 |
.n_voltages = ARRAY_SIZE(_voltages), \ |
34e74f39f regulator: mc13xx... |
75 |
.volt_table = _voltages, \ |
167e3d8af make mc13783 regu... |
76 77 78 79 80 81 82 |
.ops = &_ops, \ .type = REGULATOR_VOLTAGE, \ .id = prefix ## _name, \ .owner = THIS_MODULE, \ }, \ .reg = prefix ## _reg, \ .enable_bit = prefix ## _reg ## _ ## _name ## EN, \ |
167e3d8af make mc13783 regu... |
83 |
} |
ec520911e regulator: mc13xx... |
84 |
#define MC13xxx_GPO_DEFINE(prefix, _name, _node, _reg, _voltages, _ops) \ |
167e3d8af make mc13783 regu... |
85 86 |
[prefix ## _name] = { \ .desc = { \ |
ec520911e regulator: mc13xx... |
87 |
.name = #_node, \ |
167e3d8af make mc13783 regu... |
88 |
.n_voltages = ARRAY_SIZE(_voltages), \ |
34e74f39f regulator: mc13xx... |
89 |
.volt_table = _voltages, \ |
167e3d8af make mc13783 regu... |
90 91 92 93 94 95 96 |
.ops = &_ops, \ .type = REGULATOR_VOLTAGE, \ .id = prefix ## _name, \ .owner = THIS_MODULE, \ }, \ .reg = prefix ## _reg, \ .enable_bit = prefix ## _reg ## _ ## _name ## EN, \ |
167e3d8af make mc13783 regu... |
97 |
} |
ec520911e regulator: mc13xx... |
98 99 100 101 |
#define MC13xxx_DEFINE_SW(_name, _node, _reg, _vsel_reg, _voltages, ops) \ MC13xxx_DEFINE(SW, _name, _node, _reg, _vsel_reg, _voltages, ops) #define MC13xxx_DEFINE_REGU(_name, _node, _reg, _vsel_reg, _voltages, ops) \ MC13xxx_DEFINE(REGU, _name, _node, _reg, _vsel_reg, _voltages, ops) |
167e3d8af make mc13783 regu... |
102 103 |
#endif |