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 47