Blame view
drivers/regulator/dummy.c
2.19 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 34 35 |
static struct regulator_ops dummy_ops; static struct regulator_desc dummy_desc = { |
215b8b055 regulator: make t... |
36 |
.name = "regulator-dummy", |
34abbd68e regulator: Provid... |
37 38 39 40 41 |
.id = -1, .type = REGULATOR_VOLTAGE, .owner = THIS_MODULE, .ops = &dummy_ops, }; |
a5023574d regulator: remove... |
42 |
static int dummy_regulator_probe(struct platform_device *pdev) |
c08957a2c regulator: Proper... |
43 |
{ |
c172708d3 regulator: core: ... |
44 |
struct regulator_config config = { }; |
c08957a2c regulator: Proper... |
45 |
int ret; |
0f82b6cf7 regulator: dummy:... |
46 |
config.dev = &pdev->dev; |
c172708d3 regulator: core: ... |
47 48 49 |
config.init_data = &dummy_initdata; dummy_regulator_rdev = regulator_register(&dummy_desc, &config); |
c08957a2c regulator: Proper... |
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
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", .owner = THIS_MODULE, }, }; |
34abbd68e regulator: Provid... |
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
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... |
87 88 89 90 |
ret = platform_driver_register(&dummy_regulator_driver); if (ret != 0) { pr_err("Failed to register dummy regulator driver: %d ", ret); |
34abbd68e regulator: Provid... |
91 |
platform_device_unregister(dummy_pdev); |
34abbd68e regulator: Provid... |
92 93 |
} } |