1 /* SPDX-License-Identifier: GPL-2.0-or-later */
5 * Copyright (C) 2012 Ezequiel Garcia
6 * <elezegarcia--a.t--gmail.com>
8 * Based on Easycap driver by R.M. Thomas
9 * Copyright (C) 2010 R.M. Thomas
10 * <rmthomas--a.t--sciolus.org>
14 #define STK1160_GCTRL 0x000
16 /* Remote Wakeup Control */
17 #define STK1160_RMCTL 0x00c
19 /* Power-on Strapping Data */
20 #define STK1160_POSVA 0x010
21 #define STK1160_POSV_L 0x010
22 #define STK1160_POSV_M 0x011
23 #define STK1160_POSV_H 0x012
24 #define STK1160_POSV_L_ACDOUT BIT(3)
25 #define STK1160_POSV_L_ACSYNC BIT(2)
28 * Decoder Control Register:
29 * This byte controls capture start/stop
30 * with bit #7 (0x?? OR 0x80 to activate).
32 #define STK1160_DCTRL 0x100
35 * Decimation Control Register:
36 * Byte 104: Horizontal Decimation Line Unit Count
37 * Byte 105: Vertical Decimation Line Unit Count
38 * Byte 106: Decimation Control
39 * Bit 0 - Horizontal Decimation Control
40 * 0 Horizontal decimation is disabled.
41 * 1 Horizontal decimation is enabled.
42 * Bit 1 - Decimates Half or More Column
43 * 0 Decimates less than half from original column,
44 * send count unit (0x105) before each unit skipped.
45 * 1 Decimates half or more from original column,
46 * skip count unit (0x105) before each unit sent.
47 * Bit 2 - Vertical Decimation Control
48 * 0 Vertical decimation is disabled.
49 * 1 Vertical decimation is enabled.
50 * Bit 3 - Vertical Greater or Equal to Half
51 * 0 Decimates less than half from original row,
52 * send count unit (0x105) before each unit skipped.
53 * 1 Decimates half or more from original row,
54 * skip count unit (0x105) before each unit sent.
55 * Bit 4 - Decimation Unit
56 * 0 Decimation will work with 2 rows or columns per unit.
57 * 1 Decimation will work with 4 rows or columns per unit.
59 #define STK1160_DMCTRL_H_UNITS 0x104
60 #define STK1160_DMCTRL_V_UNITS 0x105
61 #define STK1160_DMCTRL 0x106
62 #define STK1160_H_DEC_EN BIT(0)
63 #define STK1160_H_DEC_MODE BIT(1)
64 #define STK1160_V_DEC_EN BIT(2)
65 #define STK1160_V_DEC_MODE BIT(3)
66 #define STK1160_DEC_UNIT_SIZE BIT(4)
68 /* Capture Frame Start Position */
69 #define STK116_CFSPO 0x110
70 #define STK116_CFSPO_STX_L 0x110
71 #define STK116_CFSPO_STX_H 0x111
72 #define STK116_CFSPO_STY_L 0x112
73 #define STK116_CFSPO_STY_H 0x113
75 /* Capture Frame End Position */
76 #define STK116_CFEPO 0x114
77 #define STK116_CFEPO_ENX_L 0x114
78 #define STK116_CFEPO_ENX_H 0x115
79 #define STK116_CFEPO_ENY_L 0x116
80 #define STK116_CFEPO_ENY_H 0x117
82 /* Serial Interface Control */
83 #define STK1160_SICTL 0x200
84 #define STK1160_SICTL_CD 0x202
85 #define STK1160_SICTL_SDA 0x203
87 /* Serial Bus Write */
88 #define STK1160_SBUSW 0x204
89 #define STK1160_SBUSW_WA 0x204
90 #define STK1160_SBUSW_WD 0x205
93 #define STK1160_SBUSR 0x208
94 #define STK1160_SBUSR_RA 0x208
95 #define STK1160_SBUSR_RD 0x209
97 /* Alternate Serial Interface Control */
98 #define STK1160_ASIC 0x2fc
100 /* PLL Select Options */
101 #define STK1160_PLLSO 0x018
103 /* PLL Frequency Divider */
104 #define STK1160_PLLFD 0x01c
106 /* Timing Generator */
107 #define STK1160_TIGEN 0x300
109 /* Timing Control Parameter */
110 #define STK1160_TICTL 0x350
112 /* AC97 Audio Control */
113 #define STK1160_AC97CTL_0 0x500
114 #define STK1160_AC97CTL_1 0x504
115 #define STK1160_AC97CTL_0_CR BIT(1)
116 #define STK1160_AC97CTL_0_CW BIT(2)
118 /* Use [0:6] bits of register 0x504 to set codec command address */
119 #define STK1160_AC97_ADDR 0x504
120 /* Use [16:31] bits of register 0x500 to set codec command data */
121 #define STK1160_AC97_CMD 0x502
123 /* Audio I2S Interface */
124 #define STK1160_I2SCTL 0x50c
126 /* EEPROM Interface */
127 #define STK1160_EEPROM_SZ 0x5f0