summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/gen5200/bestcomm/include/mgt5200/sdma.h
blob: 52d84777adcba09a223d5571295194a4a9566ac9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#ifndef __MGT5200_SDMA_H
#define __MGT5200_SDMA_H

/******************************************************************************
*
* Copyright (c) 2004 Freescale Semiconductor, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
******************************************************************************/

typedef struct sdma_register_set {
    volatile uint32 taskBar;         /* MBAR_SDMA + 0x00 sdTpb */
    volatile uint32 currentPointer;  /* MBAR_SDMA + 0x04 sdMdeComplex */
    volatile uint32 endPointer;      /* MBAR_SDMA + 0x08 sdMdeComplex */
    volatile uint32 variablePointer; /* MBAR_SDMA + 0x0c sdMdeComplex */

    volatile uint8  IntVect1;   /* MBAR_SDMA + 0x10 sdPtd */
    volatile uint8  IntVect2;   /* MBAR_SDMA + 0x11 sdPtd */
    volatile uint16 PtdCntrl;   /* MBAR_SDMA + 0x12 sdPtd */

    volatile uint32 IntPend;    /* MBAR_SDMA + 0x14 sdPtd */
    volatile uint32 IntMask;    /* MBAR_SDMA + 0x18 sdPtd */

    volatile uint32 TCR01;      /* MBAR_SDMA + 0x1c sdPtd */
    volatile uint32 TCR23;      /* MBAR_SDMA + 0x20 sdPtd */
    volatile uint32 TCR45;      /* MBAR_SDMA + 0x24 sdPtd */
    volatile uint32 TCR67;      /* MBAR_SDMA + 0x28 sdPtd */
    volatile uint32 TCR89;      /* MBAR_SDMA + 0x2c sdPtd */
    volatile uint32 TCRAB;      /* MBAR_SDMA + 0x30 sdPtd */
    volatile uint32 TCRCD;      /* MBAR_SDMA + 0x34 sdPtd */
    volatile uint32 TCREF;      /* MBAR_SDMA + 0x38 sdPtd */

    volatile uint8  IPR0;       /* MBAR_SDMA + 0x3c sdPtd */
    volatile uint8  IPR1;       /* MBAR_SDMA + 0x3d sdPtd */
    volatile uint8  IPR2;       /* MBAR_SDMA + 0x3e sdPtd */
    volatile uint8  IPR3;       /* MBAR_SDMA + 0x3f sdPtd */
    volatile uint8  IPR4;       /* MBAR_SDMA + 0x40 sdPtd */
    volatile uint8  IPR5;       /* MBAR_SDMA + 0x41 sdPtd */
    volatile uint8  IPR6;       /* MBAR_SDMA + 0x42 sdPtd */
    volatile uint8  IPR7;       /* MBAR_SDMA + 0x43 sdPtd */
    volatile uint8  IPR8;       /* MBAR_SDMA + 0x44 sdPtd */
    volatile uint8  IPR9;       /* MBAR_SDMA + 0x45 sdPtd */
    volatile uint8  IPR10;      /* MBAR_SDMA + 0x46 sdPtd */
    volatile uint8  IPR11;      /* MBAR_SDMA + 0x47 sdPtd */
    volatile uint8  IPR12;      /* MBAR_SDMA + 0x48 sdPtd */
    volatile uint8  IPR13;      /* MBAR_SDMA + 0x49 sdPtd */
    volatile uint8  IPR14;      /* MBAR_SDMA + 0x4a sdPtd */
    volatile uint8  IPR15;      /* MBAR_SDMA + 0x4b sdPtd */
    volatile uint8  IPR16;      /* MBAR_SDMA + 0x4c sdPtd */
    volatile uint8  IPR17;      /* MBAR_SDMA + 0x4d sdPtd */
    volatile uint8  IPR18;      /* MBAR_SDMA + 0x4e sdPtd */
    volatile uint8  IPR19;      /* MBAR_SDMA + 0x4f sdPtd */
    volatile uint8  IPR20;      /* MBAR_SDMA + 0x50 sdPtd */
    volatile uint8  IPR21;      /* MBAR_SDMA + 0x51 sdPtd */
    volatile uint8  IPR22;      /* MBAR_SDMA + 0x52 sdPtd */
    volatile uint8  IPR23;      /* MBAR_SDMA + 0x53 sdPtd */
    volatile uint8  IPR24;      /* MBAR_SDMA + 0x54 sdPtd */
    volatile uint8  IPR25;      /* MBAR_SDMA + 0x55 sdPtd */
    volatile uint8  IPR26;      /* MBAR_SDMA + 0x56 sdPtd */
    volatile uint8  IPR27;      /* MBAR_SDMA + 0x57 sdPtd */
    volatile uint8  IPR28;      /* MBAR_SDMA + 0x58 sdPtd */
    volatile uint8  IPR29;      /* MBAR_SDMA + 0x59 sdPtd */
    volatile uint8  IPR30;      /* MBAR_SDMA + 0x5a sdPtd */
    volatile uint8  IPR31;      /* MBAR_SDMA + 0x5b sdPtd */

    volatile uint32 cReqSelect; /* MBAR_SDMA + 0x5c sdPtd */
    volatile uint32 taskSize0;  /* MBAR_SDMA + 0x60 sdPtd */
    volatile uint32 taskSize1;  /* MBAR_SDMA + 0x64 sdPtd */
    volatile uint32 MDEDebug;   /* MBAR_SDMA + 0x68 sdMdeComplex */
    volatile uint32 ADSDebug;   /* MBAR_SDMA + 0x6c sdAdsTop */
    volatile uint32 Value1;     /* MBAR_SDMA + 0x70 sdDbg */
    volatile uint32 Value2;     /* MBAR_SDMA + 0x74 sdDbg */
    volatile uint32 Control;    /* MBAR_SDMA + 0x78 sdDbg */
    volatile uint32 Status;     /* MBAR_SDMA + 0x7c sdDbg */
    volatile uint32 PTDDebug;   /* MBAR_SDMA + 0x80 sdPtd */
} sdma_regs;

