Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
saa7706h.c File Reference
#include <linux/module.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <media/v4l2-device.h>
#include <media/v4l2-chip-ident.h>

Go to the source code of this file.

Data Structures

struct  saa7706h_state
 

Macros

#define DRIVER_NAME   "saa7706h"
 
#define SAA7706H_REG_CTRL   0x0fff
 
#define SAA7706H_CTRL_BYP_PLL   0x0001
 
#define SAA7706H_CTRL_PLL_DIV_MASK   0x003e
 
#define SAA7706H_CTRL_PLL3_62975MHZ   0x003e
 
#define SAA7706H_CTRL_DSP_TURBO   0x0040
 
#define SAA7706H_CTRL_PC_RESET_DSP1   0x0080
 
#define SAA7706H_CTRL_PC_RESET_DSP2   0x0100
 
#define SAA7706H_CTRL_DSP1_ROM_EN_MASK   0x0600
 
#define SAA7706H_CTRL_DSP1_FUNC_PROM   0x0000
 
#define SAA7706H_CTRL_DSP2_ROM_EN_MASK   0x1800
 
#define SAA7706H_CTRL_DSP2_FUNC_PROM   0x0000
 
#define SAA7706H_CTRL_DIG_SIL_INTERPOL   0x8000
 
#define SAA7706H_REG_EVALUATION   0x1ff0
 
#define SAA7706H_EVAL_DISABLE_CHARGE_PUMP   0x000001
 
#define SAA7706H_EVAL_DCS_CLOCK   0x000002
 
#define SAA7706H_EVAL_GNDRC1_ENABLE   0x000004
 
#define SAA7706H_EVAL_GNDRC2_ENABLE   0x000008
 
#define SAA7706H_REG_CL_GEN1   0x1ff3
 
#define SAA7706H_CL_GEN1_MIN_LOOPGAIN_MASK   0x00000f
 
#define SAA7706H_CL_GEN1_LOOPGAIN_MASK   0x0000f0
 
#define SAA7706H_CL_GEN1_COARSE_RATION   0xffff00
 
#define SAA7706H_REG_CL_GEN2   0x1ff4
 
#define SAA7706H_CL_GEN2_WSEDGE_FALLING   0x000001
 
#define SAA7706H_CL_GEN2_STOP_VCO   0x000002
 
#define SAA7706H_CL_GEN2_FRERUN   0x000004
 
#define SAA7706H_CL_GEN2_ADAPTIVE   0x000008
 
#define SAA7706H_CL_GEN2_FINE_RATIO_MASK   0x0ffff0
 
#define SAA7706H_REG_CL_GEN4   0x1ff6
 
#define SAA7706H_CL_GEN4_BYPASS_PLL1   0x001000
 
#define SAA7706H_CL_GEN4_PLL1_DIV_MASK   0x03e000
 
#define SAA7706H_CL_GEN4_DSP1_TURBO   0x040000
 
#define SAA7706H_REG_SEL   0x1ff7
 
#define SAA7706H_SEL_DSP2_SRCA_MASK   0x000007
 
#define SAA7706H_SEL_DSP2_FMTA_MASK   0x000031
 
#define SAA7706H_SEL_DSP2_SRCB_MASK   0x0001c0
 
#define SAA7706H_SEL_DSP2_FMTB_MASK   0x000e00
 
#define SAA7706H_SEL_DSP1_SRC_MASK   0x003000
 
#define SAA7706H_SEL_DSP1_FMT_MASK   0x01c003
 
#define SAA7706H_SEL_SPDIF2   0x020000
 
#define SAA7706H_SEL_HOST_IO_FMT_MASK   0x1c0000
 
#define SAA7706H_SEL_EN_HOST_IO   0x200000
 
#define SAA7706H_REG_IAC   0x1ff8
 
#define SAA7706H_REG_CLK_SET   0x1ff9
 
#define SAA7706H_REG_CLK_COEFF   0x1ffa
 
#define SAA7706H_REG_INPUT_SENS   0x1ffb
 
#define SAA7706H_INPUT_SENS_RDS_VOL_MASK   0x0003f
 
#define SAA7706H_INPUT_SENS_FM_VOL_MASK   0x00fc0
 
#define SAA7706H_INPUT_SENS_FM_MPX   0x01000
 
#define SAA7706H_INPUT_SENS_OFF_FILTER_A_EN   0x02000
 
#define SAA7706H_INPUT_SENS_OFF_FILTER_B_EN   0x04000
 
#define SAA7706H_REG_PHONE_NAV_AUDIO   0x1ffc
 
#define SAA7706H_REG_IO_CONF_DSP2   0x1ffd
 
#define SAA7706H_REG_STATUS_DSP2   0x1ffe
 
#define SAA7706H_REG_PC_DSP2   0x1fff
 
#define SAA7706H_DSP1_MOD0   0x0800
 
#define SAA7706H_DSP1_ROM_VER   0x097f
 
#define SAA7706H_DSP2_MPTR0   0x1000
 
