]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | // SPDX-License-Identifier: GPL-2.0+ |
fc760cb8 SG |
2 | /* |
3 | * Copyright (c) 2016 Google, Inc | |
4 | * Written by Simon Glass <[email protected]> | |
fc760cb8 SG |
5 | */ |
6 | ||
b953ec2b PD |
7 | #define LOG_CATEGORY UCLASS_PWM |
8 | ||
fc760cb8 SG |
9 | #include <common.h> |
10 | #include <dm.h> | |
11 | #include <pwm.h> | |
12 | ||
0b60111a KY |
13 | int pwm_set_invert(struct udevice *dev, uint channel, bool polarity) |
14 | { | |
15 | struct pwm_ops *ops = pwm_get_ops(dev); | |
16 | ||
17 | if (!ops->set_invert) | |
18 | return -ENOSYS; | |
19 | ||
20 | return ops->set_invert(dev, channel, polarity); | |
21 | } | |
22 | ||
fc760cb8 SG |
23 | int pwm_set_config(struct udevice *dev, uint channel, uint period_ns, |
24 | uint duty_ns) | |
25 | { | |
26 | struct pwm_ops *ops = pwm_get_ops(dev); | |
27 | ||
28 | if (!ops->set_config) | |
29 | return -ENOSYS; | |
30 | ||
31 | return ops->set_config(dev, channel, period_ns, duty_ns); | |
32 | } | |
33 | ||
34 | int pwm_set_enable(struct udevice *dev, uint channel, bool enable) | |
35 | { | |
36 | struct pwm_ops *ops = pwm_get_ops(dev); | |
37 | ||
38 | if (!ops->set_enable) | |
39 | return -ENOSYS; | |
40 | ||
41 | return ops->set_enable(dev, channel, enable); | |
42 | } | |
43 | ||
44 | UCLASS_DRIVER(pwm) = { | |
45 | .id = UCLASS_PWM, | |
46 | .name = "pwm", | |
47 | }; |