ts102reg.h revision 1.8 1 1.8 macallan /* $OpenBSD: ts102reg.h,v 1.3 2003/06/18 17:50:23 miod Exp $ */
2 1.8 macallan /* $NetBSD: ts102reg.h,v 1.8 2005/07/06 11:40:27 macallan Exp $ */
3 1.1 matt
4 1.1 matt /*-
5 1.1 matt * Copyright (c) 1998 The NetBSD Foundation, Inc.
6 1.1 matt * All rights reserved.
7 1.1 matt *
8 1.1 matt * This code is derived from software contributed to The NetBSD Foundation
9 1.1 matt * by Matt Thomas.
10 1.1 matt *
11 1.1 matt * Redistribution and use in source and binary forms, with or without
12 1.1 matt * modification, are permitted provided that the following conditions
13 1.1 matt * are met:
14 1.1 matt * 1. Redistributions of source code must retain the above copyright
15 1.1 matt * notice, this list of conditions and the following disclaimer.
16 1.1 matt * 2. Redistributions in binary form must reproduce the above copyright
17 1.1 matt * notice, this list of conditions and the following disclaimer in the
18 1.1 matt * documentation and/or other materials provided with the distribution.
19 1.1 matt * 3. All advertising materials mentioning features or use of this software
20 1.1 matt * must display the following acknowledgement:
21 1.1 matt * This product includes software developed by the NetBSD
22 1.1 matt * Foundation, Inc. and its contributors.
23 1.1 matt * 4. Neither the name of The NetBSD Foundation nor the names of its
24 1.1 matt * contributors may be used to endorse or promote products derived
25 1.1 matt * from this software without specific prior written permission.
26 1.1 matt *
27 1.1 matt * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
28 1.1 matt * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29 1.1 matt * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30 1.1 matt * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
31 1.1 matt * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32 1.1 matt * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33 1.1 matt * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34 1.1 matt * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35 1.1 matt * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36 1.1 matt * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37 1.1 matt * POSSIBILITY OF SUCH DAMAGE.
38 1.1 matt */
39 1.1 matt #ifndef _SPARC_DEV_TS102REG_H
40 1.1 matt #define _SPARC_DEV_TS102REG_H
41 1.3 matt
42 1.3 matt /* The TS102 consumes a 256MB region of the SPARCbook 3's address space.
43 1.3 matt */
44 1.4 garbled #define TS102_OFFSET_REGISTERS 0x02000000
45 1.4 garbled #define TS102_OFFSET_CARD_A_ATTR_SPACE 0x04000000
46 1.4 garbled #define TS102_OFFSET_CARD_B_ATTR_SPACE 0x05000000
47 1.4 garbled #define TS102_SIZE_ATTR_SPACE 0x01000000
48 1.4 garbled #define TS102_OFFSET_CARD_A_IO_SPACE 0x06000000
49 1.4 garbled #define TS102_OFFSET_CARD_B_IO_SPACE 0x07000000
50 1.4 garbled #define TS102_SIZE_IO_SPACE 0x01000000
51 1.4 garbled #define TS102_OFFSET_CARD_A_MEM_SPACE 0x08000000
52 1.4 garbled #define TS102_OFFSET_CARD_B_MEM_SPACE 0x0c000000
53 1.4 garbled #define TS102_SIZE_MEM_SPACE 0x04000000
54 1.1 matt
55 1.1 matt /* There are two separate register blocks within the TS102. The first
56 1.1 matt * gives access to PCMCIA card specific resources, and the second gives
57 1.1 matt * access to the microcontroller interface
58 1.1 matt */
59 1.1 matt #define TS102_REG_CARD_A_INT 0x0000 /* Card A Interrupt Register */
60 1.1 matt #define TS102_REG_CARD_A_STS 0x0004 /* Card A Status Register */
61 1.1 matt #define TS102_REG_CARD_A_CTL 0x0008 /* Card A Control Register */
62 1.1 matt #define TS102_REG_CARD_B_INT 0x0010 /* Card B Interrupt Register */
63 1.1 matt #define TS102_REG_CARD_B_STS 0x0014 /* Card B Status Register */
64 1.1 matt #define TS102_REG_CARD_B_CTL 0x0018 /* Card B Control Register */
65 1.1 matt #define TS102_REG_UCTRL_INT 0x0020 /* Microcontroller Interrupt Register */
66 1.1 matt #define TS102_REG_UCTRL_DATA 0x0024 /* Microcontroller Data Register */
67 1.1 matt #define TS102_REG_UCTRL_STS 0x0028 /* Microcontroller Status Register */
68 1.1 matt
69 1.8 macallan struct uctrl_regs {
70 1.8 macallan volatile u_int8_t intr; /* Microcontroller Interrupt Reg */
71 1.8 macallan volatile u_int8_t filler0[3];
72 1.8 macallan volatile u_int8_t data; /* Microcontroller Data Reg */
73 1.8 macallan volatile u_int8_t filler1[3];
74 1.8 macallan volatile u_int8_t stat; /* Microcontroller Status Reg */
75 1.8 macallan volatile u_int8_t filler2[3];
76 1.8 macallan };
77 1.8 macallan
78 1.7 wiz /* TS102 Card Interrupt Register definitions.
79 1.1 matt *
80 1.1 matt * There is one 16-bit interrupt register for each card. Each register
81 1.1 matt * contains interrupt status (read) and clear (write) bits and an
82 1.1 matt * interrupt mask for each of the four interrupt sources.
83 1.1 matt *
84 1.1 matt * The request bit is the logical AND of the status and the mask bit,
85 1.1 matt * and indicated and an interrupt is being requested. The mask bits
86 1.1 matt * allow masking of individual interrupts. An interrupt is enabled when
87 1.1 matt * the mask is set to 1 and is clear by write a 1 to the associated
88 1.1 matt * request bit.
89 1.1 matt *
90 1.1 matt * The card interrupt register also contain the soft reset flag.
91 1.1 matt * Setting this bit to 1 will the SPARCbook 3 to be reset.
92 1.1 matt */
93 1.1 matt #define TS102_CARD_INT_RQST_IRQ 0x0001
94 1.1 matt #define TS102_CARD_INT_RQST_WP_STATUS_CHANGED 0x0002
95 1.1 matt #define TS102_CARD_INT_RQST_BATTERY_STATUS_CHANGED 0x0004
96 1.1 matt #define TS102_CARD_INT_RQST_CARDDETECT_STATUS_CHANGED 0x0008
97 1.1 matt #define TS102_CARD_INT_STATUS_IRQ 0x0010
98 1.1 matt #define TS102_CARD_INT_STATUS_WP_STATUS_CHANGED 0x0020
99 1.1 matt #define TS102_CARD_INT_STATUS_BATTERY_STATUS_CHANGED 0x0040
100 1.1 matt #define TS102_CARD_INT_STATUS_CARDDETECT_STATUS_CHANGED 0x0080
101 1.1 matt #define TS102_CARD_INT_MASK_IRQ 0x0100
102 1.1 matt #define TS102_CARD_INT_MASK_WP_STATUS 0x0200
103 1.1 matt #define TS102_CARD_INT_MASK_BATTERY_STATUS 0x0400
104 1.1 matt #define TS102_CARD_INT_MASK_CARDDETECT_STATUS 0x0800
105 1.1 matt #define TS102_CARD_INT_SOFT_RESET 0x1000
106 1.1 matt
107 1.1 matt /* TS102 Card Status Register definitions. The Card Status Register
108 1.1 matt * contains card status and control bit.
109 1.1 matt */
110 1.1 matt #define TS102_CARD_STS_PRES 0x0001 /* Card Present (1) */
111 1.1 matt #define TS102_CARD_STS_IO 0x0002 /* (1) I/O Card, (0) = Mem Card */
112 1.1 matt #define TS102_CARD_STS_TYPE3 0x0004 /* Type-3 PCMCIA card (disk) */
113 1.1 matt #define TS102_CARD_STS_VCC 0x0008 /* Vcc (0=5V, 1=3.3V) */
114 1.1 matt #define TS102_CARD_STS_VPP1_MASK 0x0030 /* Programming Voltage Control2 */
115 1.1 matt #define TS102_CARD_STS_VPP1_NC 0x0030 /* NC */
116 1.1 matt #define TS102_CARD_STS_VPP1_VCC 0x0020 /* Vcc (3.3V or 5V) */
117 1.1 matt #define TS102_CARD_STS_VPP1_VPP 0x0010 /* Vpp (12V) */
118 1.1 matt #define TS102_CARD_STS_VPP1_0V 0x0000 /* 0V */
119 1.1 matt #define TS102_CARD_STS_VPP2_MASK 0x00c0 /* Programming Voltage Control1 */
120 1.1 matt #define TS102_CARD_STS_VPP2_NC 0x00c0 /* NC */
121 1.1 matt #define TS102_CARD_STS_VPP2_VCC 0x0080 /* Vcc (3.3V or 5V) */
122 1.1 matt #define TS102_CARD_STS_VPP2_VPP 0x0040 /* Vpp (12V) */
123 1.1 matt #define TS102_CARD_STS_VPP2_0V 0x0000 /* 0V */
124 1.1 matt #define TS102_CARD_STS_WP 0x0100 /* Write Protect (1) */
125 1.1 matt #define TS102_CARD_STS_BVD_MASK 0x0600 /* Battery Voltage Detect */
126 1.1 matt #define TS102_CARD_STS_BVD_GOOD 0x0600 /* Battery good */
127 1.1 matt #define TS102_CARD_STS_BVD_LOW_OK 0x0400 /* Battery low, data OK */
128 1.1 matt #define TS102_CARD_STS_BVD_LOW_SUSPECT1 0x0200 /* Battery low, data suspect */
129 1.1 matt #define TS102_CARD_STS_BVD_LOW_SUSPECT0 0x0000 /* Battery low, data suspect */
130 1.1 matt #define TS102_CARD_STS_LVL 0x0800 /* Level (1) / Edge */
131 1.1 matt #define TS102_CARD_STS_RDY 0x1000 /* Ready (1) / Not Busy */
132 1.1 matt #define TS102_CARD_STS_VCCEN 0x2000 /* Powered Up (0) */
133 1.1 matt #define TS102_CARD_STS_RIEN 0x4000 /* Not Supported */
134 1.1 matt #define TS102_CARD_STS_ACEN 0x8000 /* Access Enabled (1) */
135 1.1 matt
136 1.1 matt /* TS102 Card Control Register definitions
137 1.1 matt */
138 1.1 matt #define TS102_CARD_CTL_AA_MASK 0x0003 /* Attribute Address A[25:24] */
139 1.1 matt #define TS102_CARD_CTL_IA_MASK 0x000c /* I/O Address A[25:24] */
140 1.1 matt #define TS102_CARD_CTL_IA_BITPOS 2 /* */
141 1.1 matt #define TS102_CARD_CTL_CES_MASK 0x0070 /* CE/address setup time */
142 1.1 matt #define TS102_CARD_CTL_CES_BITPOS 4 /* n+1 clocks */
143 1.1 matt #define TS102_CARD_CTL_OWE_MASK 0x0380 /* OE/WE width */
144 1.1 matt #define TS102_CARD_CTL_OWE_BITPOS 7 /* n+2 clocks */
145 1.1 matt #define TS102_CARD_CTL_CEH 0x0400 /* Chip enable hold time */
146 1.1 matt /* (0) - 1 clock */
147 1.1 matt /* (1) - 2 clocks */
148 1.1 matt #define TS102_CARD_CTL_SBLE 0x0800 /* SBus little endian */
149 1.1 matt #define TS102_CARD_CTL_PCMBE 0x1000 /* PCMCIA big endian */
150 1.1 matt #define TS102_CARD_CTL_RAHD 0x2000 /* Read ahead enable */
151 1.1 matt #define TS102_CARD_CTL_INCDIS 0x4000 /* Address increment disable */
152 1.1 matt #define TS102_CARD_CTL_PWRD 0x8000 /* Power down */
153 1.1 matt
154 1.1 matt /* Microcontroller Interrupt Register
155 1.1 matt */
156 1.1 matt #define TS102_UCTRL_INT_TXE_REQ 0x01 /* transmit FIFO empty */
157 1.1 matt #define TS102_UCTRL_INT_TXNF_REQ 0x02 /* transmit FIFO not full */
158 1.1 matt #define TS102_UCTRL_INT_RXNE_REQ 0x04 /* receive FIFO not empty */
159 1.1 matt #define TS102_UCTRL_INT_RXO_REQ 0x08 /* receive FIFO overflow */
160 1.1 matt #define TS102_UCTRL_INT_TXE_MSK 0x10 /* transmit FIFO empty */
161 1.1 matt #define TS102_UCTRL_INT_TXNF_MSK 0x20 /* transmit FIFO not full */
162 1.1 matt #define TS102_UCTRL_INT_RXNE_MSK 0x40 /* receive FIFO not empty */
163 1.1 matt #define TS102_UCTRL_INT_RXO_MSK 0x80 /* receive FIFO overflow */
164 1.1 matt
165 1.1 matt /* TS102 Microcontroller Data Register (only 8 bits are significant).
166 1.1 matt */
167 1.1 matt #define TS102_UCTRL_DATA_MASK 0xff
168 1.1 matt
169 1.1 matt /* TS102 Microcontroller Status Register.
170 1.1 matt * read 1 if asserted
171 1.1 matt * write 1 to clear
172 1.1 matt */
173 1.2 matt #define TS102_UCTRL_STS_TXE_STA 0x01 /* transmit FIFO empty */
174 1.2 matt #define TS102_UCTRL_STS_TXNF_STA 0x02 /* transmit FIFO not full */
175 1.2 matt #define TS102_UCTRL_STS_RXNE_STA 0x04 /* receive FIFO not empty */
176 1.2 matt #define TS102_UCTRL_STS_RXO_STA 0x08 /* receive FIFO overflow */
177 1.6 toddpw #define TS102_UCTRL_STS_MASK 0x0F /* Only 4 bits significant */
178 1.1 matt
179 1.1 matt enum ts102_opcode { /* Argument Returned */
180 1.1 matt TS102_OP_RD_SERIAL_NUM=0x01, /* none ack + 4 bytes */
181 1.1 matt TS102_OP_RD_ETHER_ADDR=0x02, /* none ack + 6 bytes */
182 1.1 matt TS102_OP_RD_HW_VERSION=0x03, /* none ack + 2 bytes */
183 1.1 matt TS102_OP_RD_UCTLR_VERSION=0x04, /* none ack + 2 bytes */
184 1.1 matt TS102_OP_RD_MAX_TEMP=0x05, /* none ack + 1 bytes */
185 1.4 garbled TS102_OP_RD_MIN_TEMP=0x06, /* none ack + 1 bytes */
186 1.4 garbled TS102_OP_RD_CURRENT_TEMP=0x07, /* none ack + 1 bytes */
187 1.1 matt TS102_OP_RD_SYSTEM_VARIANT=0x08, /* none ack + 4 bytes */
188 1.1 matt TS102_OP_RD_POWERON_CYCLES=0x09, /* none ack + 4 bytes */
189 1.1 matt TS102_OP_RD_POWERON_SECONDS=0x0a, /* none ack + 4 bytes */
190 1.1 matt TS102_OP_RD_RESET_STATUS=0x0b, /* none ack + 1 bytes */
191 1.1 matt #define TS102_RESET_STATUS_RESERVED0 0x00
192 1.1 matt #define TS102_RESET_STATUS_POWERON 0x01
193 1.1 matt #define TS102_RESET_STATUS_KEYBOARD 0x02
194 1.1 matt #define TS102_RESET_STATUS_WATCHDOG 0x03
195 1.1 matt #define TS102_RESET_STATUS_TIMEOUT 0x04
196 1.1 matt #define TS102_RESET_STATUS_SOFTWARE 0x05
197 1.1 matt #define TS102_RESET_STATUS_BROWNOUT 0x06
198 1.1 matt #define TS102_RESET_STATUS_RESERVED1 0x07
199 1.1 matt TS102_OP_RD_EVENT_STATUS=0x0c, /* none ack + 2 bytes */
200 1.1 matt #define TS102_EVENT_STATUS_SHUTDOWN_REQUEST 0x0001
201 1.1 matt #define TS102_EVENT_STATUS_LOW_POWER_WARNING 0x0002
202 1.5 garbled /* Internal Warning Changed 0x0002 */
203 1.1 matt #define TS102_EVENT_STATUS_VERY_LOW_POWER_WARNING 0x0004
204 1.5 garbled /* Discharge Event 0x0004 */
205 1.1 matt #define TS102_EVENT_STATUS_BATT_CHANGED 0x0008
206 1.5 garbled /* Internal Status Changed 0x0008 */
207 1.1 matt #define TS102_EVENT_STATUS_EXT_KEYBOARD_STATUS_CHANGE 0x0010
208 1.1 matt #define TS102_EVENT_STATUS_EXT_MOUSE_STATUS_CHANGE 0x0020
209 1.1 matt #define TS102_EVENT_STATUS_EXTERNAL_VGA_STATUS_CHANGE 0x0040
210 1.1 matt #define TS102_EVENT_STATUS_LID_STATUS_CHANGE 0x0080
211 1.1 matt #define TS102_EVENT_STATUS_MICROCONTROLLER_ERROR 0x0100
212 1.1 matt #define TS102_EVENT_STATUS_RESERVED 0x0200
213 1.5 garbled /* Wakeup 0x0200 */
214 1.1 matt #define TS102_EVENT_STATUS_EXT_BATT_STATUS_CHANGE 0x0400
215 1.1 matt #define TS102_EVENT_STATUS_EXT_BATT_CHARGING_STATUS_CHANGE 0x0800
216 1.1 matt #define TS102_EVENT_STATUS_EXT_BATT_LOW_POWER 0x1000
217 1.1 matt #define TS102_EVENT_STATUS_DC_STATUS_CHANGE 0x2000
218 1.1 matt #define TS102_EVENT_STATUS_CHARGING_STATUS_CHANGE 0x4000
219 1.1 matt #define TS102_EVENT_STATUS_POWERON_BTN_PRESSED 0x8000
220 1.1 matt TS102_OP_RD_REAL_TIME_CLK=0x0d, /* none ack + 7 bytes */
221 1.1 matt TS102_OP_RD_EXT_VGA_PORT=0x0e, /* none ack + 1 bytes */
222 1.1 matt TS102_OP_RD_UCTRL_ROM_CKSUM=0x0f, /* none ack + 2 bytes */
223 1.1 matt TS102_OP_RD_ERROR_STATUS=0x10, /* none ack + 2 bytes */
224 1.1 matt #define TS102_ERROR_STATUS_NO_ERROR 0x00
225 1.1 matt #define TS102_ERROR_STATUS_COMMAND_ERROR 0x01
226 1.1 matt #define TS102_ERROR_STATUS_EXECUTION_ERROR 0x02
227 1.1 matt #define TS102_ERROR_STATUS_PHYSICAL_ERROR 0x04
228 1.1 matt TS102_OP_RD_EXT_STATUS=0x11, /* none ack + 2 bytes */
229 1.1 matt #define TS102_EXT_STATUS_MAIN_POWER_AVAILABLE 0x0001
230 1.1 matt #define TS102_EXT_STATUS_INTERNAL_BATTERY_ATTACHED 0x0002
231 1.1 matt #define TS102_EXT_STATUS_EXTERNAL_BATTERY_ATTACHED 0x0004
232 1.1 matt #define TS102_EXT_STATUS_EXTERNAL_VGA_ATTACHED 0x0008
233 1.1 matt #define TS102_EXT_STATUS_EXTERNAL_KEYBOARD_ATTACHED 0x0010
234 1.1 matt #define TS102_EXT_STATUS_EXTERNAL_MOUSE_ATTACHED 0x0020
235 1.1 matt #define TS102_EXT_STATUS_LID_DOWN 0x0040
236 1.1 matt #define TS102_EXT_STATUS_INTERNAL_BATTERY_CHARGING 0x0080
237 1.1 matt #define TS102_EXT_STATUS_EXTERNAL_BATTERY_CHARGING 0x0100
238 1.1 matt #define TS102_EXT_STATUS_INTERNAL_BATTERY_DISCHARGING 0x0200
239 1.1 matt #define TS102_EXT_STATUS_EXTERNAL_BATTERY_DISCHARGING 0x0400
240 1.1 matt TS102_OP_RD_USER_CONFIG=0x12, /* none ack + 2 bytes */
241 1.1 matt TS102_OP_RD_UCTRL_VLT=0x13, /* none ack + 1 bytes */
242 1.1 matt TS102_OP_RD_INT_BATT_VLT=0x14, /* none ack + 1 bytes */
243 1.1 matt TS102_OP_RD_DC_IN_VLT=0x15, /* none ack + 1 bytes */
244 1.1 matt TS102_OP_RD_HORZ_PRT_VLT=0x16, /* none ack + 1 bytes */
245 1.1 matt TS102_OP_RD_VERT_PTR_VLT=0x17, /* none ack + 1 bytes */
246 1.4 garbled TS102_OP_RD_INT_CHARGE_RATE=0x18, /* none ack + 1 bytes */
247 1.4 garbled TS102_OP_RD_EXT_CHARGE_RATE=0x19, /* none ack + 1 bytes */
248 1.1 matt TS102_OP_RD_RTC_ALARM=0x1a, /* none ack + 7 bytes */
249 1.1 matt TS102_OP_RD_EVENT_STATUS_NO_RESET=0x1b, /* none ack + 2 bytes */
250 1.1 matt TS102_OP_RD_INT_KBD_LAYOUT=0x1c, /* none ack + 2 bytes */
251 1.1 matt TS102_OP_RD_EXT_KBD_LAYOUT=0x1d, /* none ack + 2 bytes */
252 1.1 matt TS102_OP_RD_EEPROM_STATUS=0x1e, /* none ack + 2 bytes */
253 1.1 matt #define TS102_EEPROM_STATUS_FACTORY_AREA_CHECKSUM_FAIL 0x01
254 1.1 matt #define TS102_EEPROM_STATUS_CONSUMER_AREA_CHECKSUM_FAIL 0x02
255 1.1 matt #define TS102_EEPROM_STATUS_USER_AREA_CHECKSUM_FAIL 0x04
256 1.1 matt #define TS102_EEPROM_STATUS_VPD_AREA_CHECKSUM_FAIL 0x08
257 1.1 matt
258 1.1 matt /* Read/Write/Modify Commands
259 1.1 matt */
260 1.5 garbled TS102_OP_CTL_LCD=0x20, /* 4 byte mask ack + 4 bytes */
261 1.1 matt #define TS102_LCD_CAPS_LOCK 0x0001
262 1.1 matt #define TS102_LCD_SCROLL_LOCK 0x0002
263 1.1 matt #define TS102_LCD_NUMLOCK 0x0004
264 1.1 matt #define TS102_LCD_DISK_ACTIVE 0x0008
265 1.1 matt #define TS102_LCD_LAN_ACTIVE 0x0010
266 1.1 matt #define TS102_LCD_WAN_ACTIVE 0x0020
267 1.1 matt #define TS102_LCD_PCMCIA_ACTIVE 0x0040
268 1.1 matt #define TS102_LCD_DC_OK 0x0080
269 1.1 matt #define TS102_LCD_COMPOSE 0x0100
270 1.1 matt TS102_OP_CTL_BITPORT=0x21, /* mask ack + 1 byte */
271 1.2 matt #define TS102_BITPORT_TFTPWR 0x01 /* TFT power (low) */
272 1.1 matt #define TS102_BITPORT_SYNCINVA 0x04 /* ext. monitor sync (low) */
273 1.1 matt #define TS102_BITPORT_SYNCINVB 0x08 /* ext. monitor sync (low) */
274 1.1 matt #define TS102_BITPORT_BP_DIS 0x10 /* no bootprom from pcmcia (high) */
275 1.1 matt /* boot from pcmcia (low */
276 1.1 matt #define TS102_BITPORT_ENCSYNC 0x20 /* enab composite sync (low) */
277 1.5 garbled TS102_OP_CTL_DEV=0x22, /* mask ack + 1 byte */
278 1.4 garbled #define TS102_DEVCTL_CHARGE_DISABLE 0x01 /* dis/en charging */
279 1.4 garbled #define TS102_DEVCTL_POINTER_DISABLE 0x04 /* dis/en pointer */
280 1.4 garbled #define TS102_DEVCTL_KEYCLICK 0x08 /* keyclick? */
281 1.4 garbled #define TS102_DEVCTL_INT_BTNCLICK 0x10 /* internal button click? */
282 1.4 garbled #define TS102_DEVCTL_EXT_BTNCLICK 0x20 /* ext. button click?? */
283 1.1 matt TS102_OP_CTL_SPEAKER_VOLUME=0x23, /* mask ack + 1 byte */
284 1.8 macallan TS102_OP_CTL_TFT_BRIGHTNESS=0x24, /* mask ack + 1 byte */
285 1.1 matt TS102_OP_CTL_WATCHDOG=0x25, /* mask ack + 1 byte */
286 1.1 matt TS102_OP_CTL_FCTRY_EEPROM=0x26, /* mask ack + 1 byte */
287 1.4 garbled TS102_OP_CTL_SECURITY_KEY=0x27, /* no idea */
288 1.1 matt TS102_OP_CTL_KDB_TIME_UNTL_RTP=0x28, /* mask ack + 1 byte */
289 1.1 matt TS102_OP_CTL_KBD_TIME_BTWN_RPTS=0x29, /* mask ack + 1 byte */
290 1.1 matt TS102_OP_CTL_TIMEZONE=0x2a, /* mask ack + 1 byte */
291 1.1 matt TS102_OP_CTL_MARK_SPACE_RATIO=0x2b, /* mask ack + 1 byte */
292 1.5 garbled TS102_OP_CTL_MOUSE_SENS=0x2c, /* mask ack + 1 byte */
293 1.5 garbled TS102_OP_CTL_MOUSE_SCAN=0x2d, /* no idea invalid?*/
294 1.1 matt TS102_OP_CTL_DIAGNOSTIC_MODE=0x2e, /* mask ack + 1 byte */
295 1.1 matt #define TS102_DIAGNOSTIC_MODE_CMD_DIAG_ON_LCD 0x01
296 1.1 matt #define TS102_DIAGNOSTIC_MODE_KDB_MS_9600 0x02
297 1.1 matt TS102_OP_CTL_SCREEN_CONTRAST=0x2f, /* mask ack + 1 byte */
298 1.1 matt
299 1.1 matt /* Commands returning no status
300 1.1 matt */
301 1.1 matt TS102_OP_CMD_RING_BELL=0x30, /* msb,lsb ack */
302 1.4 garbled TS102_OP_RD_INPUT_SOURCE=0x31, /* no idea */
303 1.1 matt TS102_OP_CMD_DIAGNOSTIC_STATUS=0x32, /* msb,lsb ack */
304 1.1 matt TS102_OP_CMD_CLR_KEY_COMBO_TBL=0x33, /* none ack */
305 1.1 matt TS102_OP_CMD_SOFTWARE_RESET=0x34, /* none ack */
306 1.1 matt TS102_OP_CMD_SET_RTC=0x35, /* smhddmy ack */
307 1.1 matt TS102_OP_CMD_RECAL_PTR=0x36, /* none ack */
308 1.1 matt TS102_OP_CMD_SET_BELL_FREQ=0x37, /* msb,lsb ack */
309 1.1 matt TS102_OP_CMD_SET_INT_BATT_RATE=0x39, /* charge-lvl ack */
310 1.1 matt TS102_OP_CMD_SET_EXT_BATT_RATE=0x3a, /* charge-lvl ack */
311 1.1 matt TS102_OP_CMD_SET_RTC_ALARM=0x3b, /* smhddmy ack */
312 1.1 matt
313 1.1 matt /* Block transfer commands
314 1.1 matt */
315 1.1 matt TS102_OP_BLK_RD_EEPROM=0x40, /* len off ack <data> */
316 1.1 matt TS102_OP_BLK_WR_EEPROM=0x41, /* len off <data> ack */
317 1.1 matt TS102_OP_BLK_WR_STATUS=0x42, /* len off <data> ack */
318 1.5 garbled TS102_OP_BLK_DEF_SPCL_CHAR=0x43, /* len off <8b data> ack */
319 1.1 matt #define TS102_BLK_OFF_DEF_WAN1 0
320 1.1 matt #define TS102_BLK_OFF_DEF_WAN2 1
321 1.1 matt #define TS102_BLK_OFF_DEF_LAN1 2
322 1.1 matt #define TS102_BLK_OFF_DEF_LAN2 3
323 1.1 matt #define TS102_BLK_OFF_DEF_PCMCIA 4
324 1.1 matt #define TS102_BLK_OFF_DEF_DC_GOOD 5
325 1.1 matt #define TS102_BLK_OFF_DEF_BACKSLASH 6
326 1.1 matt
327 1.1 matt /* Generic commands
328 1.1 matt */
329 1.1 matt TS102_OP_GEN_DEF_KEY_COMBO_ENT=0x50, /* seq com-length ack */
330 1.1 matt TS102_OP_GEN_DEF_STRING_TBL_ENT=0x51, /* str-code len <str> ack */
331 1.1 matt TS102_OP_GEN_DEF_STS_CTRN_DISP=0x52, /* len <msg> ack */
332 1.1 matt
333 1.1 matt /* Generic commands with optional status
334 1.1 matt */
335 1.1 matt TS102_OP_GEN_STS_EMU_COMMAND=0x64, /* <command> ack */
336 1.1 matt TS102_OP_GEN_STS_RD_EMU_REGISTER=0x65, /* reg ack + 1 byte */
337 1.1 matt TS102_OP_GEN_STS_WR_EMU_REGISTER=0x66, /* reg,val ack */
338 1.1 matt TS102_OP_GEN_STS_RD_EMU_RAM=0x67, /* addr ack + 1 byte */
339 1.1 matt TS102_OP_GEN_STS_WR_EMU_RAM=0x68, /* addr,val ack */
340 1.1 matt TS102_OP_GEN_STS_RD_BQ_REGISTER=0x69, /* reg ack + 1 byte */
341 1.1 matt TS102_OP_GEN_STS_WR_BQ_REGISTER=0x6a, /* reg,val ack */
342 1.1 matt
343 1.1 matt /* Administration commands
344 1.1 matt */
345 1.1 matt TS102_OP_ADMIN_SET_USER_PASS=0x70, /* len <pass> ack */
346 1.1 matt TS102_OP_ADMIN_VRFY_USER_PASS=0x71, /* len <pass> ack + status */
347 1.1 matt TS102_OP_ADMIN_GET_SYSTEM_PASS=0x72, /* none ack + <7bytekey> */
348 1.1 matt TS102_OP_ADMIN_VRFY_SYSTEM_PASS=0x73, /* len <pass> ack + status */
349 1.4 garbled TS102_OP_RD_INT_CHARGE_LEVEL=0x7a, /* ack + 2 byte */
350 1.4 garbled TS102_OP_RD_EXT_CHARGE_LEVEL=0x7b, /* ack + 2 byte */
351 1.4 garbled TS102_OP_SLEEP=0x80, /* supposedly sleeps, not sure */
352 1.1 matt TS102_OP_ADMIN_POWER_OFF=0x82, /* len <pass> none */
353 1.1 matt TS102_OP_ADMIN_POWER_RESTART=0x83, /* msb,xx,lsb none */
354 1.1 matt };
355 1.1 matt
356 1.1 matt #endif /* _SPARC_DEV_TS102REG_H */
357