| #ifndef _SPMI_SPMI_H |
| #define _SPMI_SPMI_H |
| |
| /** |
| * struct dm_spmi_ops - SPMI device I/O interface |
| * |
| * Should be implemented by UCLASS_SPMI device drivers. The standard |
| * device operations provides the I/O interface for it's childs. |
| * |
| * @read: read register 'reg' of slave 'usid' and peripheral 'pid' |
| * @write: write register 'reg' of slave 'usid' and peripheral 'pid' |
| * |
| * Each register is 8-bit, both read and write can return negative values |
| * on error. |
| */ |
| struct dm_spmi_ops { |
| int (*read)(struct udevice *dev, int usid, int pid, int reg); |
| int (*write)(struct udevice *dev, int usid, int pid, int reg, |
| uint8_t value); |
| }; |
| |
| /** |
| * spmi_reg_read() - read a register from specific slave/peripheral |
| * |
| * @dev: SPMI bus to read |
| * @usid SlaveID |
| * @pid Peripheral ID |
| * @reg: Register to read |
| * Return: value read on success or negative value of errno. |
| */ |
| int spmi_reg_read(struct udevice *dev, int usid, int pid, int reg); |
| |
| /** |
| * spmi_reg_write() - write a register of specific slave/peripheral |
| * |
| * @dev: SPMI bus to write |
| * @usid SlaveID |
| * @pid Peripheral ID |
| * @reg: Register to write |
| * @value: Value to write |
| * Return: 0 on success or negative value of errno. |
| */ |
| int spmi_reg_write(struct udevice *dev, int usid, int pid, int reg, |
| uint8_t value); |
| |
| #endif |