blob: 7593117b1baa0351500beaeb28985788be962e56 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef EC_CLEVO_IT5570E_COMMANDS_H
#define EC_CLEVO_IT5570E_COMMANDS_H
#ifndef __ACPI__
#define ECRAM CONFIG_EC_CLEVO_IT5570E_MEM_BASE
/* EC RAM fields and bits */
#define FANC 0x1c8
#define RINF 0x1db
#define TP_TOGGLE_CTRLALTF9 (BIT(4) | BIT(2))
#define ECKS 0x1e2
#define SWFN 3
// #### 0x1e6
#define G3FG 2
#define FOAC 6
#define KBBO 0x1e9
// #### 0x1eb
#define DGPT 3
#define APRD 7
#define PL2B 0x1f0
#define PL2T 0x1f2
#define TAUT 0x1f4
#define FCMD 0x1f8
#define FDAT 0x1f9
#define FBUF 0x1fa
#define FBF1 0x1fb
#define FBF2 0x1fc
#define FBF3 0x1fd
#endif // __ACPI__
/* EC commands */
#define ECCMD_NOP 0x00 /* dummy, triggers FCMDs */
#define ECCMD_ENABLE_ACPI_MODE 0x90
#define ECCMD_DISABLE_ACPI_MODE 0x91
#define ECCMD_READ_MODEL 0x92
#define ECCMD_READ_FW_VER 0x93
#define ECCMD_ENABLE_HOTKEYS 0x98
#define ECCMD_GET_DEVICES_STATE 0x9a
#define ECCMD_SET_INV_DEVICE_STATE 0x9c
#define DEVICE_CAMERA 2
#define DEVICE_STATE(state) (!(state) << 7)
#define ECCMD_SET_BATLOW_ALARM 0x9d
#define ECCMD_SETUP_DEVICES 0xa8
/* FCMD commands */
#define FCMD_DEVICES 0xb8
#define FDAT_DEVICE_SET_INV_STATE 0xc2 /* inverted! en=0xc2|0, dis=0xc2|1 */
#define FCMD_KLED 0xca
#define FDAT_KBLED_WHITE_SET_LEVEL 0x00
#define FDAT_KBLED_WHITE_GET_LEVEL 0x01
#define FCMD_FLEXICHARGER 0xcb
#define FCMD_SET_KBLED_TIMEOUT 0xd4
#ifndef __ACPI__
enum camera_state {
CAMERA_STATE_DISABLE,
CAMERA_STATE_ENABLE,
CAMERA_STATE_KEEP,
};
char *ec_read_model(void);
char *ec_read_fw_version(void);
void ec_set_acpi_mode(bool state);
void ec_set_aprd(void);
void ec_set_enter_g3_in_s4s5(bool state);
void ec_set_dgpu_present(bool state);
void ec_set_fn_win_swap(bool state);
void ec_set_ac_fan_always_on(bool state);
void ec_set_kbled_timeout(uint16_t timeout);
void ec_set_flexicharger(bool state, uint8_t start, uint8_t stop);
void ec_set_camera_boot_state(enum camera_state state);
void ec_set_tp_toggle_mode(uint8_t mode);
#endif // __ACPI__
#endif /* EC_CLEVO_IT5570E_COMMANDS_H */