#define SDMA_PTDCNTRL_TI	0x8000
#define SDMA_PTDCNTRL_TEA	0x4000
#define SDMA_PTDCNTRL_HE	0x2000
#define SDMA_PTDCNTRL_PE	0x0001

#define SDMA_CREQSELECT_REQ31_MASK		(~0xC0000000UL)
#define SDMA_CREQSELECT_REQ30_MASK		(~0x30000000UL)
#define SDMA_CREQSELECT_REQ29_MASK		(~0x0C000000UL)
#define SDMA_CREQSELECT_REQ28_MASK		(~0x03000000UL)
#define SDMA_CREQSELECT_REQ27_MASK		(~0x00C00000UL)
#define SDMA_CREQSELECT_REQ26_MASK		(~0x00300000UL)
#define SDMA_CREQSELECT_REQ25_MASK		(~0x000C0000UL)
#define SDMA_CREQSELECT_REQ24_MASK		(~0x00030000UL)
#define SDMA_CREQSELECT_REQ23_MASK		(~0x0000C000UL)
#define SDMA_CREQSELECT_REQ22_MASK		(~0x00003000UL)
#define SDMA_CREQSELECT_REQ21_MASK		(~0x00000C00UL)
#define SDMA_CREQSELECT_REQ20_MASK		(~0x00000300UL)
#define SDMA_CREQSELECT_REQ19_MASK		(~0x000000C0UL)
#define SDMA_CREQSELECT_REQ18_MASK		(~0x00000030UL)
#define SDMA_CREQSELECT_REQ17_MASK		(~0x0000000CUL)
#define SDMA_CREQSELECT_REQ16_MASK		(~0x00000003UL)

#define SDMA_CREQSELECT_REQ31_ALWAYS31	0xC0000000UL
#define SDMA_CREQSELECT_REQ30_ALWAYS30	0x30000000UL
#define SDMA_CREQSELECT_REQ29_ALWAYS29	0x0C000000UL
#define SDMA_CREQSELECT_REQ28_ALWAYS28	0x03000000UL
#define SDMA_CREQSELECT_REQ27_ALWAYS27	0x00C00000UL
#define SDMA_CREQSELECT_REQ26_ALWAYS26	0x00300000UL
#define SDMA_CREQSELECT_REQ25_ALWAYS25	0x000C0000UL
#define SDMA_CREQSELECT_REQ24_ALWAYS24	0x00030000UL
#define SDMA_CREQSELECT_REQ23_ALWAYS23	0x0000C000UL
#define SDMA_CREQSELECT_REQ22_ALWAYS22	0x00003000UL
#define SDMA_CREQSELECT_REQ21_ALWAYS21	0x00000C00UL
#define SDMA_CREQSELECT_REQ20_ALWAYS20	0x00000300UL
#define SDMA_CREQSELECT_REQ19_ALWAYS19	0x000000C0UL
#define SDMA_CREQSELECT_REQ18_ALWAYS18	0x00000030UL
#define SDMA_CREQSELECT_REQ17_ALWAYS17	0x0000000CUL
#define SDMA_CREQSELECT_REQ16_ALWAYS16	0x00000003UL

#define SDMA_CREQSELECT_REQ31_SCTIMER7	0x00000000UL
#define SDMA_CREQSELECT_REQ30_SCTIMER6	0x00000000UL
#define SDMA_CREQSELECT_REQ29_SCTIMER5	0x00000000UL
#define SDMA_CREQSELECT_REQ28_SCTIMER4	0x00000000UL
#define SDMA_CREQSELECT_REQ27_SCTIMER3	0x00000000UL
#define SDMA_CREQSELECT_REQ26_PSC6_TX	0x00000000UL
#define SDMA_CREQSELECT_REQ25_PSC6_RX	0x00000000UL
#define SDMA_CREQSELECT_REQ24_I2C1_TX	0x00000000UL
#define SDMA_CREQSELECT_REQ23_I2C1_RX	0x00000000UL
#define SDMA_CREQSELECT_REQ22_I2C2_TX	0x00000000UL
#define SDMA_CREQSELECT_REQ21_I2C2_RX	0x00000000UL
#define SDMA_CREQSELECT_REQ20_PSC4_TX	0x00000000UL
#define SDMA_CREQSELECT_REQ19_PSC4_RX	0x00000000UL
#define SDMA_CREQSELECT_REQ18_PSC5_TX	0x00000000UL
#define SDMA_CREQSELECT_REQ17_PSC5_RX	0x00000000UL
#define SDMA_CREQSELECT_REQ16_LP		0x00000000UL

#define SDMA_CREQSELECT_ALWAYS30	0xC0000000UL

#endif /* __MGT5200_SDMA_H */