pm.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * arch/arm/mach-dove/include/mach/pm.h
  3. *
  4. * This file is licensed under the terms of the GNU General Public
  5. * License version 2. This program is licensed "as is" without any
  6. * warranty of any kind, whether express or implied.
  7. */
  8. #ifndef __ASM_ARCH_PM_H
  9. #define __ASM_ARCH_PM_H
  10. #include <asm/errno.h>
  11. #include <mach/irqs.h>
  12. #define CLOCK_GATING_CONTROL (DOVE_PMU_VIRT_BASE + 0x38)
  13. #define CLOCK_GATING_BIT_USB0 0
  14. #define CLOCK_GATING_BIT_USB1 1
  15. #define CLOCK_GATING_BIT_GBE 2
  16. #define CLOCK_GATING_BIT_SATA 3
  17. #define CLOCK_GATING_BIT_PCIE0 4
  18. #define CLOCK_GATING_BIT_PCIE1 5
  19. #define CLOCK_GATING_BIT_SDIO0 8
  20. #define CLOCK_GATING_BIT_SDIO1 9
  21. #define CLOCK_GATING_BIT_NAND 10
  22. #define CLOCK_GATING_BIT_CAMERA 11
  23. #define CLOCK_GATING_BIT_I2S0 12
  24. #define CLOCK_GATING_BIT_I2S1 13
  25. #define CLOCK_GATING_BIT_CRYPTO 15
  26. #define CLOCK_GATING_BIT_AC97 21
  27. #define CLOCK_GATING_BIT_PDMA 22
  28. #define CLOCK_GATING_BIT_XOR0 23
  29. #define CLOCK_GATING_BIT_XOR1 24
  30. #define CLOCK_GATING_BIT_GIGA_PHY 30
  31. #define CLOCK_GATING_USB0_MASK (1 << CLOCK_GATING_BIT_USB0)
  32. #define CLOCK_GATING_USB1_MASK (1 << CLOCK_GATING_BIT_USB1)
  33. #define CLOCK_GATING_GBE_MASK (1 << CLOCK_GATING_BIT_GBE)
  34. #define CLOCK_GATING_SATA_MASK (1 << CLOCK_GATING_BIT_SATA)
  35. #define CLOCK_GATING_PCIE0_MASK (1 << CLOCK_GATING_BIT_PCIE0)
  36. #define CLOCK_GATING_PCIE1_MASK (1 << CLOCK_GATING_BIT_PCIE1)
  37. #define CLOCK_GATING_SDIO0_MASK (1 << CLOCK_GATING_BIT_SDIO0)
  38. #define CLOCK_GATING_SDIO1_MASK (1 << CLOCK_GATING_BIT_SDIO1)
  39. #define CLOCK_GATING_NAND_MASK (1 << CLOCK_GATING_BIT_NAND)
  40. #define CLOCK_GATING_CAMERA_MASK (1 << CLOCK_GATING_BIT_CAMERA)
  41. #define CLOCK_GATING_I2S0_MASK (1 << CLOCK_GATING_BIT_I2S0)
  42. #define CLOCK_GATING_I2S1_MASK (1 << CLOCK_GATING_BIT_I2S1)
  43. #define CLOCK_GATING_CRYPTO_MASK (1 << CLOCK_GATING_BIT_CRYPTO)
  44. #define CLOCK_GATING_AC97_MASK (1 << CLOCK_GATING_BIT_AC97)
  45. #define CLOCK_GATING_PDMA_MASK (1 << CLOCK_GATING_BIT_PDMA)
  46. #define CLOCK_GATING_XOR0_MASK (1 << CLOCK_GATING_BIT_XOR0)
  47. #define CLOCK_GATING_XOR1_MASK (1 << CLOCK_GATING_BIT_XOR1)
  48. #define CLOCK_GATING_GIGA_PHY_MASK (1 << CLOCK_GATING_BIT_GIGA_PHY)
  49. #define PMU_INTERRUPT_CAUSE (DOVE_PMU_VIRT_BASE + 0x50)
  50. #define PMU_INTERRUPT_MASK (DOVE_PMU_VIRT_BASE + 0x54)
  51. static inline int pmu_to_irq(int pin)
  52. {
  53. if (pin < NR_PMU_IRQS)
  54. return pin + IRQ_DOVE_PMU_START;
  55. return -EINVAL;
  56. }
  57. static inline int irq_to_pmu(int irq)
  58. {
  59. if (IRQ_DOVE_PMU_START <= irq && irq < NR_IRQS)
  60. return irq - IRQ_DOVE_PMU_START;
  61. return -EINVAL;
  62. }
  63. #endif