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