]>
Commit | Line | Data |
---|---|---|
04868b40 MK |
1 | /* |
2 | * SPMI bus uclass driver | |
3 | * | |
4 | * (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com> | |
5 | * | |
6 | * SPDX-License-Identifier: GPL-2.0+ | |
7 | */ | |
8 | ||
9 | #include <common.h> | |
10 | #include <dm.h> | |
11 | #include <errno.h> | |
12 | #include <dm/root.h> | |
13 | #include <spmi/spmi.h> | |
14 | #include <linux/ctype.h> | |
15 | ||
16 | DECLARE_GLOBAL_DATA_PTR; | |
17 | ||
18 | int spmi_reg_read(struct udevice *dev, int usid, int pid, int reg) | |
19 | { | |
20 | const struct dm_spmi_ops *ops = dev_get_driver_ops(dev); | |
21 | ||
22 | if (!ops || !ops->read) | |
23 | return -ENOSYS; | |
24 | ||
25 | return ops->read(dev, usid, pid, reg); | |
26 | } | |
27 | ||
28 | int spmi_reg_write(struct udevice *dev, int usid, int pid, int reg, | |
29 | uint8_t value) | |
30 | { | |
31 | const struct dm_spmi_ops *ops = dev_get_driver_ops(dev); | |
32 | ||
33 | if (!ops || !ops->write) | |
34 | return -ENOSYS; | |
35 | ||
36 | return ops->write(dev, usid, pid, reg, value); | |
37 | } | |
38 | ||
39 | static int spmi_post_bind(struct udevice *dev) | |
40 | { | |
41 | return dm_scan_fdt_node(dev, gd->fdt_blob, dev->of_offset, false); | |
42 | } | |
43 | ||
44 | UCLASS_DRIVER(spmi) = { | |
45 | .id = UCLASS_SPMI, | |
46 | .name = "spmi", | |
47 | .post_bind = spmi_post_bind, | |
48 | }; |