提交 11ea6f55 编写于 作者: M Michal Simek

arm: zynq: Add support for EMIT_WRITE operation

Add proper support for EMIT_WRITE operation which is write only.
Do not use EMIT_MASKWRITE which is read-modify-write.
Signed-off-by: NMichal Simek <michal.simek@xilinx.com>
上级 f2907480
......@@ -13,6 +13,7 @@
#define OPCODE_MASKWRITE 0U
#define OPCODE_MASKPOLL 1U
#define OPCODE_MASKDELAY 2U
#define OPCODE_WRITE 3U
#define OPCODE_ADDRESS_MASK (~3U)
/* Sentinel */
......@@ -21,6 +22,7 @@
#define EMIT_MASKWRITE(addr, mask, val) OPCODE_MASKWRITE | addr, mask, val
#define EMIT_MASKPOLL(addr, mask) OPCODE_MASKPOLL | addr, mask
#define EMIT_MASKDELAY(addr, mask) OPCODE_MASKDELAY | addr, mask
#define EMIT_WRITE(addr, val) OPCODE_WRITE | addr, val
/* Returns codes of ps7_init* */
#define PS7_INIT_SUCCESS (0)
......
......@@ -108,6 +108,12 @@ int __weak ps7_config(unsigned long *ps7_config_init)
iowrite((ioread(addr) & ~mask) | (val & mask), addr);
break;
case OPCODE_WRITE:
numargs = 2;
val = ptr[1];
iowrite(val, addr);
break;
case OPCODE_MASKPOLL:
numargs = 2;
mask = ptr[1];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册