Home | History | Annotate | Download | only in spmi
      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