RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
arm
atsam
contrib
libraries
libboard
include
wm8904.h
Go to the documentation of this file.
1
/* ---------------------------------------------------------------------------- */
2
/* Atmel Microcontroller Software Support */
3
/* SAM Software Package License */
4
/* ---------------------------------------------------------------------------- */
5
/* Copyright (c) 2015, Atmel Corporation */
6
/* */
7
/* All rights reserved. */
8
/* */
9
/* Redistribution and use in source and binary forms, with or without */
10
/* modification, are permitted provided that the following condition is met: */
11
/* */
12
/* - Redistributions of source code must retain the above copyright notice, */
13
/* this list of conditions and the disclaimer below. */
14
/* */
15
/* Atmel's name may not be used to endorse or promote products derived from */
16
/* this software without specific prior written permission. */
17
/* */
18
/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19
/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21
/* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28
/* ---------------------------------------------------------------------------- */
29
36
37
#ifndef WM8904_H
38
#define WM8904_H
39
40
#include "
board.h
"
41
42
/*----------------------------------------------------------------------------
43
* Definitions
44
*----------------------------------------------------------------------------*/
45
#define WM8904_CSB_STATE (0x0 << 0)
46
48
#define WM8904_SLAVE_ADDRESS 0x1a | WM8904_CSB_STATE
49
#define CS2100_SLAVE_ADDRESS 0x4E
50
51
53
#define WM8904_REG_RESET 0x00
54
56
#define WM8904_REG_BIAS_CTRL0 0x04
57
59
#define WM8904_REG_VMID_CTRL0 0x05
60
62
#define WM8904_REG_MICBIAS_CTRL0 0x06
63
65
#define WM8904_REG_BIAS_CTRL1 0x07
66
68
#define WM8904_REG_POWER_MANG0 0x0C
70
#define WM8904_REG_POWER_MANG2 0x0E
72
#define WM8904_REG_POWER_MANG3 0x0F
74
#define WM8904_REG_POWER_MANG6 0x12
75
77
#define WM8904_REG_CLOCK_RATE0 0x14
79
#define WM8904_REG_CLOCK_RATE1 0x15
80
82
#define WM8904_REG_CLOCK_RATE2 0x16
83
85
#define WM8904_REG_AUD_INF0 0x18
86
88
#define WM8904_REG_AUD_INF1 0x19
90
#define WM8904_REG_AUD_INF2 0x1A
92
#define WM8904_REG_AUD_INF3 0x1B
93
95
#define WM8904_REG_ADC_DIG0 0x20
97
#define WM8904_REG_ADC_DIG1 0x21
98
100
#define WM8904_REG_ANALOGUE_LIN0 0x2C
102
#define WM8904_REG_ANALOGUE_RIN0 0x2D
103
105
#define WM8904_REG_ANALOGUE_LIN1 0x2E
107
#define WM8904_REG_ANALOGUE_RIN1 0x2F
108
110
#define WM8904_REG_ANALOGUE_LOUT1 0x39
112
#define WM8904_REG_ANALOGUE_ROUT1 0x3A
113
115
#define WM8904_REG_ANALOGUE_LOUT2 0x3B
117
#define WM8904_REG_ANALOGUE_ROUT2 0x3C
118
120
#define WM8904_REG_ANALOGUE_OUT12ZC 0x3D
121
123
#define WM8904_REG_DC_SERVO0 0x43
124
126
#define WM8904_REG_ANALOGUE_HP0 0x5A
127
129
#define WM8904_REG_CHARGE_PUMP0 0x62
130
132
#define WM8904_REG_CLASS0 0x68
133
135
#define WM8904_REG_FLL_CRTL1 0x74
137
#define WM8904_REG_FLL_CRTL2 0x75
139
#define WM8904_REG_FLL_CRTL3 0x76
141
#define WM8904_REG_FLL_CRTL4 0x77
143
#define WM8904_REG_FLL_CRTL5 0x78
144
146
#define WM8904_REG_END 0xFF
147
148
/*----------------------------------------------------------------------------
149
* Exported functions
150
*----------------------------------------------------------------------------*/
151
152
extern
uint16_t WM8904_Read(Twid *pTwid, uint32_t device, uint32_t regAddr);
153
extern
void
WM8904_Write(Twid *pTwid, uint32_t device, uint32_t regAddr,
154
uint16_t data);
155
extern
uint8_t WM8904_Init(Twid *pTwid, uint32_t device, uint32_t PCK);
156
extern
uint8_t WM8904_VolumeSet(Twid *pTwid, uint32_t device, uint16_t value);
157
extern
void
WM8904_IN2R_IN1L(Twid *pTwid, uint32_t device);
158
#endif
// WM8904_H
159
160
board.h
Generated by
1.18.0