aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/ath25/devices.c
diff options
context:
space:
mode:
authorSergey Ryazanov <ryazanov.s.a@gmail.com>2014-10-29 03:18:45 +0400
committerRalf Baechle <ralf@linux-mips.org>2014-11-24 07:45:28 +0100
commit1654861f6e02e74a2ba059d1f62dc0356429d7cf (patch)
tree06ca7f47a494bf1e24bd186e2b82a95d1e2ced25 /arch/mips/ath25/devices.c
parentMIPS: ath25: add board configuration detection (diff)
downloadlinux-dev-1654861f6e02e74a2ba059d1f62dc0356429d7cf.tar.xz
linux-dev-1654861f6e02e74a2ba059d1f62dc0356429d7cf.zip
MIPS: ath25: add SoC type detection
Detect SoC type based on device ID and board configuration data. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> Cc: Linux MIPS <linux-mips@linux-mips.org> Patchwork: https://patchwork.linux-mips.org/patch/8244/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/ath25/devices.c')
-rw-r--r--arch/mips/ath25/devices.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/mips/ath25/devices.c b/arch/mips/ath25/devices.c
index d24dbb1ef8ea..62185472ef28 100644
--- a/arch/mips/ath25/devices.c
+++ b/arch/mips/ath25/devices.c
@@ -9,10 +9,25 @@
#include "ar2315.h"
struct ar231x_board_config ath25_board;
+enum ath25_soc_type ath25_soc = ATH25_SOC_UNKNOWN;
+
+static const char * const soc_type_strings[] = {
+ [ATH25_SOC_AR5312] = "Atheros AR5312",
+ [ATH25_SOC_AR2312] = "Atheros AR2312",
+ [ATH25_SOC_AR2313] = "Atheros AR2313",
+ [ATH25_SOC_AR2315] = "Atheros AR2315",
+ [ATH25_SOC_AR2316] = "Atheros AR2316",
+ [ATH25_SOC_AR2317] = "Atheros AR2317",
+ [ATH25_SOC_AR2318] = "Atheros AR2318",
+ [ATH25_SOC_UNKNOWN] = "Atheros (unknown)",
+};
const char *get_system_type(void)
{
- return "Atheros (unknown)";
+ if ((ath25_soc >= ARRAY_SIZE(soc_type_strings)) ||
+ !soc_type_strings[ath25_soc])
+ return soc_type_strings[ATH25_SOC_UNKNOWN];
+ return soc_type_strings[ath25_soc];
}
void __init ath25_serial_setup(u32 mapbase, int irq, unsigned int uartclk)