Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-s5pv210
dma.c
Go to the documentation of this file.
1
/* linux/arch/arm/mach-s5pv210/dma.c
2
*
3
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
4
* http://www.samsung.com
5
*
6
* Copyright (C) 2010 Samsung Electronics Co. Ltd.
7
* Jaswinder Singh <
[email protected]
>
8
*
9
* This program is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation; either version 2 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22
*/
23
24
#include <
linux/dma-mapping.h
>
25
#include <
linux/amba/bus.h
>
26
#include <
linux/amba/pl330.h
>
27
28
#include <asm/irq.h>
29
#include <
plat/devs.h
>
30
#include <
plat/irqs.h
>
31
32
#include <mach/map.h>
33
#include <mach/irqs.h>
34
#include <mach/dma.h>
35
36
static
u8
pdma0_peri[] = {
37
DMACH_UART0_RX
,
38
DMACH_UART0_TX
,
39
DMACH_UART1_RX
,
40
DMACH_UART1_TX
,
41
DMACH_UART2_RX
,
42
DMACH_UART2_TX
,
43
DMACH_UART3_RX
,
44
DMACH_UART3_TX
,
45
DMACH_MAX
,
46
DMACH_I2S0_RX
,
47
DMACH_I2S0_TX
,
48
DMACH_I2S0S_TX
,
49
DMACH_I2S1_RX
,
50
DMACH_I2S1_TX
,
51
DMACH_MAX
,
52
DMACH_MAX
,
53
DMACH_SPI0_RX
,
54
DMACH_SPI0_TX
,
55
DMACH_SPI1_RX
,
56
DMACH_SPI1_TX
,
57
DMACH_MAX
,
58
DMACH_MAX
,
59
DMACH_AC97_MICIN
,
60
DMACH_AC97_PCMIN
,
61
DMACH_AC97_PCMOUT
,
62
DMACH_MAX
,
63
DMACH_PWM
,
64
DMACH_SPDIF
,
65
};
66
67
static
struct
dma_pl330_platdata
s5pv210_pdma0_pdata = {
68
.nr_valid_peri =
ARRAY_SIZE
(pdma0_peri),
69
.peri_id = pdma0_peri,
70
};
71
72
static
AMBA_AHB_DEVICE
(s5pv210_pdma0,
"dma-pl330.0"
, 0x00041330,
73
S5PV210_PA_PDMA0
, {
IRQ_PDMA0
}, &s5pv210_pdma0_pdata);
74
75
static
u8
pdma1_peri[] = {
76
DMACH_UART0_RX
,
77
DMACH_UART0_TX
,
78
DMACH_UART1_RX
,
79
DMACH_UART1_TX
,
80
DMACH_UART2_RX
,
81
DMACH_UART2_TX
,
82
DMACH_UART3_RX
,
83
DMACH_UART3_TX
,
84
DMACH_MAX
,
85
DMACH_I2S0_RX
,
86
DMACH_I2S0_TX
,
87
DMACH_I2S0S_TX
,
88
DMACH_I2S1_RX
,
89
DMACH_I2S1_TX
,
90
DMACH_I2S2_RX
,
91
DMACH_I2S2_TX
,
92
DMACH_SPI0_RX
,
93
DMACH_SPI0_TX
,
94
DMACH_SPI1_RX
,
95
DMACH_SPI1_TX
,
96
DMACH_MAX
,
97
DMACH_MAX
,
98
DMACH_PCM0_RX
,
99
DMACH_PCM0_TX
,
100
DMACH_PCM1_RX
,
101
DMACH_PCM1_TX
,
102
DMACH_MSM_REQ0
,
103
DMACH_MSM_REQ1
,
104
DMACH_MSM_REQ2
,
105
DMACH_MSM_REQ3
,
106
DMACH_PCM2_RX
,
107
DMACH_PCM2_TX
,
108
};
109
110
static
struct
dma_pl330_platdata
s5pv210_pdma1_pdata = {
111
.nr_valid_peri =
ARRAY_SIZE
(pdma1_peri),
112
.peri_id = pdma1_peri,
113
};
114
115
static
AMBA_AHB_DEVICE
(s5pv210_pdma1,
"dma-pl330.1"
, 0x00041330,
116
S5PV210_PA_PDMA1
, {
IRQ_PDMA1
}, &s5pv210_pdma1_pdata);
117
118
static
int
__init
s5pv210_dma_init(
void
)
119
{
120
dma_cap_set
(
DMA_SLAVE
, s5pv210_pdma0_pdata.
cap_mask
);
121
dma_cap_set
(
DMA_CYCLIC
, s5pv210_pdma0_pdata.
cap_mask
);
122
amba_device_register
(&s5pv210_pdma0_device, &
iomem_resource
);
123
124
dma_cap_set
(
DMA_SLAVE
, s5pv210_pdma1_pdata.
cap_mask
);
125
dma_cap_set
(
DMA_CYCLIC
, s5pv210_pdma1_pdata.
cap_mask
);
126
amba_device_register
(&s5pv210_pdma1_device, &
iomem_resource
);
127
128
return
0;
129
}
130
arch_initcall
(s5pv210_dma_init);
Generated on Thu Jan 10 2013 12:55:41 for Linux Kernel by
1.8.2