]> git.ipfire.org Git - people/ms/u-boot.git/blob - include/spmi/spmi.h
Convert CONFIG_SYS_BOOTCOUNT_SINGLEWORD to Kconfig
[people/ms/u-boot.git] / include / spmi / spmi.h
1 #ifndef _SPMI_SPMI_H
2 #define _SPMI_SPMI_H
3
4 /**
5 * struct dm_spmi_ops - SPMI device I/O interface
6 *
7 * Should be implemented by UCLASS_SPMI device drivers. The standard
8 * device operations provides the I/O interface for it's childs.
9 *
10 * @read: read register 'reg' of slave 'usid' and peripheral 'pid'
11 * @write: write register 'reg' of slave 'usid' and peripheral 'pid'
12 *
13 * Each register is 8-bit, both read and write can return negative values
14 * on error.
15 */
16 struct dm_spmi_ops {
17 int (*read)(struct udevice *dev, int usid, int pid, int reg);
18 int (*write)(struct udevice *dev, int usid, int pid, int reg,
19 uint8_t value);
20 };
21
22 /**
23 * spmi_reg_read() - read a register from specific slave/peripheral
24 *
25 * @dev: SPMI bus to read
26 * @usid SlaveID
27 * @pid Peripheral ID
28 * @reg: Register to read
29 * @return value read on success or negative value of errno.
30 */
31 int spmi_reg_read(struct udevice *dev, int usid, int pid, int reg);
32
33 /**
34 * spmi_reg_write() - write a register of specific slave/peripheral
35 *
36 * @dev: SPMI bus to write
37 * @usid SlaveID
38 * @pid Peripheral ID
39 * @reg: Register to write
40 * @value: Value to write
41 * @return 0 on success or negative value of errno.
42 */
43 int spmi_reg_write(struct udevice *dev, int usid, int pid, int reg,
44 uint8_t value);
45
46 #endif