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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*******************************************************************************
*
* Filename:
* ---------
* auddrv_devtree_parser.h
*
* Project:
* --------
* devtree config parser
*
* Description:
* ------------
* devtree config parser
*
* Author:
* -------
* Chipeng Chang
*
*------------------------------------------------------------------------------
* $Revision: #1 $
* $Modtime:$
* $Log:$
*
*
*******************************************************************************/
#ifndef _MT_AUDDRV_DEVTREE_PARSER_H_
#define _MT_AUDDRV_DEVTREE_PARSER_H_
#ifdef CONFIG_OF
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/of_address.h>
#endif
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/slab.h>
#include <linux/fs.h>
#include <linux/completion.h>
#include <linux/mm.h>
#include <linux/delay.h>
#include <linux/vmalloc.h>
#include <linux/wait.h>
#include <linux/sched.h>
#include <linux/semaphore.h>
#include <linux/jiffies.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/mutex.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <linux/module.h>
#define AUDDRV_I2S0_MCLKGPIO "i2s0mclk-gpio"
#define AUDDRV_I2S0_CLKGPIO "i2s0clk-gpio"
#define AUDDRV_I2S0_WSGPIO "i2s0ws-gpio"
#define AUDDRV_I2S0_DATGPIO "i2s0dat-gpio"
#define AUDDRV_I2S0_DAT1GPIO "i2s0dat1-gpio"
#define AUDDRV_I2S0_DATAINGPIO "i2s0datain-gpio"
#define AUDDRV_I2S1_MCLKGPIO "i2s1mclk-gpio"
#define AUDDRV_I2S1_CLKGPIO "i2s1clk-gpio"
#define AUDDRV_I2S1_WSGPIO "i2s1ws-gpio"
#define AUDDRV_I2S1_DATGPIO "i2s1dat-gpio"
#define AUDDRV_I2S1_DAT1GPIO "i2s1dat1-gpio"
#define AUDDRV_I2S2_MCLKGPIO "i2s2mclk-gpio"
#define AUDDRV_I2S2_CLKGPIO "i2s2clk-gpio"
#define AUDDRV_I2S2_WSGPIO "i2s2ws-gpio"
#define AUDDRV_I2S2_DATGPIO "i2s2dat-gpio"
#define AUDDRV_I2S2_DAT1GPIO "i2s2dat1-gpio"
#define AUDDRV_I2S3_MCLKGPIO "i2s3mclk-gpio"
#define AUDDRV_I2S3_CLKGPIO "i2s3clk-gpio"
#define AUDDRV_I2S3_WSGPIO "i2s3ws-gpio"
#define AUDDRV_I2S3_DATGPIO "i2s3dat-gpio"
#define AUDDRV_I2S3_DAT1GPIO "i2s3dat1-gpio"
#define AUDDRV_AUD_CLKGPIO "audclk-gpio"
#define AUDDRV_AUD_DATIGPIO "audmosi-gpio"
#define AUDDRV_AUD_DATOGPIO "audmopi-gpio"
enum Auddrv_I2S_NUMBER
{
Auddrv_I2S0_Setting=0,
Auddrv_I2S1_Setting,
Auddrv_I2S2_Setting,
Auddrv_I2S3_Setting,
Auddrv_I2S_Num,
};
enum Auddrv_I2S_Setting
{
Auddrv_I2S_Setting_ws =0,
Auddrv_I2S_Setting_bck,
Auddrv_I2S_Setting_D00,
Auddrv_I2S_Setting_D01,
Auddrv_I2S_Setting_I00,
Auddrv_I2S_Setting_I01,
Auddrv_I2S_Setting_Mclk,
Auddrv_I2S_Attribute_Num
};
enum Auddrv_CLK_Setting
{
Auddrv_CLK_Mosi = 0 ,
Auddrv_DataIn1_Mosi ,
Auddrv_DataOut1_Mosi ,
Auddrv_Attribute_num ,
};
typedef struct
{
unsigned int Gpio_Number;
unsigned int Gpio_Mode;
} AUDDRV_I2S_ATTRIBUTE;
void Auddrv_Devtree_Init(void);
void Auddrv_DevTree_I2S_Setting(const char *DevTreeName);
void Auddrv_Devtree_Dump(void);
AUDDRV_I2S_ATTRIBUTE *GetI2SSetting(uint32_t I2S_Number, uint32_t I2S_Setting);
#endif
|