1 1.2 andvar /* $NetBSD: windermerereg.h,v 1.2 2024/06/02 13:28:46 andvar Exp $ */ 2 1.1 kiyohara /* 3 1.1 kiyohara * Copyright (c) 2012 KIYOHARA Takashi 4 1.1 kiyohara * All rights reserved. 5 1.1 kiyohara * 6 1.1 kiyohara * Redistribution and use in source and binary forms, with or without 7 1.1 kiyohara * modification, are permitted provided that the following conditions 8 1.1 kiyohara * are met: 9 1.1 kiyohara * 1. Redistributions of source code must retain the above copyright 10 1.1 kiyohara * notice, this list of conditions and the following disclaimer. 11 1.1 kiyohara * 2. Redistributions in binary form must reproduce the above copyright 12 1.1 kiyohara * notice, this list of conditions and the following disclaimer in the 13 1.1 kiyohara * documentation and/or other materials provided with the distribution. 14 1.1 kiyohara * 15 1.1 kiyohara * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 1.1 kiyohara * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 1.1 kiyohara * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 1.1 kiyohara * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 19 1.1 kiyohara * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 1.1 kiyohara * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 21 1.1 kiyohara * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 1.1 kiyohara * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 23 1.1 kiyohara * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 24 1.1 kiyohara * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25 1.1 kiyohara * POSSIBILITY OF SUCH DAMAGE. 26 1.1 kiyohara */ 27 1.1 kiyohara 28 1.1 kiyohara #define WINDERMERE_LCD_OFFSET 0x200 29 1.1 kiyohara #define WINDERMERE_INTR_OFFSET 0x500 30 1.1 kiyohara #define WINDERMERE_COM0_OFFSET 0x600 31 1.1 kiyohara #define WINDERMERE_COM1_OFFSET 0x700 32 1.1 kiyohara #define WINDERMERE_TC_OFFSET 0xc00 33 1.1 kiyohara #define TC1_OFFSET 0x00 34 1.1 kiyohara #define TC2_OFFSET 0x20 35 1.1 kiyohara #define WINDERMERE_RTC_OFFSET 0xd00 36 1.1 kiyohara #define WINDERMERE_GPIO_OFFSET 0xe00 37 1.1 kiyohara 38 1.1 kiyohara /* LCD */ 39 1.1 kiyohara #define LCD_PALETTE_SIZE 0x20 40 1.1 kiyohara #define LCDCTL 0x00 41 1.1 kiyohara #define LCDCTL_EN (1 << 0) 42 1.1 kiyohara #define LCDCTL_BW (1 << 1) 43 1.1 kiyohara #define LCDCTL_DP (1 << 2) 44 1.1 kiyohara #define LCDCTL_DONE (1 << 3) 45 1.1 kiyohara #define LCDCTL_NEXT (1 << 4) 46 1.1 kiyohara #define LCDCTL_ERR (1 << 5) 47 1.1 kiyohara #define LCDCTL_TFT (1 << 7) 48 1.1 kiyohara #define LCDCTL_M8B (1 << 8) 49 1.1 kiyohara #define LCDST 0x01 50 1.1 kiyohara #define LCDST_NEXT (1 << 1) 51 1.1 kiyohara #define LCDST_BER (1 << 2) 52 1.1 kiyohara #define LCDST_ABC (1 << 3) 53 1.1 kiyohara #define LCDST_FUF (1 << 5) 54 1.1 kiyohara #define LCDDBAR1 0x04 55 1.1 kiyohara #define LCDT0 0x08 56 1.1 kiyohara #define LCDT0_HSW (2 << 10) /* Horizontal sync plus width */ 57 1.1 kiyohara #define LCDT0_HFP (1 << 16) /* Horizontal front porch */ 58 1.1 kiyohara #define LCDT0_HBP (1 << 24) /* Horizontal back porch */ 59 1.1 kiyohara #define LCDT1 0x09 60 1.1 kiyohara #define LCDT1_VSW (2 << 10) /* Vertical sync plus width */ 61 1.1 kiyohara #define LCDT1_VFP (1 << 16) /* Vertical front porch */ 62 1.1 kiyohara #define LCDT1_VBP (1 << 24) /* Vertical back porch */ 63 1.1 kiyohara #define LCDT2 0x0a 64 1.1 kiyohara #define LCDT2_IVS (1 << 20) 65 1.1 kiyohara #define LCDT2_IHS (1 << 21) 66 1.1 kiyohara #define LCDT2_IPC (1 << 22) 67 1.1 kiyohara #define LCDT2_IEO (1 << 23) 68 1.1 kiyohara 69 1.1 kiyohara /* Interrupt */ 70 1.1 kiyohara #define INTSR 0x00 /* Interrupt Status(after masking) */ 71 1.1 kiyohara #define INTRSR 0x01 /* Interrupt Status(before masking) */ 72 1.2 andvar #define INTENS 0x02 /* Interrupt Enable */ 73 1.2 andvar #define INTENC 0x03 /* Interrupt Disable */ 74 1.1 kiyohara 75 1.1 kiyohara /* UART */ 76 1.1 kiyohara #define UART_SIZE 0x20 77 1.1 kiyohara #define UART_FIFO_SIZE 0x10 78 1.1 kiyohara #define UARTDR 0x00 79 1.1 kiyohara #define RSR_FE (1 << 0) /* bit8: Frame Error */ 80 1.1 kiyohara #define RSR_PE (1 << 1) /* bit9: Parity Error */ 81 1.1 kiyohara #define RSR_OE (1 << 2) /* bit10: Overrun Error */ 82 1.1 kiyohara #define UARTFCR 0x01 83 1.1 kiyohara #define FCR_BREAK (1 << 0) 84 1.1 kiyohara #define FCR_PRTEN (1 << 1) 85 1.1 kiyohara #define FCR_EVENPRT (1 << 2) 86 1.1 kiyohara #define FCR_XSTOP (1 << 3) 87 1.1 kiyohara #define FCR_UFIFOEN (1 << 4) 88 1.1 kiyohara #define FCR_WLEN_5 (0 << 5) 89 1.1 kiyohara #define FCR_WLEN_6 (1 << 5) 90 1.1 kiyohara #define FCR_WLEN_7 (2 << 5) 91 1.1 kiyohara #define FCR_WLEN_8 (3 << 5) 92 1.1 kiyohara #define UARTLCR 0x02 93 1.1 kiyohara #define UARTCON 0x03 94 1.1 kiyohara #define CON_UARTEN (1 << 0) /* UART Enable */ 95 1.1 kiyohara #define CON_SIREN (1 << 1) /* SiR disable */ 96 1.1 kiyohara #define CON_IRTXM (1 << 2) /* IrDA TX mode bit */ 97 1.1 kiyohara #define UARTFR 0x04 98 1.1 kiyohara #define FR_TXFF (1 << 5) 99 1.1 kiyohara #define FR_RXFE (1 << 4) 100 1.1 kiyohara #define FR_BUSY (1 << 3) 101 1.1 kiyohara #define FR_DCD (1 << 2) 102 1.1 kiyohara #define FR_DSR (1 << 1) 103 1.1 kiyohara #define FR_CTS (1 << 0) 104 1.1 kiyohara #define UARTINT 0x05 105 1.1 kiyohara #define UARTINTM 0x06 /* Mask register */ 106 1.1 kiyohara #define UARTINTR 0x07 /* Raw status register */ 107 1.1 kiyohara #define INT_RXINT (1 << 0) 108 1.1 kiyohara #define INT_TXINT (1 << 1) 109 1.1 kiyohara #define INT_MSINT (1 << 2) /* MODEM status */ 110 1.1 kiyohara 111 1.1 kiyohara /* Time Counter (decremental counter) */ 112 1.1 kiyohara #define TC_BITS 16 /* 16bit counter */ 113 1.1 kiyohara #define TC_MAX ((1 << TC_BITS) - 1) 114 1.1 kiyohara #define TC_MASK TC_MAX 115 1.1 kiyohara #define TC_LOAD 0x00 116 1.1 kiyohara #define TC_VAL 0x01 117 1.1 kiyohara #define TC_CTRL 0x02 118 1.1 kiyohara #define CTRL_CLKSEL (1 << 3) /* 512kHz */ 119 1.1 kiyohara #define CTRL_MODE (1 << 6) /* Periodic Mode */ 120 1.1 kiyohara #define CTRL_ENABLE (1 << 7) 121 1.1 kiyohara #define TC_EOI 0x03 122 1.1 kiyohara #define EOI_EOI (1 << 0) 123 1.1 kiyohara 124 1.1 kiyohara /* Real Time Clock */ 125 1.1 kiyohara #define RTC_DRL 0x00 /* Data Register Low */ 126 1.1 kiyohara #define RTC_DRH 0x01 /* Data Register High */ 127 1.1 kiyohara #define RTC_MRL 0x02 /* Match Register Low */ 128 1.1 kiyohara #define RTC_MRH 0x03 /* Match Register High */ 129 1.1 kiyohara 130 1.1 kiyohara /* GPIO/KBD */ 131 1.1 kiyohara #define GPIO_PADR 0x00 132 1.1 kiyohara #define GPIO_PBDR 0x01 133 1.1 kiyohara #define GPIO_PCDR 0x02 134 1.1 kiyohara #define GPIO_PDDR 0x03 135 1.1 kiyohara #define GPIO_PADDR 0x04 136 1.1 kiyohara #define GPIO_PBDDR 0x05 137 1.1 kiyohara #define GPIO_PCDDR 0x06 138 1.1 kiyohara #define GPIO_PDDDR 0x07 139 1.1 kiyohara #define GPIO_PEDR 0x08 140 1.1 kiyohara #define GPIO_PEDDR 0x09 141 1.1 kiyohara #define KSCAN 0x0a 142