1
2
3
4
5
6
7
8
9
10
11
12
13
14 #ifndef _HPI6205_H_
15 #define _HPI6205_H_
16
17 #include "hpi_internal.h"
18
19
20
21
22 #define H620_HIF_RESET 0
23 #define H620_HIF_IDLE 1
24 #define H620_HIF_GET_RESP 2
25 #define H620_HIF_DATA_DONE 3
26 #define H620_HIF_DATA_MASK 0x10
27 #define H620_HIF_SEND_DATA 0x14
28 #define H620_HIF_GET_DATA 0x15
29 #define H620_HIF_UNKNOWN 0x0000ffff
30
31
32
33
34
35 #define H620_MAX_ISTREAMS 32
36 #define H620_MAX_OSTREAMS 32
37 #define HPI_NMIXER_CONTROLS 2048
38
39
40
41
42 struct controlcache_6205 {
43 u32 number_of_controls;
44 u32 physical_address32;
45 u32 size_in_bytes;
46 };
47
48
49
50
51 struct async_event_buffer_6205 {
52 u32 physical_address32;
53 u32 spare;
54 struct hpi_fifo_buffer b;
55 };
56
57
58
59
60
61 #define HPI6205_SIZEOF_DATA (16*1024)
62
63 struct message_buffer_6205 {
64 struct hpi_message message;
65 char data[256];
66 };
67
68 struct response_buffer_6205 {
69 struct hpi_response response;
70 char data[256];
71 };
72
73 union buffer_6205 {
74 struct message_buffer_6205 message_buffer;
75 struct response_buffer_6205 response_buffer;
76 u8 b_data[HPI6205_SIZEOF_DATA];
77 };
78
79 struct bus_master_interface {
80 u32 host_cmd;
81 u32 dsp_ack;
82 u32 transfer_size_in_bytes;
83 union buffer_6205 u;
84 struct controlcache_6205 control_cache;
85 struct async_event_buffer_6205 async_buffer;
86 struct hpi_hostbuffer_status
87 instream_host_buffer_status[H620_MAX_ISTREAMS];
88 struct hpi_hostbuffer_status
89 outstream_host_buffer_status[H620_MAX_OSTREAMS];
90 };
91
92 #endif