xref: /openbsd/sys/arch/loongson/dev/voyagerreg.h (revision 4117f5cc)
1*4117f5ccSmiod /*	$OpenBSD: voyagerreg.h,v 1.2 2010/02/26 14:53:11 miod Exp $	*/
2853bc193Smiod 
3853bc193Smiod /*
4853bc193Smiod  * Copyright (c) 2010 Miodrag Vallat.
5853bc193Smiod  *
6853bc193Smiod  * Permission to use, copy, modify, and distribute this software for any
7853bc193Smiod  * purpose with or without fee is hereby granted, provided that the above
8853bc193Smiod  * copyright notice and this permission notice appear in all copies.
9853bc193Smiod  *
10853bc193Smiod  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11853bc193Smiod  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12853bc193Smiod  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13853bc193Smiod  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14853bc193Smiod  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15853bc193Smiod  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16853bc193Smiod  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17853bc193Smiod  */
18853bc193Smiod 
19853bc193Smiod /*
20853bc193Smiod  * Silicon Motion SM501/SM502 registers
21853bc193Smiod  */
22853bc193Smiod 
23*4117f5ccSmiod #define	SM5XX_MMIO_BASE			0x000000
24853bc193Smiod 
25*4117f5ccSmiod #define	VOYAGER_SYSTEM_CONTROL		0x000000
26*4117f5ccSmiod #define	VSC_DPMS_VSYNC_DISABLE		0x80000000
27*4117f5ccSmiod #define	VSC_DPMS_HSYNC_DISABLE		0x40000000
28*4117f5ccSmiod #define	VSC_COLOR_CONVERSION_BUSY	0x10000000
29853bc193Smiod #define	VSC_FIFO_EMPTY			0x00100000
30*4117f5ccSmiod #define	VSC_2DENGINE_BUSY		0x00080000
31*4117f5ccSmiod #define	VSC_2DENGINE_ABORT		0x00003000	/* not a typo */
32*4117f5ccSmiod #define	VOYAGER_MISC_CONTROL		0x000004
33*4117f5ccSmiod #define	VOYAGER_GPIOL_CONTROL		0x000008
34*4117f5ccSmiod #define	VOYAGER_GPIOH_CONTROL		0x00000c
35*4117f5ccSmiod #define	VOYAGER_DRAM_CONTROL		0x000010
36*4117f5ccSmiod #define	VOYAGER_ARB_CONTROL		0x000014
37*4117f5ccSmiod 
38*4117f5ccSmiod #define	VOYAGER_COMMANDLIST_CONTROL	0x000018
39*4117f5ccSmiod #define	VOYAGER_COMMANDLIST_CONDITION	0x00001c
40*4117f5ccSmiod #define	VOYAGER_COMMANDLIST_RETURN	0x000020
41*4117f5ccSmiod #define	VOYAGER_COMMANDLIST_STATUS	0x000024
42*4117f5ccSmiod 
43*4117f5ccSmiod #define	VOYAGER_RAW_ISR			0x000028
44*4117f5ccSmiod #define	VOYAGER_RAWINTR_ZV1				6
45*4117f5ccSmiod #define	VOYAGER_RAWINTR_USB_PLUGIN			5
46*4117f5ccSmiod #define	VOYAGER_RAWINTR_ZV0				4
47*4117f5ccSmiod #define	VOYAGER_RAWINTR_CRT_VSYNC			3
48*4117f5ccSmiod #define	VOYAGER_RAWINTR_USB_SLAVE			2
49*4117f5ccSmiod #define	VOYAGER_RAWINTR_PANEL_VSYNC			1
50*4117f5ccSmiod #define	VOYAGER_RAWINTR_COMMAND_INTERPRETER		0
51*4117f5ccSmiod #define	VOYAGER_RAW_ICR			0x000028
52*4117f5ccSmiod #define	VOYAGER_ISR			0x00002c
53*4117f5ccSmiod #define	VOYAGER_INTR_USB_PLUGIN				31
54*4117f5ccSmiod #define	VOYAGER_INTR_GPIO54				30
55*4117f5ccSmiod #define	VOYAGER_INTR_GPIO53				29
56*4117f5ccSmiod #define	VOYAGER_INTR_GPIO52				28
57*4117f5ccSmiod #define	VOYAGER_INTR_GPIO51				27
58*4117f5ccSmiod #define	VOYAGER_INTR_GPIO50				26
59*4117f5ccSmiod #define	VOYAGER_INTR_GPIO49				25
60*4117f5ccSmiod #define	VOYAGER_INTR_GPIO48				24
61*4117f5ccSmiod #define	VOYAGER_INTR_I2C				23
62*4117f5ccSmiod #define	VOYAGER_INTR_PWM				22
63*4117f5ccSmiod #define	VOYAGER_INTR_DMA				20
64*4117f5ccSmiod #define	VOYAGER_INTR_PCI				19
65*4117f5ccSmiod #define	VOYAGER_INTR_I2S				18
66*4117f5ccSmiod #define	VOYAGER_INTR_AC97				17
67*4117f5ccSmiod #define	VOYAGER_INTR_USB_SLAVE				16
68*4117f5ccSmiod #define	VOYAGER_INTR_UART1				13
69*4117f5ccSmiod #define	VOYAGER_INTR_UART0				12
70*4117f5ccSmiod #define	VOYAGER_INTR_CRT_VSYNC				11
71*4117f5ccSmiod #define	VOYAGER_INTR_8051				10
72*4117f5ccSmiod #define	VOYAGER_INTR_SSP1				9
73*4117f5ccSmiod #define	VOYAGER_INTR_SSP0				8
74*4117f5ccSmiod #define	VOYAGER_INTR_USB_HOST				6
75*4117f5ccSmiod #define	VOYAGER_INTR_ZV1				4
76*4117f5ccSmiod #define	VOYAGER_INTR_2DENGINE				3
77*4117f5ccSmiod #define	VOYAGER_INTR_ZV0				2
78*4117f5ccSmiod #define	VOYAGER_INTR_PANEL_VSYNC			1
79*4117f5ccSmiod #define	VOYAGER_INTR_COMMAND_INTERPRETER		0
80*4117f5ccSmiod #define	VOYAGER_IMR			0x000030
81*4117f5ccSmiod #define	VOYAGER_DEBUG			0x000034
82*4117f5ccSmiod 
83*4117f5ccSmiod #define	VOYAGER_PM_CURRENT_GATE		0x000038
84*4117f5ccSmiod #define	VOYAGER_PM_CURRENT_CLOCK	0x00003c
85*4117f5ccSmiod #define	VOYAGER_PM_MODE0_GATE		0x000040
86*4117f5ccSmiod #define	VOYAGER_PM_MODE0_CLOCK		0x000044
87*4117f5ccSmiod #define	VOYAGER_PM_MODE1_GATE		0x000048
88*4117f5ccSmiod #define	VOYAGER_PM_MODE1_CLOCK		0x00004c
89*4117f5ccSmiod #define	VOYAGER_PM_SLEEP_GATE		0x000050
90*4117f5ccSmiod #define	VOYAGER_PM_CONTROL		0x000054
91*4117f5ccSmiod 
92*4117f5ccSmiod #define	VOYAGER_MASTER_PCI_BASE		0x000058
93*4117f5ccSmiod #define	VOYAGER_ENDIAN_CONTROL		0x00005c
94*4117f5ccSmiod #define	VOYAGER_DEVICE_ID		0x000060
95*4117f5ccSmiod #define	VOYAGER_PLL_COUNT		0x000064
96*4117f5ccSmiod #define	VOYAGER_MISC			0x000068
97*4117f5ccSmiod #define	VOYAGER_SDRAM_CLOCK		0x00006c
98*4117f5ccSmiod #define	VOYAGER_NON_CACHE_ADDRESS	0x000070
99*4117f5ccSmiod #define	VOYAGER_PLL_CONTROL		0x000074
100853bc193Smiod 
101853bc193Smiod /*
102853bc193Smiod  * GPIO
103853bc193Smiod  */
104853bc193Smiod 
105*4117f5ccSmiod #define	VOYAGER_GPIO_DATA_LOW		0x010000
106*4117f5ccSmiod #define	VOYAGER_GPIO_DATA_HIGH		0x010004
107*4117f5ccSmiod #define	VOYAGER_GPIO_DIR_LOW		0x010008
108*4117f5ccSmiod #define	VOYAGER_GPIO_DIR_HIGH		0x01000c
109853bc193Smiod 
110*4117f5ccSmiod /*
111*4117f5ccSmiod  * OHCI
112*4117f5ccSmiod  */
113*4117f5ccSmiod 
114*4117f5ccSmiod #define	VOYAGER_OHCI_BASE		0x040000
115*4117f5ccSmiod #define	VOYAGER_OHCI_SIZE		0x020000
116