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: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
f29074803c
commit
11ea6f556c
@ -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];
|
||||
|
Loading…
Reference in New Issue
Block a user