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