summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorflyingcys <[email protected]>2024-05-14 06:20:57 +0800
committerGitHub <[email protected]>2024-05-13 18:20:57 -0400
commitec8ff90a4a2acafffd1e91fa38aaaeb450b5de28 (patch)
treee7ddae4745e7e0b70d78e1184845d909f4aa561c
parent78bdf67ab23a559b5484469a826cfece975d267f (diff)
[bsp/cvitek]update gpio driver (#8946)
update gpio driver
-rwxr-xr-xbsp/cvitek/cv18xx_risc-v/applications/main.c25
-rwxr-xr-xbsp/cvitek/drivers/SConscript4
-rw-r--r--[-rwxr-xr-x]bsp/cvitek/drivers/drv_gpio.c15
3 files changed, 27 insertions, 17 deletions
diff --git a/bsp/cvitek/cv18xx_risc-v/applications/main.c b/bsp/cvitek/cv18xx_risc-v/applications/main.c
index 16417b5d08..4da2afdf63 100755
--- a/bsp/cvitek/cv18xx_risc-v/applications/main.c
+++ b/bsp/cvitek/cv18xx_risc-v/applications/main.c
@@ -10,6 +10,13 @@
#include <rtthread.h>
#include <stdio.h>
+#include <drivers/pin.h>
+
+#if defined(BOARD_TYPE_MILKV_DUO256M) || defined(BOARD_TYPE_MILKV_DUO256M_SPINOR)
+#define LED_PIN "E02" /* Onboard LED pins */
+#elif defined(BOARD_TYPE_MILKV_DUO) || defined(BOARD_TYPE_MILKV_DUO_SPINOR)
+#define LED_PIN "C24" /* Onboard LED pins */
+#endif
int main(void)
{
@@ -18,5 +25,23 @@ int main(void)
#else
rt_kprintf("Hello RISC-V!\n");
#endif
+
+ /* LED pin: C24 */
+ rt_uint16_t led = rt_pin_get(LED_PIN);
+
+ /* set LED pin mode to output */
+ rt_pin_mode(led, PIN_MODE_OUTPUT);
+
+ while (1)
+ {
+ rt_pin_write(led, PIN_HIGH);
+
+ rt_thread_mdelay(500);
+
+ rt_pin_write(led, PIN_LOW);
+
+ rt_thread_mdelay(500);
+ }
+
return 0;
}
diff --git a/bsp/cvitek/drivers/SConscript b/bsp/cvitek/drivers/SConscript
index e5257202a2..96be9b9aa9 100755
--- a/bsp/cvitek/drivers/SConscript
+++ b/bsp/cvitek/drivers/SConscript
@@ -4,6 +4,7 @@ cwd = GetCurrentDir()
src = Split('''
drv_uart.c
drv_por.c
+ drv_gpio.c
''')
CPPDEFINES = []
@@ -18,9 +19,6 @@ elif GetDepend('BOARD_TYPE_MILKV_DUO') or GetDepend('BOARD_TYPE_MILKV_DUO_SPINOR
CPPPATH += [cwd + r'/libraries']
CPPPATH += [cwd + r'/libraries/' + CHIP_TYPE]
-if GetDepend('BSP_USING_CV18XX'):
- src += ['drv_gpio.c']
-
if GetDepend('BSP_USING_I2C'):
src += ['drv_hw_i2c.c']
diff --git a/bsp/cvitek/drivers/drv_gpio.c b/bsp/cvitek/drivers/drv_gpio.c
index f6e6752e98..2d8d5acc2d 100755..100644
--- a/bsp/cvitek/drivers/drv_gpio.c
+++ b/bsp/cvitek/drivers/drv_gpio.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2024, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -29,8 +29,6 @@
#define GPIO_EXT_PORTA 0x50
-#define DWAPB_DRIVER_NAME "gpio-dwapb"
-
#define DWAPB_GPIOA_BASE 0x03020000
#define DWAPB_GPIOE_BASE 0x05021000
@@ -307,17 +305,6 @@ static void rt_hw_gpio_isr(int irqno, void *param)
int rt_hw_gpio_init(void)
{
-#ifdef RT_USING_SMART
-#define BSP_IOREMAP_GPIO_DEVICE(no) \
- rt_ioremap((void *)(DWAPB_GPIOA_BASE + (no) * DWAPB_GPIO_SIZE), DWAPB_GPIO_SIZE);
-
- dwapb_gpio_base = (rt_size_t)BSP_IOREMAP_GPIO_DEVICE(0);
- BSP_IOREMAP_GPIO_DEVICE(1);
- BSP_IOREMAP_GPIO_DEVICE(2);
- BSP_IOREMAP_GPIO_DEVICE(3);
- dwapb_gpio_base_e = (rt_size_t)rt_ioremap((void *)DWAPB_GPIOE_BASE, DWAPB_GPIO_SIZE);
-#endif
-
rt_device_pin_register("gpio", &_dwapb_ops, RT_NULL);
#define INT_INSTALL_GPIO_DEVICE(no) \