/* 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 */