Skip to content
Snippets Groups Projects
Commit c2a7ed5b authored by Tobias Kahlki's avatar Tobias Kahlki Committed by Jonas Höppner
Browse files

[CMD][EEPROM] Add env function that sets UIDs in U-Boot ENV

parent 8ba91288
No related branches found
No related tags found
No related merge requests found
......@@ -21,42 +21,39 @@
/*
* Command Functions
*/
static void do_seco_eeprom_manager_get(int argc, char *const *argv[])
static void do_seco_eeprom_manager_get(const u8 uid, const bool set_env)
{
unsigned long uid = 0;
char *end = NULL;
u8 panel_id = 0, touch_id = 0;
uid = simple_strtoul((*argv)[4], &end, 0);
switch(uid)
{
case UID_PANEL_ID:
if (seco_eeprom_get_panel_id(&panel_id) == 0 && panel_id != 0)
{
panel_id -= '0';
env_set_ulong(ENV_PANEL_ID, panel_id);
env_set("current_overlay_type", "panel");
env_set_ulong("current_overlay_id", panel_id);
if (set_env)
env_set_ulong(ENV_PANEL_ID, panel_id);
else
printf("panel_id: %d\n", panel_id);
}
#if DEBUG
printf("panel_id: %d\n", panel_id);
#endif
break;
case UID_TOUCH_ID:
if(seco_eeprom_get_touch_id(&touch_id) == 0 && touch_id != 0)
{
touch_id -= '0';
env_set_ulong(ENV_TOUCH_ID, touch_id);
env_set("current_overlay_type", "touch");
env_set_ulong("current_overlay_id", touch_id);
if (set_env)
env_set_ulong(ENV_TOUCH_ID, touch_id);
else
printf("touch_id: %d\n", touch_id);
}
#if DEBUG
printf("touch_id: %d\n", touch_id);
#endif
break;
default:
printf("Error: Unknown/Unsupported UID \"%s\"\n", (*argv)[4]);
if (!set_env)
printf("Error: Unknown/Unsupported UID \"%02X\"\n", uid);
}
}
......@@ -65,6 +62,14 @@ static void do_seco_eeprom_manager_set(int argc, char *const *argv[])
/* @TODO */
}
static void do_seco_eeprom_manager_env(void)
{
u8 uid = 0;
for (uid = 0; uid < UID_NONE; ++uid)
do_seco_eeprom_manager_get(uid, true);
}
static void do_seco_eeprom_manager_print(void)
{
seco_eeprom_print_all();
......@@ -82,7 +87,7 @@ static void do_seco_eeprom_manager_format(unsigned long i2c_bus, unsigned long i
static int do_seco_eeprom_manager(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
unsigned long i2c_bus = 0, i2c_addr = 0;
unsigned long i2c_bus = 0, i2c_addr = 0, uid = 0;
char *end = NULL;
#if DEBUG
......@@ -101,11 +106,16 @@ static int do_seco_eeprom_manager(struct cmd_tbl *cmdtp, int flag, int argc, cha
seco_eeprom_init(i2c_bus, i2c_addr);
if (!strcmp(argv[1], "get"))
do_seco_eeprom_manager_get(argc, &argv);
{
uid = simple_strtoul(argv[4], &end, 0);
do_seco_eeprom_manager_get(uid, false);
}
#if DEBUG
else if (!strcmp(argv[1], "set"))
do_seco_eeprom_manager_set(argc, &argv);
#endif
else if (!strcmp(argv[1], "env"))
do_seco_eeprom_manager_env();
else if (!strcmp(argv[1], "print"))
do_seco_eeprom_manager_print();
#if DEBUG
......@@ -125,11 +135,13 @@ static int do_seco_eeprom_manager(struct cmd_tbl *cmdtp, int flag, int argc, cha
#if DEBUG
#define CMD_HELP "get <I2C_BUS> <I2C_ADDR> <UID>\n" \
" set <I2C_BUS> <I2C_ADDR> <UID> <VALUE>\n" \
" env <I2C_BUS> <I2C_ADDR>\n" \
" print <I2C_BUS> <I2C_ADDR>\n" \
" dump <I2C_BUS> <I2C_ADDR>\n" \
" format <I2C_BUS> <I2C_ADDR>\n"
#else
#define CMD_HELP "get <I2C_BUS> <I2C_ADDR> <UID>\n" \
" env <I2C_BUS> <I2C_ADDR>\n" \
" print <I2C_BUS> <I2C_ADDR>\n"
#endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment