caddy.h 1.1 KB

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