Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2301_77017786
rt-thread
提交
93361c31
R
rt-thread
项目概览
2301_77017786
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
93361c31
编写于
4月 07, 2023
作者:
Y
Yaochenger
提交者:
GitHub
4月 07, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[RT1060][SPI]完善SPI支持,完善SPI对RW007的支持 (#7193)
* [RT1060][SPI]添加SPI支持,并完善RW007支持
上级
2352d3e3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
61 addition
and
1 deletion
+61
-1
bsp/imxrt/imxrt1060-nxp-evk/board/Kconfig
bsp/imxrt/imxrt1060-nxp-evk/board/Kconfig
+36
-0
bsp/imxrt/imxrt1060-nxp-evk/board/board.c
bsp/imxrt/imxrt1060-nxp-evk/board/board.c
+18
-0
bsp/imxrt/libraries/drivers/drv_spi.c
bsp/imxrt/libraries/drivers/drv_spi.c
+7
-1
未找到文件。
bsp/imxrt/imxrt1060-nxp-evk/board/Kconfig
浏览文件 @
93361c31
...
...
@@ -164,6 +164,10 @@ endmenu
menu "On-chip Peripheral Drivers"
config BSP_USING_DMA
bool "Enable DMA"
default n
config BSP_USING_GPIO
bool "Enable GPIO"
select RT_USING_PIN
...
...
@@ -254,6 +258,38 @@ menu "On-chip Peripheral Drivers"
default n
endif
menuconfig BSP_USING_SPI
bool "Enable SPI"
select RT_USING_SPI
select RT_USING_PIN
default n
if BSP_USING_SPI
config BSP_USING_SPI1
bool "Enable SPI1"
default n
config BSP_USING_BLOCKING_SPI
bool "Enable SPI Polling xfer"
default n
config BSP_SPI1_USING_DMA
bool "Enable SPI1 DMA xfer"
depends on BSP_USING_SPI1
select BSP_USING_DMA
default n
config BSP_SPI1_RX_DMA_CHANNEL
depends on BSP_SPI1_USING_DMA
int "Set SPI1 RX DMA channel (0-32)"
default 0
config BSP_SPI1_TX_DMA_CHANNEL
depends on BSP_SPI1_USING_DMA
int "Set SPI1 TX DMA channel (0-32)"
default 1
endif
config BSP_USING_PXP
bool "Enable PXP"
default n
...
...
bsp/imxrt/imxrt1060-nxp-evk/board/board.c
浏览文件 @
93361c31
...
...
@@ -211,6 +211,20 @@ void imxrt_dma_init(void)
}
#endif
#ifdef BSP_USING_SPI
void
imxrt_spi_pins_init
(
void
)
{
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_SD_B0_00_LPSPI1_SCK
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_SD_B0_02_LPSPI1_SDO
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_SD_B0_03_LPSPI1_SDI
,
0U
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_SD_B0_00_LPSPI1_SCK
,
0x10B0
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_SD_B0_02_LPSPI1_SDO
,
0x10B0
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_SD_B0_03_LPSPI1_SDI
,
0x10B0
);
}
#endif
#ifdef BSP_USING_LPUART
void
imxrt_uart_pins_init
(
void
)
{
...
...
@@ -1211,6 +1225,10 @@ void rt_hw_board_init()
rt_system_heap_init
((
void
*
)
HEAP_BEGIN
,
(
void
*
)
HEAP_END
);
#endif
#ifdef BSP_USING_SPI
imxrt_spi_pins_init
();
#endif
#ifdef RT_USING_COMPONENTS_INIT
rt_components_board_init
();
#endif
...
...
bsp/imxrt/libraries/drivers/drv_spi.c
浏览文件 @
93361c31
...
...
@@ -246,6 +246,7 @@ static void lpspi_normal_config(struct imxrt_spi *spi)
static
void
lpspi_dma_config
(
struct
imxrt_spi
*
spi
)
{
#ifdef BSP_USING_DMA
RT_ASSERT
(
spi
!=
RT_NULL
);
DMAMUX_SetSource
(
DMAMUX
,
spi
->
dma
->
rx_channel
,
spi
->
dma
->
rx_request
);
...
...
@@ -264,6 +265,7 @@ static void lpspi_dma_config(struct imxrt_spi *spi)
&
spi
->
dma
->
tx_edma
);
LOG_D
(
"%s dma config done
\n
"
,
spi
->
bus_name
);
#endif
}
static
rt_err_t
spi_configure
(
struct
rt_spi_device
*
device
,
struct
rt_spi_configuration
*
cfg
)
...
...
@@ -362,13 +364,16 @@ static rt_uint32_t spixfer(struct rt_spi_device *device, struct rt_spi_message *
{
#ifdef BSP_USING_BLOCKING_SPI
status
=
LPSPI_MasterTransferBlocking
(
spi
->
base
,
&
transfer
);
rt_sem_release
(
spi
->
xfer_sem
);
#else
status
=
LPSPI_MasterTransferNonBlocking
(
spi
->
base
,
&
spi
->
spi_normal
,
&
transfer
);
#endif
}
else
{
#ifdef BSP_USING_DMA
status
=
LPSPI_MasterTransferEDMA
(
spi
->
base
,
&
spi
->
dma
->
spi_edma
,
&
transfer
);
#endif
}
rt_sem_take
(
spi
->
xfer_sem
,
RT_WAITING_FOREVER
);
...
...
@@ -404,7 +409,7 @@ int rt_hw_spi_bus_init(void)
lpspis
[
i
].
spi_bus
.
parent
.
user_data
=
&
lpspis
[
i
];
ret
=
rt_spi_bus_register
(
&
lpspis
[
i
].
spi_bus
,
lpspis
[
i
].
bus_name
,
&
imxrt_spi_ops
);
#ifndef BSP_USING_BLOCKING_SPI
if
(
RT_TRUE
==
lpspis
[
i
].
dma_flag
)
{
lpspi_dma_config
(
&
lpspis
[
i
]);
...
...
@@ -413,6 +418,7 @@ int rt_hw_spi_bus_init(void)
{
lpspi_normal_config
(
&
lpspis
[
i
]);
}
#endif
char
sem_name
[
RT_NAME_MAX
];
rt_sprintf
(
sem_name
,
"%s_s"
,
lpspis
[
i
].
bus_name
);
lpspis
[
i
].
xfer_sem
=
rt_sem_create
(
sem_name
,
0
,
RT_IPC_FLAG_PRIO
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录