summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/imx233/audioin-imx233.c8
-rw-r--r--firmware/target/arm/imx233/audioin-imx233.h83
2 files changed, 5 insertions, 86 deletions
diff --git a/firmware/target/arm/imx233/audioin-imx233.c b/firmware/target/arm/imx233/audioin-imx233.c
index dcb9c7c4b4..d3df627037 100644
--- a/firmware/target/arm/imx233/audioin-imx233.c
+++ b/firmware/target/arm/imx233/audioin-imx233.c
@@ -25,9 +25,9 @@ void imx233_audioin_preinit(void)
25 /* Enable AUDIOIN block */ 25 /* Enable AUDIOIN block */
26 imx233_reset_block(&HW_AUDIOIN_CTRL); 26 imx233_reset_block(&HW_AUDIOIN_CTRL);
27 /* Enable ADC */ 27 /* Enable ADC */
28 __REG_CLR(HW_AUDIOIN_ANACLKCTRL) = HW_AUDIOIN_ANACLKCTRL__CLKGATE; 28 BF_SET(AUDIOIN_CTRL, CLKGATE);
29 /* Set word-length to 16-bit */ 29 /* Set word-length to 16-bit */
30 __REG_SET(HW_AUDIOIN_CTRL) = HW_AUDIOIN_CTRL__WORD_LENGTH; 30 BF_SET(AUDIOIN_CTRL, WORD_LENGTH);
31} 31}
32 32
33void imx233_audioin_postinit(void) 33void imx233_audioin_postinit(void)
@@ -38,7 +38,7 @@ void imx233_audioin_close(void)
38{ 38{
39 /* TODO mute */ 39 /* TODO mute */
40 /* Gate off ADC */ 40 /* Gate off ADC */
41 __REG_SET(HW_AUDIOIN_ANACLKCTRL) = HW_AUDIOIN_ANACLKCTRL__CLKGATE; 41 BF_SET(AUDIOIN_ANACLKCTRL, CLKGATE);
42 /* will also gate off the module */ 42 /* will also gate off the module */
43 __REG_CLR(HW_AUDIOIN_CTRL) = HW_AUDIOIN_CTRL__RUN; 43 BF_CLR(AUDIOIN_CTRL, RUN);
44} 44}
diff --git a/firmware/target/arm/imx233/audioin-imx233.h b/firmware/target/arm/imx233/audioin-imx233.h
index 6351173967..e8c5b36d6d 100644
--- a/firmware/target/arm/imx233/audioin-imx233.h
+++ b/firmware/target/arm/imx233/audioin-imx233.h
@@ -25,88 +25,7 @@
25#include "cpu.h" 25#include "cpu.h"
26#include "system.h" 26#include "system.h"
27 27
28#define HW_AUDIOIN_BASE 0x8004c000 28#include "regs/regs-audioin.h"
29
30#define HW_AUDIOIN_CTRL (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x0))
31#define HW_AUDIOIN_CTRL__RUN (1 << 0)
32#define HW_AUDIOIN_CTRL__FIFO_ERROR_IRQ_EN (1 << 1)
33#define HW_AUDIOIN_CTRL__FIFO_OVERFLOW_IRQ (1 << 2)
34#define HW_AUDIOIN_CTRL__FIFO_UNDERFLOW_IRQ (1 << 3)
35#define HW_AUDIOIN_CTRL__LOOPBACK (1 << 4)
36#define HW_AUDIOIN_CTRL__WORD_LENGTH (1 << 5)
37#define HW_AUDIOIN_CTRL__HPF_ENABLE (1 << 6)
38#define HW_AUDIOIN_CTRL__OFFSET_ENABLE (1 << 7)
39#define HW_AUDIOIN_CTRL__INVERT_1BIT (1 << 8)
40#define HW_AUDIOIN_CTRL__EDGE_SYNC (1 << 9)
41#define HW_AUDIOIN_CTRL__LR_SWAP (1 << 10)
42#define HW_AUDIOIN_CTRL__DMAWAIT_COUNT_BP 16
43#define HW_AUDIOIN_CTRL__DMAWAIT_COUNT_BM (0x1f << 16)
44
45#define HW_AUDIOIN_STAT (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x10))
46
47#define HW_AUDIOIN_ADCSRR (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x20))
48#define HW_AUDIOIN_ADCSRR__SRC_FRAC_BP 0
49#define HW_AUDIOIN_ADCSRR__SRC_FRAC_BM (0x1ff << 0)
50#define HW_AUDIOIN_ADCSRR__SRC_INT_BP 16
51#define HW_AUDIOIN_ADCSRR__SRC_INT_BM (0x1f << 16)
52#define HW_AUDIOIN_ADCSRR__SRC_HOLD_BP 24
53#define HW_AUDIOIN_ADCSRR__SRC_HOLD_BM (0x7 << 24)
54#define HW_AUDIOIN_ADCSRR__BASEMULT_BP 28
55#define HW_AUDIOIN_ADCSRR__BASEMULT_BM (0x7 << 28)
56#define HW_AUDIOIN_ADCSRR__OSR (1 << 31)
57
58/* MUTE_LEFT and MUTE_RIGHT are not documented but present */
59#define HW_AUDIOIN_ADCVOLUME (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x30))
60#define HW_AUDIOIN_ADCVOLUME__VOLUME_RIGHT_BP 0
61#define HW_AUDIOIN_ADCVOLUME__VOLUME_RIGHT_BM 0xff
62#define HW_AUDIOIN_ADCVOLUME__MUTE_RIGHT (1 << 8)
63#define HW_AUDIOIN_ADCVOLUME__VOLUME_UPDATE_RIGHT (1 << 12)
64#define HW_AUDIOIN_ADCVOLUME__VOLUME_LEFT_BP 16
65#define HW_AUDIOIN_ADCVOLUME__VOLUME_LEFT_BM (0xff << 16)
66#define HW_AUDIOIN_ADCVOLUME__MUTE_LEFT (1 << 24)
67#define HW_AUDIOIN_ADCVOLUME__EN_ZCD (1 << 25)
68#define HW_AUDIOIN_ADCVOLUME__VOLUME_UPDATE_LEFT (1 << 28)
69
70#define HW_AUDIOIN_ADCDEBUG (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x40))
71#define HW_AUDIOIN_ADCDEBUG__FIFO_STATUS 1
72
73#define HW_AUDIOIN_ADCVOL (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x50))
74#define HW_AUDIOIN_ADCVOL__GAIN_RIGHT_BP 0
75#define HW_AUDIOIN_ADCVOL__GAIN_RIGHT_BM (0xf << 0)
76#define HW_AUDIOIN_ADCVOL__SELECT_RIGHT_BP 4
77#define HW_AUDIOIN_ADCVOL__SELECT_RIGHT_BM (0x3 << 4)
78#define HW_AUDIOIN_ADCVOL__GAIN_LEFT_BP 8
79#define HW_AUDIOIN_ADCVOL__GAIN_LEFT_BM (0xf << 8)
80#define HW_AUDIOIN_ADCVOL__SELECT_LEFT_BP 12
81#define HW_AUDIOIN_ADCVOL__SELECT_LEFT_BM (0x3 << 12)
82#define HW_AUDIOIN_ADCVOL__MUTE (1 << 24)
83#define HW_AUDIOIN_ADCVOL__EN_ADC_ZCD (1 << 25)
84#define HW_AUDIOIN_ADCVOL__VOLUME_UPDATE_PENDING (1 << 28)
85
86#define HW_AUDIOIN_MICLINE (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x60))
87#define HW_AUDIOIN_MICLINE__MIC_GAIN_BP 0
88#define HW_AUDIOIN_MICLINE__MIC_GAIN_BM 0x3
89#define HW_AUDIOIN_MICLINE__MIC_CHOPCLK_BP 4
90#define HW_AUDIOIN_MICLINE__MIC_CHOPCLK_BM (0x3 << 4)
91#define HW_AUDIOIN_MICLINE__MIC_BIAIS_BP 16
92#define HW_AUDIOIN_MICLINE__MIC_BIAIS_BM (0x3 << 16)
93#define HW_AUDIOIN_MICLINE__MIC_RESISTOR_BP 20
94#define HW_AUDIOIN_MICLINE__MIC_RESISTOR_BM (0x3 << 20)
95#define HW_AUDIOIN_MICLINE__MIC_SELECT (1 << 24)
96#define HW_AUDIOIN_MICLINE__DIVIDE_LINE2 (1 << 28)
97#define HW_AUDIOIN_MICLINE__DIVIDE_LINE1 (1 << 29)
98
99#define HW_AUDIOIN_ANACLKCTRL (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x70))
100#define HW_AUDIOIN_ANACLKCTRL__ADCDIV_BP 0
101#define HW_AUDIOIN_ANACLKCTRL__ADCDIV_BM (0x7 << 0)
102#define HW_AUDIOIN_ANACLKCTRL__ADCCLK_SHIFT_BP 4
103#define HW_AUDIOIN_ANACLKCTRL__ADCCLK_SHIFT_BM (0x3 << 4)
104#define HW_AUDIOIN_ANACLKCTRL__INVERT_ADCCLK (1 << 8)
105#define HW_AUDIOIN_ANACLKCTRL__SLOW_DITHER (1 << 9)
106#define HW_AUDIOIN_ANACLKCTRL__DITHER_OFF (1 << 10)
107#define HW_AUDIOIN_ANACLKCTRL__CLKGATE (1 << 31)
108
109#define HW_AUDIOIN_DATA (*(volatile uint32_t *)(HW_AUDIOIN_BASE + 0x80))
110 29
111void imx233_audioin_preinit(void); 30void imx233_audioin_preinit(void);
112void imx233_audioin_postinit(void); 31void imx233_audioin_postinit(void);