1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun struct acpi_smb_hc; 3*4882a593Smuzhiyun enum acpi_smb_protocol { 4*4882a593Smuzhiyun SMBUS_WRITE_QUICK = 2, 5*4882a593Smuzhiyun SMBUS_READ_QUICK = 3, 6*4882a593Smuzhiyun SMBUS_SEND_BYTE = 4, 7*4882a593Smuzhiyun SMBUS_RECEIVE_BYTE = 5, 8*4882a593Smuzhiyun SMBUS_WRITE_BYTE = 6, 9*4882a593Smuzhiyun SMBUS_READ_BYTE = 7, 10*4882a593Smuzhiyun SMBUS_WRITE_WORD = 8, 11*4882a593Smuzhiyun SMBUS_READ_WORD = 9, 12*4882a593Smuzhiyun SMBUS_WRITE_BLOCK = 0xa, 13*4882a593Smuzhiyun SMBUS_READ_BLOCK = 0xb, 14*4882a593Smuzhiyun SMBUS_PROCESS_CALL = 0xc, 15*4882a593Smuzhiyun SMBUS_BLOCK_PROCESS_CALL = 0xd, 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun enum acpi_sbs_device_addr { 19*4882a593Smuzhiyun ACPI_SBS_CHARGER = 0x9, 20*4882a593Smuzhiyun ACPI_SBS_MANAGER = 0xa, 21*4882a593Smuzhiyun ACPI_SBS_BATTERY = 0xb, 22*4882a593Smuzhiyun }; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun typedef void (*smbus_alarm_callback)(void *context); 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun extern int acpi_smbus_read(struct acpi_smb_hc *hc, u8 protocol, u8 address, 27*4882a593Smuzhiyun u8 command, u8 *data); 28*4882a593Smuzhiyun extern int acpi_smbus_write(struct acpi_smb_hc *hc, u8 protocol, u8 slave_address, 29*4882a593Smuzhiyun u8 command, u8 *data, u8 length); 30*4882a593Smuzhiyun extern int acpi_smbus_register_callback(struct acpi_smb_hc *hc, 31*4882a593Smuzhiyun smbus_alarm_callback callback, void *context); 32*4882a593Smuzhiyun extern int acpi_smbus_unregister_callback(struct acpi_smb_hc *hc); 33