OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [media/] [video/] [vino.h] - Blame information for rev 78

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 * Driver for the VINO (Video In No Out) system found in SGI Indys.
3
 *
4
 * This file is subject to the terms and conditions of the GNU General Public
5
 * License version 2 as published by the Free Software Foundation.
6
 *
7
 * Copyright (C) 1999 Ulf Karlsson <ulfc@bun.falkenberg.se>
8
 * Copyright (C) 2003 Ladislav Michl <ladis@linux-mips.org>
9
 */
10
 
11
#ifndef _VINO_H_
12
#define _VINO_H_
13
 
14
#define VINO_BASE       0x00080000      /* Vino is in the EISA address space,
15
                                         * but it is not an EISA bus card */
16
#define VINO_PAGE_SIZE  4096
17
 
18
struct sgi_vino_channel {
19
        u32 _pad_alpha;
20
        volatile u32 alpha;
21
 
22
#define VINO_CLIP_X(x)          ((x) & 0x3ff)           /* bits 0:9 */
23
#define VINO_CLIP_ODD(x)        (((x) & 0x1ff) << 10)   /* bits 10:18 */
24
#define VINO_CLIP_EVEN(x)       (((x) & 0x1ff) << 19)   /* bits 19:27 */
25
        u32 _pad_clip_start;
26
        volatile u32 clip_start;
27
        u32 _pad_clip_end;
28
        volatile u32 clip_end;
29
 
30
#define VINO_FRAMERT_FULL       0xfff
31
#define VINO_FRAMERT_PAL        (1<<0)                  /* 0=NTSC 1=PAL */
32
#define VINO_FRAMERT_RT(x)      (((x) & 0xfff) << 1)    /* bits 1:12 */
33
        u32 _pad_frame_rate;
34
        volatile u32 frame_rate;
35
 
36
        u32 _pad_field_counter;
37
        volatile u32 field_counter;
38
        u32 _pad_line_size;
39
        volatile u32 line_size;
40
        u32 _pad_line_count;
41
        volatile u32 line_count;
42
        u32 _pad_page_index;
43
        volatile u32 page_index;
44
        u32 _pad_next_4_desc;
45
        volatile u32 next_4_desc;
46
        u32 _pad_start_desc_tbl;
47
        volatile u32 start_desc_tbl;
48
 
49
#define VINO_DESC_JUMP          (1<<30)
50
#define VINO_DESC_STOP          (1<<31)
51
#define VINO_DESC_VALID         (1<<32)
52
        u32 _pad_desc_0;
53
        volatile u32 desc_0;
54
        u32 _pad_desc_1;
55
        volatile u32 desc_1;
56
        u32 _pad_desc_2;
57
        volatile u32 desc_2;
58
        u32 _pad_Bdesc_3;
59
        volatile u32 desc_3;
60
 
61
        u32 _pad_fifo_thres;
62
        volatile u32 fifo_thres;
63
        u32 _pad_fifo_read;
64
        volatile u32 fifo_read;
65
        u32 _pad_fifo_write;
66
        volatile u32 fifo_write;
67
};
68
 
69
struct sgi_vino {
70
#define VINO_CHIP_ID            0xb
71
#define VINO_REV_NUM(x)         ((x) & 0x0f)
72
#define VINO_ID_VALUE(x)        (((x) & 0xf0) >> 4)
73
        u32 _pad_rev_id;
74
        volatile u32 rev_id;
75
 
76
#define VINO_CTRL_LITTLE_ENDIAN         (1<<0)
77
#define VINO_CTRL_A_EOF_INT             (1<<1)  /* Field transferred int */
78
#define VINO_CTRL_A_FIFO_INT            (1<<2)  /* FIFO overflow int */
79
#define VINO_CTRL_A_EOD_INT             (1<<3)  /* End of desc table int */
80
#define VINO_CTRL_A_INT                 (VINO_CTRL_A_EOF_INT | \
81
                                         VINO_CTRL_A_FIFO_INT | \
82
                                         VINO_CTRL_A_EOD_INT)
