rcar-gen4-sysc.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * R-Car Gen4 System Controller
  4. *
  5. * Copyright (C) 2021 Renesas Electronics Corp.
  6. */
  7. #ifndef __SOC_RENESAS_RCAR_GEN4_SYSC_H__
  8. #define __SOC_RENESAS_RCAR_GEN4_SYSC_H__
  9. #include <linux/types.h>
  10. /*
  11. * Power Domain flags
  12. */
  13. #define PD_CPU BIT(0) /* Area contains main CPU core */
  14. #define PD_SCU BIT(1) /* Area contains SCU and L2 cache */
  15. #define PD_NO_CR BIT(2) /* Area lacks PWR{ON,OFF}CR registers */
  16. #define PD_CPU_NOCR (PD_CPU | PD_NO_CR) /* CPU area lacks CR */
  17. #define PD_ALWAYS_ON PD_NO_CR /* Always-on area */
  18. /*
  19. * Description of a Power Area
  20. */
  21. struct rcar_gen4_sysc_area {
  22. const char *name;
  23. u8 pdr; /* PDRn */
  24. s8 parent; /* -1 if none */
  25. u8 flags; /* See PD_* */
  26. };
  27. /*
  28. * SoC-specific Power Area Description
  29. */
  30. struct rcar_gen4_sysc_info {
  31. const struct rcar_gen4_sysc_area *areas;
  32. unsigned int num_areas;
  33. };
  34. extern const struct rcar_gen4_sysc_info r8a779a0_sysc_info;
  35. extern const struct rcar_gen4_sysc_info r8a779f0_sysc_info;
  36. extern const struct rcar_gen4_sysc_info r8a779g0_sysc_info;
  37. #endif /* __SOC_RENESAS_RCAR_GEN4_SYSC_H__ */