1 /* 2 * Copyright (c) 2004-2007 Marcus Overhagen <marcus@overhagen.de> 3 * 4 * Permission is hereby granted, free of charge, to any person 5 * obtaining a copy of this software and associated documentation 6 * files (the "Software"), to deal in the Software without restriction, 7 * including without limitation the rights to use, copy, modify, 8 * merge, publish, distribute, sublicense, and/or sell copies of 9 * the Software, and to permit persons to whom the Software is 10 * furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice shall be 13 * included in all copies or substantial portions of the Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 * OTHER DEALINGS IN THE SOFTWARE. 23 */ 24 25 #ifndef __CX23882_REGS_H 26 #define __CX23882_REGS_H 27 28 #define PCI_PCICMD_IOS 0x01 29 #define PCI_PCICMD_MSE 0x02 30 #define PCI_PCICMD_BME 0x04 31 32 #define PCI_VENDOR_SIS 0x1039 33 #define PCI_VENDOR_VIA 0x1106 34 35 #define REG_PDMA_STHRSH 0x200000 36 #define REG_PDMA_DTHRSH 0x200010 37 38 #define PDMA_ISBTHRSH_1 0x0100 39 #define PDMA_ISBTHRSH_2 0x0200 40 #define PDMA_ISBTHRSH_3 0x0300 41 #define PDMA_ISBTHRSH_4 0x0400 42 #define PDMA_ISBTHRSH_5 0x0500 43 #define PDMA_ISBTHRSH_6 0x0600 44 #define PDMA_ISBTHRSH_7 0x0700 45 46 #define PDMA_PCITHRSH_1 0x0001 47 #define PDMA_PCITHRSH_2 0x0002 48 #define PDMA_PCITHRSH_3 0x0003 49 #define PDMA_PCITHRSH_4 0x0004 50 #define PDMA_PCITHRSH_5 0x0005 51 #define PDMA_PCITHRSH_6 0x0006 52 #define PDMA_PCITHRSH_7 0x0007 53 54 #define REG_DEV_CNTRL2 0x200034 55 56 #define DEV_CNTRL2_RUN_RISC 0x20 57 58 #define REG_PCI_INT_MSK 0x200040 59 #define REG_PCI_INT_STAT 0x200044 60 #define REG_PCI_INT_MSTAT 0x200048 61 62 #define PCI_INT_STAT_VID_INT 0x01 63 #define PCI_INT_STAT_AUD_INT 0x02 64 #define PCI_INT_STAT_TS_INT 0x04 65 #define PCI_INT_STAT_VIP_INT 0x08 66 #define PCI_INT_STAT_HST_INT 0x10 67 68 #define REG_VID_INT_MSK 0x200050 69 #define REG_VID_INT_STAT 0x200054 70 #define REG_VID_INT_MSTAT 0x200058 71 72 #define REG_AUD_INT_MSK 0x200060 73 #define REG_AUD_INT_STAT 0x200064 74 #define REG_AUD_INT_MSTAT 0x200068 75 76 #define REG_TS_INT_MSK 0x200070 77 #define REG_TS_INT_STAT 0x200074 78 #define REG_TS_INT_MSTAT 0x200078 79 80 #define TS_INT_STAT_TS_RISC1 0x000001 81 #define TS_INT_STAT_TS_RISC2 0x000010 82 #define TS_INT_STAT_OPC_ERR 0x010000 83 84 #define REG_VIP_INT_MSK 0x200080 85 #define REG_VIP_INT_STAT 0x200084 86 #define REG_VIP_INT_MSTAT 0x200088 87 88 #define REG_HST_INT_MSK 0x200090 89 #define REG_HST_INT_STAT 0x200094 90 #define REG_HST_INT_MSTAT 0x200098 91 92 #define REG_F2_DEV_CNTRL1 0x2f0240 93 #define F2_DEV_CNTRL1_EN_VSFX 0x8 94 95 #define REG_DMA28_PTR1 0x30009c 96 #define REG_DMA28_PTR2 0x3000dc 97 #define REG_DMA28_CNT1 0x30011c 98 #define REG_DMA28_CNT2 0x30015c 99 100 #define REG_TS_GP_CNT_CNTRL 0x33c030 101 #define REG_TS_DMA_CNTRL 0x33c040 102 103 #define TS_DMA_CNTRL_TS_FIFO_EN 0x01 104 #define TS_DMA_CNTRL_TS_RISC_EN 0x10 105 106 #define REG_TS_LNGTH 0x33c048 107 #define REG_HW_SOP_CONTROL 0x33c04c 108 #define REG_TS_GEN_CONTROL 0x33c050 109 110 #define TS_GEN_CONTROL_IPB_SMODE 0x08 111 112 #define REG_TS_BD_PKT_STATUS 0x33c054 113 #define REG_TS_SOP_STATUS 0x33c058 114 115 #define REG_VIP_STREAM_EN 0x34c040 116 117 // these 3 are not in my spec, taken form Linux 118 #define REG_DMA_RISC_INT_MSK 0x35C060 119 #define REG_DMA_RISC_INT_STAT 0x35C064 120 #define REG_DMA_RISC_INT_MSTAT 0x35C068 121 122 #define REG_I2C_CONTROL 0x368000 123 #define I2C_SDA 0x01 124 #define I2C_SCL 0x02 125 #define I2C_HW_MODE 0x80 126 127 #define REG_HST_STREAM_EN 0x38c040 128 129 130 // RISC instructions 131 #define RISC_RESYNC 0x80008000 132 #define RISC_WRITE 0x10000000 133 #define RISC_SKIP 0x20000000 134 #define RISC_JUMP 0x70000000 135 #define RISC_WRITECR 0xd0000000 136 137 #define RISC_IMM 0x00000001 138 #define RISC_SOL 0x08000000 139 #define RISC_EOL 0x04000000 140 #define RISC_IRQ2 0x02000000 141 #define RISC_IRQ1 0x01000000 142 #define RISC_SRP 0x00000001 143 144 #endif 145