blob: 856509f0c7fa60f5e1e4ff86246fb9ffde4d0400 [file] [log] [blame]
Simon Glass040b0462023-08-14 16:40:25 -06001/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright 2023 Google LLC
4 * Written by Simon Glass <sjg@chromium.org>
5 */
6
7#ifndef __CEDIT_H
8#define __CEDIT_H
9
Tom Rini03de3052024-05-20 13:35:03 -060010#include <stdbool.h>
Simon Glass472317c2023-08-14 16:40:34 -060011#include <dm/ofnode_decl.h>
Tom Rini03de3052024-05-20 13:35:03 -060012#include <linux/types.h>
Simon Glass472317c2023-08-14 16:40:34 -060013
Simon Glass2dee81f2023-08-14 16:40:33 -060014struct abuf;
Simon Glass040b0462023-08-14 16:40:25 -060015struct expo;
Simon Glass8d0f8902023-08-14 16:40:27 -060016struct scene;
Simon Glass790687c2024-10-14 16:32:03 -060017struct udevice;
Simon Glass040b0462023-08-14 16:40:25 -060018struct video_priv;
Tom Rini03de3052024-05-20 13:35:03 -060019struct udevice;
Simon Glass040b0462023-08-14 16:40:25 -060020
Simon Glass2dee81f2023-08-14 16:40:33 -060021enum {
22 /* size increment for writing FDT */
23 CEDIT_SIZE_INC = 1024,
24};
25
26/* Name of the cedit node in the devicetree */
27#define CEDIT_NODE_NAME "cedit-values"
28
29extern struct expo *cur_exp;
30
Simon Glass040b0462023-08-14 16:40:25 -060031/**
32 * cedit_arange() - Arrange objects in a configuration-editor scene
33 *
34 * @exp: Expo to update
35 * @vid_priv: Private info of the video device
36 * @scene_id: scene ID to arrange
37 * Returns: 0 if OK, -ve on error
38 */
39int cedit_arange(struct expo *exp, struct video_priv *vid_priv, uint scene_id);
40
41/**
42 * cedit_run() - Run a configuration editor
43 *
44 * This accepts input until the user quits with Escape
45 *
46 * @exp: Expo to use
47 * Returns: 0 if OK, -ve on error
48 */
49int cedit_run(struct expo *exp);
50
Simon Glass8d0f8902023-08-14 16:40:27 -060051/**
52 * cedit_prepare() - Prepare to run a cedit
53 *
54 * Set up the video device, select the first scene and highlight the first item.
55 * This ensures that all menus have a selected item.
56 *
57 * @exp: Expo to use
58 * @vid_privp: Set to private data for the video device
59 * @scnp: Set to the first scene
60 * Return: scene ID of first scene if OK, -ve on error
61 */
62int cedit_prepare(struct expo *exp, struct video_priv **vid_privp,
63 struct scene **scnp);
64
Simon Glass2dee81f2023-08-14 16:40:33 -060065/**
66 * cedit_write_settings() - Write settings in FDT format
67 *
68 * Sets up an FDT with the settings
69 *
70 * @exp: Expo to write settings from
71 * @buf: Returns abuf containing the settings FDT (inited by this function)
72 * Return: 0 if OK, -ve on error
73 */
74int cedit_write_settings(struct expo *exp, struct abuf *buf);
75
Simon Glass472317c2023-08-14 16:40:34 -060076/**
77 * cedit_read_settings() - Read settings in FDT format
78 *
79 * Read an FDT with the settings
80 *
81 * @exp: Expo to read settings into
82 * @tree: Tree to read from
83 * Return: 0 if OK, -ve on error
84 */
85int cedit_read_settings(struct expo *exp, oftree tree);
86
Simon Glassfc9c0e02023-08-14 16:40:35 -060087/**
88 * cedit_write_settings_env() - Write settings to envrionment variables
89 *
90 * @exp: Expo to write settings from
91 * @verbose: true to print each var as it is set
92 * Return: 0 if OK, -ve on error
93 */
94int cedit_write_settings_env(struct expo *exp, bool verbose);
95
Simon Glassbcf2b722023-08-14 16:40:36 -060096/*
97 * cedit_read_settings_env() - Read settings from the environment
98 *
99 * @exp: Expo to read settings into
100 * @verbose: true to print each var before it is read
101 */
102int cedit_read_settings_env(struct expo *exp, bool verbose);
103
Simon Glasseb6c71b2023-08-14 16:40:37 -0600104/**
105 * cedit_write_settings_cmos() - Write settings to CMOS RAM
106 *
107 * Write settings to the defined places in CMOS RAM
108 *
109 * @exp: Expo to write settings from
110 * @dev: UCLASS_RTC device containing space for this information
111 * Returns 0 if OK, -ve on error
112 * @verbose: true to print a summary at the end
113 */
114int cedit_write_settings_cmos(struct expo *exp, struct udevice *dev,
115 bool verbose);
116
Simon Glasscfc402d2023-08-14 16:40:38 -0600117/**
118 * cedit_read_settings_cmos() - Read settings from CMOS RAM
119 *
120 * Read settings from the defined places in CMO RAM
121 *
122 * @exp: Expo to read settings into
123 * @dev: RTC device to read settings from
124 * @verbose: true to print a summary at the end
125 */
126int cedit_read_settings_cmos(struct expo *exp, struct udevice *dev,
127 bool verbose);
128
Simon Glass040b0462023-08-14 16:40:25 -0600129#endif /* __CEDIT_H */