.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
---|
1 | 2 | /* |
---|
2 | | - * Copyright (C) 2010-2013 Bluecherry, LLC <http://www.bluecherrydvr.com> |
---|
| 3 | + * Copyright (C) 2010-2013 Bluecherry, LLC <https://www.bluecherrydvr.com> |
---|
3 | 4 | * |
---|
4 | 5 | * Original author: |
---|
5 | 6 | * Ben Collins <bcollins@ubuntu.com> |
---|
6 | 7 | * |
---|
7 | 8 | * Additional work by: |
---|
8 | 9 | * John Brooks <john.brooks@bluecherry.net> |
---|
9 | | - * |
---|
10 | | - * This program is free software; you can redistribute it and/or modify |
---|
11 | | - * it under the terms of the GNU General Public License as published by |
---|
12 | | - * the Free Software Foundation; either version 2 of the License, or |
---|
13 | | - * (at your option) any later version. |
---|
14 | | - * |
---|
15 | | - * This program is distributed in the hope that it will be useful, |
---|
16 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
17 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
18 | | - * GNU General Public License for more details. |
---|
19 | 10 | */ |
---|
20 | 11 | |
---|
21 | 12 | #ifndef __SOLO6X10_REGISTERS_H |
---|
22 | 13 | #define __SOLO6X10_REGISTERS_H |
---|
| 14 | + |
---|
| 15 | +#include <linux/bitops.h> |
---|
23 | 16 | |
---|
24 | 17 | #include "solo6x10-offsets.h" |
---|
25 | 18 | |
---|
.. | .. |
---|
41 | 34 | #define SOLO_DMA_CTRL_REFRESH_CYCLE(n) ((n)<<8) |
---|
42 | 35 | /* 0=16/32MB, 1=32/64MB, 2=64/128MB, 3=128/256MB */ |
---|
43 | 36 | #define SOLO_DMA_CTRL_SDRAM_SIZE(n) ((n)<<6) |
---|
44 | | -#define SOLO_DMA_CTRL_SDRAM_CLK_INVERT (1<<5) |
---|
45 | | -#define SOLO_DMA_CTRL_STROBE_SELECT (1<<4) |
---|
46 | | -#define SOLO_DMA_CTRL_READ_DATA_SELECT (1<<3) |
---|
47 | | -#define SOLO_DMA_CTRL_READ_CLK_SELECT (1<<2) |
---|
| 37 | +#define SOLO_DMA_CTRL_SDRAM_CLK_INVERT BIT(5) |
---|
| 38 | +#define SOLO_DMA_CTRL_STROBE_SELECT BIT(4) |
---|
| 39 | +#define SOLO_DMA_CTRL_READ_DATA_SELECT BIT(3) |
---|
| 40 | +#define SOLO_DMA_CTRL_READ_CLK_SELECT BIT(2) |
---|
48 | 41 | #define SOLO_DMA_CTRL_LATENCY(n) ((n)<<0) |
---|
49 | 42 | |
---|
50 | 43 | /* Some things we set in this are undocumented. Why Softlogic?!?! */ |
---|
51 | 44 | #define SOLO_DMA_CTRL1 0x0008 |
---|
52 | 45 | |
---|
53 | 46 | #define SOLO_SYS_VCLK 0x000C |
---|
54 | | -#define SOLO_VCLK_INVERT (1<<22) |
---|
| 47 | +#define SOLO_VCLK_INVERT BIT(22) |
---|
55 | 48 | /* 0=sys_clk/4, 1=sys_clk/2, 2=clk_in/2 of system input */ |
---|
56 | 49 | #define SOLO_VCLK_SELECT(n) ((n)<<20) |
---|
57 | 50 | #define SOLO_VCLK_VIN1415_DELAY(n) ((n)<<14) |
---|
.. | .. |
---|
65 | 58 | |
---|
66 | 59 | #define SOLO_IRQ_STAT 0x0010 |
---|
67 | 60 | #define SOLO_IRQ_MASK 0x0014 |
---|
68 | | -#define SOLO_IRQ_P2M(n) (1<<((n)+17)) |
---|
69 | | -#define SOLO_IRQ_GPIO (1<<16) |
---|
70 | | -#define SOLO_IRQ_VIDEO_LOSS (1<<15) |
---|
71 | | -#define SOLO_IRQ_VIDEO_IN (1<<14) |
---|
72 | | -#define SOLO_IRQ_MOTION (1<<13) |
---|
73 | | -#define SOLO_IRQ_ATA_CMD (1<<12) |
---|
74 | | -#define SOLO_IRQ_ATA_DIR (1<<11) |
---|
75 | | -#define SOLO_IRQ_PCI_ERR (1<<10) |
---|
76 | | -#define SOLO_IRQ_PS2_1 (1<<9) |
---|
77 | | -#define SOLO_IRQ_PS2_0 (1<<8) |
---|
78 | | -#define SOLO_IRQ_SPI (1<<7) |
---|
79 | | -#define SOLO_IRQ_IIC (1<<6) |
---|
80 | | -#define SOLO_IRQ_UART(n) (1<<((n) + 4)) |
---|
81 | | -#define SOLO_IRQ_G723 (1<<3) |
---|
82 | | -#define SOLO_IRQ_DECODER (1<<1) |
---|
83 | | -#define SOLO_IRQ_ENCODER (1<<0) |
---|
| 61 | +#define SOLO_IRQ_P2M(n) BIT((n) + 17) |
---|
| 62 | +#define SOLO_IRQ_GPIO BIT(16) |
---|
| 63 | +#define SOLO_IRQ_VIDEO_LOSS BIT(15) |
---|
| 64 | +#define SOLO_IRQ_VIDEO_IN BIT(14) |
---|
| 65 | +#define SOLO_IRQ_MOTION BIT(13) |
---|
| 66 | +#define SOLO_IRQ_ATA_CMD BIT(12) |
---|
| 67 | +#define SOLO_IRQ_ATA_DIR BIT(11) |
---|
| 68 | +#define SOLO_IRQ_PCI_ERR BIT(10) |
---|
| 69 | +#define SOLO_IRQ_PS2_1 BIT(9) |
---|
| 70 | +#define SOLO_IRQ_PS2_0 BIT(8) |
---|
| 71 | +#define SOLO_IRQ_SPI BIT(7) |
---|
| 72 | +#define SOLO_IRQ_IIC BIT(6) |
---|
| 73 | +#define SOLO_IRQ_UART(n) BIT((n) + 4) |
---|
| 74 | +#define SOLO_IRQ_G723 BIT(3) |
---|
| 75 | +#define SOLO_IRQ_DECODER BIT(1) |
---|
| 76 | +#define SOLO_IRQ_ENCODER BIT(0) |
---|
84 | 77 | |
---|
85 | 78 | #define SOLO_CHIP_OPTION 0x001C |
---|
86 | 79 | #define SOLO_CHIP_ID_MASK 0x00000007 |
---|
.. | .. |
---|
88 | 81 | #define SOLO_PLL_CONFIG 0x0020 /* 6110 Only */ |
---|
89 | 82 | |
---|
90 | 83 | #define SOLO_EEPROM_CTRL 0x0060 |
---|
91 | | -#define SOLO_EEPROM_ACCESS_EN (1<<7) |
---|
92 | | -#define SOLO_EEPROM_CS (1<<3) |
---|
93 | | -#define SOLO_EEPROM_CLK (1<<2) |
---|
94 | | -#define SOLO_EEPROM_DO (1<<1) |
---|
95 | | -#define SOLO_EEPROM_DI (1<<0) |
---|
| 84 | +#define SOLO_EEPROM_ACCESS_EN BIT(7) |
---|
| 85 | +#define SOLO_EEPROM_CS BIT(3) |
---|
| 86 | +#define SOLO_EEPROM_CLK BIT(2) |
---|
| 87 | +#define SOLO_EEPROM_DO BIT(1) |
---|
| 88 | +#define SOLO_EEPROM_DI BIT(0) |
---|
96 | 89 | #define SOLO_EEPROM_ENABLE (SOLO_EEPROM_ACCESS_EN | SOLO_EEPROM_CS) |
---|
97 | 90 | |
---|
98 | 91 | #define SOLO_PCI_ERR 0x0070 |
---|
.. | .. |
---|
111 | 104 | |
---|
112 | 105 | #define SOLO_P2M_CONFIG(n) (0x0080 + ((n)*0x20)) |
---|
113 | 106 | #define SOLO_P2M_DMA_INTERVAL(n) ((n)<<6)/* N*32 clocks */ |
---|
114 | | -#define SOLO_P2M_CSC_BYTE_REORDER (1<<5) /* BGR -> RGB */ |
---|
| 107 | +#define SOLO_P2M_CSC_BYTE_REORDER BIT(5) /* BGR -> RGB */ |
---|
115 | 108 | /* 0:r=[14:10] g=[9:5] b=[4:0], 1:r=[15:11] g=[10:5] b=[4:0] */ |
---|
116 | | -#define SOLO_P2M_CSC_16BIT_565 (1<<4) |
---|
117 | | -#define SOLO_P2M_UV_SWAP (1<<3) |
---|
118 | | -#define SOLO_P2M_PCI_MASTER_MODE (1<<2) |
---|
119 | | -#define SOLO_P2M_DESC_INTR_OPT (1<<1) /* 1:Empty, 0:Each */ |
---|
120 | | -#define SOLO_P2M_DESC_MODE (1<<0) |
---|
| 109 | +#define SOLO_P2M_CSC_16BIT_565 BIT(4) |
---|
| 110 | +#define SOLO_P2M_UV_SWAP BIT(3) |
---|
| 111 | +#define SOLO_P2M_PCI_MASTER_MODE BIT(2) |
---|
| 112 | +#define SOLO_P2M_DESC_INTR_OPT BIT(1) /* 1:Empty, 0:Each */ |
---|
| 113 | +#define SOLO_P2M_DESC_MODE BIT(0) |
---|
121 | 114 | |
---|
122 | 115 | #define SOLO_P2M_DES_ADR(n) (0x0084 + ((n)*0x20)) |
---|
123 | 116 | |
---|
.. | .. |
---|
125 | 118 | #define SOLO_P2M_UPDATE_ID(n) ((n)<<0) |
---|
126 | 119 | |
---|
127 | 120 | #define SOLO_P2M_STATUS(n) (0x008C + ((n)*0x20)) |
---|
128 | | -#define SOLO_P2M_COMMAND_DONE (1<<8) |
---|
| 121 | +#define SOLO_P2M_COMMAND_DONE BIT(8) |
---|
129 | 122 | #define SOLO_P2M_CURRENT_ID(stat) (0xff & (stat)) |
---|
130 | 123 | |
---|
131 | 124 | #define SOLO_P2M_CONTROL(n) (0x0090 + ((n)*0x20)) |
---|
.. | .. |
---|
138 | 131 | #define SOLO_P2M_BURST_128 2 |
---|
139 | 132 | #define SOLO_P2M_BURST_64 3 |
---|
140 | 133 | #define SOLO_P2M_BURST_32 4 |
---|
141 | | -#define SOLO_P2M_CSC_16BIT (1<<6) /* 0:24bit, 1:16bit */ |
---|
| 134 | +#define SOLO_P2M_CSC_16BIT BIT(6) /* 0:24bit, 1:16bit */ |
---|
142 | 135 | /* 0:Y[0]<-0(OFF), 1:Y[0]<-1(ON), 2:Y[0]<-G[0], 3:Y[0]<-Bit[15] */ |
---|
143 | 136 | #define SOLO_P2M_ALPHA_MODE(n) ((n)<<4) |
---|
144 | | -#define SOLO_P2M_CSC_ON (1<<3) |
---|
145 | | -#define SOLO_P2M_INTERRUPT_REQ (1<<2) |
---|
146 | | -#define SOLO_P2M_WRITE (1<<1) |
---|
147 | | -#define SOLO_P2M_TRANS_ON (1<<0) |
---|
| 137 | +#define SOLO_P2M_CSC_ON BIT(3) |
---|
| 138 | +#define SOLO_P2M_INTERRUPT_REQ BIT(2) |
---|
| 139 | +#define SOLO_P2M_WRITE BIT(1) |
---|
| 140 | +#define SOLO_P2M_TRANS_ON BIT(0) |
---|
148 | 141 | |
---|
149 | 142 | #define SOLO_P2M_EXT_CFG(n) (0x0094 + ((n)*0x20)) |
---|
150 | 143 | #define SOLO_P2M_EXT_INC(n) ((n)<<20) |
---|
.. | .. |
---|
166 | 159 | #define SOLO_VI_PROG_MASK(n) ((n)<<0) |
---|
167 | 160 | |
---|
168 | 161 | #define SOLO_VI_FMT_CFG 0x0114 |
---|
169 | | -#define SOLO_VI_FMT_CHECK_VCOUNT (1<<31) |
---|
170 | | -#define SOLO_VI_FMT_CHECK_HCOUNT (1<<30) |
---|
171 | | -#define SOLO_VI_FMT_TEST_SIGNAL (1<<28) |
---|
| 162 | +#define SOLO_VI_FMT_CHECK_VCOUNT BIT(31) |
---|
| 163 | +#define SOLO_VI_FMT_CHECK_HCOUNT BIT(30) |
---|
| 164 | +#define SOLO_VI_FMT_TEST_SIGNAL BIT(28) |
---|
172 | 165 | |
---|
173 | 166 | #define SOLO_VI_PAGE_SW 0x0118 |
---|
174 | 167 | #define SOLO_FI_INV_DISP_LIVE(n) ((n)<<8) |
---|
.. | .. |
---|
180 | 173 | #define SOLO_VI_ACT_I_P 0x011C |
---|
181 | 174 | #define SOLO_VI_ACT_I_S 0x0120 |
---|
182 | 175 | #define SOLO_VI_ACT_P 0x0124 |
---|
183 | | -#define SOLO_VI_FI_INVERT (1<<31) |
---|
| 176 | +#define SOLO_VI_FI_INVERT BIT(31) |
---|
184 | 177 | #define SOLO_VI_H_START(n) ((n)<<21) |
---|
185 | 178 | #define SOLO_VI_V_START(n) ((n)<<11) |
---|
186 | 179 | #define SOLO_VI_V_STOP(n) ((n)<<0) |
---|
.. | .. |
---|
193 | 186 | #define DISP_PAGE(stat) ((stat) & 0x07) |
---|
194 | 187 | |
---|
195 | 188 | #define SOLO_VI_PB_CONFIG 0x0130 |
---|
196 | | -#define SOLO_VI_PB_USER_MODE (1<<1) |
---|
197 | | -#define SOLO_VI_PB_PAL (1<<0) |
---|
| 189 | +#define SOLO_VI_PB_USER_MODE BIT(1) |
---|
| 190 | +#define SOLO_VI_PB_PAL BIT(0) |
---|
198 | 191 | #define SOLO_VI_PB_RANGE_HV 0x0134 |
---|
199 | 192 | #define SOLO_VI_PB_HSIZE(h) ((h)<<12) |
---|
200 | 193 | #define SOLO_VI_PB_VSIZE(v) ((v)<<0) |
---|
.. | .. |
---|
235 | 228 | #define SOLO_VI_MOT_CTRL 0x0264 |
---|
236 | 229 | #define SOLO_VI_MOTION_FRAME_COUNT(n) ((n)<<24) |
---|
237 | 230 | #define SOLO_VI_MOTION_SAMPLE_LENGTH(n) ((n)<<16) |
---|
238 | | -#define SOLO_VI_MOTION_INTR_START_STOP (1<<15) |
---|
239 | | -#define SOLO_VI_MOTION_FREEZE_DATA (1<<14) |
---|
| 231 | +#define SOLO_VI_MOTION_INTR_START_STOP BIT(15) |
---|
| 232 | +#define SOLO_VI_MOTION_FREEZE_DATA BIT(14) |
---|
240 | 233 | #define SOLO_VI_MOTION_SAMPLE_COUNT(n) ((n)<<0) |
---|
241 | 234 | #define SOLO_VI_MOT_CLEAR 0x0268 |
---|
242 | 235 | #define SOLO_VI_MOT_STATUS 0x026C |
---|
243 | 236 | #define SOLO_VI_MOTION_CNT(n) ((n)<<0) |
---|
244 | 237 | #define SOLO_VI_MOTION_BORDER 0x0270 |
---|
245 | 238 | #define SOLO_VI_MOTION_BAR 0x0274 |
---|
246 | | -#define SOLO_VI_MOTION_Y_SET (1<<29) |
---|
247 | | -#define SOLO_VI_MOTION_Y_ADD (1<<28) |
---|
248 | | -#define SOLO_VI_MOTION_CB_SET (1<<27) |
---|
249 | | -#define SOLO_VI_MOTION_CB_ADD (1<<26) |
---|
250 | | -#define SOLO_VI_MOTION_CR_SET (1<<25) |
---|
251 | | -#define SOLO_VI_MOTION_CR_ADD (1<<24) |
---|
| 239 | +#define SOLO_VI_MOTION_Y_SET BIT(29) |
---|
| 240 | +#define SOLO_VI_MOTION_Y_ADD BIT(28) |
---|
| 241 | +#define SOLO_VI_MOTION_CB_SET BIT(27) |
---|
| 242 | +#define SOLO_VI_MOTION_CB_ADD BIT(26) |
---|
| 243 | +#define SOLO_VI_MOTION_CR_SET BIT(25) |
---|
| 244 | +#define SOLO_VI_MOTION_CR_ADD BIT(24) |
---|
252 | 245 | #define SOLO_VI_MOTION_Y_VALUE(v) ((v)<<16) |
---|
253 | 246 | #define SOLO_VI_MOTION_CB_VALUE(v) ((v)<<8) |
---|
254 | 247 | #define SOLO_VI_MOTION_CR_VALUE(v) ((v)<<0) |
---|
255 | 248 | |
---|
256 | 249 | #define SOLO_VO_FMT_ENC 0x0300 |
---|
257 | | -#define SOLO_VO_SCAN_MODE_PROGRESSIVE (1<<31) |
---|
258 | | -#define SOLO_VO_FMT_TYPE_PAL (1<<30) |
---|
| 250 | +#define SOLO_VO_SCAN_MODE_PROGRESSIVE BIT(31) |
---|
| 251 | +#define SOLO_VO_FMT_TYPE_PAL BIT(30) |
---|
259 | 252 | #define SOLO_VO_FMT_TYPE_NTSC 0 |
---|
260 | | -#define SOLO_VO_USER_SET (1<<29) |
---|
| 253 | +#define SOLO_VO_USER_SET BIT(29) |
---|
261 | 254 | |
---|
262 | | -#define SOLO_VO_FI_CHANGE (1<<20) |
---|
263 | | -#define SOLO_VO_USER_COLOR_SET_VSYNC (1<<19) |
---|
264 | | -#define SOLO_VO_USER_COLOR_SET_HSYNC (1<<18) |
---|
265 | | -#define SOLO_VO_USER_COLOR_SET_NAH (1<<17) |
---|
266 | | -#define SOLO_VO_USER_COLOR_SET_NAV (1<<16) |
---|
| 255 | +#define SOLO_VO_FI_CHANGE BIT(20) |
---|
| 256 | +#define SOLO_VO_USER_COLOR_SET_VSYNC BIT(19) |
---|
| 257 | +#define SOLO_VO_USER_COLOR_SET_HSYNC BIT(18) |
---|
| 258 | +#define SOLO_VO_USER_COLOR_SET_NAH BIT(17) |
---|
| 259 | +#define SOLO_VO_USER_COLOR_SET_NAV BIT(16) |
---|
267 | 260 | #define SOLO_VO_NA_COLOR_Y(Y) ((Y)<<8) |
---|
268 | 261 | #define SOLO_VO_NA_COLOR_CB(CB) (((CB)/16)<<4) |
---|
269 | 262 | #define SOLO_VO_NA_COLOR_CR(CR) (((CR)/16)<<0) |
---|
.. | .. |
---|
279 | 272 | #define SOLO_VO_V_STOP(n) ((n)<<0) |
---|
280 | 273 | |
---|
281 | 274 | #define SOLO_VO_RANGE_HV 0x030C |
---|
282 | | -#define SOLO_VO_SYNC_INVERT (1<<24) |
---|
283 | | -#define SOLO_VO_HSYNC_INVERT (1<<23) |
---|
284 | | -#define SOLO_VO_VSYNC_INVERT (1<<22) |
---|
| 275 | +#define SOLO_VO_SYNC_INVERT BIT(24) |
---|
| 276 | +#define SOLO_VO_HSYNC_INVERT BIT(23) |
---|
| 277 | +#define SOLO_VO_VSYNC_INVERT BIT(22) |
---|
285 | 278 | #define SOLO_VO_H_LEN(n) ((n)<<11) |
---|
286 | 279 | #define SOLO_VO_V_LEN(n) ((n)<<0) |
---|
287 | 280 | |
---|
288 | 281 | #define SOLO_VO_DISP_CTRL 0x0310 |
---|
289 | | -#define SOLO_VO_DISP_ON (1<<31) |
---|
| 282 | +#define SOLO_VO_DISP_ON BIT(31) |
---|
290 | 283 | #define SOLO_VO_DISP_ERASE_COUNT(n) ((n&0xf)<<24) |
---|
291 | | -#define SOLO_VO_DISP_DOUBLE_SCAN (1<<22) |
---|
292 | | -#define SOLO_VO_DISP_SINGLE_PAGE (1<<21) |
---|
| 284 | +#define SOLO_VO_DISP_DOUBLE_SCAN BIT(22) |
---|
| 285 | +#define SOLO_VO_DISP_SINGLE_PAGE BIT(21) |
---|
293 | 286 | #define SOLO_VO_DISP_BASE(n) (((n)>>16) & 0xffff) |
---|
294 | 287 | |
---|
295 | 288 | #define SOLO_VO_DISP_ERASE 0x0314 |
---|
296 | | -#define SOLO_VO_DISP_ERASE_ON (1<<0) |
---|
| 289 | +#define SOLO_VO_DISP_ERASE_ON BIT(0) |
---|
297 | 290 | |
---|
298 | 291 | #define SOLO_VO_ZOOM_CTRL 0x0318 |
---|
299 | | -#define SOLO_VO_ZOOM_VER_ON (1<<24) |
---|
300 | | -#define SOLO_VO_ZOOM_HOR_ON (1<<23) |
---|
301 | | -#define SOLO_VO_ZOOM_V_COMP (1<<22) |
---|
| 292 | +#define SOLO_VO_ZOOM_VER_ON BIT(24) |
---|
| 293 | +#define SOLO_VO_ZOOM_HOR_ON BIT(23) |
---|
| 294 | +#define SOLO_VO_ZOOM_V_COMP BIT(22) |
---|
302 | 295 | #define SOLO_VO_ZOOM_SX(h) (((h)/2)<<11) |
---|
303 | 296 | #define SOLO_VO_ZOOM_SY(v) (((v)/2)<<0) |
---|
304 | 297 | |
---|
305 | 298 | #define SOLO_VO_FREEZE_CTRL 0x031C |
---|
306 | | -#define SOLO_VO_FREEZE_ON (1<<1) |
---|
307 | | -#define SOLO_VO_FREEZE_INTERPOLATION (1<<0) |
---|
| 299 | +#define SOLO_VO_FREEZE_ON BIT(1) |
---|
| 300 | +#define SOLO_VO_FREEZE_INTERPOLATION BIT(0) |
---|
308 | 301 | |
---|
309 | 302 | #define SOLO_VO_BKG_COLOR 0x0320 |
---|
310 | 303 | #define SOLO_BG_Y(y) ((y)<<16) |
---|
.. | .. |
---|
343 | 336 | #define SOLO_VO_EXPANSION(id) (0x0250+((id)*4)) |
---|
344 | 337 | |
---|
345 | 338 | #define SOLO_OSG_CONFIG 0x03E0 |
---|
346 | | -#define SOLO_VO_OSG_ON (1<<31) |
---|
347 | | -#define SOLO_VO_OSG_COLOR_MUTE (1<<28) |
---|
| 339 | +#define SOLO_VO_OSG_ON BIT(31) |
---|
| 340 | +#define SOLO_VO_OSG_COLOR_MUTE BIT(28) |
---|
348 | 341 | #define SOLO_VO_OSG_ALPHA_RATE(n) ((n)<<22) |
---|
349 | 342 | #define SOLO_VO_OSG_ALPHA_BG_RATE(n) ((n)<<16) |
---|
350 | 343 | #define SOLO_VO_OSG_BASE(offset) (((offset)>>16)&0xffff) |
---|
.. | .. |
---|
354 | 347 | #define SOLO_OSG_ERASE_OFF (0x00) |
---|
355 | 348 | |
---|
356 | 349 | #define SOLO_VO_OSG_BLINK 0x03E8 |
---|
357 | | -#define SOLO_VO_OSG_BLINK_ON (1<<1) |
---|
358 | | -#define SOLO_VO_OSG_BLINK_INTREVAL18 (1<<0) |
---|
| 350 | +#define SOLO_VO_OSG_BLINK_ON BIT(1) |
---|
| 351 | +#define SOLO_VO_OSG_BLINK_INTREVAL18 BIT(0) |
---|
359 | 352 | |
---|
360 | 353 | #define SOLO_CAP_BASE 0x0400 |
---|
361 | 354 | #define SOLO_CAP_MAX_PAGE(n) ((n)<<16) |
---|
.. | .. |
---|
383 | 376 | |
---|
384 | 377 | |
---|
385 | 378 | #define SOLO_VE_CFG0 0x0610 |
---|
386 | | -#define SOLO_VE_TWO_PAGE_MODE (1<<31) |
---|
| 379 | +#define SOLO_VE_TWO_PAGE_MODE BIT(31) |
---|
387 | 380 | #define SOLO_VE_INTR_CTRL(n) ((n)<<24) |
---|
388 | 381 | #define SOLO_VE_BLOCK_SIZE(n) ((n)<<16) |
---|
389 | 382 | #define SOLO_VE_BLOCK_BASE(n) ((n)<<0) |
---|
390 | 383 | |
---|
391 | 384 | #define SOLO_VE_CFG1 0x0614 |
---|
392 | 385 | #define SOLO_VE_BYTE_ALIGN(n) ((n)<<24) |
---|
393 | | -#define SOLO_VE_INSERT_INDEX (1<<18) |
---|
| 386 | +#define SOLO_VE_INSERT_INDEX BIT(18) |
---|
394 | 387 | #define SOLO_VE_MOTION_MODE(n) ((n)<<16) |
---|
395 | 388 | #define SOLO_VE_MOTION_BASE(n) ((n)<<0) |
---|
396 | 389 | #define SOLO_VE_MPEG_SIZE_H(n) ((n)<<28) /* 6110 Only */ |
---|
397 | 390 | #define SOLO_VE_JPEG_SIZE_H(n) ((n)<<20) /* 6110 Only */ |
---|
398 | | -#define SOLO_VE_INSERT_INDEX_JPEG (1<<19) /* 6110 Only */ |
---|
| 391 | +#define SOLO_VE_INSERT_INDEX_JPEG BIT(19) /* 6110 Only */ |
---|
399 | 392 | |
---|
400 | 393 | #define SOLO_VE_WMRK_POLY 0x061C |
---|
401 | 394 | #define SOLO_VE_VMRK_INIT_KEY 0x0620 |
---|
.. | .. |
---|
403 | 396 | #define SOLO_VE_ENCRYP_POLY 0x0628 |
---|
404 | 397 | #define SOLO_VE_ENCRYP_INIT 0x062C |
---|
405 | 398 | #define SOLO_VE_ATTR 0x0630 |
---|
406 | | -#define SOLO_VE_LITTLE_ENDIAN (1<<31) |
---|
407 | | -#define SOLO_COMP_ATTR_RN (1<<30) |
---|
| 399 | +#define SOLO_VE_LITTLE_ENDIAN BIT(31) |
---|
| 400 | +#define SOLO_COMP_ATTR_RN BIT(30) |
---|
408 | 401 | #define SOLO_COMP_ATTR_FCODE(n) ((n)<<27) |
---|
409 | 402 | #define SOLO_COMP_TIME_INC(n) ((n)<<25) |
---|
410 | 403 | #define SOLO_COMP_TIME_WIDTH(n) ((n)<<21) |
---|
.. | .. |
---|
425 | 418 | #define SOLO_VE_OSD_BASE 0x0694 |
---|
426 | 419 | #define SOLO_VE_OSD_CLR 0x0698 |
---|
427 | 420 | #define SOLO_VE_OSD_OPT 0x069C |
---|
428 | | -#define SOLO_VE_OSD_V_DOUBLE (1<<16) /* 6110 Only */ |
---|
429 | | -#define SOLO_VE_OSD_H_SHADOW (1<<15) |
---|
430 | | -#define SOLO_VE_OSD_V_SHADOW (1<<14) |
---|
| 421 | +#define SOLO_VE_OSD_V_DOUBLE BIT(16) /* 6110 Only */ |
---|
| 422 | +#define SOLO_VE_OSD_H_SHADOW BIT(15) |
---|
| 423 | +#define SOLO_VE_OSD_V_SHADOW BIT(14) |
---|
431 | 424 | #define SOLO_VE_OSD_H_OFFSET(n) ((n & 0x7f)<<7) |
---|
432 | 425 | #define SOLO_VE_OSD_V_OFFSET(n) (n & 0x7f) |
---|
433 | 426 | |
---|
.. | .. |
---|
444 | 437 | #define SOLO_VE_JPEG_QUE(n) (0x0A04+((n)*8)) |
---|
445 | 438 | |
---|
446 | 439 | #define SOLO_VD_CFG0 0x0900 |
---|
447 | | -#define SOLO_VD_CFG_NO_WRITE_NO_WINDOW (1<<24) |
---|
448 | | -#define SOLO_VD_CFG_BUSY_WIAT_CODE (1<<23) |
---|
449 | | -#define SOLO_VD_CFG_BUSY_WIAT_REF (1<<22) |
---|
450 | | -#define SOLO_VD_CFG_BUSY_WIAT_RES (1<<21) |
---|
451 | | -#define SOLO_VD_CFG_BUSY_WIAT_MS (1<<20) |
---|
452 | | -#define SOLO_VD_CFG_SINGLE_MODE (1<<18) |
---|
453 | | -#define SOLO_VD_CFG_SCAL_MANUAL (1<<17) |
---|
454 | | -#define SOLO_VD_CFG_USER_PAGE_CTRL (1<<16) |
---|
455 | | -#define SOLO_VD_CFG_LITTLE_ENDIAN (1<<15) |
---|
456 | | -#define SOLO_VD_CFG_START_FI (1<<14) |
---|
457 | | -#define SOLO_VD_CFG_ERR_LOCK (1<<13) |
---|
458 | | -#define SOLO_VD_CFG_ERR_INT_ENA (1<<12) |
---|
| 440 | +#define SOLO_VD_CFG_NO_WRITE_NO_WINDOW BIT(24) |
---|
| 441 | +#define SOLO_VD_CFG_BUSY_WIAT_CODE BIT(23) |
---|
| 442 | +#define SOLO_VD_CFG_BUSY_WIAT_REF BIT(22) |
---|
| 443 | +#define SOLO_VD_CFG_BUSY_WIAT_RES BIT(21) |
---|
| 444 | +#define SOLO_VD_CFG_BUSY_WIAT_MS BIT(20) |
---|
| 445 | +#define SOLO_VD_CFG_SINGLE_MODE BIT(18) |
---|
| 446 | +#define SOLO_VD_CFG_SCAL_MANUAL BIT(17) |
---|
| 447 | +#define SOLO_VD_CFG_USER_PAGE_CTRL BIT(16) |
---|
| 448 | +#define SOLO_VD_CFG_LITTLE_ENDIAN BIT(15) |
---|
| 449 | +#define SOLO_VD_CFG_START_FI BIT(14) |
---|
| 450 | +#define SOLO_VD_CFG_ERR_LOCK BIT(13) |
---|
| 451 | +#define SOLO_VD_CFG_ERR_INT_ENA BIT(12) |
---|
459 | 452 | #define SOLO_VD_CFG_TIME_WIDTH(n) ((n)<<8) |
---|
460 | 453 | #define SOLO_VD_CFG_DCT_INTERVAL(n) ((n)<<0) |
---|
461 | 454 | |
---|
.. | .. |
---|
468 | 461 | #define SOLO_VD_CODE_ADR 0x090C |
---|
469 | 462 | |
---|
470 | 463 | #define SOLO_VD_CTRL 0x0910 |
---|
471 | | -#define SOLO_VD_OPER_ON (1<<31) |
---|
| 464 | +#define SOLO_VD_OPER_ON BIT(31) |
---|
472 | 465 | #define SOLO_VD_MAX_ITEM(n) ((n)<<0) |
---|
473 | 466 | |
---|
474 | 467 | #define SOLO_VD_STATUS0 0x0920 |
---|
475 | | -#define SOLO_VD_STATUS0_INTR_ACK (1<<22) |
---|
476 | | -#define SOLO_VD_STATUS0_INTR_EMPTY (1<<21) |
---|
477 | | -#define SOLO_VD_STATUS0_INTR_ERR (1<<20) |
---|
| 468 | +#define SOLO_VD_STATUS0_INTR_ACK BIT(22) |
---|
| 469 | +#define SOLO_VD_STATUS0_INTR_EMPTY BIT(21) |
---|
| 470 | +#define SOLO_VD_STATUS0_INTR_ERR BIT(20) |
---|
478 | 471 | |
---|
479 | 472 | #define SOLO_VD_STATUS1 0x0924 |
---|
480 | 473 | |
---|
481 | 474 | #define SOLO_VD_IDX0 0x0930 |
---|
482 | | -#define SOLO_VD_IDX_INTERLACE (1<<30) |
---|
| 475 | +#define SOLO_VD_IDX_INTERLACE BIT(30) |
---|
483 | 476 | #define SOLO_VD_IDX_CHANNEL(n) ((n)<<24) |
---|
484 | 477 | #define SOLO_VD_IDX_SIZE(n) ((n)<<0) |
---|
485 | 478 | |
---|
486 | 479 | #define SOLO_VD_IDX1 0x0934 |
---|
487 | 480 | #define SOLO_VD_IDX_SRC_SCALE(n) ((n)<<28) |
---|
488 | 481 | #define SOLO_VD_IDX_WINDOW(n) ((n)<<24) |
---|
489 | | -#define SOLO_VD_IDX_DEINTERLACE (1<<16) |
---|
| 482 | +#define SOLO_VD_IDX_DEINTERLACE BIT(16) |
---|
490 | 483 | #define SOLO_VD_IDX_H_BLOCK(n) ((n)<<8) |
---|
491 | 484 | #define SOLO_VD_IDX_V_BLOCK(n) ((n)<<0) |
---|
492 | 485 | |
---|
493 | 486 | #define SOLO_VD_IDX2 0x0938 |
---|
494 | | -#define SOLO_VD_IDX_REF_BASE_SIDE (1<<31) |
---|
| 487 | +#define SOLO_VD_IDX_REF_BASE_SIDE BIT(31) |
---|
495 | 488 | #define SOLO_VD_IDX_REF_BASE(n) (((n)>>16)&0xffff) |
---|
496 | 489 | |
---|
497 | 490 | #define SOLO_VD_IDX3 0x093C |
---|
498 | 491 | #define SOLO_VD_IDX_DISP_SCALE(n) ((n)<<28) |
---|
499 | | -#define SOLO_VD_IDX_INTERLACE_WR (1<<27) |
---|
500 | | -#define SOLO_VD_IDX_INTERPOL (1<<26) |
---|
501 | | -#define SOLO_VD_IDX_HOR2X (1<<25) |
---|
| 492 | +#define SOLO_VD_IDX_INTERLACE_WR BIT(27) |
---|
| 493 | +#define SOLO_VD_IDX_INTERPOL BIT(26) |
---|
| 494 | +#define SOLO_VD_IDX_HOR2X BIT(25) |
---|
502 | 495 | #define SOLO_VD_IDX_OFFSET_X(n) ((n)<<12) |
---|
503 | 496 | #define SOLO_VD_IDX_OFFSET_Y(n) ((n)<<0) |
---|
504 | 497 | |
---|
.. | .. |
---|
520 | 513 | |
---|
521 | 514 | |
---|
522 | 515 | #define SOLO_IIC_CFG 0x0B20 |
---|
523 | | -#define SOLO_IIC_ENABLE (1<<8) |
---|
| 516 | +#define SOLO_IIC_ENABLE BIT(8) |
---|
524 | 517 | #define SOLO_IIC_PRESCALE(n) ((n)<<0) |
---|
525 | 518 | |
---|
526 | 519 | #define SOLO_IIC_CTRL 0x0B24 |
---|
527 | | -#define SOLO_IIC_AUTO_CLEAR (1<<20) |
---|
528 | | -#define SOLO_IIC_STATE_RX_ACK (1<<19) |
---|
529 | | -#define SOLO_IIC_STATE_BUSY (1<<18) |
---|
530 | | -#define SOLO_IIC_STATE_SIG_ERR (1<<17) |
---|
531 | | -#define SOLO_IIC_STATE_TRNS (1<<16) |
---|
| 520 | +#define SOLO_IIC_AUTO_CLEAR BIT(20) |
---|
| 521 | +#define SOLO_IIC_STATE_RX_ACK BIT(19) |
---|
| 522 | +#define SOLO_IIC_STATE_BUSY BIT(18) |
---|
| 523 | +#define SOLO_IIC_STATE_SIG_ERR BIT(17) |
---|
| 524 | +#define SOLO_IIC_STATE_TRNS BIT(16) |
---|
532 | 525 | #define SOLO_IIC_CH_SET(n) ((n)<<5) |
---|
533 | | -#define SOLO_IIC_ACK_EN (1<<4) |
---|
534 | | -#define SOLO_IIC_START (1<<3) |
---|
535 | | -#define SOLO_IIC_STOP (1<<2) |
---|
536 | | -#define SOLO_IIC_READ (1<<1) |
---|
537 | | -#define SOLO_IIC_WRITE (1<<0) |
---|
| 526 | +#define SOLO_IIC_ACK_EN BIT(4) |
---|
| 527 | +#define SOLO_IIC_START BIT(3) |
---|
| 528 | +#define SOLO_IIC_STOP BIT(2) |
---|
| 529 | +#define SOLO_IIC_READ BIT(1) |
---|
| 530 | +#define SOLO_IIC_WRITE BIT(0) |
---|
538 | 531 | |
---|
539 | 532 | #define SOLO_IIC_TXD 0x0B28 |
---|
540 | 533 | #define SOLO_IIC_RXD 0x0B2C |
---|
.. | .. |
---|
544 | 537 | */ |
---|
545 | 538 | #define SOLO_UART_CONTROL(n) (0x0BA0 + ((n)*0x20)) |
---|
546 | 539 | #define SOLO_UART_CLK_DIV(n) ((n)<<24) |
---|
547 | | -#define SOLO_MODEM_CTRL_EN (1<<20) |
---|
548 | | -#define SOLO_PARITY_ERROR_DROP (1<<18) |
---|
549 | | -#define SOLO_IRQ_ERR_EN (1<<17) |
---|
550 | | -#define SOLO_IRQ_RX_EN (1<<16) |
---|
551 | | -#define SOLO_IRQ_TX_EN (1<<15) |
---|
552 | | -#define SOLO_RX_EN (1<<14) |
---|
553 | | -#define SOLO_TX_EN (1<<13) |
---|
554 | | -#define SOLO_UART_HALF_DUPLEX (1<<12) |
---|
555 | | -#define SOLO_UART_LOOPBACK (1<<11) |
---|
| 540 | +#define SOLO_MODEM_CTRL_EN BIT(20) |
---|
| 541 | +#define SOLO_PARITY_ERROR_DROP BIT(18) |
---|
| 542 | +#define SOLO_IRQ_ERR_EN BIT(17) |
---|
| 543 | +#define SOLO_IRQ_RX_EN BIT(16) |
---|
| 544 | +#define SOLO_IRQ_TX_EN BIT(15) |
---|
| 545 | +#define SOLO_RX_EN BIT(14) |
---|
| 546 | +#define SOLO_TX_EN BIT(13) |
---|
| 547 | +#define SOLO_UART_HALF_DUPLEX BIT(12) |
---|
| 548 | +#define SOLO_UART_LOOPBACK BIT(11) |
---|
556 | 549 | |
---|
557 | 550 | #define SOLO_BAUDRATE_230400 ((0<<9)|(0<<6)) |
---|
558 | 551 | #define SOLO_BAUDRATE_115200 ((0<<9)|(1<<6)) |
---|
.. | .. |
---|
578 | 571 | #define SOLO_UART_PARITY_ODD (3<<0) |
---|
579 | 572 | |
---|
580 | 573 | #define SOLO_UART_STATUS(n) (0x0BA4 + ((n)*0x20)) |
---|
581 | | -#define SOLO_UART_CTS (1<<15) |
---|
582 | | -#define SOLO_UART_RX_BUSY (1<<14) |
---|
583 | | -#define SOLO_UART_OVERRUN (1<<13) |
---|
584 | | -#define SOLO_UART_FRAME_ERR (1<<12) |
---|
585 | | -#define SOLO_UART_PARITY_ERR (1<<11) |
---|
586 | | -#define SOLO_UART_TX_BUSY (1<<5) |
---|
| 574 | +#define SOLO_UART_CTS BIT(15) |
---|
| 575 | +#define SOLO_UART_RX_BUSY BIT(14) |
---|
| 576 | +#define SOLO_UART_OVERRUN BIT(13) |
---|
| 577 | +#define SOLO_UART_FRAME_ERR BIT(12) |
---|
| 578 | +#define SOLO_UART_PARITY_ERR BIT(11) |
---|
| 579 | +#define SOLO_UART_TX_BUSY BIT(5) |
---|
587 | 580 | |
---|
588 | 581 | #define SOLO_UART_RX_BUFF_CNT(stat) (((stat)>>6) & 0x1f) |
---|
589 | 582 | #define SOLO_UART_RX_BUFF_SIZE 8 |
---|
.. | .. |
---|
591 | 584 | #define SOLO_UART_TX_BUFF_SIZE 8 |
---|
592 | 585 | |
---|
593 | 586 | #define SOLO_UART_TX_DATA(n) (0x0BA8 + ((n)*0x20)) |
---|
594 | | -#define SOLO_UART_TX_DATA_PUSH (1<<8) |
---|
| 587 | +#define SOLO_UART_TX_DATA_PUSH BIT(8) |
---|
595 | 588 | #define SOLO_UART_RX_DATA(n) (0x0BAC + ((n)*0x20)) |
---|
596 | | -#define SOLO_UART_RX_DATA_POP (1<<8) |
---|
| 589 | +#define SOLO_UART_RX_DATA_POP BIT(8) |
---|
597 | 590 | |
---|
598 | 591 | #define SOLO_TIMER_CLOCK_NUM 0x0be0 |
---|
599 | 592 | #define SOLO_TIMER_USEC 0x0be8 |
---|
.. | .. |
---|
601 | 594 | #define SOLO_TIMER_USEC_LSB 0x0d20 /* 6110 Only */ |
---|
602 | 595 | |
---|
603 | 596 | #define SOLO_AUDIO_CONTROL 0x0D00 |
---|
604 | | -#define SOLO_AUDIO_ENABLE (1<<31) |
---|
605 | | -#define SOLO_AUDIO_MASTER_MODE (1<<30) |
---|
606 | | -#define SOLO_AUDIO_I2S_MODE (1<<29) |
---|
607 | | -#define SOLO_AUDIO_I2S_LR_SWAP (1<<27) |
---|
608 | | -#define SOLO_AUDIO_I2S_8BIT (1<<26) |
---|
| 597 | +#define SOLO_AUDIO_ENABLE BIT(31) |
---|
| 598 | +#define SOLO_AUDIO_MASTER_MODE BIT(30) |
---|
| 599 | +#define SOLO_AUDIO_I2S_MODE BIT(29) |
---|
| 600 | +#define SOLO_AUDIO_I2S_LR_SWAP BIT(27) |
---|
| 601 | +#define SOLO_AUDIO_I2S_8BIT BIT(26) |
---|
609 | 602 | #define SOLO_AUDIO_I2S_MULTI(n) ((n)<<24) |
---|
610 | | -#define SOLO_AUDIO_MIX_9TO0 (1<<23) |
---|
| 603 | +#define SOLO_AUDIO_MIX_9TO0 BIT(23) |
---|
611 | 604 | #define SOLO_AUDIO_DEC_9TO0_VOL(n) ((n)<<20) |
---|
612 | | -#define SOLO_AUDIO_MIX_19TO10 (1<<19) |
---|
| 605 | +#define SOLO_AUDIO_MIX_19TO10 BIT(19) |
---|
613 | 606 | #define SOLO_AUDIO_DEC_19TO10_VOL(n) ((n)<<16) |
---|
614 | 607 | #define SOLO_AUDIO_MODE(n) ((n)<<0) |
---|
615 | 608 | #define SOLO_AUDIO_SAMPLE 0x0D04 |
---|
616 | | -#define SOLO_AUDIO_EE_MODE_ON (1<<30) |
---|
| 609 | +#define SOLO_AUDIO_EE_MODE_ON BIT(30) |
---|
617 | 610 | #define SOLO_AUDIO_EE_ENC_CH(ch) ((ch)<<25) |
---|
618 | 611 | #define SOLO_AUDIO_BITRATE(n) ((n)<<16) |
---|
619 | 612 | #define SOLO_AUDIO_CLK_DIV(n) ((n)<<0) |
---|