Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | /***************************************************************************** * * Copyright (C) 1997-2002 Inside Out Networks, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * * Feb-16-2001 DMI Added I2C structure definitions * May-29-2002 gkh Ported to Linux * * ******************************************************************************/ #ifndef _IO_TI_H_ #define _IO_TI_H_ /* Address Space */ #define DTK_ADDR_SPACE_XDATA 0x03 /* Addr is placed in XDATA space */ #define DTK_ADDR_SPACE_I2C_TYPE_II 0x82 /* Addr is placed in I2C area */ #define DTK_ADDR_SPACE_I2C_TYPE_III 0x83 /* Addr is placed in I2C area */ // UART Defines #define UMPMEM_BASE_UART1 0xFFA0 /* UMP UART1 base address */ #define UMPMEM_BASE_UART2 0xFFB0 /* UMP UART2 base address */ #define UMPMEM_OFFS_UART_LSR 0x05 /* UMP UART LSR register offset */ /* Bits per character */ #define UMP_UART_CHAR5BITS 0x00 #define UMP_UART_CHAR6BITS 0x01 #define UMP_UART_CHAR7BITS 0x02 #define UMP_UART_CHAR8BITS 0x03 /* Parity */ #define UMP_UART_NOPARITY 0x00 #define UMP_UART_ODDPARITY 0x01 #define UMP_UART_EVENPARITY 0x02 #define UMP_UART_MARKPARITY 0x03 #define UMP_UART_SPACEPARITY 0x04 /* Stop bits */ #define UMP_UART_STOPBIT1 0x00 #define UMP_UART_STOPBIT15 0x01 #define UMP_UART_STOPBIT2 0x02 /* Line status register masks */ #define UMP_UART_LSR_OV_MASK 0x01 #define UMP_UART_LSR_PE_MASK 0x02 #define UMP_UART_LSR_FE_MASK 0x04 #define UMP_UART_LSR_BR_MASK 0x08 #define UMP_UART_LSR_ER_MASK 0x0F #define UMP_UART_LSR_RX_MASK 0x10 #define UMP_UART_LSR_TX_MASK 0x20 #define UMP_UART_LSR_DATA_MASK ( LSR_PAR_ERR | LSR_FRM_ERR | LSR_BREAK ) /* Port Settings Constants) */ #define UMP_MASK_UART_FLAGS_RTS_FLOW 0x0001 #define UMP_MASK_UART_FLAGS_RTS_DISABLE 0x0002 #define UMP_MASK_UART_FLAGS_PARITY 0x0008 #define UMP_MASK_UART_FLAGS_OUT_X_DSR_FLOW 0x0010 #define UMP_MASK_UART_FLAGS_OUT_X_CTS_FLOW 0x0020 #define UMP_MASK_UART_FLAGS_OUT_X 0x0040 #define UMP_MASK_UART_FLAGS_OUT_XA 0x0080 #define UMP_MASK_UART_FLAGS_IN_X 0x0100 #define UMP_MASK_UART_FLAGS_DTR_FLOW 0x0800 #define UMP_MASK_UART_FLAGS_DTR_DISABLE 0x1000 #define UMP_MASK_UART_FLAGS_RECEIVE_MS_INT 0x2000 #define UMP_MASK_UART_FLAGS_AUTO_START_ON_ERR 0x4000 #define UMP_DMA_MODE_CONTINOUS 0x01 #define UMP_PIPE_TRANS_TIMEOUT_ENA 0x80 #define UMP_PIPE_TRANSFER_MODE_MASK 0x03 #define UMP_PIPE_TRANS_TIMEOUT_MASK 0x7C /* Purge port Direction Mask Bits */ #define UMP_PORT_DIR_OUT 0x01 #define UMP_PORT_DIR_IN 0x02 // Address of Port 0 #define UMPM_UART1_PORT 0x03 // Commands #define UMPC_SET_CONFIG 0x05 #define UMPC_OPEN_PORT 0x06 #define UMPC_CLOSE_PORT 0x07 #define UMPC_START_PORT 0x08 #define UMPC_STOP_PORT 0x09 #define UMPC_TEST_PORT 0x0A #define UMPC_PURGE_PORT 0x0B #define UMPC_COMPLETE_READ 0x80 // Force the Firmware to complete the current Read #define UMPC_HARDWARE_RESET 0x81 // Force UMP back into BOOT Mode #define UMPC_COPY_DNLD_TO_I2C 0x82 // Copy current download image to type 0xf2 record in 16k I2C // firmware will change 0xff record to type 2 record when complete // Special function register commands // wIndex is register address // wValue is MSB/LSB mask/data #define UMPC_WRITE_SFR 0x83 // Write SFR Register // wIndex is register address #define UMPC_READ_SFR 0x84 // Read SRF Register // Set or Clear DTR (wValue bit 0 Set/Clear) wIndex ModuleID (port) #define UMPC_SET_CLR_DTR 0x85 // Set or Clear RTS (wValue bit 0 Set/Clear) wIndex ModuleID (port) #define UMPC_SET_CLR_RTS 0x86 // Set or Clear LOOPBACK (wValue bit 0 Set/Clear) wIndex ModuleID (port) #define UMPC_SET_CLR_LOOPBACK 0x87 // Set or Clear BREAK (wValue bit 0 Set/Clear) wIndex ModuleID (port) #define UMPC_SET_CLR_BREAK 0x88 // Read MSR wIndex ModuleID (port) #define UMPC_READ_MSR 0x89 /* Toolkit commands */ /* Read-write group */ #define UMPC_MEMORY_READ 0x92 #define UMPC_MEMORY_WRITE 0x93 /* * UMP DMA Definitions */ #define UMPD_OEDB1_ADDRESS 0xFF08 #define UMPD_OEDB2_ADDRESS 0xFF10 struct out_endpoint_desc_block { __u8 Configuration; __u8 XBufAddr; __u8 XByteCount; __u8 Unused1; __u8 Unused2; __u8 YBufAddr; __u8 YByteCount; __u8 BufferSize; } __attribute__((packed)); /* * TYPE DEFINITIONS * Structures for Firmware commands */ struct ump_uart_config /* UART settings */ { __u16 wBaudRate; /* Baud rate */ __u16 wFlags; /* Bitmap mask of flags */ __u8 bDataBits; /* 5..8 - data bits per character */ __u8 bParity; /* Parity settings */ __u8 bStopBits; /* Stop bits settings */ char cXon; /* XON character */ char cXoff; /* XOFF character */ __u8 bUartMode; /* Will be updated when a user */ /* interface is defined */ } __attribute__((packed)); /* * TYPE DEFINITIONS * Structures for USB interrupts */ struct ump_interrupt /* Interrupt packet structure */ { __u8 bICode; /* Interrupt code (interrupt num) */ __u8 bIInfo; /* Interrupt information */ } __attribute__((packed)); #define TIUMP_GET_PORT_FROM_CODE(c) (((c) >> 4) - 3) #define TIUMP_GET_FUNC_FROM_CODE(c) ((c) & 0x0f) #define TIUMP_INTERRUPT_CODE_LSR 0x03 #define TIUMP_INTERRUPT_CODE_MSR 0x04 #endif |