Merge branch 'fix/hda' into for-linus
[pandora-kernel.git] / arch / mips / powertv / asic / prealloc-cronuslite.c
1 /*
2  * Memory pre-allocations for Cronus Lite boxes.
3  *
4  * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19  *
20  * Author:       Ken Eppinett
21  *               David Schleef <ds@schleef.org>
22  */
23
24 #include <linux/init.h>
25 #include <asm/mach-powertv/asic.h>
26
27 /*
28  * NON_DVR_CAPABLE CRONUSLITE RESOURCES
29  */
30 struct resource non_dvr_cronuslite_resources[] __initdata =
31 {
32         /*
33          *
34          * VIDEO2 / LX2
35          *
36          */
37         {
38                 .name   = "ST231aImage",        /* Delta-Mu 2 image and ram */
39                 .start  = 0x60000000,
40                 .end    = 0x601FFFFF,           /* 2MiB */
41                 .flags  = IORESOURCE_IO,
42         },
43         {
44                 .name   = "ST231aMonitor",      /* 8KiB block ST231b monitor */
45                 .start  = 0x60200000,
46                 .end    = 0x60201FFF,
47                 .flags  = IORESOURCE_IO,
48         },
49         {
50                 .name   = "MediaMemory1",
51                 .start  = 0x60202000,
52                 .end    = 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
53                 .flags  = IORESOURCE_IO,
54         },
55         /*
56          *
57          * Sysaudio Driver
58          *
59          * This driver requires:
60          *
61          * Arbitrary Based Buffers:
62          *  DSP_Image_Buff - DSP code and data images (1MB)
63          *  ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
64          *  ADSC_AUX_Buff - ADSC AUX buffer (16KB)
65          *  ADSC_Main_Buff - ADSC Main buffer (16KB)
66          *
67          */
68         {
69                 .name   = "DSP_Image_Buff",
70                 .start  = 0x00000000,
71                 .end    = 0x000FFFFF,
72                 .flags  = IORESOURCE_MEM,
73         },
74         {
75                 .name   = "ADSC_CPU_PCM_Buff",
76                 .start  = 0x00000000,
77                 .end    = 0x00009FFF,
78                 .flags  = IORESOURCE_MEM,
79         },
80         {
81                 .name   = "ADSC_AUX_Buff",
82                 .start  = 0x00000000,
83                 .end    = 0x00003FFF,
84                 .flags  = IORESOURCE_MEM,
85         },
86         {
87                 .name   = "ADSC_Main_Buff",
88                 .start  = 0x00000000,
89                 .end    = 0x00003FFF,
90                 .flags  = IORESOURCE_MEM,
91         },
92         /*
93          *
94          * STAVEM driver/STAPI
95          *
96          * This driver requires:
97          *
98          * Arbitrary Based Buffers:
99          *  This memory area is used for allocating buffers for Video decoding
100          *  purposes.  Allocation/De-allocation within this buffer is managed
101          *  by the STAVMEM driver of the STAPI.  They could be Decimated
102          *  Picture Buffers, Intermediate Buffers, as deemed necessary for
103          *  video decoding purposes, for any video decoders on Zeus.
104          *
105          */
106         {
107                 .name   = "AVMEMPartition0",
108                 .start  = 0x63580000,
109                 .end    = 0x63B80000 - 1,  /* 6 MB total */
110                 .flags  = IORESOURCE_IO,
111         },
112         /*
113          *
114          * DOCSIS Subsystem
115          *
116          * This driver requires:
117          *
118          * Arbitrary Based Buffers:
119          *  Docsis -
120          *
121          */
122         {
123                 .name   = "Docsis",
124                 .start  = 0x62000000,
125                 .end    = 0x62700000 - 1,       /* 7 MB total */
126                 .flags  = IORESOURCE_IO,
127         },
128         /*
129          *
130          * GHW HAL Driver
131          *
132          * This driver requires:
133          *
134          * Arbitrary Based Buffers:
135          *  GraphicsHeap - PowerTV Graphics Heap
136          *
137          */
138         {
139                 .name   = "GraphicsHeap",
140                 .start  = 0x62700000,
141                 .end    = 0x63500000 - 1,       /* 14 MB total */
142                 .flags  = IORESOURCE_IO,
143         },
144         /*
145          *
146          * multi com buffer area
147          *
148          * This driver requires:
149          *
150          * Arbitrary Based Buffers:
151          *  Docsis -
152          *
153          */
154         {
155                 .name   = "MulticomSHM",
156                 .start  = 0x26000000,
157                 .end    = 0x26020000 - 1,
158                 .flags  = IORESOURCE_MEM,
159         },
160         /*
161          *
162          * DMA Ring buffer
163          *
164          * This driver requires:
165          *
166          * Arbitrary Based Buffers:
167          *  Docsis -
168          *
169          */
170         {
171                 .name   = "BMM_Buffer",
172                 .start  = 0x00000000,
173                 .end    = 0x000AA000 - 1,
174                 .flags  = IORESOURCE_MEM,
175         },
176         /*
177          *
178          * Display bins buffer for unit0
179          *
180          * This driver requires:
181          *
182          * Arbitrary Based Buffers:
183          *  Display Bins for unit0
184          *
185          */
186         {
187                 .name   = "DisplayBins0",
188                 .start  = 0x00000000,
189                 .end    = 0x00000FFF,           /* 4 KB total */
190                 .flags  = IORESOURCE_MEM,
191         },
192         /*
193          *
194          * Display bins buffer
195          *
196          * This driver requires:
197          *
198          * Arbitrary Based Buffers:
199          *  Display Bins for unit1
200          *
201          */
202         {
203                 .name   = "DisplayBins1",
204                 .start  = 0x63B83000,
205                 .end    = 0x63B84000 - 1,  /* 4 KB total */
206                 .flags  = IORESOURCE_IO,
207         },
208         /*
209          *
210          * AVFS: player HAL memory
211          *
212          *
213          */
214         {
215                 .name   = "AvfsDmaMem",
216                 .start  = 0x63B84000,
217                 .end    = 0x63E48C00 - 1,  /* 945K * 3 for playback */
218                 .flags  = IORESOURCE_IO,
219         },
220         /*
221          *
222          * PMEM
223          *
224          * This driver requires:
225          *
226          * Arbitrary Based Buffers:
227          *  Persistent memory for diagnostics.
228          *
229          */
230         {
231                 .name   = "DiagPersistentMemory",
232                 .start  = 0x00000000,
233                 .end    = 0x10000 - 1,
234                 .flags  = IORESOURCE_MEM,
235         },
236         /*
237          *
238          * Smartcard
239          *
240          * This driver requires:
241          *
242          * Arbitrary Based Buffers:
243          *  Read and write buffers for Internal/External cards
244          *
245          */
246         {
247                 .name   = "SmartCardInfo",
248                 .start  = 0x63B80000,
249                 .end    = 0x63B82800 - 1,
250                 .flags  = IORESOURCE_IO,
251         },
252         /*
253          *
254          * KAVNET
255          *    NP Reset Vector - must be of the form xxCxxxxx
256          *         NP Image - must be video bank 1
257          *         NP IPC - must be video bank 2
258          */
259         {
260                 .name   = "NP_Reset_Vector",
261                 .start  = 0x27c00000,
262                 .end    = 0x27c01000 - 1,
263                 .flags  = IORESOURCE_MEM,
264         },
265         {
266                 .name   = "NP_Image",
267                 .start  = 0x27020000,
268                 .end    = 0x27060000 - 1,
269                 .flags  = IORESOURCE_MEM,
270         },
271         {
272                 .name   = "NP_IPC",
273                 .start  = 0x63500000,
274                 .end    = 0x63580000 - 1,
275                 .flags  = IORESOURCE_IO,
276         },
277         /*
278          * NAND Flash
279          */
280         {
281                 .name   = "NandFlash",
282                 .start  = NAND_FLASH_BASE,
283                 .end    = NAND_FLASH_BASE + 0x400 - 1,
284                 .flags  = IORESOURCE_IO,
285         },
286         /*
287          * Add other resources here
288          */
289         { },
290 };