imx_rproc.h 822 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2017 Pengutronix, Oleksij Rempel <[email protected]>
  4. * Copyright 2021 NXP
  5. */
  6. #ifndef _IMX_RPROC_H
  7. #define _IMX_RPROC_H
  8. /* address translation table */
  9. struct imx_rproc_att {
  10. u32 da; /* device address (From Cortex M4 view)*/
  11. u32 sa; /* system bus address */
  12. u32 size; /* size of reg range */
  13. int flags;
  14. };
  15. /* Remote core start/stop method */
  16. enum imx_rproc_method {
  17. IMX_RPROC_NONE,
  18. /* Through syscon regmap */
  19. IMX_RPROC_MMIO,
  20. /* Through ARM SMCCC */
  21. IMX_RPROC_SMC,
  22. /* Through System Control Unit API */
  23. IMX_RPROC_SCU_API,
  24. };
  25. struct imx_rproc_dcfg {
  26. u32 src_reg;
  27. u32 src_mask;
  28. u32 src_start;
  29. u32 src_stop;
  30. const struct imx_rproc_att *att;
  31. size_t att_size;
  32. enum imx_rproc_method method;
  33. };
  34. #endif /* _IMX_RPROC_H */