"Das U-Boot" Source Tree
at master 129 lines 3.3 kB view raw
1/* 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 10#include <stdbool.h> 11#include <dm/ofnode_decl.h> 12#include <linux/types.h> 13 14struct abuf; 15struct expo; 16struct scene; 17struct udevice; 18struct video_priv; 19struct udevice; 20 21enum { 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 31/** 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 51/** 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 65/** 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 76/** 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 87/** 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 96/* 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 104/** 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 117/** 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 129#endif /* __CEDIT_H */