~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/media/drv-intf/msp3400.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php