Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Mozi
rt-thread
提交
e7c5fa13
R
rt-thread
项目概览
Mozi
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e7c5fa13
编写于
1月 27, 2019
作者:
B
BalanceTWK
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use astyle to format the drv_pin.c
上级
70738c37
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
272 addition
and
272 deletion
+272
-272
bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.c
bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.c
+272
-272
未找到文件。
bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.c
浏览文件 @
e7c5fa13
...
...
@@ -17,7 +17,7 @@
#ifdef RT_USING_PIN
#if defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL
#error "Please don't define 'FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL'!"
#error "Please don't define 'FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL'!"
#endif
struct
rt1052_pin
...
...
@@ -218,9 +218,9 @@ static struct rt1052_irq rt1052_irq_map[] =
{
PIN_IRQ_DISABLE
,
{
PIN_IRQ_PIN_NONE
,
PIN_IRQ_MODE_RISING
,
RT_NULL
,
RT_NULL
}
}
};
void
gpio_isr
(
GPIO_Type
*
base
,
rt_uint32_t
gpio_pin
)
void
gpio_isr
(
GPIO_Type
*
base
,
rt_uint32_t
gpio_pin
)
{
if
((
GPIO_PortGetInterruptFlags
(
base
)
&
(
1
<<
gpio_pin
))
!=
0
)
if
((
GPIO_PortGetInterruptFlags
(
base
)
&
(
1
<<
gpio_pin
))
!=
0
)
{
GPIO_PortClearInterruptFlags
(
base
,
(
1
<<
gpio_pin
));
...
...
@@ -237,7 +237,7 @@ void GPIO1_Combined_0_15_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
0
;
gpio_pin
<=
15
;
gpio_pin
++
)
for
(
gpio_pin
=
0
;
gpio_pin
<=
15
;
gpio_pin
++
)
{
gpio_isr
(
GPIO1
,
gpio_pin
);
}
...
...
@@ -251,7 +251,7 @@ void GPIO1_Combined_16_31_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
16
;
gpio_pin
<=
31
;
gpio_pin
++
)
for
(
gpio_pin
=
16
;
gpio_pin
<=
31
;
gpio_pin
++
)
{
gpio_isr
(
GPIO1
,
gpio_pin
);
}
...
...
@@ -265,7 +265,7 @@ void GPIO2_Combined_0_15_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
0
;
gpio_pin
<=
15
;
gpio_pin
++
)
for
(
gpio_pin
=
0
;
gpio_pin
<=
15
;
gpio_pin
++
)
{
gpio_isr
(
GPIO2
,
gpio_pin
);
}
...
...
@@ -279,7 +279,7 @@ void GPIO2_Combined_16_31_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
16
;
gpio_pin
<=
31
;
gpio_pin
++
)
for
(
gpio_pin
=
16
;
gpio_pin
<=
31
;
gpio_pin
++
)
{
gpio_isr
(
GPIO2
,
gpio_pin
);
}
...
...
@@ -293,7 +293,7 @@ void GPIO3_Combined_0_15_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
0
;
gpio_pin
<=
15
;
gpio_pin
++
)
for
(
gpio_pin
=
0
;
gpio_pin
<=
15
;
gpio_pin
++
)
{
gpio_isr
(
GPIO3
,
gpio_pin
);
}
...
...
@@ -307,7 +307,7 @@ void GPIO3_Combined_16_31_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
16
;
gpio_pin
<=
31
;
gpio_pin
++
)
for
(
gpio_pin
=
16
;
gpio_pin
<=
31
;
gpio_pin
++
)
{
gpio_isr
(
GPIO3
,
gpio_pin
);
}
...
...
@@ -321,7 +321,7 @@ void GPIO4_Combined_0_15_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
0
;
gpio_pin
<=
15
;
gpio_pin
++
)
for
(
gpio_pin
=
0
;
gpio_pin
<=
15
;
gpio_pin
++
)
{
gpio_isr
(
GPIO4
,
gpio_pin
);
}
...
...
@@ -334,7 +334,7 @@ void GPIO4_Combined_16_31_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
16
;
gpio_pin
<=
31
;
gpio_pin
++
)
for
(
gpio_pin
=
16
;
gpio_pin
<=
31
;
gpio_pin
++
)
{
gpio_isr
(
GPIO4
,
gpio_pin
);
}
...
...
@@ -348,7 +348,7 @@ void GPIO5_Combined_0_15_IRQHandler(void)
rt_interrupt_enter
();
for
(
gpio_pin
=
0
;
gpio_pin
<=
2
;
gpio_pin
++
)
for
(
gpio_pin
=
0
;
gpio_pin
<=
2
;
gpio_pin
++
)
{
gpio_isr
(
GPIO5
,
gpio_pin
);
}
...
...
@@ -360,9 +360,9 @@ static IRQn_Type rt1052_get_irqnum(GPIO_Type *gpio, rt_uint32_t gpio_pin)
{
IRQn_Type
irq_num
=
NotAvail_IRQn
;
/* Invalid interrupt number */
if
(
gpio
==
GPIO1
)
if
(
gpio
==
GPIO1
)
{
if
(
gpio_pin
<=
15
)
if
(
gpio_pin
<=
15
)
{
irq_num
=
GPIO1_Combined_0_15_IRQn
;
}
...
...
@@ -371,9 +371,9 @@ static IRQn_Type rt1052_get_irqnum(GPIO_Type *gpio, rt_uint32_t gpio_pin)
irq_num
=
GPIO1_Combined_16_31_IRQn
;
}
}
else
if
(
gpio
==
GPIO2
)
else
if
(
gpio
==
GPIO2
)
{
if
(
gpio_pin
<=
15
)
if
(
gpio_pin
<=
15
)
{
irq_num
=
GPIO2_Combined_0_15_IRQn
;
}
...
...
@@ -382,9 +382,9 @@ static IRQn_Type rt1052_get_irqnum(GPIO_Type *gpio, rt_uint32_t gpio_pin)
irq_num
=
GPIO2_Combined_16_31_IRQn
;
}
}
else
if
(
gpio
==
GPIO3
)
else
if
(
gpio
==
GPIO3
)
{
if
(
gpio_pin
<=
15
)
if
(
gpio_pin
<=
15
)
{
irq_num
=
GPIO3_Combined_0_15_IRQn
;
}
...
...
@@ -393,9 +393,9 @@ static IRQn_Type rt1052_get_irqnum(GPIO_Type *gpio, rt_uint32_t gpio_pin)
irq_num
=
GPIO3_Combined_16_31_IRQn
;
}
}
else
if
(
gpio
==
GPIO4
)
else
if
(
gpio
==
GPIO4
)
{
if
(
gpio_pin
<=
15
)
if
(
gpio_pin
<=
15
)
{
irq_num
=
GPIO4_Combined_0_15_IRQn
;
}
...
...
@@ -404,9 +404,9 @@ static IRQn_Type rt1052_get_irqnum(GPIO_Type *gpio, rt_uint32_t gpio_pin)
irq_num
=
GPIO4_Combined_16_31_IRQn
;
}
}
else
if
(
gpio
==
GPIO5
)
else
if
(
gpio
==
GPIO5
)
{
if
(
gpio_pin
<=
15
)
if
(
gpio_pin
<=
15
)
{
irq_num
=
GPIO5_Combined_0_15_IRQn
;
}
...
...
@@ -424,26 +424,26 @@ static void rt1052_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
gpio_pin_config_t
gpio
;
rt_uint32_t
config_value
=
0
;
if
((
pin
>
__ARRAY_LEN
(
rt1052_pin_map
))
||
(
pin
==
0
))
if
((
pin
>
__ARRAY_LEN
(
rt1052_pin_map
))
||
(
pin
==
0
))
{
return
;
}
if
(
rt1052_pin_map
[
pin
].
gpio
!=
GPIO5
)
if
(
rt1052_pin_map
[
pin
].
gpio
!=
GPIO5
)
{
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
0x401F8010U
+
pin
*
4
,
0x5U
,
0
,
0
,
0
,
1
);
IOMUXC_SetPinMux
(
0x401F8010U
+
pin
*
4
,
0x5U
,
0
,
0
,
0
,
1
);
}
else
{
CLOCK_EnableClock
(
kCLOCK_IomuxcSnvs
);
IOMUXC_SetPinMux
(
0x400A8000U
+
(
pin
-
125
)
*
4
,
0x5U
,
0
,
0
,
0
,
1
);
IOMUXC_SetPinMux
(
0x400A8000U
+
(
pin
-
125
)
*
4
,
0x5U
,
0
,
0
,
0
,
1
);
}
gpio
.
outputLogic
=
0
;
gpio
.
interruptMode
=
kGPIO_NoIntmode
;
switch
(
mode
)
switch
(
mode
)
{
case
PIN_MODE_OUTPUT
:
{
...
...
@@ -481,13 +481,13 @@ static void rt1052_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
break
;
}
if
(
rt1052_pin_map
[
pin
].
gpio
!=
GPIO5
)
if
(
rt1052_pin_map
[
pin
].
gpio
!=
GPIO5
)
{
IOMUXC_SetPinConfig
(
0
,
0
,
0
,
0
,
0x401F8200U
+
pin
*
4
,
config_value
);
IOMUXC_SetPinConfig
(
0
,
0
,
0
,
0
,
0x401F8200U
+
pin
*
4
,
config_value
);
}
else
{
IOMUXC_SetPinConfig
(
0
,
0
,
0
,
0
,
0x400A8018U
+
(
pin
-
125
)
*
4
,
config_value
);
IOMUXC_SetPinConfig
(
0
,
0
,
0
,
0
,
0x400A8018U
+
(
pin
-
125
)
*
4
,
config_value
);
}
GPIO_PinInit
(
rt1052_pin_map
[
pin
].
gpio
,
rt1052_pin_map
[
pin
].
gpio_pin
,
&
gpio
);
...
...
@@ -506,18 +506,18 @@ static void rt1052_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value)
static
rt_err_t
rt1052_pin_attach_irq
(
struct
rt_device
*
device
,
rt_int32_t
pin
,
rt_uint32_t
mode
,
void
(
*
hdr
)(
void
*
args
),
void
*
args
)
{
struct
rt1052_pin
*
pin_map
=
RT_NULL
;
struct
rt1052_irq
*
irq_map
=
RT_NULL
;
struct
rt1052_pin
*
pin_map
=
RT_NULL
;
struct
rt1052_irq
*
irq_map
=
RT_NULL
;
pin_map
=
&
rt1052_pin_map
[
pin
];
irq_map
=
&
rt1052_irq_map
[
rt1052_pin_map
[
pin
].
gpio_pin
];
if
(
pin_map
==
RT_NULL
||
irq_map
==
RT_NULL
)
if
(
pin_map
==
RT_NULL
||
irq_map
==
RT_NULL
)
{
return
RT_ENOSYS
;
}
if
(
irq_map
->
enable
==
PIN_IRQ_ENABLE
)
if
(
irq_map
->
enable
==
PIN_IRQ_ENABLE
)
{
return
RT_EBUSY
;
}
...
...
@@ -532,18 +532,18 @@ static rt_err_t rt1052_pin_attach_irq(struct rt_device *device, rt_int32_t pin,
static
rt_err_t
rt1052_pin_detach_irq
(
struct
rt_device
*
device
,
rt_int32_t
pin
)
{
struct
rt1052_pin
*
pin_map
=
RT_NULL
;
struct
rt1052_irq
*
irq_map
=
RT_NULL
;
struct
rt1052_pin
*
pin_map
=
RT_NULL
;
struct
rt1052_irq
*
irq_map
=
RT_NULL
;
pin_map
=
&
rt1052_pin_map
[
pin
];
irq_map
=
&
rt1052_irq_map
[
rt1052_pin_map
[
pin
].
gpio_pin
];
if
(
pin_map
==
RT_NULL
||
irq_map
==
RT_NULL
)
if
(
pin_map
==
RT_NULL
||
irq_map
==
RT_NULL
)
{
return
RT_ENOSYS
;
}
if
(
irq_map
->
enable
==
PIN_IRQ_DISABLE
)
if
(
irq_map
->
enable
==
PIN_IRQ_DISABLE
)
{
return
RT_EOK
;
}
...
...
@@ -572,21 +572,21 @@ static rt_err_t rt1052_pin_irq_enable(struct rt_device *device, rt_base_t pin, r
return
RT_ENOSYS
;
}
if
(
enabled
==
PIN_IRQ_ENABLE
)
if
(
enabled
==
PIN_IRQ_ENABLE
)
{
if
(
irq_map
->
enable
==
PIN_IRQ_ENABLE
)
if
(
irq_map
->
enable
==
PIN_IRQ_ENABLE
)
{
return
RT_EBUSY
;
}
if
(
irq_map
->
irq_info
.
pin
!=
pin
)
if
(
irq_map
->
irq_info
.
pin
!=
pin
)
{
return
RT_EIO
;
}
irq_map
->
enable
=
PIN_IRQ_ENABLE
;
if
(
rt1052_pin_map
[
pin
].
gpio
!=
GPIO5
)
if
(
rt1052_pin_map
[
pin
].
gpio
!=
GPIO5
)
{
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
0x401F8010U
+
pin
*
4
,
0x5U
,
0
,
0
,
0
,
1
);
...
...
@@ -600,7 +600,7 @@ static rt_err_t rt1052_pin_irq_enable(struct rt_device *device, rt_base_t pin, r
gpio
.
direction
=
kGPIO_DigitalInput
;
gpio
.
outputLogic
=
0
;
switch
(
irq_map
->
irq_info
.
mode
)
switch
(
irq_map
->
irq_info
.
mode
)
{
case
PIN_IRQ_MODE_RISING
:
{
...
...
@@ -638,13 +638,13 @@ static rt_err_t rt1052_pin_irq_enable(struct rt_device *device, rt_base_t pin, r
break
;
}
if
(
rt1052_pin_map
[
pin
].
gpio
!=
GPIO5
)
if
(
rt1052_pin_map
[
pin
].
gpio
!=
GPIO5
)
{
IOMUXC_SetPinConfig
(
0
,
0
,
0
,
0
,
0x401F8200U
+
pin
*
4
,
config_value
);
IOMUXC_SetPinConfig
(
0
,
0
,
0
,
0
,
0x401F8200U
+
pin
*
4
,
config_value
);
}
else
{
IOMUXC_SetPinConfig
(
0
,
0
,
0
,
0
,
0x400A8018U
+
(
pin
-
125
)
*
4
,
config_value
);
IOMUXC_SetPinConfig
(
0
,
0
,
0
,
0
,
0x400A8018U
+
(
pin
-
125
)
*
4
,
config_value
);
}
irq_num
=
rt1052_get_irqnum
(
rt1052_pin_map
[
pin
].
gpio
,
rt1052_pin_map
[
pin
].
gpio_pin
);
...
...
@@ -655,9 +655,9 @@ static rt_err_t rt1052_pin_irq_enable(struct rt_device *device, rt_base_t pin, r
GPIO_PinInit
(
rt1052_pin_map
[
pin
].
gpio
,
rt1052_pin_map
[
pin
].
gpio_pin
,
&
gpio
);
GPIO_PortEnableInterrupts
(
rt1052_pin_map
[
pin
].
gpio
,
1U
<<
rt1052_pin_map
[
pin
].
gpio_pin
);
}
else
if
(
enabled
==
PIN_IRQ_DISABLE
)
else
if
(
enabled
==
PIN_IRQ_DISABLE
)
{
if
(
irq_map
->
enable
==
PIN_IRQ_DISABLE
)
if
(
irq_map
->
enable
==
PIN_IRQ_DISABLE
)
{
return
RT_EOK
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录