diff options
Diffstat (limited to 'cmd/hwrev.c')
-rw-r--r-- | cmd/hwrev.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cmd/hwrev.c b/cmd/hwrev.c new file mode 100644 index 0000000000..e58c591be6 --- /dev/null +++ b/cmd/hwrev.c @@ -0,0 +1,47 @@ +/* + * (C) Copyright 2020 Hardkernel Co., Ltd + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <command.h> +#include <adc.h> + +#define check_range(min,max,val) (val > 0 && val > min && val < max ? 1 : 0) + +int do_hwrev(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + unsigned int hwrev_adc; + + if (adc_channel_single_shot("saradc", 0, &hwrev_adc)) { + printf("board hw rev failed\n"); + return CMD_RET_FAILURE; + } + + /* rev 1.1 */ + if (check_range(898, 978, hwrev_adc)) { + env_set("hwrev", "v11"); + env_set("dtb_name", "rk3326-odroidgo2-linux-v11.dtb"); + } + /* rev 1.0 */ + else if (check_range(816, 896, hwrev_adc)) { + env_set("hwrev", "v10"); + env_set("dtb_name", "rk3326-odroidgo2-linux.dtb"); + } + /* engineer samples */ + else { + env_set("hwrev", "v00"); + env_set("dtb_name", "rk3326-odroidgo2-linux.dtb"); + } + + debug("adc0 (hw rev) %d\n", hwrev_adc); + + return CMD_RET_SUCCESS; +} + +U_BOOT_CMD( + hwrev, 1, 1, do_hwrev, + "check hw revision of OGA", + "" +); |