mt8193.h 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. /* Copyright Statement:
  2. *
  3. * This software/firmware and related documentation ("MediaTek Software") are
  4. * protected under relevant copyright laws. The information contained herein
  5. * is confidential and proprietary to MediaTek Inc. and/or its licensors.
  6. * Without the prior written permission of MediaTek inc. and/or its licensors,
  7. * any reproduction, modification, use or disclosure of MediaTek Software,
  8. * and information contained herein, in whole or in part, shall be strictly prohibited.
  9. */
  10. /* MediaTek Inc. (C) 2011. All rights reserved.
  11. *
  12. * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  13. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  14. * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
  15. * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  16. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  17. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  18. * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  19. * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  20. * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
  21. * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
  22. * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
  23. * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
  24. * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  25. * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
  26. * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  27. * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  28. * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
  29. * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  30. *
  31. * The following software/firmware and/or related documentation ("MediaTek Software")
  32. * have been modified by MediaTek Inc. All revisions are subject to any receiver's
  33. * applicable license agreements with MediaTek Inc.
  34. */
  35. #ifndef MT8193_H
  36. #define MT8193_H
  37. #include "mt_typedefs.h"
  38. // #include "platform.h"
  39. #include "mt_i2c.h"
  40. #define CKGEN_BASE 0x1000
  41. #define REG_RW_BUS_CKCFG 0x000
  42. #define CLK_BUS_SEL_XTAL 0
  43. #define CLK_BUS_SEL_NFIPLL_D2 1
  44. #define CLK_BUS_SEL_NFIPLL_D3 2
  45. #define CLK_BUS_SEL_XTAL_D2 3
  46. #define CLK_BUS_SEL_32K 4
  47. #define CLK_BUS_SEL_PAD_DPI0 5
  48. #define CLK_BUS_SEL_PAD_DPI1 6
  49. #define CLK_BUS_SEL_ROSC 7
  50. #define REG_RW_NFI_CKCFG 0x008
  51. #define CLK_NFI_SEL_NFIPLL 0
  52. #define CLK_NFI_SEL_NFIPLL_D2 1
  53. #define CLK_NFI_SEL_NFIPLL_D3 2
  54. #define CLK_NFI_SEL_XTAL_D1 3
  55. #define CLK_PDN_NFI (1U<<7)
  56. #define REG_RW_HDMI_PLL_CKCFG 0x00c
  57. #define CLK_HDMI_PLL_SEL_HDMIPLL 0
  58. #define CLK_HDMI_PLL_SEL_32K 1
  59. #define CLK_HDMI_PLL_SEL_XTAL_D1 2
  60. #define CLK_HDMI_PLL_SEL_NFIPLL 3
  61. #define CLK_PDN_HDMI_PLL (1U<<7)
  62. #define REG_RW_HDMI_DISP_CKCFG 0x010
  63. #define CLK_HDMI_DISP_SEL_DISP 0
  64. #define CLK_HDMI_DISP_SEL_32K 1
  65. #define CLK_HDMI_DISP_SEL_XTAL_D1 2
  66. #define CLK_HDMI_DISP_SEL_NFIPLL 3
  67. #define CLK_PDN_HDMI_DISP (1U<<7)
  68. #define REG_RW_LVDS_DISP_CKCFG 0x014
  69. #define CLK_LVDS_DISP_SEL_AD_VPLL_DPIX 0
  70. #define CLK_LVDS_DISP_SEL_32K 1
  71. #define CLK_LVDS_DISP_SEL_XTAL_D1 2
  72. #define CLK_LVDS_DISP_SEL_NFIPLL 3
  73. #define CLK_PDN_LVDS_DISP (1U<<7)
  74. #define REG_RW_LVDS_CTS_CKCFG 0x018
  75. #define CLK_LVDS_CTS_SEL_AD_VPLL_DPIX 0
  76. #define CLK_LVDS_CTS_SEL_32K 1
  77. #define CLK_LVDS_CTS_SEL_XTAL_D1 2
  78. #define CLK_LVDS_CTS_SEL_NFIPLL 3
  79. #define CLK_PDN_LVDS_CTS (1U<<7)
  80. #define REG_RW_CKMISC_CTRL 0x050
  81. #define CKGEN_CKMISC_CTRL_DCXO_MODE_EN 1
  82. #define REG_RW_PMUX0 0x200
  83. #define REG_RW_PMUX1 0x204
  84. #define PMUX1_PAD_G0_FUNC 21
  85. #define PMUX1_PAD_B5_FUNC 24
  86. #define PMUX1_PAD_B4_FUNC 27
  87. #define REG_RW_PMUX2 0x208
  88. #define PMUX2_PAD_B3_FUNC 0
  89. #define PMUX2_PAD_B2_FUNC 3
  90. #define PMUX2_PAD_B1_FUNC 6
  91. #define PMUX2_PAD_B0_FUNC 9
  92. #define PMUX2_PAD_DE_FUNC 12
  93. #define PMUX2_PAD_VCLK_FUNC 15
  94. #define PMUX2_PAD_HSYNC_FUNC 18
  95. #define PMUX2_PAD_VSYNC_FUNC 21
  96. #define REG_RW_PMUX3 0x20c
  97. #define REG_RW_PMUX4 0x210
  98. #define REG_RW_PMUX5 0x214
  99. #define REG_RW_PMUX6 0x218
  100. #define REG_RW_PMUX7 0x21c
  101. #define REG_RW_PMUX8 0x220
  102. #define REG_RW_PMUX9 0x224
  103. #define REG_RW_LVDSWRAP_CTRL1 0x254
  104. #define CKGEN_LVDSWRAP_CTRL1_NFIPLL_MON_EN (1U<<7)
  105. #define CKGEN_LVDSWRAP_CTRL1_DCXO_POR_MON_EN (1U<<8)
  106. #define REG_RW_GPIO_EN_1 0x128
  107. #define REG_RW_GPIO_OUT_1 0x11c
  108. #define REG_RW_GPIO_IN_1 0x138
  109. #define REG_RW_GPIO_EN_0 0x128 // need get register addr
  110. #define REG_RW_GPIO_OUT_0 0x11c // need get register addr
  111. #define REG_RW_GPIO_IN_0 0x138 // need get register addr
  112. #define REG_RW_GPIO_EN_2 0x128 // need get register addr
  113. #define REG_RW_GPIO_OUT_2 0x11c // need get register addr
  114. #define REG_RW_GPIO_IN_2 0x138 // need get register addr
  115. #if 0
  116. int mt8193_i2c_write(u16 addr, u32 data)
  117. {
  118. return 0;
  119. }
  120. u32 mt8193_i2c_read(u16 addr)
  121. {
  122. return 0;
  123. }
  124. #endif
  125. #define IO_READ8(base, offset) mt8193_i2c_read8((base) + (offset))
  126. #define IO_READ16(base, offset) mt8193_i2c_read16((base) + (offset))
  127. #define IO_READ32(base, offset) mt8193_i2c_read32((base) + (offset))
  128. //============================================================================
  129. // Macros for register write
  130. //============================================================================
  131. #define IO_WRITE8(base, offset, value) mt8193_i2c_write8((base) + (offset), (value))
  132. #define IO_WRITE16(base, offset, value) mt8193_i2c_write16((base) + (offset), (value))
  133. #define IO_WRITE32(base, offset, value) mt8193_i2c_write32((base) + (offset), (value))
  134. #define CKGEN_READ8(offset) IO_READ8(CKGEN_BASE, (offset))
  135. #define CKGEN_READ16(offset) IO_READ16(CKGEN_BASE, (offset))
  136. #define CKGEN_READ32(offset) IO_READ32(CKGEN_BASE, (offset))
  137. #define CKGEN_WRITE8(offset, value) IO_WRITE8(CKGEN_BASE, (offset), (value))
  138. #define CKGEN_WRITE16(offset, value) IO_WRITE16(CKGEN_BASE, (offset), (value))
  139. #define CKGEN_WRITE32(offset, value) IO_WRITE32(CKGEN_BASE, (offset), (value))
  140. /*=======================================================================*/
  141. /* Constant Definitions */
  142. /*=======================================================================*/
  143. typedef enum {
  144. SRC_CK_APLL,
  145. SRC_CK_ARMPLL,
  146. SRC_CK_VDPLL,
  147. SRC_CK_DMPLL,
  148. SRC_CK_SYSPLL1,
  149. SRC_CK_SYSPLL2,
  150. SRC_CK_USBCK,
  151. SRC_CK_MEMPLL,
  152. SRC_CK_MCK
  153. } SRC_CK_T;
  154. typedef enum {
  155. e_CLK_NFI, //0 0x70.3
  156. e_CLK_HDMIPLL, //1 0x70.7
  157. e_CLK_HDMIDISP,
  158. e_CLK_LVDSDISP,
  159. e_CLK_LVDSCTS,
  160. e_CLK_MAX //2
  161. } e_CLK_T;
  162. typedef enum {
  163. e_CKEN_NFI, //0 0x300.31
  164. e_CKEN_HDMI, //1 0x300.29
  165. e_CKEN_MAX //2
  166. } e_CKEN_T;
  167. #endif // MT8193_H