/*
    m52790.h - definition for m52790 inputs and outputs

    Copyright (C) 2007 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 _M52790_H_
#define _M52790_H_

/* Input routing switch 1 */

#define M52790_SW1_IN_MASK 	0x0003
#define M52790_SW1_IN_TUNER 	0x0000
#define M52790_SW1_IN_V2    	0x0001
#define M52790_SW1_IN_V3    	0x0002
#define M52790_SW1_IN_V4    	0x0003

/* Selects component input instead of composite */
#define M52790_SW1_YCMIX    	0x0004


/* Input routing switch 2 */

#define M52790_SW2_IN_MASK 	0x0300
#define M52790_SW2_IN_TUNER 	0x0000
#define M52790_SW2_IN_V2    	0x0100
#define M52790_SW2_IN_V3    	0x0200
#define M52790_SW2_IN_V4    	0x0300

/* Selects component input instead of composite */
#define M52790_SW2_YCMIX    	0x0400


/* Output routing switch 1 */

/* Enable 6dB amplifier for composite out */
#define M52790_SW1_V_AMP    	0x0008

/* Enable 6dB amplifier for component out */
#define M52790_SW1_YC_AMP   	0x0010

/* Audio output mode */
#define M52790_SW1_AUDIO_MASK 	0x00c0
#define M52790_SW1_AUDIO_MUTE 	0x0000
#define M52790_SW1_AUDIO_R 	0x0040
#define M52790_SW1_AUDIO_L 	0x0080
#define M52790_SW1_AUDIO_STEREO 0x00c0


/* Output routing switch 2 */

/* Enable 6dB amplifier for composite out */
#define M52790_SW2_V_AMP    	0x0800

/* Enable 6dB amplifier for component out */
#define M52790_SW2_YC_AMP   	0x1000

/* Audio output mode */
#define M52790_SW2_AUDIO_MASK 	0xc000
#define M52790_SW2_AUDIO_MUTE 	0x0000
#define M52790_SW2_AUDIO_R 	0x4000
#define M52790_SW2_AUDIO_L 	0x8000
#define M52790_SW2_AUDIO_STEREO 0xc000


/* Common values */
#define M52790_IN_TUNER (M52790_SW1_IN_TUNER | M52790_SW2_IN_TUNER)
#define M52790_IN_V2    (M52790_SW1_IN_V2 | M52790_SW2_IN_V2)
#define M52790_IN_V3    (M52790_SW1_IN_V3 | M52790_SW2_IN_V3)
#define M52790_IN_V4    (M52790_SW1_IN_V4 | M52790_SW2_IN_V4)

#define M52790_OUT_STEREO 	(M52790_SW1_AUDIO_STEREO | \
				 M52790_SW2_AUDIO_STEREO)
#define M52790_OUT_AMP_STEREO 	(M52790_SW1_AUDIO_STEREO | \
				 M52790_SW1_V_AMP | \
				 M52790_SW2_AUDIO_STEREO | \
				 M52790_SW2_V_AMP)

#endif
