common fw: Add hexval() utility function

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I724c14d1dee9e268f666030053fbf62ce5e1ba71
diff --git a/firmware/ice40-riscv/common/utils.c b/firmware/ice40-riscv/common/utils.c
index 1ac111b..7c7d3d0 100644
--- a/firmware/ice40-riscv/common/utils.c
+++ b/firmware/ice40-riscv/common/utils.c
@@ -36,6 +36,19 @@
 	return buf;
 }
 
+uint8_t
+hexval(char c)
+{
+	if (c >= '0' && c <= '9')
+		return c - '0';
+	else if (c >= 'a' && c <= 'f')
+		return 10 + (c - 'a');
+	else if (c >= 'A' && c <= 'F')
+		return 10 + (c - 'A');
+	else
+		return 0;
+}
+
 
 void
 _panic(const char *file, int lineno, const char *fmt, ...)
diff --git a/firmware/ice40-riscv/common/utils.h b/firmware/ice40-riscv/common/utils.h
index 03359ae..37cc88e 100644
--- a/firmware/ice40-riscv/common/utils.h
+++ b/firmware/ice40-riscv/common/utils.h
@@ -10,6 +10,7 @@
 #include <stdbool.h>
 
 char *hexstr(void *d, int n, bool space);
+uint8_t hexval(char c);
 
 void _panic(const char *file, int lineno, const char *fmt, ...);
 #define panic(fmt, ...) _panic(__FILE__, __LINE__, fmt, ##__VA_ARGS__)