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