OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [media/] [msp3400.h] - Blame information for rev 65

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
    msp3400.h - definition for msp3400 inputs and outputs
3
 
4
    Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
5
 
6
    This program is free software; you can redistribute it and/or modify
7
    it under the terms of the GNU General Public License as published by
8
    the Free Software Foundation; either version 2 of the License, or
9
    (at your option) any later version.
10
 
11
    This program is distributed in the hope that it will be useful,
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
    GNU General Public License for more details.
15
 
16
    You should have received a copy of the GNU General Public License
17
    along with this program; if not, write to the Free Software
18
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19
*/
20
 
21
#ifndef _MSP3400_H_
22
#define _MSP3400_H_
23
 
24
/* msp3400 routing
25
   ===============
26
 
27
   The msp3400 has a complicated routing scheme with many possible
28
   combinations. The details are all in the datasheets but I will try
29
   to give a short description here.
30
 
31
   Inputs
32
   ======
33
 
34
   There are 1) tuner inputs, 2) I2S inputs, 3) SCART inputs. You will have
35
   to select which tuner input to use and which SCART input to use. The
36
   selected tuner input, the selected SCART input and all I2S inputs go to
37
   the DSP (the tuner input first goes through the demodulator).
38
 
39
   The DSP handles things like volume, bass/treble, balance, and some chips
40
   have support for surround sound. It has several outputs: MAIN, AUX, I2S
41
   and SCART1/2. Each output can select which DSP input to use. So the MAIN
42
   output can select the tuner input while at the same time the SCART1 output
43
   uses the I2S input.
44
 
45
   Outputs
46
   =======
47
 
48
   Most DSP outputs are also the outputs of the msp3400. However, the SCART
49
   outputs of the msp3400 can select which input to use: either the SCART1 or
50
   SCART2 output from the DSP, or the msp3400 SCART inputs, thus completely
51
   bypassing the DSP.
52
 
53
   Summary
54
   =======
55
 
56
   So to specify a complete routing scheme for the msp3400 you will have to
57
   specify in the 'input' field of the v4l2_routing struct:
58
 
59
   1) which tuner input to use
60
   2) which SCART input to use
61
   3) which DSP input to use for each DSP output
62
 
63
   And in the 'output' field of the v4l2_routing struct you specify:
64
 
65
   1) which SCART input to use for each SCART output
66
 
67
   Depending on how the msp is wired to the other components you can
68
   ignore or mute certain inputs or outputs.
69
 
70
   Also, depending on the msp version only a subset of the inputs or
71
   outputs may be present. At the end of this header some tables are
72
   added containing a list of what is available for each msp version.
73
 */
74
 
75
/* Inputs to the DSP unit: two independent selections have to be made:
76
   1) the tuner (SIF) input
77
   2) the SCART input
78
   Bits 0-2 are used for the SCART input select, bit 3 is used for the tuner
79
   input, bits 4-7 are reserved.
80
 */
81
 
82
/* SCART input to DSP selection */
83
#define MSP_IN_SCART1           0  /* Pin SC1_IN */
84
#define MSP_IN_SCART2           1  /* Pin SC2_IN */
85
#define MSP_IN_SCART3           2  /* Pin SC3_IN */
86
#define MSP_IN_SCART4           3  /* Pin SC4_IN */
87
#define MSP_IN_MONO             6  /* Pin MONO_IN */
88
#define MSP_IN_MUTE             7  /* Mute DSP input */
89
#define MSP_SCART_TO_DSP(in)    (in)
90
/* Tuner input to demodulator and DSP selection */
91
#define MSP_IN_TUNER1           0  /* Analog Sound IF input pin ANA_IN1 */
92
#define MSP_IN_TUNER2           1  /* Analog Sound IF input pin ANA_IN2 */
93
#define MSP_TUNER_TO_DSP(in)    ((in) << 3)
94
 
95
/* The msp has up to 5 DSP outputs, each output can independently select
96
   a DSP input.
97
 
98
   The DSP outputs are: loudspeaker output (aka MAIN), headphones output
99
   (aka AUX), SCART1 DA output, SCART2 DA output and an I2S output.
100
   There also is a quasi-peak detector output, but that is not used by
101
   this driver and is set to the same input as the loudspeaker output.
102
   Not all outputs are supported by all msp models. Setting the input
103
   of an unsupported output will be ignored by the driver.
104
 
105
   There are up to 16 DSP inputs to choose from, so each output is
106
   assigned 4 bits.
107
 
108
   Note: the 44x8G can mix two inputs and feed the result back to the
109
   DSP. This is currently not implemented. Also not implemented is the
110
   multi-channel capable I2S3 input of the 44x0G. If someone can demonstrate
111
   a need for one of those features then additional support can be added. */
112
#define MSP_DSP_IN_TUNER        0  /* Tuner DSP input */
113
#define MSP_DSP_IN_SCART        2  /* SCART DSP input */
114
#define MSP_DSP_IN_I2S1         5  /* I2S1 DSP input */
115
#define MSP_DSP_IN_I2S2         6  /* I2S2 DSP input */
116
#define MSP_DSP_IN_I2S3         7  /* I2S3 DSP input */
117
#define MSP_DSP_IN_MAIN_AVC     11 /* MAIN AVC processed DSP input */
118
#define MSP_DSP_IN_MAIN         12 /* MAIN DSP input */
119
#define MSP_DSP_IN_AUX          13 /* AUX DSP input */
120
#define MSP_DSP_TO_MAIN(in)     ((in) << 4)
121
#define MSP_DSP_TO_AUX(in)      ((in) << 8)
122
#define MSP_DSP_TO_SCART1(in)   ((in) << 12)
123
#define MSP_DSP_TO_SCART2(in)   ((in) << 16)
124
#define MSP_DSP_TO_I2S(in)      ((in) << 20)
125
 
