--- /dev/null
+#include <linux/module.h>\r
+#include <linux/kernel.h>\r
+#include <linux/proc_fs.h>\r
+#include <linux/uaccess.h>\r
+\r
+int get_fpscr(void);\r
+void set_fpscr(int val);\r
+\r
+static int proc_read(char *page, char **start, off_t off, int count,\r
+ int *eof, void *data)\r
+{\r
+ char *p = page;\r
+ int len;\r
+\r
+ p += sprintf(p, "%08x\n", get_fpscr());\r
+\r
+ len = (p - page) - off;\r
+ if (len < 0)\r
+ len = 0;\r
+\r
+ *eof = (len <= count) ? 1 : 0;\r
+ *start = page + off;\r
+\r
+ return len;\r
+}\r
+\r
+static int proc_write(struct file *file, const char __user *buffer,\r
+ unsigned long count, void *data)\r
+{\r
+ char buff[32];\r
+ unsigned long val;\r
+ int ret;\r
+\r
+ count = strncpy_from_user(buff, buffer,\r
+ count < sizeof(buff) ? count : sizeof(buff) - 1);\r
+ buff[count] = 0;\r
+\r
+ ret = strict_strtoul(buff, 0, &val);\r
+ if (ret < 0) {\r
+ printk(KERN_ERR "error %i parsing %s\n", ret, buff);\r
+ return ret;\r
+ }\r
+\r
+ set_fpscr(val);\r
+\r
+ return count;\r
+}\r
+\r
+//#include <linux/clk.h>\r
+static int init_my_module(void)\r
+{\r
+ struct proc_dir_entry *pret;\r
+/*\r
+ struct clk *xclk = clk_get(NULL, "dss1_alwon_fck");\r
+ clk_enable(xclk);\r
+ printk("dss1_fck: %p %i\n", xclk, clk_get_rate(xclk));\r
+ clk_disable(xclk);\r
+ clk_put(xclk);\r
+ return 0;\r
+*/\r
+ printk(KERN_INFO "random test module loaded\n");\r
+\r
+ pret = create_proc_entry("test",\r
+ S_IWUSR | S_IRUGO, NULL);\r
+ if (pret == NULL) {\r
+ printk(KERN_ERR "can't create proc\n");\r
+ return -1;\r
+ }\r
+\r
+ pret->read_proc = proc_read;\r
+ pret->write_proc = proc_write;\r
+\r
+ return 0;\r
+}\r
+\r
+\r
+static void cleanup_my_module(void)\r
+{\r
+ remove_proc_entry("test", NULL);\r
+ printk("random test module unloaded\n");\r
+}\r
+\r
+\r
+module_init(init_my_module);\r
+module_exit(cleanup_my_module);\r
+\r
+MODULE_AUTHOR("notaz");\r
+MODULE_LICENSE("GPL");\r
+MODULE_DESCRIPTION("module test");\r
+\r