summaryrefslogtreecommitdiff
path: root/firmware/export/mas.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/mas.h')
-rw-r--r--firmware/export/mas.h77
1 files changed, 63 insertions, 14 deletions
diff --git a/firmware/export/mas.h b/firmware/export/mas.h
index dac946ea63..f682fc676e 100644
--- a/firmware/export/mas.h
+++ b/firmware/export/mas.h
@@ -27,7 +27,7 @@
27/* 27/*
28 MAS I2C defs 28 MAS I2C defs
29*/ 29*/
30#if CONFIG_HWCODEC == MAS3587F 30#if (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F)
31#define MAS_ADR 0x3c 31#define MAS_ADR 0x3c
32#define MAS_DEV_WRITE (MAS_ADR | 0x00) 32#define MAS_DEV_WRITE (MAS_ADR | 0x00)
33#define MAS_DEV_READ (MAS_ADR | 0x01) 33#define MAS_DEV_READ (MAS_ADR | 0x01)
@@ -38,18 +38,18 @@
38#endif 38#endif
39 39
40/* registers..*/ 40/* registers..*/
41#if CONFIG_HWCODEC == MAS3587F 41#if (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F)
42#define MAS_DATA_WRITE 0x68 42#define MAS_DATA_WRITE 0x68
43#define MAS_DATA_READ 0x69 43#define MAS_DATA_READ 0x69
44#define MAS_CODEC_WRITE 0x6c 44#define MAS_CODEC_WRITE 0x6c
45#define MAS_CODEC_READ 0x6d 45#define MAS_CODEC_READ 0x6d
46#define MAS_CONTROL 0x6a 46#define MAS_CONTROL 0x6a
47#define MAS_DCCF 0x76 47#define MAS_DCCF 0x76
48#define MAS_DCFR 0x77 48#define MAS_DCFR 0x77
49#else 49#else
50#define MAS_DATA_WRITE 0x68 50#define MAS_DATA_WRITE 0x68
51#define MAS_DATA_READ 0x69 51#define MAS_DATA_READ 0x69
52#define MAS_CONTROL 0x6a 52#define MAS_CONTROL 0x6a
53#endif 53#endif
54 54
55/* 55/*
@@ -62,15 +62,15 @@
62#define MAS_REG_KPRESCALE 0xe7 62#define MAS_REG_KPRESCALE 0xe7
63#define MAS_REG_KBASS 0x6b 63#define MAS_REG_KBASS 0x6b
64#define MAS_REG_KTREBLE 0x6f 64#define MAS_REG_KTREBLE 0x6f
65#if CONFIG_HWCODEC == MAS3587F 65#if (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F)
66#define MAS_REG_KMDB_SWITCH 0x21 66#define MAS_REG_KMDB_SWITCH 0x21
67#define MAS_REG_KMDB_STR 0x22 67#define MAS_REG_KMDB_STR 0x22
68#define MAS_REG_KMDB_HAR 0x23 68#define MAS_REG_KMDB_HAR 0x23
69#define MAS_REG_KMDB_FC 0x24 69#define MAS_REG_KMDB_FC 0x24
70#define MAS_REG_KLOUDNESS 0x1e 70#define MAS_REG_KLOUDNESS 0x1e
71#define MAS_REG_QPEAK_L 0x0a 71#define MAS_REG_QPEAK_L 0x0a
72#define MAS_REG_QPEAK_R 0x0b 72#define MAS_REG_QPEAK_R 0x0b
73#define MAS_REG_DQPEAK_L 0x0c 73#define MAS_REG_DQPEAK_L 0x0c
74#define MAS_REG_DQPEAK_R 0x0d 74#define MAS_REG_DQPEAK_R 0x0d
75#define MAS_REG_KAVC 0x12 75#define MAS_REG_KAVC 0x12
76#endif 76#endif
@@ -78,7 +78,7 @@
78/* 78/*
79 * MAS commands 79 * MAS commands
80 */ 80 */
81#if CONFIG_HWCODEC == MAS3587F 81#if (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F)
82#define MAS_CMD_READ_ANCILLARY 0x50 82#define MAS_CMD_READ_ANCILLARY 0x50
83#define MAS_CMD_FAST_PRG_DL 0x60 83#define MAS_CMD_FAST_PRG_DL 0x60
84#define MAS_CMD_READ_IC_VER 0x70 84#define MAS_CMD_READ_IC_VER 0x70
@@ -98,6 +98,55 @@
98#define MAS_CMD_READ_D1_MEM 0xf0 98#define MAS_CMD_READ_D1_MEM 0xf0
99#endif 99#endif
100 100
101/*
102 * MAS D0 memory cells (MAS3587F / MAS3539F)
103 */
104#if CONFIG_HWCODEC == MAS3587F
105#define MAS_D0_APP_SELECT 0x7f6
106#define MAS_D0_APP_RUNNING 0x7f7
107#define MAS_D0_ENCODER_CONTROL 0x7f0
108#define MAS_D0_IO_CONTROL_MAIN 0x7f1
109#define MAS_D0_INTERFACE_CONTROL 0x7f2
110#define MAS_D0_OFREQ_CONTROL 0x7f3
111#define MAS_D0_OUT_CLK_CONFIG 0x7f4
112#define MAS_D0_SPD_OUT_BITS 0x7f8
113#define MAS_D0_SOFT_MUTE 0x7f9
114#define MAS_D0_OUT_LL 0x7fc
115#define MAS_D0_OUT_LR 0x7fd
116#define MAS_D0_OUT_RL 0x7fe
117#define MAS_D0_OUT_RR 0x7ff
118#define MAS_D0_MPEG_FRAME_COUNT 0xfd0
119#define MAS_D0_MPEG_STATUS_1 0xfd1
120#define MAS_D0_MPEG_STATUS_2 0xfd2
121#define MAS_D0_CRC_ERROR_COUNT 0xfd3
122
123#elif CONFIG_HWCODEC == MAS3539F
124#define MAS_D0_APP_SELECT 0x34b
125#define MAS_D0_APP_RUNNING 0x34c
126/* no encoder :( */
127#define MAS_D0_IO_CONTROL_MAIN 0x346
128#define MAS_D0_INTERFACE_CONTROL 0x347
129#define MAS_D0_OFREQ_CONTROL 0x348
130#define MAS_D0_OUT_CLK_CONFIG 0x349
131#define MAS_D0_SPD_OUT_BITS 0x351
132#define MAS_D0_SOFT_MUTE 0x350
133#define MAS_D0_OUT_LL 0x354
134#define MAS_D0_OUT_LR 0x355
135#define MAS_D0_OUT_RL 0x356
136#define MAS_D0_OUT_RR 0x357
137#define MAS_D0_MPEG_FRAME_COUNT 0xfd0
138#define MAS_D0_MPEG_STATUS_1 0xfd1
139#define MAS_D0_MPEG_STATUS_2 0xfd2
140#define MAS_D0_CRC_ERROR_COUNT 0xfd3
141
142#else /* MAS3507D */
143#define MAS_D0_MPEG_FRAME_COUNT 0x300
144#define MAS_D0_MPEG_STATUS_1 0x301
145#define MAS_D0_MPEG_STATUS_2 0x302
146#define MAS_D0_CRC_ERROR_COUNT 0x303
147
148#endif
149
101int mas_default_read(unsigned short *buf); 150int mas_default_read(unsigned short *buf);
102int mas_run(unsigned short address); 151int mas_run(unsigned short address);
103int mas_readmem(int bank, int addr, unsigned long* dest, int len); 152int mas_readmem(int bank, int addr, unsigned long* dest, int len);