126
/* Output SCART select: the SCART outputs can select which input
127
   to use. */
128
#define MSP_SC_IN_SCART1        0  /* SCART1 input, bypassing the DSP */
129
#define MSP_SC_IN_SCART2        1  /* SCART2 input, bypassing the DSP */
130
#define MSP_SC_IN_SCART3        2  /* SCART3 input, bypassing the DSP */
131
#define MSP_SC_IN_SCART4        3  /* SCART4 input, bypassing the DSP */
132
#define MSP_SC_IN_DSP_SCART1    4  /* DSP SCART1 input */
133
#define MSP_SC_IN_DSP_SCART2    5  /* DSP SCART2 input */
134
#define MSP_SC_IN_MONO          6  /* MONO input, bypassing the DSP */
135
#define MSP_SC_IN_MUTE          7  /* MUTE output */
136
#define MSP_SC_TO_SCART1(in)    (in)
137
#define MSP_SC_TO_SCART2(in)    ((in) << 4)
138
 
139
/* Shortcut macros */
140
#define MSP_INPUT(sc, t, main_aux_src, sc_i2s_src) \
141
        (MSP_SCART_TO_DSP(sc) | \
142
         MSP_TUNER_TO_DSP(t) | \
143
         MSP_DSP_TO_MAIN(main_aux_src) | \
144
         MSP_DSP_TO_AUX(main_aux_src) | \
145
         MSP_DSP_TO_SCART1(sc_i2s_src) | \
146
         MSP_DSP_TO_SCART2(sc_i2s_src) | \
147
         MSP_DSP_TO_I2S(sc_i2s_src))
148
#define MSP_INPUT_DEFAULT MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER1, \
149
                                    MSP_DSP_IN_TUNER, MSP_DSP_IN_TUNER)
150
#define MSP_OUTPUT(sc) \
151
        (MSP_SC_TO_SCART1(sc) | \
152
         MSP_SC_TO_SCART2(sc))
153
/* This equals the RESET position of the msp3400 ACB register */
154
#define MSP_OUTPUT_DEFAULT (MSP_SC_TO_SCART1(MSP_SC_IN_SCART3) | \
155
                            MSP_SC_TO_SCART2(MSP_SC_IN_DSP_SCART1))
156
 
157
/* Tuner inputs vs. msp version */
158
/* Chip      TUNER_1   TUNER_2
159
   -------------------------
160
   msp34x0b  y         y
161
   msp34x0c  y         y
162
   msp34x0d  y         y
163
   msp34x5d  y         n
164
   msp34x7d  y         n
165
   msp34x0g  y         y
166
   msp34x1g  y         y
167
   msp34x2g  y         y
168
   msp34x5g  y         n
169
   msp34x7g  y         n
170
   msp44x0g  y         y
171
   msp44x8g  y         y
172
 */
173
 
174
/* SCART inputs vs. msp version */
175
/* Chip      SC1 SC2 SC3 SC4
176
   -------------------------
177
   msp34x0b  y   y   y   n
178
   msp34x0c  y   y   y   n
179
   msp34x0d  y   y   y   y
180
   msp34x5d  y   y   n   n
181
   msp34x7d  y   n   n   n
182
   msp34x0g  y   y   y   y
183
   msp34x1g  y   y   y   y
184
   msp34x2g  y   y   y   y
185
   msp34x5g  y   y   n   n
186
   msp34x7g  y   n   n   n
187
   msp44x0g  y   y   y   y
188
   msp44x8g  y   y   y   y
189
 */
190
 
191
/* DSP inputs vs. msp version (tuner and SCART inputs are always available) */
192
/* Chip      I2S1 I2S2 I2S3 MAIN_AVC MAIN AUX
193
   ------------------------------------------
194
   msp34x0b  y    n    n    n        n    n
195
   msp34x0c  y    y    n    n        n    n
196
   msp34x0d  y    y    n    n        n    n
197
   msp34x5d  y    y    n    n        n    n
198
   msp34x7d  n    n    n    n        n    n
199
   msp34x0g  y    y    n    n        n    n
200
   msp34x1g  y    y    n    n        n    n
201
   msp34x2g  y    y    n    y        y    y
202
   msp34x5g  y    y    n    n        n    n
203
   msp34x7g  n    n    n    n        n    n
204
   msp44x0g  y    y    y    y        y    y
205
   msp44x8g  y    y    y    n        n    n
206
 */
207
 
208
/* DSP outputs vs. msp version */
209
/* Chip      MAIN AUX SCART1 SCART2 I2S
210
   ------------------------------------
211
   msp34x0b  y    y   y      n      y
212
   msp34x0c  y    y   y      n      y
213
   msp34x0d  y    y   y      y      y
214
   msp34x5d  y    n   y      n      y
215
   msp34x7d  y    n   y      n      n
216
   msp34x0g  y    y   y      y      y
217
   msp34x1g  y    y   y      y      y
218
   msp34x2g  y    y   y      y      y
219
   msp34x5g  y    n   y      n      y
220
   msp34x7g  y    n   y      n      n
221
   msp44x0g  y    y   y      y      y
222
   msp44x8g  y    y   y      y      y
223
 */
224
 
225
#endif /* MSP3400_H */
226
 

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.