83
#define VINO_CTRL_B_EOF_INT             (1<<4)  /* Field transferred int */
84
#define VINO_CTRL_B_FIFO_INT            (1<<5)  /* FIFO overflow int */
85
#define VINO_CTRL_B_EOD_INT             (1<<6)  /* End of desc table int */
86
#define VINO_CTRL_B_INT                 (VINO_CTRL_B_EOF_INT | \
87
                                         VINO_CTRL_B_FIFO_INT | \
88
                                         VINO_CTRL_B_EOD_INT)
89
#define VINO_CTRL_A_DMA_ENBL            (1<<7)
90
#define VINO_CTRL_A_INTERLEAVE_ENBL     (1<<8)
91
#define VINO_CTRL_A_SYNC_ENBL           (1<<9)
92
#define VINO_CTRL_A_SELECT              (1<<10) /* 1=D1 0=Philips */
93
#define VINO_CTRL_A_RGB                 (1<<11) /* 1=RGB 0=YUV */
94
#define VINO_CTRL_A_LUMA_ONLY           (1<<12)
95
#define VINO_CTRL_A_DEC_ENBL            (1<<13) /* Decimation */
96
#define VINO_CTRL_A_DEC_SCALE_MASK      0x1c000 /* bits 14:17 */
97
#define VINO_CTRL_A_DEC_SCALE_SHIFT     (14)
98
#define VINO_CTRL_A_DEC_HOR_ONLY        (1<<17) /* Horizontal only */
99
#define VINO_CTRL_A_DITHER              (1<<18) /* 24 -> 8 bit dither */
100
#define VINO_CTRL_B_DMA_ENBL            (1<<19)
101
#define VINO_CTRL_B_INTERLEAVE_ENBL     (1<<20)
102
#define VINO_CTRL_B_SYNC_ENBL           (1<<21)
103
#define VINO_CTRL_B_SELECT              (1<<22) /* 1=D1 0=Philips */
104
#define VINO_CTRL_B_RGB                 (1<<23) /* 1=RGB 0=YUV */
105
#define VINO_CTRL_B_LUMA_ONLY           (1<<24)
106
#define VINO_CTRL_B_DEC_ENBL            (1<<25) /* Decimation */
107
#define VINO_CTRL_B_DEC_SCALE_MASK      0x1c000000      /* bits 26:28 */
108
#define VINO_CTRL_B_DEC_SCALE_SHIFT     (26)
109
#define VINO_CTRL_B_DEC_HOR_ONLY        (1<<29) /* Decimation horizontal only */
110
#define VINO_CTRL_B_DITHER              (1<<30) /* ChanB 24 -> 8 bit dither */
111
        u32 _pad_control;
112
        volatile u32 control;
113
 
114
#define VINO_INTSTAT_A_EOF              (1<<0)  /* Field transferred int */
115
#define VINO_INTSTAT_A_FIFO             (1<<1)  /* FIFO overflow int */
116
#define VINO_INTSTAT_A_EOD              (1<<2)  /* End of desc table int */
117
#define VINO_INTSTAT_A                  (VINO_INTSTAT_A_EOF | \
118
                                         VINO_INTSTAT_A_FIFO | \
119
                                         VINO_INTSTAT_A_EOD)
120
#define VINO_INTSTAT_B_EOF              (1<<3)  /* Field transferred int */
121
#define VINO_INTSTAT_B_FIFO             (1<<4)  /* FIFO overflow int */
122
#define VINO_INTSTAT_B_EOD              (1<<5)  /* End of desc table int */
123
#define VINO_INTSTAT_B                  (VINO_INTSTAT_B_EOF | \
124
                                         VINO_INTSTAT_B_FIFO | \
125
                                         VINO_INTSTAT_B_EOD)
126
        u32 _pad_intr_status;
127
        volatile u32 intr_status;
128
 
129
        u32 _pad_i2c_control;
130
        volatile u32 i2c_control;
131
        u32 _pad_i2c_data;
132
        volatile u32 i2c_data;
133
 
134
        struct sgi_vino_channel a;
135
        struct sgi_vino_channel b;
136
};
137
 
138
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.