47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
| #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
 |