Blame view
drivers/regulator/dummy.c
2.18 KB
34abbd68e regulator: Provid... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/* * dummy.c * * Copyright 2010 Wolfson Microelectronics PLC. * * Author: Mark Brown <broonie@opensource.wolfsonmicro.com> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This is useful for systems with mixed controllable and * non-controllable regulators, as well as for allowing testing on * systems with no controllable regulators. */ #include <linux/err.h> |
22be053ff regulator: Add ex... |
19 |
#include <linux/export.h> |
34abbd68e regulator: Provid... |
20 21 22 23 24 25 26 |
#include <linux/platform_device.h> #include <linux/regulator/driver.h> #include <linux/regulator/machine.h> #include "dummy.h" struct regulator_dev *dummy_regulator_rdev; |
8669544a7 regulator: dummy:... |
27 28 29 30 31 |
static struct regulator_init_data dummy_initdata = { .constraints = { .always_on = 1, }, }; |
34abbd68e regulator: Provid... |
32 33 |
static struct regulator_ops dummy_ops; |
e1326eff8 regulator: dummy:... |
34 |
static const struct regulator_desc dummy_desc = { |
215b8b055 regulator: make t... |
35 |
.name = "regulator-dummy", |
34abbd68e regulator: Provid... |
36 37 38 39 40 |
.id = -1, .type = REGULATOR_VOLTAGE, .owner = THIS_MODULE, .ops = &dummy_ops, }; |
a5023574d regulator: remove... |
41 |
static int dummy_regulator_probe(struct platform_device *pdev) |
c08957a2c regulator: Proper... |
42 |
{ |
c172708d3 regulator: core: ... |
43 |
struct regulator_config config = { }; |
c08957a2c regulator: Proper... |
44 |
int ret; |
0f82b6cf7 regulator: dummy:... |
45 |
config.dev = &pdev->dev; |
c172708d3 regulator: core: ... |
46 47 48 |
config.init_data = &dummy_initdata; dummy_regulator_rdev = regulator_register(&dummy_desc, &config); |
c08957a2c regulator: Proper... |
49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
if (IS_ERR(dummy_regulator_rdev)) { ret = PTR_ERR(dummy_regulator_rdev); pr_err("Failed to register regulator: %d ", ret); return ret; } return 0; } static struct platform_driver dummy_regulator_driver = { .probe = dummy_regulator_probe, .driver = { .name = "reg-dummy", |
c08957a2c regulator: Proper... |
63 64 |
}, }; |
34abbd68e regulator: Provid... |
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
static struct platform_device *dummy_pdev; void __init regulator_dummy_init(void) { int ret; dummy_pdev = platform_device_alloc("reg-dummy", -1); if (!dummy_pdev) { pr_err("Failed to allocate dummy regulator device "); return; } ret = platform_device_add(dummy_pdev); if (ret != 0) { pr_err("Failed to register dummy regulator device: %d ", ret); platform_device_put(dummy_pdev); return; } |
c08957a2c regulator: Proper... |
85 86 87 88 |
ret = platform_driver_register(&dummy_regulator_driver); if (ret != 0) { pr_err("Failed to register dummy regulator driver: %d ", ret); |
34abbd68e regulator: Provid... |
89 |
platform_device_unregister(dummy_pdev); |
34abbd68e regulator: Provid... |
90 91 |
} } |