xref: /openbsd/sys/arch/loongson/dev/voyagerreg.h (revision 38a3e2e8)
1*38a3e2e8Smiod /*	$OpenBSD: voyagerreg.h,v 1.3 2010/08/27 12:48:54 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 
234117f5ccSmiod #define	SM5XX_MMIO_BASE			0x000000
24*38a3e2e8Smiod #define	SM5XX_MMIO_SIZE			0x010000
25853bc193Smiod 
26*38a3e2e8Smiod #define	VOYAGER_SYSTEM_CONTROL		0x0000
274117f5ccSmiod #define	VSC_DPMS_VSYNC_DISABLE		0x80000000
284117f5ccSmiod #define	VSC_DPMS_HSYNC_DISABLE		0x40000000
294117f5ccSmiod #define	VSC_COLOR_CONVERSION_BUSY	0x10000000
30853bc193Smiod #define	VSC_FIFO_EMPTY			0x00100000
314117f5ccSmiod #define	VSC_2DENGINE_BUSY		0x00080000
324117f5ccSmiod #define	VSC_2DENGINE_ABORT		0x00003000	/* not a typo */
33*38a3e2e8Smiod #define	VOYAGER_MISC_CONTROL		0x0004
34*38a3e2e8Smiod #define	VOYAGER_GPIOL_CONTROL		0x0008
35*38a3e2e8Smiod #define	VOYAGER_GPIOH_CONTROL		0x000c
36*38a3e2e8Smiod #define	VOYAGER_DRAM_CONTROL		0x0010
37*38a3e2e8Smiod #define	VOYAGER_ARB_CONTROL		0x0014
384117f5ccSmiod 
39*38a3e2e8Smiod #define	VOYAGER_COMMANDLIST_CONTROL	0x0018
40*38a3e2e8Smiod #define	VOYAGER_COMMANDLIST_CONDITION	0x001c
41*38a3e2e8Smiod #define	VOYAGER_COMMANDLIST_RETURN	0x0020
42*38a3e2e8Smiod #define	VOYAGER_COMMANDLIST_STATUS	0x0024
43*38a3e2e8Smiod #define	VCS_2M				0x00100000
44*38a3e2e8Smiod #define	VCS_CF				0x00080000
45*38a3e2e8Smiod #define	VCS_2C				0x00040000
46*38a3e2e8Smiod #define	VCS_DM				0x00020000
47*38a3e2e8Smiod #define	VCS_CS				0x00010000
48*38a3e2e8Smiod #define	VCS_VF				0x00008000
49*38a3e2e8Smiod #define	VCS_VS				0x00004000
50*38a3e2e8Smiod #define	VCS_PS				0x00002000
51*38a3e2e8Smiod #define	VCS_SC				0x00001000
52*38a3e2e8Smiod #define	VCS_SP				0x00000800
53*38a3e2e8Smiod #define	VCS_2S				0x00000004
54*38a3e2e8Smiod #define	VCS_2F				0x00000002
55*38a3e2e8Smiod #define	VCS_2E				0x00000001
564117f5ccSmiod 
57*38a3e2e8Smiod #define	VOYAGER_RAW_ISR			0x0028
584117f5ccSmiod #define	VOYAGER_RAWINTR_ZV1				6
594117f5ccSmiod #define	VOYAGER_RAWINTR_USB_PLUGIN			5
604117f5ccSmiod #define	VOYAGER_RAWINTR_ZV0				4
614117f5ccSmiod #define	VOYAGER_RAWINTR_CRT_VSYNC			3
624117f5ccSmiod #define	VOYAGER_RAWINTR_USB_SLAVE			2
634117f5ccSmiod #define	VOYAGER_RAWINTR_PANEL_VSYNC			1
644117f5ccSmiod #define	VOYAGER_RAWINTR_COMMAND_INTERPRETER		0
65*38a3e2e8Smiod #define	VOYAGER_RAW_ICR			0x0028
66*38a3e2e8Smiod #define	VOYAGER_ISR			0x002c
674117f5ccSmiod #define	VOYAGER_INTR_USB_PLUGIN				31
684117f5ccSmiod #define	VOYAGER_INTR_GPIO54				30
694117f5ccSmiod #define	VOYAGER_INTR_GPIO53				29
704117f5ccSmiod #define	VOYAGER_INTR_GPIO52				28
714117f5ccSmiod #define	VOYAGER_INTR_GPIO51				27
724117f5ccSmiod #define	VOYAGER_INTR_GPIO50				26
734117f5ccSmiod #define	VOYAGER_INTR_GPIO49				25
744117f5ccSmiod #define	VOYAGER_INTR_GPIO48				24
754117f5ccSmiod #define	VOYAGER_INTR_I2C				23
764117f5ccSmiod #define	VOYAGER_INTR_PWM				22
774117f5ccSmiod #define	VOYAGER_INTR_DMA				20
784117f5ccSmiod #define	VOYAGER_INTR_PCI				19
794117f5ccSmiod #define	VOYAGER_INTR_I2S				18
804117f5ccSmiod #define	VOYAGER_INTR_AC97				17
814117f5ccSmiod #define	VOYAGER_INTR_USB_SLAVE				16
824117f5ccSmiod #define	VOYAGER_INTR_UART1				13
834117f5ccSmiod #define	VOYAGER_INTR_UART0				12
844117f5ccSmiod #define	VOYAGER_INTR_CRT_VSYNC				11
854117f5ccSmiod #define	VOYAGER_INTR_8051				10
864117f5ccSmiod #define	VOYAGER_INTR_SSP1				9
874117f5ccSmiod #define	VOYAGER_INTR_SSP0				8
884117f5ccSmiod #define	VOYAGER_INTR_USB_HOST				6
894117f5ccSmiod #define	VOYAGER_INTR_ZV1				4
904117f5ccSmiod #define	VOYAGER_INTR_2DENGINE				3
914117f5ccSmiod #define	VOYAGER_INTR_ZV0				2
924117f5ccSmiod #define	VOYAGER_INTR_PANEL_VSYNC			1
934117f5ccSmiod #define	VOYAGER_INTR_COMMAND_INTERPRETER		0
94*38a3e2e8Smiod #define	VOYAGER_IMR			0x0030
95*38a3e2e8Smiod #define	VOYAGER_DEBUG			0x0034
964117f5ccSmiod 
97*38a3e2e8Smiod #define	VOYAGER_PM_CURRENT_GATE		0x0038
98*38a3e2e8Smiod #define	VOYAGER_PM_CURRENT_CLOCK	0x003c
99*38a3e2e8Smiod #define	VOYAGER_PM_MODE0_GATE		0x0040
100*38a3e2e8Smiod #define	VOYAGER_PM_MODE0_CLOCK		0x0044
101*38a3e2e8Smiod #define	VOYAGER_PM_MODE1_GATE		0x0048
102*38a3e2e8Smiod #define	VOYAGER_PM_MODE1_CLOCK		0x004c
103*38a3e2e8Smiod #define	VOYAGER_PM_SLEEP_GATE		0x0050
104*38a3e2e8Smiod #define	VOYAGER_PM_CONTROL		0x0054
1054117f5ccSmiod 
106*38a3e2e8Smiod #define	VOYAGER_MASTER_PCI_BASE		0x0058
107*38a3e2e8Smiod #define	VOYAGER_ENDIAN_CONTROL		0x005c
108*38a3e2e8Smiod #define	VOYAGER_DEVICE_ID		0x0060
109*38a3e2e8Smiod #define	VOYAGER_PLL_COUNT		0x0064
110*38a3e2e8Smiod #define	VOYAGER_MISC			0x0068
111*38a3e2e8Smiod #define	VOYAGER_SDRAM_CLOCK		0x006c
112*38a3e2e8Smiod #define	VOYAGER_NON_CACHE_ADDRESS	0x0070
113*38a3e2e8Smiod #define	VOYAGER_PLL_CONTROL		0x0074
114853bc193Smiod 
115853bc193Smiod /*
116853bc193Smiod  * GPIO
117853bc193Smiod  */
118853bc193Smiod 
1194117f5ccSmiod #define	VOYAGER_GPIO_DATA_LOW		0x010000
1204117f5ccSmiod #define	VOYAGER_GPIO_DATA_HIGH		0x010004
1214117f5ccSmiod #define	VOYAGER_GPIO_DIR_LOW		0x010008
1224117f5ccSmiod #define	VOYAGER_GPIO_DIR_HIGH		0x01000c
123853bc193Smiod 
1244117f5ccSmiod /*
1254117f5ccSmiod  * OHCI
1264117f5ccSmiod  */
1274117f5ccSmiod 
1284117f5ccSmiod #define	VOYAGER_OHCI_BASE		0x040000
1294117f5ccSmiod #define	VOYAGER_OHCI_SIZE		0x020000
130*38a3e2e8Smiod 
131*38a3e2e8Smiod /*
132*38a3e2e8Smiod  * Display Controller
133*38a3e2e8Smiod  */
134*38a3e2e8Smiod 
135*38a3e2e8Smiod #define	SM5XX_DCR_BASE			0x080000
136*38a3e2e8Smiod #define	SM5XX_DCR_SIZE			0x010000
137*38a3e2e8Smiod 
138*38a3e2e8Smiod #define	DCR_PANEL_DISPLAY_CONTROL	0x0000
139*38a3e2e8Smiod #define	PDC_EN				0x08000000
140*38a3e2e8Smiod #define	PDC_BIAS			0x04000000
141*38a3e2e8Smiod #define	PDC_DATA			0x02000000
142*38a3e2e8Smiod #define	PDC_VDD				0x01000000
143