18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_cistruct acpi_smb_hc; 38c2ecf20Sopenharmony_cienum acpi_smb_protocol { 48c2ecf20Sopenharmony_ci SMBUS_WRITE_QUICK = 2, 58c2ecf20Sopenharmony_ci SMBUS_READ_QUICK = 3, 68c2ecf20Sopenharmony_ci SMBUS_SEND_BYTE = 4, 78c2ecf20Sopenharmony_ci SMBUS_RECEIVE_BYTE = 5, 88c2ecf20Sopenharmony_ci SMBUS_WRITE_BYTE = 6, 98c2ecf20Sopenharmony_ci SMBUS_READ_BYTE = 7, 108c2ecf20Sopenharmony_ci SMBUS_WRITE_WORD = 8, 118c2ecf20Sopenharmony_ci SMBUS_READ_WORD = 9, 128c2ecf20Sopenharmony_ci SMBUS_WRITE_BLOCK = 0xa, 138c2ecf20Sopenharmony_ci SMBUS_READ_BLOCK = 0xb, 148c2ecf20Sopenharmony_ci SMBUS_PROCESS_CALL = 0xc, 158c2ecf20Sopenharmony_ci SMBUS_BLOCK_PROCESS_CALL = 0xd, 168c2ecf20Sopenharmony_ci}; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_cienum acpi_sbs_device_addr { 198c2ecf20Sopenharmony_ci ACPI_SBS_CHARGER = 0x9, 208c2ecf20Sopenharmony_ci ACPI_SBS_MANAGER = 0xa, 218c2ecf20Sopenharmony_ci ACPI_SBS_BATTERY = 0xb, 228c2ecf20Sopenharmony_ci}; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_citypedef void (*smbus_alarm_callback)(void *context); 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciextern int acpi_smbus_read(struct acpi_smb_hc *hc, u8 protocol, u8 address, 278c2ecf20Sopenharmony_ci u8 command, u8 *data); 288c2ecf20Sopenharmony_ciextern int acpi_smbus_write(struct acpi_smb_hc *hc, u8 protocol, u8 slave_address, 298c2ecf20Sopenharmony_ci u8 command, u8 *data, u8 length); 308c2ecf20Sopenharmony_ciextern int acpi_smbus_register_callback(struct acpi_smb_hc *hc, 318c2ecf20Sopenharmony_ci smbus_alarm_callback callback, void *context); 328c2ecf20Sopenharmony_ciextern int acpi_smbus_unregister_callback(struct acpi_smb_hc *hc); 33