summaryrefslogtreecommitdiff
path: root/baseboard/zork/cbi_ssfc.h
diff options
context:
space:
mode:
authorPeter Marheine <pmarheine@chromium.org>2021-01-29 15:19:04 +1100
committerCommit Bot <commit-bot@chromium.org>2021-02-01 00:42:07 +0000
commit0c149069f805a7858e7c3074d97f29949106138c (patch)
tree73a6e262142af8a91a22731ed58ca878b30f6e4e /baseboard/zork/cbi_ssfc.h
parent42eb485a06a851ebc3a7ea35dbb4498fcf3c61ac (diff)
downloadchrome-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.h18
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_ */