aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-08-14 16:40:37 -0600
committerTom Rini <trini@konsulko.com>2023-08-25 13:54:33 -0400
commiteb6c71b56282d3054dbffb83793e7d2c6745578e (patch)
tree0ad2e2b829a5afca3442eb2f58b09a6fb635b582 /include
parentbcf2b7202e960e7fb3df8d5e8ed0d6fa00a5a9fa (diff)
downloadu-boot-eb6c71b56282d3054dbffb83793e7d2c6745578e.tar.gz
expo: cedit: Support writing settings to CMOS RAM
Add a command to write cedit settings to CMOS RAM so that it can be preserved across a reboot. This uses a simple bit-encoding, where each field has a 'bit position' and a 'bit length' in the schema. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/cedit.h13
-rw-r--r--include/expo.h6
2 files changed, 18 insertions, 1 deletions
diff --git a/include/cedit.h b/include/cedit.h
index fe10e6c829c..2970965b5f6 100644
--- a/include/cedit.h
+++ b/include/cedit.h
@@ -97,4 +97,17 @@ int cedit_write_settings_env(struct expo *exp, bool verbose);
*/
int cedit_read_settings_env(struct expo *exp, bool verbose);
+/**
+ * cedit_write_settings_cmos() - Write settings to CMOS RAM
+ *
+ * Write settings to the defined places in CMOS RAM
+ *
+ * @exp: Expo to write settings from
+ * @dev: UCLASS_RTC device containing space for this information
+ * Returns 0 if OK, -ve on error
+ * @verbose: true to print a summary at the end
+ */
+int cedit_write_settings_cmos(struct expo *exp, struct udevice *dev,
+ bool verbose);
+
#endif /* __CEDIT_H */
diff --git a/include/expo.h b/include/expo.h
index da151074d20..a2b3a71c159 100644
--- a/include/expo.h
+++ b/include/expo.h
@@ -187,6 +187,8 @@ enum scene_obj_flags_t {
* @type: Type of this object
* @dim: Dimensions for this object
* @flags: Flags for this object
+ * @bit_length: Number of bits used for this object in CMOS RAM
+ * @start_bit: Start bit to use for this object in CMOS RAM
* @sibling: Node to link this object to its siblings
*/
struct scene_obj {
@@ -195,7 +197,9 @@ struct scene_obj {
uint id;
enum scene_obj_t type;
struct scene_dim dim;
- int flags;
+ u8 flags;
+ u8 bit_length;
+ u16 start_bit;
struct list_head sibling;
};