Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
c8a6885f
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c8a6885f
编写于
2月 08, 2010
作者:
S
Sascha Hauer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
pca100: add sound support
Signed-off-by:
N
Sascha Hauer
<
s.hauer@pengutronix.de
>
上级
d9e557e5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
48 addition
and
0 deletion
+48
-0
arch/arm/mach-mx2/mach-pca100.c
arch/arm/mach-mx2/mach-pca100.c
+48
-0
未找到文件。
arch/arm/mach-mx2/mach-pca100.c
浏览文件 @
c8a6885f
...
...
@@ -25,6 +25,7 @@
#include <linux/spi/spi.h>
#include <linux/spi/eeprom.h>
#include <linux/irq.h>
#include <linux/delay.h>
#include <linux/gpio.h>
#include <linux/usb/otg.h>
#include <linux/usb/ulpi.h>
...
...
@@ -41,6 +42,8 @@
#include <mach/spi.h>
#endif
#include <mach/imx-uart.h>
#include <mach/audmux.h>
#include <mach/ssi.h>
#include <mach/mxc_nand.h>
#include <mach/irqs.h>
#include <mach/mmc.h>
...
...
@@ -193,6 +196,37 @@ static struct spi_imx_master pca100_spi_0_data = {
};
#endif
static
void
pca100_ac97_warm_reset
(
struct
snd_ac97
*
ac97
)
{
mxc_gpio_mode
(
GPIO_PORTC
|
20
|
GPIO_GPIO
|
GPIO_OUT
);
gpio_set_value
(
GPIO_PORTC
+
20
,
1
);
udelay
(
2
);
gpio_set_value
(
GPIO_PORTC
+
20
,
0
);
mxc_gpio_mode
(
PC20_PF_SSI1_FS
);
msleep
(
2
);
}
static
void
pca100_ac97_cold_reset
(
struct
snd_ac97
*
ac97
)
{
mxc_gpio_mode
(
GPIO_PORTC
|
20
|
GPIO_GPIO
|
GPIO_OUT
);
/* FS */
gpio_set_value
(
GPIO_PORTC
+
20
,
0
);
mxc_gpio_mode
(
GPIO_PORTC
|
22
|
GPIO_GPIO
|
GPIO_OUT
);
/* TX */
gpio_set_value
(
GPIO_PORTC
+
22
,
0
);
mxc_gpio_mode
(
GPIO_PORTC
|
28
|
GPIO_GPIO
|
GPIO_OUT
);
/* reset */
gpio_set_value
(
GPIO_PORTC
+
28
,
0
);
udelay
(
10
);
gpio_set_value
(
GPIO_PORTC
+
28
,
1
);
mxc_gpio_mode
(
PC20_PF_SSI1_FS
);
mxc_gpio_mode
(
PC22_PF_SSI1_TXD
);
msleep
(
2
);
}
static
struct
imx_ssi_platform_data
pca100_ssi_pdata
=
{
.
ac97_reset
=
pca100_ac97_cold_reset
,
.
ac97_warm_reset
=
pca100_ac97_warm_reset
,
.
flags
=
IMX_SSI_USE_AC97
,
};
static
int
pca100_sdhc2_init
(
struct
device
*
dev
,
irq_handler_t
detect_irq
,
void
*
data
)
{
...
...
@@ -266,11 +300,25 @@ static void __init pca100_init(void)
{
int
ret
;
/* SSI unit */
mxc_audmux_v1_configure_port
(
MX27_AUDMUX_HPCR1_SSI0
,
MXC_AUDMUX_V1_PCR_SYN
|
/* 4wire mode */
MXC_AUDMUX_V1_PCR_TFCSEL
(
3
)
|
MXC_AUDMUX_V1_PCR_TCLKDIR
|
/* clock is output */
MXC_AUDMUX_V1_PCR_RXDSEL
(
3
));
mxc_audmux_v1_configure_port
(
3
,
MXC_AUDMUX_V1_PCR_SYN
|
/* 4wire mode */
MXC_AUDMUX_V1_PCR_TFCSEL
(
0
)
|
MXC_AUDMUX_V1_PCR_TFSDIR
|
MXC_AUDMUX_V1_PCR_RXDSEL
(
0
));
ret
=
mxc_gpio_setup_multiple_pins
(
pca100_pins
,
ARRAY_SIZE
(
pca100_pins
),
"PCA100"
);
if
(
ret
)
printk
(
KERN_ERR
"pca100: Failed to setup pins (%d)
\n
"
,
ret
);
mxc_register_device
(
&
imx_ssi_device0
,
&
pca100_ssi_pdata
);
mxc_register_device
(
&
mxc_uart_device0
,
&
uart_pdata
);
mxc_gpio_mode
(
GPIO_PORTC
|
29
|
GPIO_GPIO
|
GPIO_IN
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录