1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 2c2e49f70SReinhard Arlt /* 3c2e49f70SReinhard Arlt * caddy.c -- esd VME8349 support for "missing" access modes in TSI148. 4c2e49f70SReinhard Arlt * Copyright (c) 2009 esd gmbh. 5c2e49f70SReinhard Arlt * 6c2e49f70SReinhard Arlt * Reinhard Arlt <reinhard.arlt@esd-electronics.com> 7c2e49f70SReinhard Arlt */ 8c2e49f70SReinhard Arlt 9c2e49f70SReinhard Arlt #ifndef __CADDY_H__ 10c2e49f70SReinhard Arlt #define __CADDY_H__ 11c2e49f70SReinhard Arlt 12c2e49f70SReinhard Arlt #define CMD_SIZE 1024 13c2e49f70SReinhard Arlt #define ANSWER_SIZE 1024 14c2e49f70SReinhard Arlt #define CADDY_MAGIC "esd vme8349 V1.0" 15c2e49f70SReinhard Arlt 16c2e49f70SReinhard Arlt enum caddy_cmds { 17c2e49f70SReinhard Arlt CADDY_CMD_IO_READ_8, 18c2e49f70SReinhard Arlt CADDY_CMD_IO_READ_16, 19c2e49f70SReinhard Arlt CADDY_CMD_IO_READ_32, 20c2e49f70SReinhard Arlt CADDY_CMD_IO_WRITE_8, 21c2e49f70SReinhard Arlt CADDY_CMD_IO_WRITE_16, 22c2e49f70SReinhard Arlt CADDY_CMD_IO_WRITE_32, 23c2e49f70SReinhard Arlt CADDY_CMD_CONFIG_READ_8, 24c2e49f70SReinhard Arlt CADDY_CMD_CONFIG_READ_16, 25c2e49f70SReinhard Arlt CADDY_CMD_CONFIG_READ_32, 26c2e49f70SReinhard Arlt CADDY_CMD_CONFIG_WRITE_8, 27c2e49f70SReinhard Arlt CADDY_CMD_CONFIG_WRITE_16, 28c2e49f70SReinhard Arlt CADDY_CMD_CONFIG_WRITE_32, 29c2e49f70SReinhard Arlt }; 30c2e49f70SReinhard Arlt 31c2e49f70SReinhard Arlt struct caddy_cmd { 32c2e49f70SReinhard Arlt uint32_t cmd; 33c2e49f70SReinhard Arlt uint32_t issue; 34c2e49f70SReinhard Arlt uint32_t addr; 35c2e49f70SReinhard Arlt uint32_t par[5]; 36c2e49f70SReinhard Arlt }; 37c2e49f70SReinhard Arlt 38c2e49f70SReinhard Arlt struct caddy_answer { 39c2e49f70SReinhard Arlt uint32_t answer; 40c2e49f70SReinhard Arlt uint32_t issue; 41c2e49f70SReinhard Arlt uint32_t status; 42c2e49f70SReinhard Arlt uint32_t par[5]; 43c2e49f70SReinhard Arlt }; 44c2e49f70SReinhard Arlt 45c2e49f70SReinhard Arlt struct caddy_interface { 46c2e49f70SReinhard Arlt uint8_t magic[16]; 47c2e49f70SReinhard Arlt uint32_t cmd_in; 48c2e49f70SReinhard Arlt uint32_t cmd_out; 49c2e49f70SReinhard Arlt uint32_t heartbeat; 50c2e49f70SReinhard Arlt uint32_t reserved1; 51c2e49f70SReinhard Arlt struct caddy_cmd cmd[CMD_SIZE]; 52c2e49f70SReinhard Arlt uint32_t answer_in; 53c2e49f70SReinhard Arlt uint32_t answer_out; 54c2e49f70SReinhard Arlt uint32_t reserved2; 55c2e49f70SReinhard Arlt uint32_t reserved3; 56c2e49f70SReinhard Arlt struct caddy_answer answer[CMD_SIZE]; 57c2e49f70SReinhard Arlt }; 58c2e49f70SReinhard Arlt 59c2e49f70SReinhard Arlt #endif /* of __CADDY_H__ */ 60