diff options
author | Peter Marheine <pmarheine@chromium.org> | 2021-01-29 15:19:04 +1100 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-02-01 00:42:07 +0000 |
commit | 0c149069f805a7858e7c3074d97f29949106138c (patch) | |
tree | 73a6e262142af8a91a22731ed58ca878b30f6e4e /baseboard/zork/cbi_ssfc.h | |
parent | 42eb485a06a851ebc3a7ea35dbb4498fcf3c61ac (diff) | |
download | chrome-ec-0c149069f805a7858e7c3074d97f29949106138c.tar.gz |
zork: add SSFC field for auto-mode speaker amp
This also converts the union with bitfields to explicit bit positions:
it's difficult to tell which bits are actually which when using bitfields,
because bitfield layout is implementation-defined (and in practice depends
on target endianness when building with GCC).
BUG=b:177971830
TEST=builds
BRANCH=zork
Signed-off-by: Peter Marheine <pmarheine@chromium.org>
Change-Id: I703571e2bbad51cceac809624f14cf1e6118a899
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2657901
Reviewed-by: Edward Hill <ecgh@chromium.org>
Diffstat (limited to 'baseboard/zork/cbi_ssfc.h')
-rw-r--r-- | baseboard/zork/cbi_ssfc.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/baseboard/zork/cbi_ssfc.h b/baseboard/zork/cbi_ssfc.h index de073847e7..122cca9d5f 100644 --- a/baseboard/zork/cbi_ssfc.h +++ b/baseboard/zork/cbi_ssfc.h @@ -21,14 +21,15 @@ enum ec_ssfc_base_gyro_sensor { SSFC_BASE_GYRO_LSM6DSM = 2, SSFC_BASE_GYRO_ICM426XX = 3, }; +#define SSFC_BASE_GYRO_OFFSET 0 +#define SSFC_BASE_GYRO_MASK GENMASK(2, 0) -union zork_cbi_ssfc { - struct { - enum ec_ssfc_base_gyro_sensor base_sensor : 3; - uint32_t reserved : 29; - }; - uint32_t raw_value; +enum ec_ssfc_spkr_auto_mode { + SSFC_SPKR_AUTO_MODE_OFF = 0, + SSFC_SPKR_AUTO_MODE_ON = 1, }; +#define SSFC_SPKR_AUTO_MODE_OFFSET 3 +#define SSFC_SPKR_AUTO_MODE_MASK GENMASK(3, 3) /** * Get the Base sensor type from SSFC_CONFIG. @@ -37,4 +38,9 @@ union zork_cbi_ssfc { */ enum ec_ssfc_base_gyro_sensor get_cbi_ssfc_base_sensor(void); +/** + * Get whether speaker amp auto mode is enabled from SSFC. + */ +enum ec_ssfc_spkr_auto_mode get_cbi_ssfc_spkr_auto_mode(void); + #endif /* _ZORK_CBI_SSFC__H_ */ |