From a7ff8c728c79083a9ffa9ee8fdbfb3d42213bf32 Mon Sep 17 00:00:00 2001 From: Joshua Yang Date: Fri, 28 Jun 2019 15:49:54 +0900 Subject: [PATCH] ODROID-COMMON: cpuinfo: set system revision by the board name in DT Change-Id: I4ce4da547d246b3c82eb7dddb36a1d747f4d9cef Signed-off-by: Joshua Yang Signed-off-by: Dongjin Kim --- arch/arm64/kernel/cpuinfo.c | 1 - arch/arm64/kernel/setup.c | 24 ++++++++++++++++++++-- include/linux/platform_data/board_odroid.h | 15 ++++++++++++++ 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 include/linux/platform_data/board_odroid.h diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c index 3ab870c98e35..b7f5d9973f52 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -203,7 +203,6 @@ static int c_show(struct seq_file *m, void *v) seq_puts(m, "\n"); #endif #endif - system_rev = 0x0400; seq_printf(m, "Hardware\t: %s\n", machine_name); seq_printf(m, "Revision\t: %04x\n\n", system_rev); return 0; diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 552d0eb0acd0..6b1d52b94780 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -64,14 +64,24 @@ #include #include +#include + phys_addr_t __fdt_pointer __initdata; -const char *machine_name; +#ifdef CONFIG_ARCH_MESON64_ODROID_COMMON +const char *machine_name = "Hardkernel ODROID Ref."; EXPORT_SYMBOL(machine_name); -unsigned int system_rev; +unsigned int system_rev = 0; EXPORT_SYMBOL(system_rev); +static u32 __odroid_model = 0; +u32 odroid_model(void) +{ + return __odroid_model; +} +#endif + /* * Standard memory resources */ @@ -206,6 +216,16 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys) pr_info("Machine model: %s\n", name); dump_stack_set_arch_desc("%s (DT)", name); + +#ifdef CONFIG_ARCH_MESON64_ODROID_COMMON + if (!strcmp(machine_name, "Hardkernel ODROID-N2")) { + system_rev = 0x0400; + __odroid_model = BOARD_ODROIDN2; + } else if (!strcmp(machine_name, "Hardkernel ODROID-C4")) { + system_rev = 0x0500; + __odroid_model = BOARD_ODROIDC4; + } +#endif } static void __init request_standard_resources(void) diff --git a/include/linux/platform_data/board_odroid.h b/include/linux/platform_data/board_odroid.h new file mode 100644 index 000000000000..c30d3e7ef875 --- /dev/null +++ b/include/linux/platform_data/board_odroid.h @@ -0,0 +1,15 @@ +#ifndef __BOARD_ODROID_H +#define __BOARD_ODROID_H + +#include + +#define BOARD_ODROIDN2 0x09221000 +#define BOARD_ODROIDC4 0x09051000 + +extern bool odroid_amlogic_usb(void); +extern u32 odroid_model(void); + +#define board_is_odroidn2() (odroid_model() == BOARD_ODROIDN2) +#define board_is_odroidc4() (odroid_model() == BOARD_ODROIDC4) + +#endif