dsi_hw.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
  4. */
  5. #ifndef _DSI_HW_H_
  6. #define _DSI_HW_H_
  7. #include <linux/io.h>
  8. #define DSI_R32(dsi_hw, off) readl_relaxed((dsi_hw)->base + (off))
  9. #define DSI_W32(dsi_hw, off, val) \
  10. do {\
  11. pr_debug("[DSI_%d][%s] - [0x%08x]\n", \
  12. (dsi_hw)->index, #off, (uint32_t)(val)); \
  13. writel_relaxed((val), (dsi_hw)->base + (off)); \
  14. } while (0)
  15. #define DSI_MMSS_MISC_R32(dsi_hw, off) \
  16. readl_relaxed((dsi_hw)->mmss_misc_base + (off))
  17. #define DSI_MMSS_MISC_W32(dsi_hw, off, val) \
  18. do {\
  19. pr_debug("[DSI_%d][%s] - [0x%08x]\n", \
  20. (dsi_hw)->index, #off, val); \
  21. writel_relaxed((val), (dsi_hw)->mmss_misc_base + (off)); \
  22. } while (0)
  23. #define DSI_MISC_R32(dsi_hw, off) \
  24. readl_relaxed((dsi_hw)->phy_clamp_base + (off))
  25. #define DSI_MISC_W32(dsi_hw, off, val) \
  26. do {\
  27. pr_debug("[DSI_%d][%s] - [0x%08x]\n", \
  28. (dsi_hw)->index, #off, val); \
  29. writel_relaxed((val), (dsi_hw)->phy_clamp_base + (off)); \
  30. } while (0)
  31. #define DSI_DISP_CC_R32(dsi_hw, off) \
  32. readl_relaxed((dsi_hw)->disp_cc_base + (off))
  33. #define DSI_DISP_CC_W32(dsi_hw, off, val) \
  34. do {\
  35. pr_debug("[DSI_%d][%s] - [0x%08x]\n", \
  36. (dsi_hw)->index, #off, val); \
  37. writel_relaxed((val), (dsi_hw)->disp_cc_base + (off)); \
  38. } while (0)
  39. #define DSI_R64(dsi_hw, off) readq_relaxed((dsi_hw)->base + (off))
  40. #define DSI_W64(dsi_hw, off, val) writeq_relaxed((val), (dsi_hw)->base + (off))
  41. #define PLL_CALC_DATA(addr0, addr1, data0, data1) \
  42. (((data1) << 24) | ((((addr1)/4) & 0xFF) << 16) | \
  43. ((data0) << 8) | (((addr0)/4) & 0xFF))
  44. #define DSI_DYN_REF_REG_W(base, offset, addr0, addr1, data0, data1) \
  45. writel_relaxed(PLL_CALC_DATA(addr0, addr1, data0, data1), \
  46. (base) + (offset))
  47. #define DSI_GEN_R32(base, offset) readl_relaxed(base + (offset))
  48. #define DSI_GEN_W32(base, offset, val) writel_relaxed((val), base + (offset))
  49. #endif /* _DSI_HW_H_ */