From e9340eaf97e06dc18877d157c1ef04890728016a Mon Sep 17 00:00:00 2001 From: James Wylder Date: Mon, 7 Jun 2010 11:28:42 -0500 Subject: [PATCH] [ARM] tegra: stingray: Add board revision identification Add function stingray_revision to return current board revision. Signed-off-by: James Wylder --- arch/arm/mach-tegra/board-stingray.c | 23 +++++++++++++++++++++++ arch/arm/mach-tegra/board-stingray.h | 9 +++++++++ 2 files changed, 32 insertions(+) diff --git a/arch/arm/mach-tegra/board-stingray.c b/arch/arm/mach-tegra/board-stingray.c index dae71d8feb3c..52b3e74a5cac 100644 --- a/arch/arm/mach-tegra/board-stingray.c +++ b/arch/arm/mach-tegra/board-stingray.c @@ -283,6 +283,29 @@ static void __init stingray_power_off_init(void) } } +static int stingray_board_revision = STINGRAY_REVISION_UNKNOWN; + +int stingray_revision(void) +{ + return stingray_board_revision; +} + +static int __init stingray_revision_parse(char *options) +{ + if (!strcmp(options, "m1")) + stingray_board_revision = STINGRAY_REVISION_M1; + else if (!strcmp(options, "p0")) + stingray_board_revision = STINGRAY_REVISION_P0; + else if (!strcmp(options, "p1")) + stingray_board_revision = STINGRAY_REVISION_P1; + else if (!strcmp(options, "p2")) + stingray_board_revision = STINGRAY_REVISION_P2; + + return 1; +} + +__setup("hw_rev=", stingray_revision_parse); + static void __init tegra_stingray_init(void) { struct clk *clk; diff --git a/arch/arm/mach-tegra/board-stingray.h b/arch/arm/mach-tegra/board-stingray.h index 336f7ba40b97..466183778305 100644 --- a/arch/arm/mach-tegra/board-stingray.h +++ b/arch/arm/mach-tegra/board-stingray.h @@ -25,5 +25,14 @@ int stingray_wlan_init(void); int stingray_sensors_init(void); int stingray_touch_init(void); int stingray_spi_init(void); +int stingray_revision(void); + +enum { + STINGRAY_REVISION_UNKNOWN, + STINGRAY_REVISION_M1, + STINGRAY_REVISION_P0, + STINGRAY_REVISION_P1, + STINGRAY_REVISION_P2, +}; #endif -- 2.34.1