1 #include <linux/slab.h>
2 #include <linux/platform_device.h>
3 #include <linux/regulator/machine.h>
4 #include <linux/regulator/fixed.h>
6 struct fixed_regulator_data
{
7 struct fixed_voltage_config cfg
;
8 struct regulator_init_data init_data
;
9 struct platform_device pdev
;
12 static void regulator_fixed_release(struct device
*dev
)
14 struct fixed_regulator_data
*data
= container_of(dev
,
15 struct fixed_regulator_data
, pdev
.dev
);
20 * regulator_register_fixed - register a no-op fixed regulator
21 * @id: platform device id
22 * @supplies: consumers for this regulator
23 * @num_supplies: number of consumers
25 struct platform_device
*regulator_register_fixed(int id
,
26 struct regulator_consumer_supply
*supplies
, int num_supplies
)
28 struct fixed_regulator_data
*data
;
30 data
= kzalloc(sizeof(*data
), GFP_KERNEL
);
34 data
->cfg
.supply_name
= "fixed-dummy";
35 data
->cfg
.microvolts
= 0;
36 data
->cfg
.gpio
= -EINVAL
;
37 data
->cfg
.enabled_at_boot
= 1;
38 data
->cfg
.init_data
= &data
->init_data
;
40 data
->init_data
.constraints
.always_on
= 1;
41 data
->init_data
.consumer_supplies
= supplies
;
42 data
->init_data
.num_consumer_supplies
= num_supplies
;
44 data
->pdev
.name
= "reg-fixed-voltage";
46 data
->pdev
.dev
.platform_data
= &data
->cfg
;
47 data
->pdev
.dev
.release
= regulator_fixed_release
;
49 platform_device_register(&data
->pdev
);