#define SAA7706H_DSP1_MODPNTR   0x0000
 
#define SAA7706H_DSP2_XMEM_CONTLLCW   0x113e
 
#define SAA7706H_DSP2_XMEM_BUSAMP   0x114a
 
#define SAA7706H_DSP2_XMEM_FDACPNTR   0x11f9
 
#define SAA7706H_DSP2_XMEM_IIS1PNTR   0x11fb
 
#define SAA7706H_DSP2_YMEM_PVGA   0x212a
 
#define SAA7706H_DSP2_YMEM_PVAT1   0x212b
 
#define SAA7706H_DSP2_YMEM_PVAT   0x212c
 
#define SAA7706H_DSP2_YMEM_ROM_VER   0x21ff
 
#define SUPPORTED_DSP1_ROM_VER   0x667
 

Functions

 MODULE_DEVICE_TABLE (i2c, saa7706h_id)
 
 module_i2c_driver (saa7706h_driver)
 
 MODULE_DESCRIPTION ("SAA7706H Car Radio DSP driver")
 
 MODULE_AUTHOR ("Mocean Laboratories")
 
 MODULE_LICENSE ("GPL v2")
 

Macro Definition Documentation

#define DRIVER_NAME   "saa7706h"

Definition at line 30 of file saa7706h.c.

#define SAA7706H_CL_GEN1_COARSE_RATION   0xffff00

Definition at line 71 of file saa7706h.c.

#define SAA7706H_CL_GEN1_LOOPGAIN_MASK   0x0000f0

Definition at line 70 of file saa7706h.c.

#define SAA7706H_CL_GEN1_MIN_LOOPGAIN_MASK   0x00000f

Definition at line 69 of file saa7706h.c.

#define SAA7706H_CL_GEN2_ADAPTIVE   0x000008

Definition at line 77 of file saa7706h.c.

#define SAA7706H_CL_GEN2_FINE_RATIO_MASK   0x0ffff0

Definition at line 78 of file saa7706h.c.

#define SAA7706H_CL_GEN2_FRERUN   0x000004

Definition at line 76 of file saa7706h.c.

#define SAA7706H_CL_GEN2_STOP_VCO   0x000002

Definition at line 75 of file saa7706h.c.

#define SAA7706H_CL_GEN2_WSEDGE_FALLING   0x000001

Definition at line 74 of file saa7706h.c.

#define SAA7706H_CL_GEN4_BYPASS_PLL1   0x001000

Definition at line 81 of file saa7706h.c.

#define SAA7706H_CL_GEN4_DSP1_TURBO   0x040000

Definition at line 83 of file saa7706h.c.

#define SAA7706H_CL_GEN4_PLL1_DIV_MASK   0x03e000

Definition at line 82 of file saa7706h.c.

#define SAA7706H_CTRL_BYP_PLL   0x0001

Definition at line 50 of file saa7706h.c.

#define SAA7706H_CTRL_DIG_SIL_INTERPOL   0x8000

Definition at line 60 of file saa7706h.c.

#define SAA7706H_CTRL_DSP1_FUNC_PROM   0x0000

Definition at line 57 of file saa7706h.c.

#define SAA7706H_CTRL_DSP1_ROM_EN_MASK   0x0600

Definition at line 56 of file saa7706h.c.

#define SAA7706H_CTRL_DSP2_FUNC_PROM   0x0000

Definition at line 59 of file saa7706h.c.

#define SAA7706H_CTRL_DSP2_ROM_EN_MASK   0x1800

Definition at line 58 of file saa7706h.c.

#define SAA7706H_CTRL_DSP_TURBO   0x0040

Definition at line 53 of file saa7706h.c.

#define SAA7706H_CTRL_PC_RESET_DSP1   0x0080

Definition at line 54 of file saa7706h.c.

#define SAA7706H_CTRL_PC_RESET_DSP2   0x0100

Definition at line 55 of file saa7706h.c.

#define SAA7706H_CTRL_PLL3_62975MHZ   0x003e

Definition at line 52 of file saa7706h.c.

#define SAA7706H_CTRL_PLL_DIV_MASK   0x003e

Definition at line 51 of file saa7706h.c.

#define SAA7706H_DSP1_MOD0   0x0800

Definition at line 110 of file saa7706h.c.

#define SAA7706H_DSP1_MODPNTR   0x0000

Definition at line 114 of file saa7706h.c.

#define SAA7706H_DSP1_ROM_VER   0x097f

Definition at line 111 of file saa7706h.c.

#define SAA7706H_DSP2_MPTR0   0x1000

Definition at line 112 of file saa7706h.c.

#define SAA7706H_DSP2_XMEM_BUSAMP   0x114a

Definition at line 117 of file saa7706h.c.

#define SAA7706H_DSP2_XMEM_CONTLLCW   0x113e

Definition at line 116 of file saa7706h.c.

#define SAA7706H_DSP2_XMEM_FDACPNTR   0x11f9

Definition at line 118 of file saa7706h.c.

#define SAA7706H_DSP2_XMEM_IIS1PNTR   0x11fb

