root/trunk/libffado/src/dice/dice_eap.h

Revision 1630, 4.3 kB (checked in by ppalmers, 15 years ago)

add base level support for the DICE EAP based mixers (incomplete)

Line 
1 /*
2  * Copyright (C) 2005-2009 by Pieter Palmers
3  *
4  * This file is part of FFADO
5  * FFADO = Free Firewire (pro-)audio drivers for linux
6  *
7  * FFADO is based upon FreeBoB
8  *
9  * This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 2 of the License, or
12  * (at your option) version 3 of the License.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21  *
22  */
23
24 #define DICE_EAP_BASE                  0x0000000000200000ULL
25 #define DICE_EAP_MAX_SIZE              0x0000000000F00000ULL
26
27 #define DICE_EAP_CAPABILITY_SPACE_OFF      0x0000
28 #define DICE_EAP_CAPABILITY_SPACE_SZ       0x0004
29 #define DICE_EAP_CMD_SPACE_OFF             0x0008
30 #define DICE_EAP_CMD_SPACE_SZ              0x000C
31 #define DICE_EAP_MIXER_SPACE_OFF           0x0010
32 #define DICE_EAP_MIXER_SPACE_SZ            0x0014
33 #define DICE_EAP_PEAK_SPACE_OFF            0x0018
34 #define DICE_EAP_PEAK_SPACE_SZ             0x001C
35 #define DICE_EAP_NEW_ROUTING_SPACE_OFF     0x0020
36 #define DICE_EAP_NEW_ROUTING_SPACE_SZ      0x0024
37 #define DICE_EAP_NEW_STREAM_CFG_SPACE_OFF  0x0028
38 #define DICE_EAP_NEW_STREAM_CFG_SPACE_SZ   0x002C
39 #define DICE_EAP_CURR_CFG_SPACE_OFF        0x0030
40 #define DICE_EAP_CURR_CFG_SPACE_SZ         0x0034
41 #define DICE_EAP_STAND_ALONE_CFG_SPACE_OFF 0x0038
42 #define DICE_EAP_STAND_ALONE_CFG_SPACE_SZ  0x003C
43 #define DICE_EAP_APP_SPACE_OFF             0x0040
44 #define DICE_EAP_APP_SPACE_SZ              0x0044
45 #define DICE_EAP_ZERO_MARKER_1             0x0048
46
47 // CAPABILITY registers
48 #define DICE_EAP_CAPABILITY_ROUTER         0x0000
49 #define DICE_EAP_CAPABILITY_MIXER          0x0004
50 #define DICE_EAP_CAPABILITY_GENERAL        0x0008
51 #define DICE_EAP_CAPABILITY_RESERVED       0x000C
52
53 // CAPABILITY bit definitions
54 #define DICE_EAP_CAP_ROUTER_EXPOSED         0
55 #define DICE_EAP_CAP_ROUTER_READONLY        1
56 #define DICE_EAP_CAP_ROUTER_FLASHSTORED     2
57 #define DICE_EAP_CAP_ROUTER_MAXROUTES      16
58
59 #define DICE_EAP_CAP_MIXER_EXPOSED          0
60 #define DICE_EAP_CAP_MIXER_READONLY         1
61 #define DICE_EAP_CAP_MIXER_FLASHSTORED      2
62 #define DICE_EAP_CAP_MIXER_IN_DEV           4
63 #define DICE_EAP_CAP_MIXER_OUT_DEV          8
64 #define DICE_EAP_CAP_MIXER_INPUTS          16
65 #define DICE_EAP_CAP_MIXER_OUTPUTS         24
66
67 #define DICE_EAP_CAP_GENERAL_STRM_CFG_EN    0
68 #define DICE_EAP_CAP_GENERAL_FLASH_EN       1
69 #define DICE_EAP_CAP_GENERAL_PEAK_EN        2
70 #define DICE_EAP_CAP_GENERAL_MAX_TX_STREAM  4
71 #define DICE_EAP_CAP_GENERAL_MAX_RX_STREAM  8
72 #define DICE_EAP_CAP_GENERAL_STRM_CFG_FLS  12
73 #define DICE_EAP_CAP_GENERAL_CHIP          16
74
75 #define DICE_EAP_CAP_GENERAL_CHIP_DICEII    0
76 #define DICE_EAP_CAP_GENERAL_CHIP_DICEMINI  1
77 #define DICE_EAP_CAP_GENERAL_CHIP_DICEJR    2
78
79 // COMMAND registers
80 #define DICE_EAP_COMMAND_OPCODE         0x0000
81 #define DICE_EAP_COMMAND_RETVAL         0x0004
82
83 // opcodes
84 #define DICE_EAP_CMD_OPCODE_NO_OP            0x0000
85 #define DICE_EAP_CMD_OPCODE_LD_ROUTER        0x0001
86 #define DICE_EAP_CMD_OPCODE_LD_STRM_CFG      0x0002
87 #define DICE_EAP_CMD_OPCODE_LD_RTR_STRM_CFG  0x0003
88 #define DICE_EAP_CMD_OPCODE_LD_FLASH_CFG     0x0004
89 #define DICE_EAP_CMD_OPCODE_ST_FLASH_CFG     0x0005
90
91 #define DICE_EAP_CMD_OPCODE_FLAG_LD_LOW      (1U<<16)
92 #define DICE_EAP_CMD_OPCODE_FLAG_LD_MID      (1U<<17)
93 #define DICE_EAP_CMD_OPCODE_FLAG_LD_HIGH     (1U<<18)
94 #define DICE_EAP_CMD_OPCODE_FLAG_LD_EXECUTE  (1U<<31)
95
96
97 // MIXER registers
98 // TODO
99
100 // PEAK registers
101 // TODO
102
103 // NEW ROUTER registers
104 // TODO
105
106 // NEW STREAM CFG registers
107 // TODO
108
109 // CURRENT CFG registers
110 #define DICE_EAP_CURRCFG_LOW_ROUTER         0x0000
111 #define DICE_EAP_CURRCFG_LOW_STREAM         0x1000
112 #define DICE_EAP_CURRCFG_MID_ROUTER         0x2000
113 #define DICE_EAP_CURRCFG_MID_STREAM         0x3000
114 #define DICE_EAP_CURRCFG_HIGH_ROUTER        0x4000
115 #define DICE_EAP_CURRCFG_HIGH_STREAM        0x5000
116
117 #define DICE_EAP_CHANNEL_CONFIG_NAMESTR_LEN_QUADS  (64)
118 #define DICE_EAP_CHANNEL_CONFIG_NAMESTR_LEN_BYTES  (4*DICE_EAP_CHANNEL_CONFIG_NAMESTR_LEN_QUADS)
Note: See TracBrowser for help on using the browser.