env: restore old env_get_char() behaviour

With multiple environments, the 'get_char' callback for env
drivers does not really make sense any more because it is
only supported by two drivers (eeprom and nvram).

To restore single character loading for these drivers,
override 'env_get_char_spec'.

Signed-off-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
diff --git a/env/nvram.c b/env/nvram.c
index 6f76fe4..7cc62b6 100644
--- a/env/nvram.c
+++ b/env/nvram.c
@@ -41,7 +41,10 @@
 #endif
 
 #ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE
-static int env_nvram_get_char(int index)
+/** Call this function from overridden env_get_char_spec() if you need
+ * this functionality.
+ */
+int env_nvram_get_char(int index)
 {
 	uchar c;
 
@@ -113,9 +116,6 @@
 U_BOOT_ENV_LOCATION(nvram) = {
 	.location	= ENVL_NVRAM,
 	ENV_NAME("NVRAM")
-#ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE
-	.get_char	= env_nvram_get_char,
-#endif
 	.load		= env_nvram_load,
 	.save		= env_save_ptr(env_nvram_save),
 	.init		= env_nvram_init,