| /* | 
 |  * caddy.c -- esd VME8349 support for "missing" access modes in TSI148. | 
 |  * Copyright (c) 2009 esd gmbh. | 
 |  * | 
 |  * Reinhard Arlt <reinhard.arlt@esd-electronics.com> | 
 |  * | 
 |  * SPDX-License-Identifier:	GPL-2.0+ | 
 |  */ | 
 |  | 
 | #ifndef __CADDY_H__ | 
 | #define __CADDY_H__ | 
 |  | 
 | #define CMD_SIZE	1024 | 
 | #define ANSWER_SIZE	1024 | 
 | #define CADDY_MAGIC	"esd vme8349 V1.0" | 
 |  | 
 | enum caddy_cmds { | 
 | 	CADDY_CMD_IO_READ_8, | 
 | 	CADDY_CMD_IO_READ_16, | 
 | 	CADDY_CMD_IO_READ_32, | 
 | 	CADDY_CMD_IO_WRITE_8, | 
 | 	CADDY_CMD_IO_WRITE_16, | 
 | 	CADDY_CMD_IO_WRITE_32, | 
 | 	CADDY_CMD_CONFIG_READ_8, | 
 | 	CADDY_CMD_CONFIG_READ_16, | 
 | 	CADDY_CMD_CONFIG_READ_32, | 
 | 	CADDY_CMD_CONFIG_WRITE_8, | 
 | 	CADDY_CMD_CONFIG_WRITE_16, | 
 | 	CADDY_CMD_CONFIG_WRITE_32, | 
 | }; | 
 |  | 
 | struct caddy_cmd { | 
 | 	uint32_t cmd; | 
 | 	uint32_t issue; | 
 | 	uint32_t addr; | 
 | 	uint32_t par[5]; | 
 | }; | 
 |  | 
 | struct caddy_answer { | 
 | 	uint32_t answer; | 
 | 	uint32_t issue; | 
 | 	uint32_t status; | 
 | 	uint32_t par[5]; | 
 | }; | 
 |  | 
 | struct caddy_interface { | 
 | 	uint8_t  magic[16]; | 
 | 	uint32_t cmd_in; | 
 | 	uint32_t cmd_out; | 
 | 	uint32_t heartbeat; | 
 | 	uint32_t reserved1; | 
 | 	struct caddy_cmd cmd[CMD_SIZE]; | 
 | 	uint32_t answer_in; | 
 | 	uint32_t answer_out; | 
 | 	uint32_t reserved2; | 
 | 	uint32_t reserved3; | 
 | 	struct caddy_answer answer[CMD_SIZE]; | 
 | }; | 
 |  | 
 | #endif /* of __CADDY_H__ */ |