blob: b479e483116a5fa960b88fd3d2793d477f9c67b6 [file] [log] [blame]
Patrick Georgi55189c92020-05-10 20:09:31 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Stefan Reinauer6540ae52007-07-12 16:35:42 +00002
Uwe Hermann6e565942008-03-01 19:06:32 +00003#ifndef INPUT_FILE_H
4#define INPUT_FILE_H
Stefan Reinauer6540ae52007-07-12 16:35:42 +00005
6#include "common.h"
Stefan Reinauera67aab72008-09-27 10:08:28 +00007#include "layout.h"
Stefan Reinauer6540ae52007-07-12 16:35:42 +00008
9typedef struct cmos_write_t cmos_write_t;
10
Stefan Reinauer90b96b62010-01-13 21:00:23 +000011/* This represents a pending CMOS write operation. When changing
12 * multiple CMOS parameter values, we first represent the changes as a
13 * list of pending write operations. This allows us to sanity check all
14 * write operations before any of them are performed.
Stefan Reinauer6540ae52007-07-12 16:35:42 +000015 */
Stefan Reinauer90b96b62010-01-13 21:00:23 +000016struct cmos_write_t {
17 unsigned bit;
18 unsigned length;
19 cmos_entry_config_t config;
20 unsigned long long value;
21 cmos_write_t *next;
22};
Stefan Reinauer6540ae52007-07-12 16:35:42 +000023
Stefan Reinauer90b96b62010-01-13 21:00:23 +000024cmos_write_t *process_input_file(FILE * f);
25void do_cmos_writes(cmos_write_t * list);
Stefan Reinauer6540ae52007-07-12 16:35:42 +000026
27extern const char assignment_regex[];
28
Stefan Reinauer90b96b62010-01-13 21:00:23 +000029#endif /* INPUT_FILE_H */