summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bsp/ls1cdev/drivers/drv_spi.c60
1 files changed, 30 insertions, 30 deletions
diff --git a/bsp/ls1cdev/drivers/drv_spi.c b/bsp/ls1cdev/drivers/drv_spi.c
index 4e7012dc74..4b81d55d71 100644
--- a/bsp/ls1cdev/drivers/drv_spi.c
+++ b/bsp/ls1cdev/drivers/drv_spi.c
@@ -19,7 +19,7 @@
*
* Change Logs:
* Date Author Notes
- * 2017-11-02 ���� first version
+ * 2017-11-02 勤为本 first version
* 2018-06-09 zhuangwei add spi0 cs0 support,remove msd_init
*/
@@ -43,14 +43,14 @@ static rt_err_t configure(struct rt_spi_device *device, struct rt_spi_configurat
static rt_uint32_t xfer(struct rt_spi_device *device, struct rt_spi_message *message);
-static struct rt_spi_ops ls1c_spi_ops =
+static struct rt_spi_ops ls1c_spi_ops =
{
.configure = configure,
.xfer = xfer
};
-static rt_err_t configure(struct rt_spi_device *device,
+static rt_err_t configure(struct rt_spi_device *device,
struct rt_spi_configuration *configuration)
{
struct rt_spi_bus *spi_bus = NULL;
@@ -70,28 +70,28 @@ static rt_err_t configure(struct rt_spi_device *device,
spi_base = ls1c_spi_get_base(SPIx);
{
- // ʹ��SPI��������masterģʽ���ر��ж�
+ // 使能SPI控制器,master模式,关闭中断
reg_write_8(0x53, spi_base + LS1C_SPI_SPCR_OFFSET);
- // ���״̬�Ĵ���
+ // 清空状态寄存器
reg_write_8(0xc0, spi_base + LS1C_SPI_SPSR_OFFSET);
- // 1�ֽڲ����жϣ�����(��)�뷢��(д)ʱ��ͬʱ
+ // 1字节产生中断,采样(读)与发送(写)时机同时
reg_write_8(0x03, spi_base + LS1C_SPI_SPER_OFFSET);
- // �ر�SPI flash
+ // 关闭SPI flash
val = reg_read_8(spi_base + LS1C_SPI_SFC_PARAM_OFFSET);
val &= 0xfe;
reg_write_8(val, spi_base + LS1C_SPI_SFC_PARAM_OFFSET);
- // spi flashʱ����ƼĴ���
+ // spi flash时序控制寄存器
reg_write_8(0x05, spi_base + LS1C_SPI_SFC_TIMING_OFFSET);
}
-
+
// baudrate
ls1c_spi_set_clock(spi_base, configuration->max_hz);
- // ����ͨ��ģʽ(ʱ�Ӽ��Ժ���λ)
+ // 设置通信模式(时钟极性和相位)
if (configuration->mode & RT_SPI_CPOL) // cpol
{
cpol = SPI_CPOL_1;
@@ -116,7 +116,7 @@ static rt_err_t configure(struct rt_spi_device *device,
}
-static rt_uint32_t xfer(struct rt_spi_device *device,
+static rt_uint32_t xfer(struct rt_spi_device *device,
struct rt_spi_message *message)
{
struct rt_spi_bus *spi_bus = NULL;
@@ -149,7 +149,7 @@ static rt_uint32_t xfer(struct rt_spi_device *device,
ls1c_spi_set_cs(spi_base, cs, 0);
}
- // �շ�����
+ // 收发数据
send_ptr = message->send_buf;
recv_ptr = message->recv_buf;
while (size--)
@@ -181,7 +181,7 @@ static rt_uint32_t xfer(struct rt_spi_device *device,
#ifdef RT_USING_SPI0
-struct ls1c_spi ls1c_spi0 =
+struct ls1c_spi ls1c_spi0 =
{
.SPIx = LS1C_SPI_0,
};
@@ -191,7 +191,7 @@ static struct rt_spi_bus spi0_bus;
#ifdef RT_USING_SPI1
-struct ls1c_spi ls1c_spi1 =
+struct ls1c_spi ls1c_spi1 =
{
.SPIx = LS1C_SPI_1,
};
@@ -201,10 +201,10 @@ static struct rt_spi_bus spi1_bus;
/*
- * ��ʼ����ע����о1c��spi����
- * @SPI SPI���ߣ�����LS1C_SPI_0�� LS1C_SPI_1
- * @spi_bus_name ��������
- * @ret
+ * 初始化并注册龙芯1c的spi总线
+ * @SPI SPI总线,比如LS1C_SPI_0, LS1C_SPI_1
+ * @spi_bus_name 总线名字
+ * @ret
*/
rt_err_t ls1c_spi_bus_register(rt_uint8_t SPI, const char *spi_bus_name)
{
@@ -237,15 +237,15 @@ int ls1c_hw_spi_init(void)
pin_set_purpose(80, PIN_PURPOSE_OTHER);
pin_set_purpose(83, PIN_PURPOSE_OTHER);//cs2 - SD card
pin_set_purpose(82, PIN_PURPOSE_OTHER);//cs1
- pin_set_purpose(81, PIN_PURPOSE_OTHER);//cs0
-
+ pin_set_purpose(81, PIN_PURPOSE_OTHER);//cs0
+
pin_set_remap(78, PIN_REMAP_DEFAULT);
pin_set_remap(79, PIN_REMAP_DEFAULT);
pin_set_remap(80, PIN_REMAP_DEFAULT);
pin_set_remap(83, PIN_REMAP_DEFAULT);//cs2 - SD card
pin_set_remap(82, PIN_REMAP_DEFAULT);//CS1
pin_set_remap(81, PIN_REMAP_DEFAULT);//cs0
- ls1c_spi_bus_register(LS1C_SPI_0,"spi0");
+ ls1c_spi_bus_register(LS1C_SPI_0, "spi0");
#endif
#ifdef RT_USING_SPI1
@@ -257,7 +257,7 @@ int ls1c_hw_spi_init(void)
pin_set_remap(47, PIN_REMAP_THIRD);
pin_set_remap(48, PIN_REMAP_THIRD);
pin_set_remap(49, PIN_REMAP_THIRD);//CS0 - touch screen
- ls1c_spi_bus_register(LS1C_SPI_1,"spi1");
+ ls1c_spi_bus_register(LS1C_SPI_1, "spi1");
#endif
@@ -265,30 +265,30 @@ int ls1c_hw_spi_init(void)
#ifdef RT_USING_SPI0
/* attach cs */
{
- static struct rt_spi_device spi_device0;
+ static struct rt_spi_device spi_device0;
static struct rt_spi_device spi_device1;
static struct rt_spi_device spi_device2;
- static struct ls1c_spi_cs spi_cs0;
+ static struct ls1c_spi_cs spi_cs0;
static struct ls1c_spi_cs spi_cs1;
static struct ls1c_spi_cs spi_cs2;
/* spi02: CS2 SD Card*/
spi_cs2.cs = LS1C_SPI_CS_2;
- rt_spi_bus_attach_device(&spi_device2, "spi02", "spi0", (void*)&spi_cs2);
+ rt_spi_bus_attach_device(&spi_device2, "spi02", "spi0", (void *)&spi_cs2);
spi_cs1.cs = LS1C_SPI_CS_1;
- rt_spi_bus_attach_device(&spi_device1, "spi01", "spi0", (void*)&spi_cs1);
- spi_cs0.cs = LS1C_SPI_CS_0;
- rt_spi_bus_attach_device(&spi_device0, "spi00", "spi0", (void*)&spi_cs0);
+ rt_spi_bus_attach_device(&spi_device1, "spi01", "spi0", (void *)&spi_cs1);
+ spi_cs0.cs = LS1C_SPI_CS_0;
+ rt_spi_bus_attach_device(&spi_device0, "spi00", "spi0", (void *)&spi_cs0);
}
#endif
-#ifdef RT_USING_SPI1
+#ifdef RT_USING_SPI1
{
static struct rt_spi_device spi_device;
static struct ls1c_spi_cs spi_cs;
/* spi10: CS0 Touch*/
spi_cs.cs = LS1C_SPI_CS_0;
- rt_spi_bus_attach_device(&spi_device, "spi10", "spi1", (void*)&spi_cs);
+ rt_spi_bus_attach_device(&spi_device, "spi10", "spi1", (void *)&spi_cs);
}
#endif
}