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