diff options
author | Sergey Ryazanov <ryazanov.s.a@gmail.com> | 2014-10-29 02:18:45 +0300 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2014-11-24 09:45:28 +0300 |
commit | 1654861f6e02e74a2ba059d1f62dc0356429d7cf (patch) | |
tree | 06ca7f47a494bf1e24bd186e2b82a95d1e2ced25 /arch/mips/ath25/devices.c | |
parent | a7473717483ef3bb78563611bf1b3b82c5515b2e (diff) | |
download | linux-1654861f6e02e74a2ba059d1f62dc0356429d7cf.tar.xz |
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.c | 17 |
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) |