summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/regs/stmp3700/regs-audioin.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx233/regs/stmp3700/regs-audioin.h')
-rw-r--r--firmware/target/arm/imx233/regs/stmp3700/regs-audioin.h284
1 files changed, 284 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/regs/stmp3700/regs-audioin.h b/firmware/target/arm/imx233/regs/stmp3700/regs-audioin.h
new file mode 100644
index 0000000000..8bb4cb3e71
--- /dev/null
+++ b/firmware/target/arm/imx233/regs/stmp3700/regs-audioin.h
@@ -0,0 +1,284 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * This file was automatically generated by headergen, DO NOT EDIT it.
9 * headergen version: 2.1.7
10 * XML versions: stmp3700:3.4.0
11 *
12 * Copyright (C) 2013 by Amaury Pouly
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
18 *
19 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20 * KIND, either express or implied.
21 *
22 ****************************************************************************/
23#ifndef __HEADERGEN__STMP3700__AUDIOIN__H__
24#define __HEADERGEN__STMP3700__AUDIOIN__H__
25
26#define REGS_AUDIOIN_BASE (0x8004c000)
27
28#define REGS_AUDIOIN_VERSION "3.4.0"
29
30/**
31 * Register: HW_AUDIOIN_CTRL
32 * Address: 0
33 * SCT: yes
34*/
35#define HW_AUDIOIN_CTRL (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x0 + 0x0))
36#define HW_AUDIOIN_CTRL_SET (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x0 + 0x4))
37#define HW_AUDIOIN_CTRL_CLR (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x0 + 0x8))
38#define HW_AUDIOIN_CTRL_TOG (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x0 + 0xc))
39#define BP_AUDIOIN_CTRL_SFTRST 31
40#define BM_AUDIOIN_CTRL_SFTRST 0x80000000
41#define BF_AUDIOIN_CTRL_SFTRST(v) (((v) << 31) & 0x80000000)
42#define BP_AUDIOIN_CTRL_CLKGATE 30
43#define BM_AUDIOIN_CTRL_CLKGATE 0x40000000
44#define BF_AUDIOIN_CTRL_CLKGATE(v) (((v) << 30) & 0x40000000)
45#define BP_AUDIOIN_CTRL_DMAWAIT_COUNT 16
46#define BM_AUDIOIN_CTRL_DMAWAIT_COUNT 0x1f0000
47#define BF_AUDIOIN_CTRL_DMAWAIT_COUNT(v) (((v) << 16) & 0x1f0000)
48#define BP_AUDIOIN_CTRL_LR_SWAP 10
49#define BM_AUDIOIN_CTRL_LR_SWAP 0x400
50#define BF_AUDIOIN_CTRL_LR_SWAP(v) (((v) << 10) & 0x400)
51#define BP_AUDIOIN_CTRL_EDGE_SYNC 9
52#define BM_AUDIOIN_CTRL_EDGE_SYNC 0x200
53#define BF_AUDIOIN_CTRL_EDGE_SYNC(v) (((v) << 9) & 0x200)
54#define BP_AUDIOIN_CTRL_INVERT_1BIT 8
55#define BM_AUDIOIN_CTRL_INVERT_1BIT 0x100
56#define BF_AUDIOIN_CTRL_INVERT_1BIT(v) (((v) << 8) & 0x100)
57#define BP_AUDIOIN_CTRL_OFFSET_ENABLE 7
58#define BM_AUDIOIN_CTRL_OFFSET_ENABLE 0x80
59#define BF_AUDIOIN_CTRL_OFFSET_ENABLE(v) (((v) << 7) & 0x80)
60#define BP_AUDIOIN_CTRL_HPF_ENABLE 6
61#define BM_AUDIOIN_CTRL_HPF_ENABLE 0x40
62#define BF_AUDIOIN_CTRL_HPF_ENABLE(v) (((v) << 6) & 0x40)
63#define BP_AUDIOIN_CTRL_WORD_LENGTH 5
64#define BM_AUDIOIN_CTRL_WORD_LENGTH 0x20
65#define BF_AUDIOIN_CTRL_WORD_LENGTH(v) (((v) << 5) & 0x20)
66#define BP_AUDIOIN_CTRL_LOOPBACK 4
67#define BM_AUDIOIN_CTRL_LOOPBACK 0x10
68#define BF_AUDIOIN_CTRL_LOOPBACK(v) (((v) << 4) & 0x10)
69#define BP_AUDIOIN_CTRL_FIFO_UNDERFLOW_IRQ 3
70#define BM_AUDIOIN_CTRL_FIFO_UNDERFLOW_IRQ 0x8
71#define BF_AUDIOIN_CTRL_FIFO_UNDERFLOW_IRQ(v) (((v) << 3) & 0x8)
72#define BP_AUDIOIN_CTRL_FIFO_OVERFLOW_IRQ 2
73#define BM_AUDIOIN_CTRL_FIFO_OVERFLOW_IRQ 0x4
74#define BF_AUDIOIN_CTRL_FIFO_OVERFLOW_IRQ(v) (((v) << 2) & 0x4)
75#define BP_AUDIOIN_CTRL_FIFO_ERROR_IRQ_EN 1
76#define BM_AUDIOIN_CTRL_FIFO_ERROR_IRQ_EN 0x2
77#define BF_AUDIOIN_CTRL_FIFO_ERROR_IRQ_EN(v) (((v) << 1) & 0x2)
78#define BP_AUDIOIN_CTRL_RUN 0
79#define BM_AUDIOIN_CTRL_RUN 0x1
80#define BF_AUDIOIN_CTRL_RUN(v) (((v) << 0) & 0x1)
81
82/**
83 * Register: HW_AUDIOIN_STAT
84 * Address: 0x10
85 * SCT: no
86*/
87#define HW_AUDIOIN_STAT (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x10))
88#define BP_AUDIOIN_STAT_ADC_PRESENT 31
89#define BM_AUDIOIN_STAT_ADC_PRESENT 0x80000000
90#define BF_AUDIOIN_STAT_ADC_PRESENT(v) (((v) << 31) & 0x80000000)
91
92/**
93 * Register: HW_AUDIOIN_ADCSRR
94 * Address: 0x20
95 * SCT: yes
96*/
97#define HW_AUDIOIN_ADCSRR (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x20 + 0x0))
98#define HW_AUDIOIN_ADCSRR_SET (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x20 + 0x4))
99#define HW_AUDIOIN_ADCSRR_CLR (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x20 + 0x8))
100#define HW_AUDIOIN_ADCSRR_TOG (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x20 + 0xc))
101#define BP_AUDIOIN_ADCSRR_OSR 31
102#define BM_AUDIOIN_ADCSRR_OSR 0x80000000
103#define BV_AUDIOIN_ADCSRR_OSR__OSR6 0x0
104#define BV_AUDIOIN_ADCSRR_OSR__OSR12 0x1
105#define BF_AUDIOIN_ADCSRR_OSR(v) (((v) << 31) & 0x80000000)
106#define BF_AUDIOIN_ADCSRR_OSR_V(v) ((BV_AUDIOIN_ADCSRR_OSR__##v << 31) & 0x80000000)
107#define BP_AUDIOIN_ADCSRR_BASEMULT 28
108#define BM_AUDIOIN_ADCSRR_BASEMULT 0x70000000
109#define BV_AUDIOIN_ADCSRR_BASEMULT__SINGLE_RATE 0x1
110#define BV_AUDIOIN_ADCSRR_BASEMULT__DOUBLE_RATE 0x2
111#define BV_AUDIOIN_ADCSRR_BASEMULT__QUAD_RATE 0x4
112#define BF_AUDIOIN_ADCSRR_BASEMULT(v) (((v) << 28) & 0x70000000)
113#define BF_AUDIOIN_ADCSRR_BASEMULT_V(v) ((BV_AUDIOIN_ADCSRR_BASEMULT__##v << 28) & 0x70000000)
114#define BP_AUDIOIN_ADCSRR_SRC_HOLD 24
115#define BM_AUDIOIN_ADCSRR_SRC_HOLD 0x7000000
116#define BF_AUDIOIN_ADCSRR_SRC_HOLD(v) (((v) << 24) & 0x7000000)
117#define BP_AUDIOIN_ADCSRR_SRC_INT 16
118#define BM_AUDIOIN_ADCSRR_SRC_INT 0x1f0000
119#define BF_AUDIOIN_ADCSRR_SRC_INT(v) (((v) << 16) & 0x1f0000)
120#define BP_AUDIOIN_ADCSRR_SRC_FRAC 0
121#define BM_AUDIOIN_ADCSRR_SRC_FRAC 0x1fff
122#define BF_AUDIOIN_ADCSRR_SRC_FRAC(v) (((v) << 0) & 0x1fff)
123
124/**
125 * Register: HW_AUDIOIN_ADCVOLUME
126 * Address: 0x30
127 * SCT: yes
128*/
129#define HW_AUDIOIN_ADCVOLUME (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x30 + 0x0))
130#define HW_AUDIOIN_ADCVOLUME_SET (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x30 + 0x4))
131#define HW_AUDIOIN_ADCVOLUME_CLR (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x30 + 0x8))
132#define HW_AUDIOIN_ADCVOLUME_TOG (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x30 + 0xc))
133#define BP_AUDIOIN_ADCVOLUME_VOLUME_UPDATE_LEFT 28
134#define BM_AUDIOIN_ADCVOLUME_VOLUME_UPDATE_LEFT 0x10000000
135#define BF_AUDIOIN_ADCVOLUME_VOLUME_UPDATE_LEFT(v) (((v) << 28) & 0x10000000)
136#define BP_AUDIOIN_ADCVOLUME_EN_ZCD 25
137#define BM_AUDIOIN_ADCVOLUME_EN_ZCD 0x2000000
138#define BF_AUDIOIN_ADCVOLUME_EN_ZCD(v) (((v) << 25) & 0x2000000)
139#define BP_AUDIOIN_ADCVOLUME_VOLUME_LEFT 16
140#define BM_AUDIOIN_ADCVOLUME_VOLUME_LEFT 0xff0000
141#define BF_AUDIOIN_ADCVOLUME_VOLUME_LEFT(v) (((v) << 16) & 0xff0000)
142#define BP_AUDIOIN_ADCVOLUME_VOLUME_UPDATE_RIGHT 12
143#define BM_AUDIOIN_ADCVOLUME_VOLUME_UPDATE_RIGHT 0x1000
144#define BF_AUDIOIN_ADCVOLUME_VOLUME_UPDATE_RIGHT(v) (((v) << 12) & 0x1000)
145#define BP_AUDIOIN_ADCVOLUME_VOLUME_RIGHT 0
146#define BM_AUDIOIN_ADCVOLUME_VOLUME_RIGHT 0xff
147#define BF_AUDIOIN_ADCVOLUME_VOLUME_RIGHT(v) (((v) << 0) & 0xff)
148
149/**
150 * Register: HW_AUDIOIN_ADCDEBUG
151 * Address: 0x40
152 * SCT: yes
153*/
154#define HW_AUDIOIN_ADCDEBUG (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x40 + 0x0))
155#define HW_AUDIOIN_ADCDEBUG_SET (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x40 + 0x4))
156#define HW_AUDIOIN_ADCDEBUG_CLR (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x40 + 0x8))
157#define HW_AUDIOIN_ADCDEBUG_TOG (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x40 + 0xc))
158#define BP_AUDIOIN_ADCDEBUG_ENABLE_ADCDMA 31
159#define BM_AUDIOIN_ADCDEBUG_ENABLE_ADCDMA 0x80000000
160#define BF_AUDIOIN_ADCDEBUG_ENABLE_ADCDMA(v) (((v) << 31) & 0x80000000)
161#define BP_AUDIOIN_ADCDEBUG_ADC_DMA_REQ_HAND_SHAKE_CLK_CROSS 3
162#define BM_AUDIOIN_ADCDEBUG_ADC_DMA_REQ_HAND_SHAKE_CLK_CROSS 0x8
163#define BF_AUDIOIN_ADCDEBUG_ADC_DMA_REQ_HAND_SHAKE_CLK_CROSS(v) (((v) << 3) & 0x8)
164#define BP_AUDIOIN_ADCDEBUG_SET_INTERRUPT3_HAND_SHAKE 2
165#define BM_AUDIOIN_ADCDEBUG_SET_INTERRUPT3_HAND_SHAKE 0x4
166#define BF_AUDIOIN_ADCDEBUG_SET_INTERRUPT3_HAND_SHAKE(v) (((v) << 2) & 0x4)
167#define BP_AUDIOIN_ADCDEBUG_DMA_PREQ 1
168#define BM_AUDIOIN_ADCDEBUG_DMA_PREQ 0x2
169#define BF_AUDIOIN_ADCDEBUG_DMA_PREQ(v) (((v) << 1) & 0x2)
170#define BP_AUDIOIN_ADCDEBUG_FIFO_STATUS 0
171#define BM_AUDIOIN_ADCDEBUG_FIFO_STATUS 0x1
172#define BF_AUDIOIN_ADCDEBUG_FIFO_STATUS(v) (((v) << 0) & 0x1)
173
174/**
175 * Register: HW_AUDIOIN_ADCVOL
176 * Address: 0x50
177 * SCT: yes
178*/
179#define HW_AUDIOIN_ADCVOL (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x50 + 0x0))
180#define HW_AUDIOIN_ADCVOL_SET (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x50 + 0x4))
181#define HW_AUDIOIN_ADCVOL_CLR (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x50 + 0x8))
182#define HW_AUDIOIN_ADCVOL_TOG (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x50 + 0xc))
183#define BP_AUDIOIN_ADCVOL_VOLUME_UPDATE_PENDING 28
184#define BM_AUDIOIN_ADCVOL_VOLUME_UPDATE_PENDING 0x10000000
185#define BF_AUDIOIN_ADCVOL_VOLUME_UPDATE_PENDING(v) (((v) << 28) & 0x10000000)
186#define BP_AUDIOIN_ADCVOL_EN_ADC_ZCD 25
187#define BM_AUDIOIN_ADCVOL_EN_ADC_ZCD 0x2000000
188#define BF_AUDIOIN_ADCVOL_EN_ADC_ZCD(v) (((v) << 25) & 0x2000000)
189#define BP_AUDIOIN_ADCVOL_MUTE 24
190#define BM_AUDIOIN_ADCVOL_MUTE 0x1000000
191#define BF_AUDIOIN_ADCVOL_MUTE(v) (((v) << 24) & 0x1000000)
192#define BP_AUDIOIN_ADCVOL_SELECT_LEFT 12
193#define BM_AUDIOIN_ADCVOL_SELECT_LEFT 0x3000
194#define BF_AUDIOIN_ADCVOL_SELECT_LEFT(v) (((v) << 12) & 0x3000)
195#define BP_AUDIOIN_ADCVOL_GAIN_LEFT 8
196#define BM_AUDIOIN_ADCVOL_GAIN_LEFT 0xf00
197#define BF_AUDIOIN_ADCVOL_GAIN_LEFT(v) (((v) << 8) & 0xf00)
198#define BP_AUDIOIN_ADCVOL_SELECT_RIGHT 4
199#define BM_AUDIOIN_ADCVOL_SELECT_RIGHT 0x30
200#define BF_AUDIOIN_ADCVOL_SELECT_RIGHT(v) (((v) << 4) & 0x30)
201#define BP_AUDIOIN_ADCVOL_GAIN_RIGHT 0
202#define BM_AUDIOIN_ADCVOL_GAIN_RIGHT 0xf
203#define BF_AUDIOIN_ADCVOL_GAIN_RIGHT(v) (((v) << 0) & 0xf)
204
205/**
206 * Register: HW_AUDIOIN_MICLINE
207 * Address: 0x60
208 * SCT: yes
209*/
210#define HW_AUDIOIN_MICLINE (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x60 + 0x0))
211#define HW_AUDIOIN_MICLINE_SET (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x60 + 0x4))
212#define HW_AUDIOIN_MICLINE_CLR (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x60 + 0x8))
213#define HW_AUDIOIN_MICLINE_TOG (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x60 + 0xc))
214#define BP_AUDIOIN_MICLINE_DIVIDE_LINE1 29
215#define BM_AUDIOIN_MICLINE_DIVIDE_LINE1 0x20000000
216#define BF_AUDIOIN_MICLINE_DIVIDE_LINE1(v) (((v) << 29) & 0x20000000)
217#define BP_AUDIOIN_MICLINE_DIVIDE_LINE2 28
218#define BM_AUDIOIN_MICLINE_DIVIDE_LINE2 0x10000000
219#define BF_AUDIOIN_MICLINE_DIVIDE_LINE2(v) (((v) << 28) & 0x10000000)
220#define BP_AUDIOIN_MICLINE_MIC_SELECT 24
221#define BM_AUDIOIN_MICLINE_MIC_SELECT 0x1000000
222#define BF_AUDIOIN_MICLINE_MIC_SELECT(v) (((v) << 24) & 0x1000000)
223#define BP_AUDIOIN_MICLINE_MIC_RESISTOR 20
224#define BM_AUDIOIN_MICLINE_MIC_RESISTOR 0x300000
225#define BV_AUDIOIN_MICLINE_MIC_RESISTOR__Off 0x0
226#define BV_AUDIOIN_MICLINE_MIC_RESISTOR__2KOhm 0x1
227#define BV_AUDIOIN_MICLINE_MIC_RESISTOR__4KOhm 0x2
228#define BV_AUDIOIN_MICLINE_MIC_RESISTOR__8KOhm 0x3
229#define BF_AUDIOIN_MICLINE_MIC_RESISTOR(v) (((v) << 20) & 0x300000)
230#define BF_AUDIOIN_MICLINE_MIC_RESISTOR_V(v) ((BV_AUDIOIN_MICLINE_MIC_RESISTOR__##v << 20) & 0x300000)
231#define BP_AUDIOIN_MICLINE_MIC_BIAS 16
232#define BM_AUDIOIN_MICLINE_MIC_BIAS 0x70000
233#define BF_AUDIOIN_MICLINE_MIC_BIAS(v) (((v) << 16) & 0x70000)
234#define BP_AUDIOIN_MICLINE_MIC_CHOPCLK 4
235#define BM_AUDIOIN_MICLINE_MIC_CHOPCLK 0x30
236#define BF_AUDIOIN_MICLINE_MIC_CHOPCLK(v) (((v) << 4) & 0x30)
237#define BP_AUDIOIN_MICLINE_MIC_GAIN 0
238#define BM_AUDIOIN_MICLINE_MIC_GAIN 0x3
239#define BV_AUDIOIN_MICLINE_MIC_GAIN__0dB 0x0
240#define BV_AUDIOIN_MICLINE_MIC_GAIN__20dB 0x1
241#define BV_AUDIOIN_MICLINE_MIC_GAIN__30dB 0x2
242#define BV_AUDIOIN_MICLINE_MIC_GAIN__40dB 0x3
243#define BF_AUDIOIN_MICLINE_MIC_GAIN(v) (((v) << 0) & 0x3)
244#define BF_AUDIOIN_MICLINE_MIC_GAIN_V(v) ((BV_AUDIOIN_MICLINE_MIC_GAIN__##v << 0) & 0x3)
245
246/**
247 * Register: HW_AUDIOIN_ANACLKCTRL
248 * Address: 0x70
249 * SCT: yes
250*/
251#define HW_AUDIOIN_ANACLKCTRL (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x70 + 0x0))
252#define HW_AUDIOIN_ANACLKCTRL_SET (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x70 + 0x4))
253#define HW_AUDIOIN_ANACLKCTRL_CLR (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x70 + 0x8))
254#define HW_AUDIOIN_ANACLKCTRL_TOG (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x70 + 0xc))
255#define BP_AUDIOIN_ANACLKCTRL_CLKGATE 31
256#define BM_AUDIOIN_ANACLKCTRL_CLKGATE 0x80000000
257#define BF_AUDIOIN_ANACLKCTRL_CLKGATE(v) (((v) << 31) & 0x80000000)
258#define BP_AUDIOIN_ANACLKCTRL_DITHER_OFF 6
259#define BM_AUDIOIN_ANACLKCTRL_DITHER_OFF 0x40
260#define BF_AUDIOIN_ANACLKCTRL_DITHER_OFF(v) (((v) << 6) & 0x40)
261#define BP_AUDIOIN_ANACLKCTRL_SLOW_DITHER 5
262#define BM_AUDIOIN_ANACLKCTRL_SLOW_DITHER 0x20
263#define BF_AUDIOIN_ANACLKCTRL_SLOW_DITHER(v) (((v) << 5) & 0x20)
264#define BP_AUDIOIN_ANACLKCTRL_INVERT_ADCCLK 4
265#define BM_AUDIOIN_ANACLKCTRL_INVERT_ADCCLK 0x10
266#define BF_AUDIOIN_ANACLKCTRL_INVERT_ADCCLK(v) (((v) << 4) & 0x10)
267#define BP_AUDIOIN_ANACLKCTRL_ADCDIV 0
268#define BM_AUDIOIN_ANACLKCTRL_ADCDIV 0x7
269#define BF_AUDIOIN_ANACLKCTRL_ADCDIV(v) (((v) << 0) & 0x7)
270
271/**
272 * Register: HW_AUDIOIN_DATA
273 * Address: 0x80
274 * SCT: no
275*/
276#define HW_AUDIOIN_DATA (*(volatile unsigned long *)(REGS_AUDIOIN_BASE + 0x80))
277#define BP_AUDIOIN_DATA_HIGH 16
278#define BM_AUDIOIN_DATA_HIGH 0xffff0000
279#define BF_AUDIOIN_DATA_HIGH(v) (((v) << 16) & 0xffff0000)
280#define BP_AUDIOIN_DATA_LOW 0
281#define BM_AUDIOIN_DATA_LOW 0xffff
282#define BF_AUDIOIN_DATA_LOW(v) (((v) << 0) & 0xffff)
283
284#endif /* __HEADERGEN__STMP3700__AUDIOIN__H__ */