1/* 2 * Chip specific defines for DM646x SoC 3 * 4 * Author: Kevin Hilman, Deep Root Systems, LLC 5 * 6 * 2007 (c) Deep Root Systems, LLC. This file is licensed under 7 * the terms of the GNU General Public License version 2. This program 8 * is licensed "as is" without any warranty of any kind, whether express 9 * or implied. 10 */ 11#ifndef __ASM_ARCH_DM646X_H 12#define __ASM_ARCH_DM646X_H 13 14#include <mach/hardware.h> 15#include <mach/asp.h> 16#include <linux/i2c.h> 17#include <linux/videodev2.h> 18#include <linux/clk.h> 19#include <linux/davinci_emac.h> 20 21#define DM646X_EMAC_BASE (0x01C80000) 22#define DM646X_EMAC_CNTRL_OFFSET (0x0000) 23#define DM646X_EMAC_CNTRL_MOD_OFFSET (0x1000) 24#define DM646X_EMAC_CNTRL_RAM_OFFSET (0x2000) 25#define DM646X_EMAC_MDIO_OFFSET (0x4000) 26#define DM646X_EMAC_CNTRL_RAM_SIZE (0x2000) 27 28#define DM646X_ASYNC_EMIF_CONTROL_BASE 0x20008000 29#define DM646X_ASYNC_EMIF_CS2_SPACE_BASE 0x42000000 30 31void __init dm646x_init(void); 32void __init dm646x_init_mcasp0(struct snd_platform_data *pdata); 33void __init dm646x_init_mcasp1(struct snd_platform_data *pdata); 34void __init dm646x_board_setup_refclk(struct clk *clk); 35int __init dm646x_init_edma(struct edma_rsv_info *rsv); 36 37void dm646x_video_init(void); 38 39enum vpif_if_type { 40 VPIF_IF_BT656, 41 VPIF_IF_BT1120, 42 VPIF_IF_RAW_BAYER 43}; 44 45struct vpif_interface { 46 enum vpif_if_type if_type; 47 unsigned hd_pol:1; 48 unsigned vd_pol:1; 49 unsigned fid_pol:1; 50}; 51 52struct vpif_subdev_info { 53 const char *name; 54 struct i2c_board_info board_info; 55 u32 input; 56 u32 output; 57 unsigned can_route:1; 58 struct vpif_interface vpif_if; 59}; 60 61struct vpif_display_config { 62 int (*set_clock)(int, int); 63 struct vpif_subdev_info *subdevinfo; 64 int subdev_count; 65 const char **output; 66 int output_count; 67 const char *card_name; 68}; 69 70struct vpif_input { 71 struct v4l2_input input; 72 const char *subdev_name; 73}; 74 75#define VPIF_CAPTURE_MAX_CHANNELS 2 76 77struct vpif_capture_chan_config { 78 const struct vpif_input *inputs; 79 int input_count; 80}; 81 82struct vpif_capture_config { 83 int (*setup_input_channel_mode)(int); 84 int (*setup_input_path)(int, const char *); 85 struct vpif_capture_chan_config chan_config[VPIF_CAPTURE_MAX_CHANNELS]; 86 struct vpif_subdev_info *subdev_info; 87 int subdev_count; 88 const char *card_name; 89}; 90 91void dm646x_setup_vpif(struct vpif_display_config *, 92 struct vpif_capture_config *); 93 94#endif /* __ASM_ARCH_DM646X_H */ 95