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