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