Definition at line 119 of file saa7706h.c.

#define SAA7706H_DSP2_YMEM_PVAT   0x212c

Definition at line 123 of file saa7706h.c.

#define SAA7706H_DSP2_YMEM_PVAT1   0x212b

Definition at line 122 of file saa7706h.c.

#define SAA7706H_DSP2_YMEM_PVGA   0x212a

Definition at line 121 of file saa7706h.c.

#define SAA7706H_DSP2_YMEM_ROM_VER   0x21ff

Definition at line 124 of file saa7706h.c.

#define SAA7706H_EVAL_DCS_CLOCK   0x000002

Definition at line 64 of file saa7706h.c.

#define SAA7706H_EVAL_DISABLE_CHARGE_PUMP   0x000001

Definition at line 63 of file saa7706h.c.

#define SAA7706H_EVAL_GNDRC1_ENABLE   0x000004

Definition at line 65 of file saa7706h.c.

#define SAA7706H_EVAL_GNDRC2_ENABLE   0x000008

Definition at line 66 of file saa7706h.c.

#define SAA7706H_INPUT_SENS_FM_MPX   0x01000

Definition at line 102 of file saa7706h.c.

#define SAA7706H_INPUT_SENS_FM_VOL_MASK   0x00fc0

Definition at line 101 of file saa7706h.c.

#define SAA7706H_INPUT_SENS_OFF_FILTER_A_EN   0x02000

Definition at line 103 of file saa7706h.c.

#define SAA7706H_INPUT_SENS_OFF_FILTER_B_EN   0x04000

Definition at line 104 of file saa7706h.c.

#define SAA7706H_INPUT_SENS_RDS_VOL_MASK   0x0003f

Definition at line 100 of file saa7706h.c.

#define SAA7706H_REG_CL_GEN1   0x1ff3

Definition at line 68 of file saa7706h.c.

#define SAA7706H_REG_CL_GEN2   0x1ff4

Definition at line 73 of file saa7706h.c.

#define SAA7706H_REG_CL_GEN4   0x1ff6

Definition at line 80 of file saa7706h.c.

#define SAA7706H_REG_CLK_COEFF   0x1ffa

Definition at line 98 of file saa7706h.c.

#define SAA7706H_REG_CLK_SET   0x1ff9

Definition at line 97 of file saa7706h.c.

#define SAA7706H_REG_CTRL   0x0fff

Definition at line 49 of file saa7706h.c.

#define SAA7706H_REG_EVALUATION   0x1ff0

Definition at line 62 of file saa7706h.c.

#define SAA7706H_REG_IAC   0x1ff8

Definition at line 96 of file saa7706h.c.

#define SAA7706H_REG_INPUT_SENS   0x1ffb

Definition at line 99 of file saa7706h.c.

#define SAA7706H_REG_IO_CONF_DSP2   0x1ffd

Definition at line 106 of file saa7706h.c.

#define SAA7706H_REG_PC_DSP2   0x1fff

Definition at line 108 of file saa7706h.c.

#define SAA7706H_REG_PHONE_NAV_AUDIO   0x1ffc

Definition at line 105 of file saa7706h.c.

#define SAA7706H_REG_SEL   0x1ff7

Definition at line 85 of file saa7706h.c.

#define SAA7706H_REG_STATUS_DSP2   0x1ffe

Definition at line 107 of file saa7706h.c.

#define SAA7706H_SEL_DSP1_FMT_MASK   0x01c003

Definition at line 91 of file saa7706h.c.

#define SAA7706H_SEL_DSP1_SRC_MASK   0x003000

Definition at line 90 of file saa7706h.c.

#define SAA7706H_SEL_DSP2_FMTA_MASK   0x000031

Definition at line 87 of file saa7706h.c.

#define SAA7706H_SEL_DSP2_FMTB_MASK   0x000e00

Definition at line 89 of file saa7706h.c.

#define SAA7706H_SEL_DSP2_SRCA_MASK   0x000007

Definition at line 86 of file saa7706h.c.

#define SAA7706H_SEL_DSP2_SRCB_MASK   0x0001c0

Definition at line 88 of file saa7706h.c.

#define SAA7706H_SEL_EN_HOST_IO   0x200000

Definition at line 94 of file saa7706h.c.

#define SAA7706H_SEL_HOST_IO_FMT_MASK   0x1c0000

Definition at line 93 of file saa7706h.c.

#define SAA7706H_SEL_SPDIF2   0x020000

Definition at line 92 of file saa7706h.c.

#define SUPPORTED_DSP1_ROM_VER   0x667

Definition at line 126 of file saa7706h.c.

Function Documentation

MODULE_AUTHOR ( "Mocean Laboratories"  )
MODULE_DESCRIPTION ( "SAA7706H Car Radio DSP driver )
MODULE_DEVICE_TABLE ( i2c  ,
saa7706h_id   
)
module_i2c_driver ( saa7706h_driver  )
MODULE_LICENSE ( "GPL v2 )