Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / sh / superhyway / superhyway-sysfs.c
diff --git a/kernel/drivers/sh/superhyway/superhyway-sysfs.c b/kernel/drivers/sh/superhyway/superhyway-sysfs.c
new file mode 100644 (file)
index 0000000..5543433
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * drivers/sh/superhyway/superhyway-sysfs.c
+ *
+ * SuperHyway Bus sysfs interface
+ *
+ * Copyright (C) 2004, 2005  Paul Mundt <lethal@linux-sh.org>
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+#include <linux/kernel.h>
+#include <linux/device.h>
+#include <linux/types.h>
+#include <linux/superhyway.h>
+
+#define superhyway_ro_attr(name, fmt, field)                           \
+static ssize_t name##_show(struct device *dev, struct device_attribute *attr, char *buf)               \
+{                                                                      \
+       struct superhyway_device *s = to_superhyway_device(dev);        \
+       return sprintf(buf, fmt, s->field);                             \
+}
+
+/* VCR flags */
+superhyway_ro_attr(perr_flags, "0x%02x\n", vcr.perr_flags);
+superhyway_ro_attr(merr_flags, "0x%02x\n", vcr.merr_flags);
+superhyway_ro_attr(mod_vers, "0x%04x\n", vcr.mod_vers);
+superhyway_ro_attr(mod_id, "0x%04x\n", vcr.mod_id);
+superhyway_ro_attr(bot_mb, "0x%02x\n", vcr.bot_mb);
+superhyway_ro_attr(top_mb, "0x%02x\n", vcr.top_mb);
+
+/* Misc */
+superhyway_ro_attr(resource, "0x%08lx\n", resource[0].start);
+
+struct device_attribute superhyway_dev_attrs[] = {
+       __ATTR_RO(perr_flags),
+       __ATTR_RO(merr_flags),
+       __ATTR_RO(mod_vers),
+       __ATTR_RO(mod_id),
+       __ATTR_RO(bot_mb),
+       __ATTR_RO(top_mb),
+       __ATTR_RO(resource),
+       __ATTR_NULL,
+};
+