summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8702/dma-s5l8702.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s5l8702/dma-s5l8702.h')
-rw-r--r--firmware/target/arm/s5l8702/dma-s5l8702.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/firmware/target/arm/s5l8702/dma-s5l8702.h b/firmware/target/arm/s5l8702/dma-s5l8702.h
new file mode 100644
index 0000000000..5f338578f7
--- /dev/null
+++ b/firmware/target/arm/s5l8702/dma-s5l8702.h
@@ -0,0 +1,107 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2014 by Cástor Muñoz
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22#ifndef _DMA_S5l8702_H
23#define _DMA_S5l8702_H
24
25#include "pl080.h"
26
27/*
28 * s5l8702 PL080 controllers configuration
29 */
30
31extern struct dmac s5l8702_dmac0;
32extern struct dmac s5l8702_dmac1;
33
34#define S5L8702_DMAC_COUNT 2 /* N PL080 controllers */
35#define S5L8702_DMAC0_BASE 0x38200000
36#define S5L8702_DMAC1_BASE 0x39900000
37
38/* S5L7802 DMAC0 peripherals */
39#define S5L8702_DMAC0_PERI_IIS2_TX 0x0
40#define S5L8702_DMAC0_PERI_IIS2_RX 0x1
41#define S5L8702_DMAC0_PERI_UNKNOWN 0x2
42#define S5L8702_DMAC0_PERI_LCD_WR 0x3
43#define S5L8702_DMAC0_PERI_SPI0_TX 0x4
44#define S5L8702_DMAC0_PERI_SPI0_RX 0x5
45#define S5L8702_DMAC0_PERI_UART0_TX 0x6
46#define S5L8702_DMAC0_PERI_UART0_RX 0x7
47#define S5L8702_DMAC0_PERI_UART1_TX 0x8
48#define S5L8702_DMAC0_PERI_UART1_RX 0x9
49#define S5L8702_DMAC0_PERI_IIS0_TX 0xA
50#define S5L8702_DMAC0_PERI_IIS0_RX 0xB
51#define S5L8702_DMAC0_PERI_SPI2_TX 0xC
52#define S5L8702_DMAC0_PERI_SPI2_RX 0xD
53#define S5L8702_DMAC0_PERI_SPI1_TX 0xE
54#define S5L8702_DMAC0_PERI_SPI1_RX 0xF
55
56/* S5L7802 DMAC1 peripherals */
57#define S5L8702_DMAC1_PERI_CEATA_WR 0x0
58#define S5L8702_DMAC1_PERI_CEATA_RD 0x1
59#define S5L8702_DMAC1_PERI_IIS1_TX 0x2
60#define S5L8702_DMAC1_PERI_IIS1_RX 0x3
61#define S5L8702_DMAC1_PERI_IIS2_TX 0x4
62#define S5L8702_DMAC1_PERI_IIS2_RX 0x5
63#define S5L8702_DMAC1_PERI_SPI1_TX 0x6
64#define S5L8702_DMAC1_PERI_SPI1_RX 0x7
65#define S5L8702_DMAC1_PERI_UART2_TX 0x8
66#define S5L8702_DMAC1_PERI_UART2_RX 0x9
67#define S5L8702_DMAC1_PERI_SPI0_TX 0xA
68#define S5L8702_DMAC1_PERI_SPI0_RX 0xB
69#define S5L8702_DMAC1_PERI_UART3_TX 0xC
70#define S5L8702_DMAC1_PERI_UART3_RX 0xD
71#define S5L8702_DMAC1_PERI_SPI2_TX 0xE
72#define S5L8702_DMAC1_PERI_SPI2_RX 0xF
73
74/* used when src and/or dst peripheral is memory */
75#define S5L8702_DMAC0_PERI_MEM DMAC_PERI_NONE
76#define S5L8702_DMAC1_PERI_MEM DMAC_PERI_NONE
77
78/* s5l8702 peripheral DMA R/W addesses */
79#define S5L8702_DADDR_PERI_LCD_WR 0x38300040
80#define S5L8702_DADDR_PERI_UNKNOWN 0x3CB00010 /* SPDIF ??? */
81#define S5L8702_DADDR_PERI_UART0_TX 0x3CC00020
82#define S5L8702_DADDR_PERI_UART0_RX 0x3CC00024
83#define S5L8702_DADDR_PERI_UART1_TX 0x3CC04020
84#define S5L8702_DADDR_PERI_UART1_RX 0x3CC04024
85#define S5L8702_DADDR_PERI_UART2_TX 0x3CC08020
86#define S5L8702_DADDR_PERI_UART2_RX 0x3CC08024
87#define S5L8702_DADDR_PERI_UART3_TX 0x3CC0C020
88#define S5L8702_DADDR_PERI_UART3_RX 0x3CC0C024
89#define S5L8702_DADDR_PERI_IIS0_TX 0x3CA00010
90#define S5L8702_DADDR_PERI_IIS0_RX 0x3CA00038
91#define S5L8702_DADDR_PERI_IIS1_TX 0x3CD00010
92#define S5L8702_DADDR_PERI_IIS1_RX 0x3CD00038
93#define S5L8702_DADDR_PERI_IIS2_TX 0x3D400010
94#define S5L8702_DADDR_PERI_IIS2_RX 0x3D400038
95#define S5L8702_DADDR_PERI_CEATA_WR 0x38A00080
96#define S5L8702_DADDR_PERI_CEATA_RD 0x38A04080
97#define S5L8702_DADDR_PERI_SPI0_TX 0x3C300010
98#define S5L8702_DADDR_PERI_SPI0_RX 0x3C300020
99#define S5L8702_DADDR_PERI_SPI1_TX 0x3CE00010
100#define S5L8702_DADDR_PERI_SPI1_RX 0x3CE00020
101#define S5L8702_DADDR_PERI_SPI2_TX 0x3D200010
102#define S5L8702_DADDR_PERI_SPI2_RX 0x3D200020
103
104/* proto */
105void dma_init(void);
106
107#endif /* _DMA_S5l8702_H */