0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef HIBMC_DRM_HW_H
0015 #define HIBMC_DRM_HW_H
0016
0017
0018 #define HIBMC_MISC_CTRL 0x4
0019
0020 #define HIBMC_MSCCTL_LOCALMEM_RESET(x) ((x) << 6)
0021 #define HIBMC_MSCCTL_LOCALMEM_RESET_MASK 0x40
0022
0023 #define HIBMC_CURRENT_GATE 0x000040
0024 #define HIBMC_CURR_GATE_DISPLAY(x) ((x) << 2)
0025 #define HIBMC_CURR_GATE_DISPLAY_MASK 0x4
0026
0027 #define HIBMC_CURR_GATE_LOCALMEM(x) ((x) << 1)
0028 #define HIBMC_CURR_GATE_LOCALMEM_MASK 0x2
0029
0030 #define HIBMC_MODE0_GATE 0x000044
0031 #define HIBMC_MODE1_GATE 0x000048
0032 #define HIBMC_POWER_MODE_CTRL 0x00004C
0033
0034 #define HIBMC_PW_MODE_CTL_OSC_INPUT(x) ((x) << 3)
0035 #define HIBMC_PW_MODE_CTL_OSC_INPUT_MASK 0x8
0036
0037 #define HIBMC_PW_MODE_CTL_MODE(x) ((x) << 0)
0038 #define HIBMC_PW_MODE_CTL_MODE_MASK 0x03
0039 #define HIBMC_PW_MODE_CTL_MODE_SHIFT 0
0040
0041 #define HIBMC_PW_MODE_CTL_MODE_MODE0 0
0042 #define HIBMC_PW_MODE_CTL_MODE_MODE1 1
0043 #define HIBMC_PW_MODE_CTL_MODE_SLEEP 2
0044
0045 #define HIBMC_PANEL_PLL_CTRL 0x00005C
0046 #define HIBMC_CRT_PLL_CTRL 0x000060
0047
0048 #define HIBMC_PLL_CTRL_BYPASS(x) ((x) << 18)
0049 #define HIBMC_PLL_CTRL_BYPASS_MASK 0x40000
0050
0051 #define HIBMC_PLL_CTRL_POWER(x) ((x) << 17)
0052 #define HIBMC_PLL_CTRL_POWER_MASK 0x20000
0053
0054 #define HIBMC_PLL_CTRL_INPUT(x) ((x) << 16)
0055 #define HIBMC_PLL_CTRL_INPUT_MASK 0x10000
0056
0057 #define HIBMC_PLL_CTRL_POD(x) ((x) << 14)
0058 #define HIBMC_PLL_CTRL_POD_MASK 0xC000
0059
0060 #define HIBMC_PLL_CTRL_OD(x) ((x) << 12)
0061 #define HIBMC_PLL_CTRL_OD_MASK 0x3000
0062
0063 #define HIBMC_PLL_CTRL_N(x) ((x) << 8)
0064 #define HIBMC_PLL_CTRL_N_MASK 0xF00
0065
0066 #define HIBMC_PLL_CTRL_M(x) ((x) << 0)
0067 #define HIBMC_PLL_CTRL_M_MASK 0xFF
0068
0069 #define HIBMC_CRT_DISP_CTL 0x80200
0070
0071 #define HIBMC_CRT_DISP_CTL_DPMS(x) ((x) << 30)
0072 #define HIBMC_CRT_DISP_CTL_DPMS_MASK 0xc0000000
0073
0074 #define HIBMC_CRT_DPMS_ON 0
0075 #define HIBMC_CRT_DPMS_OFF 3
0076
0077 #define HIBMC_CRT_DISP_CTL_CRTSELECT(x) ((x) << 25)
0078 #define HIBMC_CRT_DISP_CTL_CRTSELECT_MASK 0x2000000
0079
0080 #define HIBMC_CRTSELECT_CRT 1
0081
0082 #define HIBMC_CRT_DISP_CTL_CLOCK_PHASE(x) ((x) << 14)
0083 #define HIBMC_CRT_DISP_CTL_CLOCK_PHASE_MASK 0x4000
0084
0085 #define HIBMC_CRT_DISP_CTL_VSYNC_PHASE(x) ((x) << 13)
0086 #define HIBMC_CRT_DISP_CTL_VSYNC_PHASE_MASK 0x2000
0087
0088 #define HIBMC_CRT_DISP_CTL_HSYNC_PHASE(x) ((x) << 12)
0089 #define HIBMC_CRT_DISP_CTL_HSYNC_PHASE_MASK 0x1000
0090
0091 #define HIBMC_CRT_DISP_CTL_TIMING(x) ((x) << 8)
0092 #define HIBMC_CRT_DISP_CTL_TIMING_MASK 0x100
0093
0094 #define HIBMC_CTL_DISP_CTL_GAMMA(x) ((x) << 3)
0095 #define HIBMC_CTL_DISP_CTL_GAMMA_MASK 0x08
0096
0097 #define HIBMC_CRT_DISP_CTL_PLANE(x) ((x) << 2)
0098 #define HIBMC_CRT_DISP_CTL_PLANE_MASK 4
0099
0100 #define HIBMC_CRT_DISP_CTL_FORMAT(x) ((x) << 0)
0101 #define HIBMC_CRT_DISP_CTL_FORMAT_MASK 0x03
0102
0103 #define HIBMC_CRT_FB_ADDRESS 0x080204
0104
0105 #define HIBMC_CRT_FB_WIDTH 0x080208
0106 #define HIBMC_CRT_FB_WIDTH_WIDTH(x) ((x) << 16)
0107 #define HIBMC_CRT_FB_WIDTH_WIDTH_MASK 0x3FFF0000
0108 #define HIBMC_CRT_FB_WIDTH_OFFS(x) ((x) << 0)
0109 #define HIBMC_CRT_FB_WIDTH_OFFS_MASK 0x3FFF
0110
0111 #define HIBMC_CRT_HORZ_TOTAL 0x08020C
0112 #define HIBMC_CRT_HORZ_TOTAL_TOTAL(x) ((x) << 16)
0113 #define HIBMC_CRT_HORZ_TOTAL_TOTAL_MASK 0xFFF0000
0114
0115 #define HIBMC_CRT_HORZ_TOTAL_DISP_END(x) ((x) << 0)
0116 #define HIBMC_CRT_HORZ_TOTAL_DISP_END_MASK 0xFFF
0117
0118 #define HIBMC_CRT_HORZ_SYNC 0x080210
0119 #define HIBMC_CRT_HORZ_SYNC_WIDTH(x) ((x) << 16)
0120 #define HIBMC_CRT_HORZ_SYNC_WIDTH_MASK 0xFF0000
0121
0122 #define HIBMC_CRT_HORZ_SYNC_START(x) ((x) << 0)
0123 #define HIBMC_CRT_HORZ_SYNC_START_MASK 0xFFF
0124
0125 #define HIBMC_CRT_VERT_TOTAL 0x080214
0126 #define HIBMC_CRT_VERT_TOTAL_TOTAL(x) ((x) << 16)
0127 #define HIBMC_CRT_VERT_TOTAL_TOTAL_MASK 0x7FFF0000
0128
0129 #define HIBMC_CRT_VERT_TOTAL_DISP_END(x) ((x) << 0)
0130 #define HIBMC_CRT_VERT_TOTAL_DISP_END_MASK 0x7FF
0131
0132 #define HIBMC_CRT_VERT_SYNC 0x080218
0133 #define HIBMC_CRT_VERT_SYNC_HEIGHT(x) ((x) << 16)
0134 #define HIBMC_CRT_VERT_SYNC_HEIGHT_MASK 0x3F0000
0135
0136 #define HIBMC_CRT_VERT_SYNC_START(x) ((x) << 0)
0137 #define HIBMC_CRT_VERT_SYNC_START_MASK 0x7FF
0138
0139
0140 #define HIBMC_CRT_AUTO_CENTERING_TL 0x080280
0141 #define HIBMC_CRT_AUTO_CENTERING_TL_TOP(x) ((x) << 16)
0142 #define HIBMC_CRT_AUTO_CENTERING_TL_TOP_MASK 0x7FF0000
0143
0144 #define HIBMC_CRT_AUTO_CENTERING_TL_LEFT(x) ((x) << 0)
0145 #define HIBMC_CRT_AUTO_CENTERING_TL_LEFT_MASK 0x7FF
0146
0147 #define HIBMC_CRT_AUTO_CENTERING_BR 0x080284
0148 #define HIBMC_CRT_AUTO_CENTERING_BR_BOTTOM(x) ((x) << 16)
0149 #define HIBMC_CRT_AUTO_CENTERING_BR_BOTTOM_MASK 0x7FF0000
0150
0151 #define HIBMC_CRT_AUTO_CENTERING_BR_RIGHT(x) ((x) << 0)
0152 #define HIBMC_CRT_AUTO_CENTERING_BR_RIGHT_MASK 0x7FF
0153
0154
0155 #define HIBMC_DISPLAY_CONTROL_HISILE 0x80288
0156 #define HIBMC_DISPLAY_CONTROL_FPVDDEN(x) ((x) << 0)
0157 #define HIBMC_DISPLAY_CONTROL_PANELDATE(x) ((x) << 1)
0158 #define HIBMC_DISPLAY_CONTROL_FPEN(x) ((x) << 2)
0159 #define HIBMC_DISPLAY_CONTROL_VBIASEN(x) ((x) << 3)
0160
0161 #define HIBMC_RAW_INTERRUPT 0x80290
0162 #define HIBMC_RAW_INTERRUPT_VBLANK(x) ((x) << 2)
0163 #define HIBMC_RAW_INTERRUPT_VBLANK_MASK 0x4
0164
0165 #define HIBMC_RAW_INTERRUPT_EN 0x80298
0166 #define HIBMC_RAW_INTERRUPT_EN_VBLANK(x) ((x) << 2)
0167 #define HIBMC_RAW_INTERRUPT_EN_VBLANK_MASK 0x4
0168
0169
0170 #define CRT_PLL1_HS 0x802a8
0171 #define CRT_PLL1_HS_OUTER_BYPASS(x) ((x) << 30)
0172 #define CRT_PLL1_HS_INTER_BYPASS(x) ((x) << 29)
0173 #define CRT_PLL1_HS_POWERON(x) ((x) << 24)
0174
0175 #define CRT_PLL1_HS_25MHZ 0x23d40f02
0176 #define CRT_PLL1_HS_40MHZ 0x23940801
0177 #define CRT_PLL1_HS_65MHZ 0x23940d01
0178 #define CRT_PLL1_HS_78MHZ 0x23540F82
0179 #define CRT_PLL1_HS_74MHZ 0x23941dc2
0180 #define CRT_PLL1_HS_80MHZ 0x23941001
0181 #define CRT_PLL1_HS_80MHZ_1152 0x23540fc2
0182 #define CRT_PLL1_HS_106MHZ 0x237C1641
0183 #define CRT_PLL1_HS_108MHZ 0x23b41b01
0184 #define CRT_PLL1_HS_162MHZ 0x23480681
0185 #define CRT_PLL1_HS_148MHZ 0x23541dc2
0186 #define CRT_PLL1_HS_193MHZ 0x234807c1
0187
0188 #define CRT_PLL2_HS 0x802ac
0189 #define CRT_PLL2_HS_25MHZ 0x206B851E
0190 #define CRT_PLL2_HS_40MHZ 0x30000000
0191 #define CRT_PLL2_HS_65MHZ 0x40000000
0192 #define CRT_PLL2_HS_78MHZ 0x50E147AE
0193 #define CRT_PLL2_HS_74MHZ 0x602B6AE7
0194 #define CRT_PLL2_HS_80MHZ 0x70000000
0195 #define CRT_PLL2_HS_106MHZ 0x0075c28f
0196 #define CRT_PLL2_HS_108MHZ 0x80000000
0197 #define CRT_PLL2_HS_162MHZ 0xA0000000
0198 #define CRT_PLL2_HS_148MHZ 0xB0CCCCCD
0199 #define CRT_PLL2_HS_193MHZ 0xC0872B02
0200
0201 #define HIBMC_CRT_PALETTE 0x80C00
0202
0203 #define HIBMC_FIELD(field, value) (field(value) & field##_MASK)
0204 #endif