• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  *
4  * This software is licensed under the terms of the GNU General Public
5  * License version 2, as published by the Free Software Foundation, and
6  * may be copied, distributed, and modified under those terms.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  */
14 #include "regulator_adapter_consumer.h"
15 #include "regulator_adapter.h"
16 #include <linux/kernel.h>
17 #include <linux/device.h>
18 #include <linux/platform_device.h>
19 #include <linux/regulator/driver.h>
20 #include <linux/regulator/machine.h>
21 #include <linux/regulator/consumer.h>
22 #include "hdf_log.h"
23 
24 #define HDF_LOG_TAG regulator_linux_adapter
25 
RegulatorAdapterConsumerDevRelease(struct device * dev)26 static void RegulatorAdapterConsumerDevRelease(struct device *dev)
27 {
28 }
29 
30 static struct platform_device RegulatorAdapterConsumerPlatformDevice = {
31     .name = "regulator_adapter_consumer01",
32     .id = -1,
33     .dev = {
34         .release = RegulatorAdapterConsumerDevRelease,
35     }
36 };
37 
38 struct platform_device *g_regulatorAdapterDev;
RegulatorAdapterConsumerPlatformProbe(struct platform_device * platform_dev)39 static int RegulatorAdapterConsumerPlatformProbe(struct platform_device *platform_dev)
40 {
41     if (platform_dev != NULL) {
42         g_regulatorAdapterDev = platform_dev;
43         LinuxRegulatorSetConsumerDev(&platform_dev->dev);
44         HDF_LOGI("%s success", __func__);
45         return HDF_SUCCESS;
46     }
47 
48     HDF_LOGE("%s: fail", __func__);
49     return HDF_FAILURE;
50 }
51 
RegulatorAdapterConsumerPlatformRemove(struct platform_device * platform_dev)52 static int RegulatorAdapterConsumerPlatformRemove(struct platform_device *platform_dev)
53 {
54     if (platform_dev == NULL) {
55         HDF_LOGE("%s: fail", __func__);
56         return HDF_FAILURE;
57     }
58     HDF_LOGI("%s: success", __func__);
59     return HDF_SUCCESS;
60 }
61 
62 static struct platform_driver RegulatorAdapterConsumerPlatformDriver = {
63     .driver = {
64         .name = "regulator_adapter_consumer01",
65         .owner = THIS_MODULE,
66     },
67     .probe = RegulatorAdapterConsumerPlatformProbe,
68     .remove = RegulatorAdapterConsumerPlatformRemove,
69 };
70 
RegulatorAdapterConsumerInit(void)71 int RegulatorAdapterConsumerInit(void)
72 {
73     int ret;
74 
75     ret = platform_device_register(&RegulatorAdapterConsumerPlatformDevice);
76     if (ret != 0) {
77         HDF_LOGE("%s: fail", __func__);
78         return ret;
79     }
80 
81     ret = platform_driver_register(&RegulatorAdapterConsumerPlatformDriver);
82     return ret;
83 }
84 
RegulatorAdapterConsumerModuleInit(void)85 int __init RegulatorAdapterConsumerModuleInit(void)
86 {
87     int ret;
88 
89     ret = platform_device_register(&RegulatorAdapterConsumerPlatformDevice);
90     if (ret != 0) {
91         HDF_LOGE("%s: fail", __func__);
92         return ret;
93     }
94     ret = platform_driver_register(&RegulatorAdapterConsumerPlatformDriver);
95     return ret;
96 }
RegulatorAdapterConsumerExit(void)97 void __exit RegulatorAdapterConsumerExit(void)
98 {
99     platform_device_unregister(&RegulatorAdapterConsumerPlatformDevice);
100     platform_driver_unregister(&RegulatorAdapterConsumerPlatformDriver);
101 }
102 
103 MODULE_DESCRIPTION("Regulator Adapter Consumer Platform Device");
104 MODULE_LICENSE("GPL");
105