xref: /openbsd/sys/arch/loongson/dev/voyagerreg.h (revision 38a3e2e8)
1 /*	$OpenBSD: voyagerreg.h,v 1.3 2010/08/27 12:48:54 miod Exp $	*/
2 
3 /*
4  * Copyright (c) 2010 Miodrag Vallat.
5  *
6  * Permission to use, copy, modify, and distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /*
20  * Silicon Motion SM501/SM502 registers
21  */
22 
23 #define	SM5XX_MMIO_BASE			0x000000
24 #define	SM5XX_MMIO_SIZE			0x010000
25 
26 #define	VOYAGER_SYSTEM_CONTROL		0x0000
27 #define	VSC_DPMS_VSYNC_DISABLE		0x80000000
28 #define	VSC_DPMS_HSYNC_DISABLE		0x40000000
29 #define	VSC_COLOR_CONVERSION_BUSY	0x10000000
30 #define	VSC_FIFO_EMPTY			0x00100000
31 #define	VSC_2DENGINE_BUSY		0x00080000
32 #define	VSC_2DENGINE_ABORT		0x00003000	/* not a typo */
33 #define	VOYAGER_MISC_CONTROL		0x0004
34 #define	VOYAGER_GPIOL_CONTROL		0x0008
35 #define	VOYAGER_GPIOH_CONTROL		0x000c
36 #define	VOYAGER_DRAM_CONTROL		0x0010
37 #define	VOYAGER_ARB_CONTROL		0x0014
38 
39 #define	VOYAGER_COMMANDLIST_CONTROL	0x0018
40 #define	VOYAGER_COMMANDLIST_CONDITION	0x001c
41 #define	VOYAGER_COMMANDLIST_RETURN	0x0020
42 #define	VOYAGER_COMMANDLIST_STATUS	0x0024
43 #define	VCS_2M				0x00100000
44 #define	VCS_CF				0x00080000
45 #define	VCS_2C				0x00040000
46 #define	VCS_DM				0x00020000
47 #define	VCS_CS				0x00010000
48 #define	VCS_VF				0x00008000
49 #define	VCS_VS				0x00004000
50 #define	VCS_PS				0x00002000
51 #define	VCS_SC				0x00001000
52 #define	VCS_SP				0x00000800
53 #define	VCS_2S				0x00000004
54 #define	VCS_2F				0x00000002
55 #define	VCS_2E				0x00000001
56 
57 #define	VOYAGER_RAW_ISR			0x0028
58 #define	VOYAGER_RAWINTR_ZV1				6
59 #define	VOYAGER_RAWINTR_USB_PLUGIN			5
60 #define	VOYAGER_RAWINTR_ZV0				4
61 #define	VOYAGER_RAWINTR_CRT_VSYNC			3
62 #define	VOYAGER_RAWINTR_USB_SLAVE			2
63 #define	VOYAGER_RAWINTR_PANEL_VSYNC			1
64 #define	VOYAGER_RAWINTR_COMMAND_INTERPRETER		0
65 #define	VOYAGER_RAW_ICR			0x0028
66 #define	VOYAGER_ISR			0x002c
67 #define	VOYAGER_INTR_USB_PLUGIN				31
68 #define	VOYAGER_INTR_GPIO54				30
69 #define	VOYAGER_INTR_GPIO53				29
70 #define	VOYAGER_INTR_GPIO52				28
71 #define	VOYAGER_INTR_GPIO51				27
72 #define	VOYAGER_INTR_GPIO50				26
73 #define	VOYAGER_INTR_GPIO49				25
74 #define	VOYAGER_INTR_GPIO48				24
75 #define	VOYAGER_INTR_I2C				23
76 #define	VOYAGER_INTR_PWM				22
77 #define	VOYAGER_INTR_DMA				20
78 #define	VOYAGER_INTR_PCI				19
79 #define	VOYAGER_INTR_I2S				18
80 #define	VOYAGER_INTR_AC97				17
81 #define	VOYAGER_INTR_USB_SLAVE				16
82 #define	VOYAGER_INTR_UART1				13
83 #define	VOYAGER_INTR_UART0				12
84 #define	VOYAGER_INTR_CRT_VSYNC				11
85 #define	VOYAGER_INTR_8051				10
86 #define	VOYAGER_INTR_SSP1				9
87 #define	VOYAGER_INTR_SSP0				8
88 #define	VOYAGER_INTR_USB_HOST				6
89 #define	VOYAGER_INTR_ZV1				4
90 #define	VOYAGER_INTR_2DENGINE				3
91 #define	VOYAGER_INTR_ZV0				2
92 #define	VOYAGER_INTR_PANEL_VSYNC			1
93 #define	VOYAGER_INTR_COMMAND_INTERPRETER		0
94 #define	VOYAGER_IMR			0x0030
95 #define	VOYAGER_DEBUG			0x0034
96 
97 #define	VOYAGER_PM_CURRENT_GATE		0x0038
98 #define	VOYAGER_PM_CURRENT_CLOCK	0x003c
99 #define	VOYAGER_PM_MODE0_GATE		0x0040
100 #define	VOYAGER_PM_MODE0_CLOCK		0x0044
101 #define	VOYAGER_PM_MODE1_GATE		0x0048
102 #define	VOYAGER_PM_MODE1_CLOCK		0x004c
103 #define	VOYAGER_PM_SLEEP_GATE		0x0050
104 #define	VOYAGER_PM_CONTROL		0x0054
105 
106 #define	VOYAGER_MASTER_PCI_BASE		0x0058
107 #define	VOYAGER_ENDIAN_CONTROL		0x005c
108 #define	VOYAGER_DEVICE_ID		0x0060
109 #define	VOYAGER_PLL_COUNT		0x0064
110 #define	VOYAGER_MISC			0x0068
111 #define	VOYAGER_SDRAM_CLOCK		0x006c
112 #define	VOYAGER_NON_CACHE_ADDRESS	0x0070
113 #define	VOYAGER_PLL_CONTROL		0x0074
114 
115 /*
116  * GPIO
117  */
118 
119 #define	VOYAGER_GPIO_DATA_LOW		0x010000
120 #define	VOYAGER_GPIO_DATA_HIGH		0x010004
121 #define	VOYAGER_GPIO_DIR_LOW		0x010008
122 #define	VOYAGER_GPIO_DIR_HIGH		0x01000c
123 
124 /*
125  * OHCI
126  */
127 
128 #define	VOYAGER_OHCI_BASE		0x040000
129 #define	VOYAGER_OHCI_SIZE		0x020000
130 
131 /*
132  * Display Controller
133  */
134 
135 #define	SM5XX_DCR_BASE			0x080000
136 #define	SM5XX_DCR_SIZE			0x010000
137 
138 #define	DCR_PANEL_DISPLAY_CONTROL	0x0000
139 #define	PDC_EN				0x08000000
140 #define	PDC_BIAS			0x04000000
141 #define	PDC_DATA			0x02000000
142 #define	PDC_VDD				0x01000000
143