summaryrefslogtreecommitdiff
path: root/cleopatre/devkit/plcdrv/src
diff options
context:
space:
mode:
authorJérémy Dufour2012-01-26 15:59:27 +0100
committerNicolas Schodet2012-02-20 10:08:53 +0100
commit3e8bfc15fda6d17d00e3f677cbfc020b06a0ef9b (patch)
treeb52b6f39f10942e3d2f5be64bdce0b8b5882703a /cleopatre/devkit/plcdrv/src
parentdb7097c9e7551e486212f2e30c52030883bc3f19 (diff)
cleo/devkit/plcdrv: import regbank proc entry, refs #2026
Import from [deaaaf7531f6].
Diffstat (limited to 'cleopatre/devkit/plcdrv/src')
-rw-r--r--cleopatre/devkit/plcdrv/src/plcdrv.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/cleopatre/devkit/plcdrv/src/plcdrv.c b/cleopatre/devkit/plcdrv/src/plcdrv.c
index e87190ffd3..30431fd314 100644
--- a/cleopatre/devkit/plcdrv/src/plcdrv.c
+++ b/cleopatre/devkit/plcdrv/src/plcdrv.c
@@ -233,6 +233,33 @@ plcdrv_writeproc_set_mark (struct file *file, const char *buffer,
}
/**
+ * Read some regbank registers.
+ * \param page buffer to write data to
+ * \param start unused
+ * \param offset unused
+ * \param count unused
+ * \param eof to be set if end of file reached
+ * \param data priv structure
+ * \return number of read bytes
+ */
+static int
+plcdrv_readproc_regbank (char *page, char **start, off_t offset, int count,
+ int *eof, void *data)
+{
+ char *p;
+
+ p = page;
+ p += sprintf (p, "RB_RESET_CAUSE = 0x%08x\n", RB_RST_GSRC_VA);
+ p += sprintf (p, "RB_PACKAGE = 0x%08x\n", RB_PACKAGE_VA);
+ *eof = 1;
+
+ /* Clear the register after reading it. */
+ RB_RST_GSRC_VA = 0x0;
+
+ return p - page;
+}
+
+/**
* Set/Unset Reset the Leon processor.
* \param activate true to activate reset
* \return error code
@@ -813,6 +840,7 @@ plcdrv_uninit (struct net_device *dev)
unregister_chrdev_region (priv->dev_number, 2);
/* Remove proc. */
+ remove_proc_entry ("regbank", priv->proc_dir_plc);
remove_proc_entry ("set_mark", priv->proc_dir_plc);
remove_proc_entry ("stats", priv->proc_dir_plc);
remove_proc_entry ("version", priv->proc_dir_plc);
@@ -883,6 +911,8 @@ plcdrv_init (struct net_device *dev)
entry->write_proc = plcdrv_writeproc_set_mark;
entry->data = priv;
}
+ create_proc_read_entry ("regbank", 0, priv->proc_dir_plc,
+ plcdrv_readproc_regbank, priv);
/* Set Leon code base address (translation). */
leon_start_addr_ptr = (uint32_t *) ioremap (RB_LEON_ADD_START, 1);