regulator_get的功能参数返回值并且写一个例子
时间: 2024-05-15 14:19:40 浏览: 153
有返回值的函数
函数功能:获取指定寄存器的值。
函数原型:`uint32_t regulator_get(struct regulator_dev *rdev)`
函数参数:
- `rdev`:指向`struct regulator_dev`类型结构体的指针,表示要获取值的寄存器。
函数返回值:
- `uint32_t`类型,表示获取到的寄存器值。如果获取失败,返回一个负数错误码。
函数例子:
```c
#include <linux/regulator/consumer.h>
#include <linux/module.h>
static struct regulator *my_regulator;
static int __init my_module_init(void)
{
struct device *dev;
uint32_t value;
int ret;
dev = &platform_device->dev;
my_regulator = devm_regulator_get(dev, "my_regulator");
if (IS_ERR(my_regulator)) {
pr_err("failed to get my_regulator\n");
return PTR_ERR(my_regulator);
}
ret = regulator_enable(my_regulator);
if (ret) {
pr_err("failed to enable my_regulator\n");
return ret;
}
value = regulator_get_voltage(my_regulator);
pr_info("my_regulator voltage: %u mV\n", value / 1000);
return 0;
}
static void __exit my_module_exit(void)
{
regulator_disable(my_regulator);
}
module_init(my_module_init);
module_exit(my_module_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("Description");
```
上面的例子中,我们首先通过`devm_regulator_get`函数获取了一个名为`my_regulator`的寄存器,然后使用`regulator_enable`函数启用它。
接下来,我们使用`regulator_get_voltage`函数获取了`my_regulator`的电压值,并将其打印出来。
最后,在模块退出时,我们使用`regulator_disable`函数禁用了`my_regulator`。
阅读全文