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