1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
/*
* Copyright (c) 2019-2025 Allwinner Technology Co., Ltd. ALL rights reserved.
*
* Allwinner is a trademark of Allwinner Technology Co.,Ltd., registered in
* the the people's Republic of China and other countries.
* All Allwinner Technology Co.,Ltd. trademarks are used with permission.
*
* DISCLAIMER
* THIRD PARTY LICENCES MAY BE REQUIRED TO IMPLEMENT THE SOLUTION/PRODUCT.
* IF YOU NEED TO INTEGRATE THIRD PARTY’S TECHNOLOGY (SONY, DTS, DOLBY, AVS OR MPEGLA, ETC.)
* IN ALLWINNERS’SDK OR PRODUCTS, YOU SHALL BE SOLELY RESPONSIBLE TO OBTAIN
* ALL APPROPRIATELY REQUIRED THIRD PARTY LICENCES.
* ALLWINNER SHALL HAVE NO WARRANTY, INDEMNITY OR OTHER OBLIGATIONS WITH RESPECT TO MATTERS
* COVERED UNDER ANY REQUIRED THIRD PARTY LICENSE.
* YOU ARE SOLELY RESPONSIBLE FOR YOUR USAGE OF THIRD PARTY’S TECHNOLOGY.
*
*
* THIS SOFTWARE IS PROVIDED BY ALLWINNER"AS IS" AND TO THE MAXIMUM EXTENT
* PERMITTED BY LAW, ALLWINNER EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND,
* WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION REGARDING
* THE TITLE, NON-INFRINGEMENT, ACCURACY, CONDITION, COMPLETENESS, PERFORMANCE
* OR MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
* IN NO EVENT SHALL ALLWINNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS, OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __SUN8IW20_SPDIF_H_
#define __SUN8IW20_SPDIF_H_
#define SUNXI_SPDIF_MEMBASE (0x02036000)
/*add this to surport the spdif receive IEC-61937 data */
#define CONFIG_SND_SUNXI_SPDIF_RX_IEC61937
/*------------------------ CLK CONFIG FOR NORMAL ---------------------------*/
#define SUNXI_SPDIF_CLK_PLL_AUDIO CLK_PLL_AUDIO0
#define SUNXI_SPDIF_CLK_SPDIF CLK_SPDIF_TX
#define SUNXI_SPDIF_CLK_BUS CLK_BUS_SPDIF
#define SUNXI_SPDIF_CLK_RST RST_BUS_SPDIF
#define SUNXI_SPDIF_CLK_PLL_AUDIO1 CLK_PLL_AUDIO1
#define SUNXI_SPDIF_CLK_PLL_AUDIO1_DIV CLK_PLL_AUDIO1_DIV5
#define SUNXI_SPDIF_CLK_SPDIF_RX CLK_SPDIF_RX
/*------------------SPDIF EXP register definition--------------------*/
#define SUNXI_SPDIF_EXP_CTL 0x40
#define SUNXI_SPDIF_EXP_ISTA 0x44
#define SUNXI_SPDIF_EXP_INFO0 0x48
#define SUNXI_SPDIF_EXP_INFO1 0x4C
#define SUNXI_SPDIF_EXP_DBG0 0x50
#define SUNXI_SPDIF_EXP_DBG1 0x54
#define SUNXI_SPDIF_EXP_VER 0x58
/* SUNXI_SPDIF_EXP_CTL register */
#define INSET_DET_NUM 0
#define INSET_DET_EN 8
#define SYNCW_BIT_EN 9
#define DATA_TYPE_BIT_EN 10
#define DATA_LEG_BIT_EN 11
#define AUDIO_DATA_BIT_EN 12
#define RX_MODE 13
#define RX_MODE_MAN 14
#define UNIT_SEL 15
#define RPOTBF_NUM 16
#define BURST_DATA_OUT_SEL 30
/* SUNXI_SPDIF_EXP_ISTA register */
#define INSET_INT 0
#define PAPB_CAP_INT 1
#define PCPD_CAP_INT 2
#define RPDB_ERR_INT 3
#define PC_DTYOE_CH_INT 4
#define PC_ERR_FLAG_INT 5
#define PC_BIT_CH_INT 6
#define PC_PAUSE_STOP_INT 7
#define PD_CHAN_INT 8
#define INSET_INT_EN 16
#define PAPB_CAP_INT_EN 17
#define PCPD_CAP_INT_EN 18
#define RPDB_ERR_INT_EN 19
#define PC_DTYOE_CH_INT_EN 20
#define PC_ERR_FLAG_INT_EN 21
#define PC_BIT_CH_INT_EN 22
#define PC_PAUSE_STOP_INT_EN 23
#define PD_CHAN_INT_EN 24
/* SUNXI_SPDIF_EXP_INFO0 register */
#define PD_DATA_INFO 0
#define PC_DATA_INFO 16
/* SUNXI_SPDIF_EXP_INFO1 register */
#define SAMPLE_RATE_VAL 0
#define RPOTBF_VAL 16
/* SUNXI_SPDIF_EXP_DBG0 register */
#define RE_DATA_COUNT_VAL 0
#define DATA_CAP_STA_MACHE 16
/* SUNXI_SPDIF_EXP_DBG1 register */
#define SAMPLE_RATE_COUNT 0
#define RPOTBF_COUNT 16
/* SUNXI_SPDIF_EXP_VER register */
#define MOD_VER 0
/*------------------------ PIN CONFIG FOR NORMAL ---------------------------*/
/*------------------------ PIN CONFIG FOR FPGA VERIFY -----------------------*/
spdif_gpio_t g_spdif_gpio = {
// .clk = {GPIOB(12), 3},
.out = {GPIOB(6), 2},
.in = {GPIOB(7), 2},
};
#endif /* __SUN8IW20_SPDIF_H_ */
|