caddy.h 1.1 KB

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