Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
37d6fb62
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
163
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
37d6fb62
编写于
15年前
作者:
S
Sascha Hauer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
i.MX serial: do not use #ifdef CONFIG_ARCH_*
Signed-off-by:
N
Sascha Hauer
<
s.hauer@pengutronix.de
>
上级
ccc1a6f8
无相关合并请求
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
43 deletion
+22
-43
drivers/serial/imx.c
drivers/serial/imx.c
+22
-43
未找到文件。
drivers/serial/imx.c
浏览文件 @
37d6fb62
...
...
@@ -67,21 +67,8 @@
#define UBIR 0xa4
/* BRM Incremental Register */
#define UBMR 0xa8
/* BRM Modulator Register */
#define UBRC 0xac
/* Baud Rate Count Register */
#if defined CONFIG_ARCH_MX3 || defined CONFIG_ARCH_MX2
#define ONEMS 0xb0
/* One Millisecond register */
#define UTS 0xb4
/* UART Test Register */
#endif
#ifdef CONFIG_ARCH_MX1
#define BIPR1 0xb0
/* Incremental Preset Register 1 */
#define BIPR2 0xb4
/* Incremental Preset Register 2 */
#define BIPR3 0xb8
/* Incremental Preset Register 3 */
#define BIPR4 0xbc
/* Incremental Preset Register 4 */
#define BMPR1 0xc0
/* BRM Modulator Register 1 */
#define BMPR2 0xc4
/* BRM Modulator Register 2 */
#define BMPR3 0xc8
/* BRM Modulator Register 3 */
#define BMPR4 0xcc
/* BRM Modulator Register 4 */
#define UTS 0xd0
/* UART Test Register */
#endif
#define MX2_ONEMS 0xb0
/* One Millisecond register */
#define UTS (cpu_is_mx1() ? 0xd0 : 0xb4)
/* UART Test Register */
/* UART Control Register Bit Fields.*/
#define URXD_CHARRDY (1<<15)
...
...
@@ -101,12 +88,7 @@
#define UCR1_RTSDEN (1<<5)
/* RTS delta interrupt enable */
#define UCR1_SNDBRK (1<<4)
/* Send break */
#define UCR1_TDMAEN (1<<3)
/* Transmitter ready DMA enable */
#ifdef CONFIG_ARCH_MX1
#define UCR1_UARTCLKEN (1<<2)
/* UART clock enabled */
#endif
#if defined CONFIG_ARCH_MX3 || defined CONFIG_ARCH_MX2
#define UCR1_UARTCLKEN (0)
/* not present on mx2/mx3 */
#endif
#define MX1_UCR1_UARTCLKEN (1<<2)
/* UART clock enabled, mx1 only */
#define UCR1_DOZE (1<<1)
/* Doze */
#define UCR1_UARTEN (1<<0)
/* UART enabled */
#define UCR2_ESCI (1<<15)
/* Escape seq interrupt enable */
...
...
@@ -132,13 +114,9 @@
#define UCR3_RXDSEN (1<<6)
/* Receive status interrupt enable */
#define UCR3_AIRINTEN (1<<5)
/* Async IR wake interrupt enable */
#define UCR3_AWAKEN (1<<4)
/* Async wake interrupt enable */
#ifdef CONFIG_ARCH_MX1
#define UCR3_REF25 (1<<3)
/* Ref freq 25 MHz, only on mx1 */
#define UCR3_REF30 (1<<2)
/* Ref Freq 30 MHz, only on mx1 */
#endif
#if defined CONFIG_ARCH_MX2 || defined CONFIG_ARCH_MX3
#define UCR3_RXDMUXSEL (1<<2)
/* RXD Muxed Input Select, on mx2/mx3 */
#endif
#define MX1_UCR3_REF25 (1<<3)
/* Ref freq 25 MHz, only on mx1 */
#define MX1_UCR3_REF30 (1<<2)
/* Ref Freq 30 MHz, only on mx1 */
#define MX2_UCR3_RXDMUXSEL (1<<2)
/* RXD Muxed Input Select, on mx2/mx3 */
#define UCR3_INVT (1<<1)
/* Inverted Infrared transmission */
#define UCR3_BPEN (1<<0)
/* Preset registers enable */
#define UCR4_CTSTL_32 (32<<10)
/* CTS trigger level (32 chars) */
...
...
@@ -186,12 +164,10 @@
#define UTS_SOFTRST (1<<0)
/* Software reset */
/* We've been assigned a range on the "Low-density serial ports" major */
#ifdef CONFIG_ARCH_MXC
#define SERIAL_IMX_MAJOR 207
#define MINOR_START 16
#define DEV_NAME "ttymxc"
#define MAX_INTERNAL_IRQ MXC_INTERNAL_IRQS
#endif
/*
* This determines how often we check the modem status signals
...
...
@@ -706,11 +682,11 @@ static int imx_startup(struct uart_port *port)
}
}
#if defined CONFIG_ARCH_MX2 || defined CONFIG_ARCH_MX3
temp
=
readl
(
sport
->
port
.
membase
+
UCR3
);
temp
|=
UCR3_RXDMUXSEL
;
writel
(
temp
,
sport
->
port
.
membase
+
UCR3
);
#endif
if
(
!
cpu_is_mx1
())
{
temp
=
readl
(
sport
->
port
.
membase
+
UCR3
);
temp
|=
MX2_
UCR3_RXDMUXSEL
;
writel
(
temp
,
sport
->
port
.
membase
+
UCR3
);
}
if
(
USE_IRDA
(
sport
))
{
temp
=
readl
(
sport
->
port
.
membase
+
UCR4
);
...
...
@@ -942,9 +918,9 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios,
writel
(
num
,
sport
->
port
.
membase
+
UBIR
);
writel
(
denom
,
sport
->
port
.
membase
+
UBMR
);
#ifdef ONEMS
writel
(
sport
->
port
.
uartclk
/
div
/
1000
,
sport
->
port
.
membase
+
ONEMS
);
#endif
if
(
!
cpu_is_mx1
())
writel
(
sport
->
port
.
uartclk
/
div
/
1000
,
sport
->
port
.
membase
+
MX2_ONEMS
);
writel
(
old_ucr1
,
sport
->
port
.
membase
+
UCR1
);
...
...
@@ -1074,17 +1050,20 @@ static void
imx_console_write
(
struct
console
*
co
,
const
char
*
s
,
unsigned
int
count
)
{
struct
imx_port
*
sport
=
imx_ports
[
co
->
index
];
unsigned
int
old_ucr1
,
old_ucr2
;
unsigned
int
old_ucr1
,
old_ucr2
,
ucr1
;
/*
* First, save UCR1/2 and then disable interrupts
*/
old_ucr1
=
readl
(
sport
->
port
.
membase
+
UCR1
);
ucr1
=
old_ucr1
=
readl
(
sport
->
port
.
membase
+
UCR1
);
old_ucr2
=
readl
(
sport
->
port
.
membase
+
UCR2
);
writel
((
old_ucr1
|
UCR1_UARTCLKEN
|
UCR1_UARTEN
)
&
~
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
|
UCR1_RTSDEN
),
sport
->
port
.
membase
+
UCR1
);
if
(
cpu_is_mx1
())
ucr1
|=
MX1_UCR1_UARTCLKEN
;
ucr1
|=
UCR1_UARTEN
;
ucr1
&=
~
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
|
UCR1_RTSDEN
);
writel
(
ucr1
,
sport
->
port
.
membase
+
UCR1
);
writel
(
old_ucr2
|
UCR2_TXEN
,
sport
->
port
.
membase
+
UCR2
);
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
反馈
建议
客服
返回
顶部