gflt200: exposed board version via sysfs.

Exposed board version as /sys/devices/platform/gflt200/hw_ver.

Change-Id: I26f6aa6dbb759900c71c18c5213319f09eab4c78
diff --git a/arch/arm/mach-feroceon-kw2/board-gflt200.c b/arch/arm/mach-feroceon-kw2/board-gflt200.c
index 76d1708..e7da5ee 100644
--- a/arch/arm/mach-feroceon-kw2/board-gflt200.c
+++ b/arch/arm/mach-feroceon-kw2/board-gflt200.c
@@ -1,10 +1,28 @@
+#include <linux/device.h>
 #include <linux/err.h>
+#include <linux/gpio.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/sysfs.h>
 
 #define BOARD_NAME		"gflt200"
+#define GPIO_BOARD_VER_0	13
+#define GPIO_BOARD_VER_1	15
+#define GPIO_BOARD_VER_2	18
+
+static ssize_t board_hw_ver_show(struct device *dev,
+					struct device_attribute *attr,
+					char *buf)
+{
+	int hw_ver = gpio_get_value(GPIO_BOARD_VER_0)
+			| (gpio_get_value(GPIO_BOARD_VER_1) << 1)
+			| (gpio_get_value(GPIO_BOARD_VER_2) << 2);
+
+	return sprintf(buf, "%d\n", hw_ver);
+}
+
+static DEVICE_ATTR(hw_ver, S_IRUGO, board_hw_ver_show, NULL);
 
 int __init board_init(void)
 {
@@ -25,6 +43,12 @@
 	if (rc)
 		pr_err(BOARD_NAME ": error %d creating link 'board'\n", rc);
 
+	/* /sys/devices/platform/board/hw_ver */
+	rc = device_create_file(&pdev->dev, &dev_attr_hw_ver);
+	if (rc)
+		pr_err(BOARD_NAME ": error %d creating attribute 'hw_ver'\n",
+			rc);
+
 	return 0;
 }