summaryrefslogtreecommitdiff
path: root/sys/arch/loongson/dev/voyagerreg.h
blob: 237517614a4edb21c5ce607e1a805d58ca111126 (plain)
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
/*	$OpenBSD: voyagerreg.h,v 1.3 2010/08/27 12:48:54 miod Exp $	*/

/*
 * Copyright (c) 2010 Miodrag Vallat.
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/*
 * Silicon Motion SM501/SM502 registers
 */

#define	SM5XX_MMIO_BASE			0x000000
#define	SM5XX_MMIO_SIZE			0x010000

#define	VOYAGER_SYSTEM_CONTROL		0x0000
#define	VSC_DPMS_VSYNC_DISABLE		0x80000000
#define	VSC_DPMS_HSYNC_DISABLE		0x40000000
#define	VSC_COLOR_CONVERSION_BUSY	0x10000000
#define	VSC_FIFO_EMPTY			0x00100000
#define	VSC_2DENGINE_BUSY		0x00080000
#define	VSC_2DENGINE_ABORT		0x00003000	/* not a typo */
#define	VOYAGER_MISC_CONTROL		0x0004
#define	VOYAGER_GPIOL_CONTROL		0x0008
#define	VOYAGER_GPIOH_CONTROL		0x000c
#define	VOYAGER_DRAM_CONTROL		0x0010
#define	VOYAGER_ARB_CONTROL		0x0014

#define	VOYAGER_COMMANDLIST_CONTROL	0x0018
#define	VOYAGER_COMMANDLIST_CONDITION	0x001c
#define	VOYAGER_COMMANDLIST_RETURN	0x0020
#define	VOYAGER_COMMANDLIST_STATUS	0x0024
#define	VCS_2M				0x00100000
#define	VCS_CF				0x00080000
#define	VCS_2C				0x00040000
#define	VCS_DM				0x00020000
#define	VCS_CS				0x00010000
#define	VCS_VF				0x00008000
#define	VCS_VS				0x00004000
#define	VCS_PS				0x00002000
#define	VCS_SC				0x00001000
#define	VCS_SP				0x00000800
#define	VCS_2S				0x00000004
#define	VCS_2F				0x00000002
#define	VCS_2E				0x00000001

#define	VOYAGER_RAW_ISR			0x0028
#define	VOYAGER_RAWINTR_ZV1				6
#define	VOYAGER_RAWINTR_USB_PLUGIN			5
#define	VOYAGER_RAWINTR_ZV0				4
#define	VOYAGER_RAWINTR_CRT_VSYNC			3
#define	VOYAGER_RAWINTR_USB_SLAVE			2
#define	VOYAGER_RAWINTR_PANEL_VSYNC			1
#define	VOYAGER_RAWINTR_COMMAND_INTERPRETER		0
#define	VOYAGER_RAW_ICR			0x0028
#define	VOYAGER_ISR			0x002c
#define	VOYAGER_INTR_USB_PLUGIN				31
#define	VOYAGER_INTR_GPIO54				30
#define	VOYAGER_INTR_GPIO53				29
#define	VOYAGER_INTR_GPIO52				28
#define	VOYAGER_INTR_GPIO51				27
#define	VOYAGER_INTR_GPIO50				26
#define	VOYAGER_INTR_GPIO49				25
#define	VOYAGER_INTR_GPIO48				24
#define	VOYAGER_INTR_I2C				23
#define	VOYAGER_INTR_PWM				22
#define	VOYAGER_INTR_DMA				20
#define	VOYAGER_INTR_PCI				19
#define	VOYAGER_INTR_I2S				18
#define	VOYAGER_INTR_AC97				17
#define	VOYAGER_INTR_USB_SLAVE				16
#define	VOYAGER_INTR_UART1				13
#define	VOYAGER_INTR_UART0				12
#define	VOYAGER_INTR_CRT_VSYNC				11
#define	VOYAGER_INTR_8051				10
#define	VOYAGER_INTR_SSP1				9
#define	VOYAGER_INTR_SSP0				8
#define	VOYAGER_INTR_USB_HOST				6
#define	VOYAGER_INTR_ZV1				4
#define	VOYAGER_INTR_2DENGINE				3
#define	VOYAGER_INTR_ZV0				2
#define	VOYAGER_INTR_PANEL_VSYNC			1
#define	VOYAGER_INTR_COMMAND_INTERPRETER		0
#define	VOYAGER_IMR			0x0030
#define	VOYAGER_DEBUG			0x0034

#define	VOYAGER_PM_CURRENT_GATE		0x0038
#define	VOYAGER_PM_CURRENT_CLOCK	0x003c
#define	VOYAGER_PM_MODE0_GATE		0x0040
#define	VOYAGER_PM_MODE0_CLOCK		0x0044
#define	VOYAGER_PM_MODE1_GATE		0x0048
#define	VOYAGER_PM_MODE1_CLOCK		0x004c
#define	VOYAGER_PM_SLEEP_GATE		0x0050
#define	VOYAGER_PM_CONTROL		0x0054

#define	VOYAGER_MASTER_PCI_BASE		0x0058
#define	VOYAGER_ENDIAN_CONTROL		0x005c
#define	VOYAGER_DEVICE_ID		0x0060
#define	VOYAGER_PLL_COUNT		0x0064
#define	VOYAGER_MISC			0x0068
#define	VOYAGER_SDRAM_CLOCK		0x006c
#define	VOYAGER_NON_CACHE_ADDRESS	0x0070
#define	VOYAGER_PLL_CONTROL		0x0074

/*
 * GPIO
 */

#define	VOYAGER_GPIO_DATA_LOW		0x010000
#define	VOYAGER_GPIO_DATA_HIGH		0x010004
#define	VOYAGER_GPIO_DIR_LOW		0x010008
#define	VOYAGER_GPIO_DIR_HIGH		0x01000c

/*
 * OHCI
 */

#define	VOYAGER_OHCI_BASE		0x040000
#define	VOYAGER_OHCI_SIZE		0x020000

/*
 * Display Controller
 */

#define	SM5XX_DCR_BASE			0x080000
#define	SM5XX_DCR_SIZE			0x010000

#define	DCR_PANEL_DISPLAY_CONTROL	0x0000
#define	PDC_EN				0x08000000
#define	PDC_BIAS			0x04000000
#define	PDC_DATA			0x02000000
#define	PDC_VDD				0x01000000