From 9871819caff6c810095009b33410a2363ce2b1bd Mon Sep 17 00:00:00 2001 From: heyuanjie87 Date: Fri, 28 Jun 2024 18:36:57 +0800 Subject: [PATCH 1/8] =?UTF-8?q?[bsp/cvitek]rtos=E6=A8=A1=E5=BC=8F=E4=B8=8B?= =?UTF-8?q?=E5=AE=9A=E4=B9=89ioremap=E5=AE=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/cvitek/drivers/drv_ioremap.h | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 bsp/cvitek/drivers/drv_ioremap.h diff --git a/bsp/cvitek/drivers/drv_ioremap.h b/bsp/cvitek/drivers/drv_ioremap.h new file mode 100644 index 00000000000..14c438f92d9 --- /dev/null +++ b/bsp/cvitek/drivers/drv_ioremap.h @@ -0,0 +1,9 @@ +#pragma once + +#include + +#ifdef RT_USING_SMART +#include +#else +#define rt_ioremap(a, s) (a) +#endif From 0dd4cebcdfdf04d95a7dbdd7b3e91624019227fc Mon Sep 17 00:00:00 2001 From: heyuanjie87 Date: Fri, 28 Jun 2024 18:43:17 +0800 Subject: [PATCH 2/8] Create pinctrl.c --- bsp/cvitek/drivers/pinctrl.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 bsp/cvitek/drivers/pinctrl.c diff --git a/bsp/cvitek/drivers/pinctrl.c b/bsp/cvitek/drivers/pinctrl.c new file mode 100644 index 00000000000..3432cc6a40a --- /dev/null +++ b/bsp/cvitek/drivers/pinctrl.c @@ -0,0 +1,14 @@ +#include +#include "drv_ioremap.h" + +static rt_ubase_t pinmux_base = RT_NULL; + +rt_ubase_t pinmux_base_ioremap(void) +{ + if (pinmux_base == RT_NULL) + { + pinmux_base = (rt_size_t)rt_ioremap((void*)0x03001000, 0x1000); + } + + return pinmux_base; +} From e66b6709dd37390874d7406f06b92c60b0a79b38 Mon Sep 17 00:00:00 2001 From: heyuanjie87 Date: Fri, 28 Jun 2024 18:44:27 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=88=B0pinctrl.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/cvitek/cv18xx_aarch64/board/board.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/bsp/cvitek/cv18xx_aarch64/board/board.c b/bsp/cvitek/cv18xx_aarch64/board/board.c index f2edb9b5cb7..3151fd03f6b 100644 --- a/bsp/cvitek/cv18xx_aarch64/board/board.c +++ b/bsp/cvitek/cv18xx_aarch64/board/board.c @@ -89,15 +89,3 @@ void rt_hw_board_init(void) rt_hw_common_setup(); } #endif /* RT_USING_OFW */ - -static rt_ubase_t pinmux_base = RT_NULL; - -rt_ubase_t pinmux_base_ioremap(void) -{ - if (pinmux_base == RT_NULL) - { - pinmux_base = (rt_size_t)rt_ioremap((void*)0x03001000, 0x1000); - } - - return pinmux_base; -} From 1035b88f3b8711e002f7a659b2942b83fddb2f4a Mon Sep 17 00:00:00 2001 From: heyuanjie87 Date: Fri, 28 Jun 2024 18:46:16 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=98=AF=E5=90=A6remap=E7=94=B1pinmux=5Fba?= =?UTF-8?q?se=5Fioremap()=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/cvitek/drivers/libraries/cv181x/pinctrl.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/bsp/cvitek/drivers/libraries/cv181x/pinctrl.h b/bsp/cvitek/drivers/libraries/cv181x/pinctrl.h index 7bec2f2dfbb..fc4c571280e 100644 --- a/bsp/cvitek/drivers/libraries/cv181x/pinctrl.h +++ b/bsp/cvitek/drivers/libraries/cv181x/pinctrl.h @@ -23,12 +23,9 @@ #define PAD_MIPI_TXM0__MIPI_TXM0 0 #define PAD_MIPI_TXP0__MIPI_TXP0 0 -#if defined(ARCH_ARM) extern rt_ubase_t pinmux_base_ioremap(void); #define PINMUX_BASE pinmux_base_ioremap() -#else -#define PINMUX_BASE 0x03001000 -#endif /* defined(ARCH_ARM) */ + #define PINMUX_MASK(PIN_NAME) FMUX_GPIO_FUNCSEL_##PIN_NAME##_MASK #define PINMUX_OFFSET(PIN_NAME) FMUX_GPIO_FUNCSEL_##PIN_NAME##_OFFSET #define PINMUX_VALUE(PIN_NAME, FUNC_NAME) PIN_NAME##__##FUNC_NAME From 9cc9e56d36f451f208bf95d5204e310647c9dddf Mon Sep 17 00:00:00 2001 From: heyuanjie87 Date: Fri, 28 Jun 2024 18:49:50 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E4=BD=BF=E7=94=A8ioremap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/cvitek/drivers/drv_uart.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/bsp/cvitek/drivers/drv_uart.c b/bsp/cvitek/drivers/drv_uart.c index ed482b21426..8b44d2bf530 100644 --- a/bsp/cvitek/drivers/drv_uart.c +++ b/bsp/cvitek/drivers/drv_uart.c @@ -18,6 +18,8 @@ #define DBG_LVL DBG_WARNING #include +#include "drv_ioremap.h" + /* * Divide positive or negative dividend by positive divisor and round * to closest integer. Result is undefined for negative divisors and @@ -252,45 +254,35 @@ int rt_hw_uart_init(void) PINMUX_CONFIG(UART0_RX, UART0_RX); PINMUX_CONFIG(UART0_TX, UART0_TX); BSP_INSTALL_UART_DEVICE(0); -#if defined(ARCH_ARM) uart->hw_base = (rt_size_t)rt_ioremap((void*)uart->hw_base, 0x10000); -#endif /* defined(ARCH_ARM) */ #endif #ifdef RT_USING_UART1 PINMUX_CONFIG(IIC0_SDA, UART1_RX); PINMUX_CONFIG(IIC0_SCL, UART1_TX); BSP_INSTALL_UART_DEVICE(1); -#if defined(ARCH_ARM) uart->hw_base = (rt_size_t)rt_ioremap((void*)uart->hw_base, 0x10000); -#endif /* defined(ARCH_ARM) */ #endif #ifdef RT_USING_UART2 PINMUX_CONFIG(SD1_D1, UART2_RX); PINMUX_CONFIG(SD1_D2, UART2_TX); BSP_INSTALL_UART_DEVICE(2); -#if defined(ARCH_ARM) uart->hw_base = (rt_size_t)rt_ioremap((void*)uart->hw_base, 0x10000); -#endif /* defined(ARCH_ARM) */ #endif #ifdef RT_USING_UART3 PINMUX_CONFIG(SD1_D1, UART3_RX); PINMUX_CONFIG(SD1_D2, UART3_TX); BSP_INSTALL_UART_DEVICE(3); -#if defined(ARCH_ARM) uart->hw_base = (rt_size_t)rt_ioremap((void*)uart->hw_base, 0x10000); -#endif /* defined(ARCH_ARM) */ #endif #ifdef RT_USING_UART4 PINMUX_CONFIG(SD1_GP0, UART4_RX); PINMUX_CONFIG(SD1_GP1, UART4_TX); BSP_INSTALL_UART_DEVICE(4); -#if defined(ARCH_ARM) uart->hw_base = (rt_size_t)rt_ioremap((void*)uart->hw_base, 0x10000); -#endif /* defined(ARCH_ARM) */ #endif return 0; From 36fb2eb06705c1d20de521b64007d905371240e4 Mon Sep 17 00:00:00 2001 From: heyuanjie87 Date: Fri, 28 Jun 2024 18:52:03 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BD=BF=E7=94=A8ioremap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/cvitek/drivers/drv_gpio.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bsp/cvitek/drivers/drv_gpio.c b/bsp/cvitek/drivers/drv_gpio.c index aef6b291d76..2d1b6f86f27 100644 --- a/bsp/cvitek/drivers/drv_gpio.c +++ b/bsp/cvitek/drivers/drv_gpio.c @@ -11,9 +11,7 @@ #include #include #include -#ifdef RT_USING_SMART -#include -#endif +#include "drv_ioremap.h" #ifdef RT_USING_PIN #include "drv_gpio.h" @@ -303,6 +301,9 @@ static void rt_hw_gpio_isr(int irqno, void *param) int rt_hw_gpio_init(void) { + dwapb_gpio_base = (rt_size_t)rt_ioremap((void*)dwapb_gpio_base, 0x10000); + dwapb_gpio_base_e = (rt_size_t)rt_ioremap((void*)dwapb_gpio_base_e, 0x10000); + rt_device_pin_register("gpio", &_dwapb_ops, RT_NULL); #define INT_INSTALL_GPIO_DEVICE(no) \ From c40294cc89fce1be2b3f8751c9f9ff7abe867e70 Mon Sep 17 00:00:00 2001 From: heyuanjie87 Date: Mon, 1 Jul 2024 10:33:32 +0800 Subject: [PATCH 7/8] Update drv_gpio.c --- bsp/cvitek/drivers/drv_gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bsp/cvitek/drivers/drv_gpio.c b/bsp/cvitek/drivers/drv_gpio.c index 2d1b6f86f27..08954260809 100644 --- a/bsp/cvitek/drivers/drv_gpio.c +++ b/bsp/cvitek/drivers/drv_gpio.c @@ -301,8 +301,8 @@ static void rt_hw_gpio_isr(int irqno, void *param) int rt_hw_gpio_init(void) { - dwapb_gpio_base = (rt_size_t)rt_ioremap((void*)dwapb_gpio_base, 0x10000); - dwapb_gpio_base_e = (rt_size_t)rt_ioremap((void*)dwapb_gpio_base_e, 0x10000); + dwapb_gpio_base = (rt_size_t)rt_ioremap((void*)dwapb_gpio_base, DWAPB_GPIO_SIZE); + dwapb_gpio_base_e = (rt_size_t)rt_ioremap((void*)dwapb_gpio_base_e, DWAPB_GPIO_SIZE); rt_device_pin_register("gpio", &_dwapb_ops, RT_NULL); From 1b6ec6989639e91b37178a808994b224093446c3 Mon Sep 17 00:00:00 2001 From: heyuanjie87 Date: Mon, 1 Jul 2024 20:32:51 +0800 Subject: [PATCH 8/8] Update drv_ioremap.h --- bsp/cvitek/drivers/drv_ioremap.h | 1 + 1 file changed, 1 insertion(+) diff --git a/bsp/cvitek/drivers/drv_ioremap.h b/bsp/cvitek/drivers/drv_ioremap.h index 14c438f92d9..81efa92a0af 100644 --- a/bsp/cvitek/drivers/drv_ioremap.h +++ b/bsp/cvitek/drivers/drv_ioremap.h @@ -6,4 +6,5 @@ #include #else #define rt_ioremap(a, s) (a) +#define rt_iounmap(a) #endif