diff mbox

[v4,04/16] register: Add support for decoding information

Message ID 1257121e8355d27ffdade6e952df3affbfcb4773.1455055858.git.alistair.francis@xilinx.com
State New
Headers show

Commit Message

Alistair Francis Feb. 9, 2016, 10:14 p.m. UTC
From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

Allow defining of optional address decoding information in register
definitions. This is useful for clients that want to associate
registers with specific addresses.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
---
V3:
 - Remove unused flags option

 include/hw/register.h | 9 +++++++++
 1 file changed, 9 insertions(+)
diff mbox

Patch

diff --git a/include/hw/register.h b/include/hw/register.h
index 9aa9cfc..29edb5b 100644
--- a/include/hw/register.h
+++ b/include/hw/register.h
@@ -41,6 +41,11 @@  typedef struct RegisterAccessInfo RegisterAccessInfo;
  * allowing this function to modify the value before return to the client.
  */
 
+#define REG_DECODE_READ (1 << 0)
+#define REG_DECODE_WRITE (1 << 1)
+#define REG_DECODE_EXECUTE (1 << 2)
+#define REG_DECODE_RW (REG_DECODE_READ | REG_DECODE_WRITE)
+
 struct RegisterAccessInfo {
     const char *name;
     uint64_t ro;
@@ -54,6 +59,10 @@  struct RegisterAccessInfo {
     void (*post_write)(RegisterInfo *reg, uint64_t val);
 
     uint64_t (*post_read)(RegisterInfo *reg, uint64_t val);
+
+    struct {
+        hwaddr addr;
+    } decode;
 };
 
 /**