cm44xx.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * OMAP4 CM1, CM2 module low-level functions
  3. *
  4. * Copyright (C) 2010 Nokia Corporation
  5. * Paul Walmsley
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License version 2 as
  9. * published by the Free Software Foundation.
  10. *
  11. * These functions are intended to be used only by the cminst44xx.c file.
  12. * XXX Perhaps we should just move them there and make them static.
  13. */
  14. #include <linux/kernel.h>
  15. #include <linux/types.h>
  16. #include <linux/errno.h>
  17. #include <linux/err.h>
  18. #include <linux/io.h>
  19. #include "cm.h"
  20. #include "cm1_44xx.h"
  21. #include "cm2_44xx.h"
  22. /* CM1 hardware module low-level functions */
  23. /* Read a register in CM1 */
  24. u32 omap4_cm1_read_inst_reg(s16 inst, u16 reg)
  25. {
  26. return readl_relaxed(cm_base + inst + reg);
  27. }
  28. /* Write into a register in CM1 */
  29. void omap4_cm1_write_inst_reg(u32 val, s16 inst, u16 reg)
  30. {
  31. writel_relaxed(val, cm_base + inst + reg);
  32. }
  33. /* Read a register in CM2 */
  34. u32 omap4_cm2_read_inst_reg(s16 inst, u16 reg)
  35. {
  36. return readl_relaxed(cm2_base + inst + reg);
  37. }
  38. /* Write into a register in CM2 */
  39. void omap4_cm2_write_inst_reg(u32 val, s16 inst, u16 reg)
  40. {
  41. writel_relaxed(val, cm2_base + inst + reg);
  42. }