ec/google: Add command to set APU SKU ID to EC
EC needs to have command to set SKU ID from APU to support specific feature (ex: keyboard backlight) for variant board. BUG=b:65359225 BRANCH=reef TEST=emerge-snappy coreboot Change-Id: I8cd3b8f646d4134d6bfff2869f6df2d9c615c157 Signed-off-by: Kevin Chiu <Kevin.Chiu@quantatw.com> Reviewed-on: https://review.coreboot.org/21504 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
461797e3ed
commit
e2bb059187
@ -263,6 +263,27 @@ int google_chromeec_check_feature(int feature)
|
|||||||
return r.flags[feature / 32] & EC_FEATURE_MASK_0(feature);
|
return r.flags[feature / 32] & EC_FEATURE_MASK_0(feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int google_chromeec_set_sku_id(u32 skuid)
|
||||||
|
{
|
||||||
|
struct chromeec_command cmd;
|
||||||
|
struct ec_sku_id_info set_skuid = {
|
||||||
|
.sku_id = skuid
|
||||||
|
};
|
||||||
|
|
||||||
|
cmd.cmd_code = EC_CMD_SET_SKU_ID;
|
||||||
|
cmd.cmd_version = 0;
|
||||||
|
cmd.cmd_size_in = sizeof(set_skuid);
|
||||||
|
cmd.cmd_data_in = &set_skuid;
|
||||||
|
cmd.cmd_data_out = NULL;
|
||||||
|
cmd.cmd_size_out = 0;
|
||||||
|
cmd.cmd_dev_index = 0;
|
||||||
|
|
||||||
|
if (google_chromeec_command(&cmd) != 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC_RTC)
|
#if IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC_RTC)
|
||||||
int rtc_get(struct rtc_time *time)
|
int rtc_get(struct rtc_time *time)
|
||||||
{
|
{
|
||||||
@ -389,7 +410,7 @@ u16 google_chromeec_get_board_version(void)
|
|||||||
u32 google_chromeec_get_sku_id(void)
|
u32 google_chromeec_get_sku_id(void)
|
||||||
{
|
{
|
||||||
struct chromeec_command cmd;
|
struct chromeec_command cmd;
|
||||||
struct ec_response_sku_id sku_v;
|
struct ec_sku_id_info sku_v;
|
||||||
|
|
||||||
cmd.cmd_code = EC_CMD_GET_SKU_ID;
|
cmd.cmd_code = EC_CMD_GET_SKU_ID;
|
||||||
cmd.cmd_version = 0;
|
cmd.cmd_version = 0;
|
||||||
|
@ -50,6 +50,7 @@ int google_chromeec_check_feature(int feature);
|
|||||||
uint8_t google_chromeec_calc_checksum(const uint8_t *data, int size);
|
uint8_t google_chromeec_calc_checksum(const uint8_t *data, int size);
|
||||||
u16 google_chromeec_get_board_version(void);
|
u16 google_chromeec_get_board_version(void);
|
||||||
u32 google_chromeec_get_sku_id(void);
|
u32 google_chromeec_get_sku_id(void);
|
||||||
|
int google_chromeec_set_sku_id(u32 skuid);
|
||||||
u32 google_chromeec_get_events_b(void);
|
u32 google_chromeec_get_events_b(void);
|
||||||
int google_chromeec_clear_events_b(u32 mask);
|
int google_chromeec_clear_events_b(u32 mask);
|
||||||
int google_chromeec_kbbacklight(int percent);
|
int google_chromeec_kbbacklight(int percent);
|
||||||
|
@ -1124,7 +1124,10 @@ struct __ec_align4 ec_response_get_features {
|
|||||||
/* Get the board's SKU ID from EC */
|
/* Get the board's SKU ID from EC */
|
||||||
#define EC_CMD_GET_SKU_ID 0x000E
|
#define EC_CMD_GET_SKU_ID 0x000E
|
||||||
|
|
||||||
struct __ec_align4 ec_response_sku_id {
|
/* Set SKU ID from AP */
|
||||||
|
#define EC_CMD_SET_SKU_ID 0x000F
|
||||||
|
|
||||||
|
struct __ec_align4 ec_sku_id_info {
|
||||||
uint32_t sku_id;
|
uint32_t sku_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user