Skip to content

Commit 3790881

Browse files
authored
fix GPIO and SCI drivers for RZ series (#9908)
fix gpio and sci drivers for RZ series
1 parent da6c62c commit 3790881

File tree

17 files changed

+55
-52
lines changed

17 files changed

+55
-52
lines changed

bsp/renesas/ebf_qi_min_6m5/.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
10191019
# Uncategorized
10201020
#
10211021
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
1022-
CONFIG_SOC_FAMILY_RENESAS=y
1022+
CONFIG_SOC_FAMILY_RENESAS_RA=y
10231023
# CONFIG_SOC_SERIES_R7FA6M3 is not set
10241024
# CONFIG_SOC_SERIES_R7FA6M4 is not set
10251025
# CONFIG_SOC_SERIES_R7FA2L1 is not set

bsp/renesas/libraries/HAL_Drivers/drv_gpio.c

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* Date Author Notes
88
* 2021-07-29 KyleChan first version
99
* 2022-01-19 Sherman add PIN2IRQX_TABLE
10+
* 2025-01-13 newflydd pin_get for RZ
1011
*/
1112

1213
#include <drv_gpio.h>
@@ -304,37 +305,31 @@ static rt_err_t ra_pin_dettach_irq(struct rt_device *device, rt_base_t pin)
304305

305306
static rt_base_t ra_pin_get(const char *name)
306307
{
307-
int pin_number = -1, port = -1, pin = -1;
308-
309-
if (rt_strlen(name) != 4)
310-
return -1;
311-
312-
if ((name[0] == 'P' || name[0] == 'p'))
308+
#ifdef SOC_FAMILY_RENESAS_RZ
309+
/* RZ series: use "PXX_X" format, like "P01_1" */
310+
if ((rt_strlen(name) == 5) &&
311+
((name[0] == 'P') || (name[0] == 'p')) &&
312+
(name[3] == '_') &&
313+
('0' <= (int) name[1] && (int) name[1] <= '1') &&
314+
('0' <= (int) name[2] && (int) name[2] <= '9') &&
315+
('0' <= (int) name[4] && (int) name[4] <= '7'))
313316
{
314-
if ('0' <= name[1] && name[1] <= '9')
315-
{
316-
port = (name[1] - '0') * 16 * 16;
317-
if ('0' <= name[2] && name[2] <= '9' && '0' <= name[3] && name[3] <= '9')
318-
{
319-
pin = (name[2] - '0') * 10 + (name[3] - '0');
320-
pin_number = port + pin;
321-
322-
return pin_number;
323-
}
324-
}
325-
else if ('A' <= name[1] && name[1] <= 'Z')
326-
{
327-
port = (name[1] - '0' - 7) * 16 * 16;
328-
if ('0' <= name[2] && name[2] <= '9' && '0' <= name[3] && name[3] <= '9')
329-
{
330-
pin = (name[2] - '0') * 10 + (name[3] - '0');
331-
pin_number = port + pin;
332-
333-
return pin_number;
334-
}
335-
}
317+
return (((int) name[1] - '0') * 10 + ((int) name[2] - '0')) * 0x100 + ((int) name[4] - '0');
318+
}
319+
LOG_W("Invalid pin expression, use `PXX_X` format like `P01_1`");
320+
#else
321+
/* RA series: use "PXXX" format, like "P101"*/
322+
if ((rt_strlen(name) == 4) &&
323+
(name[0] == 'P' || name[0] == 'p') &&
324+
(name[1] >= '0' && name[1] <= '9') &&
325+
(name[2] >= '0' && name[1] <= '9') &&
326+
(name[3] >= '0' && name[1] <= '9'))
327+
{
328+
return (name[1] - '0') * 0x100 + (name[2] - '0') * 10 + (name[3] - '0');
336329
}
337-
return -1;
330+
LOG_W("Invalid pin expression, use `PXXX` format like `P101`");
331+
#endif
332+
return -RT_ERROR;
338333
}
339334

340335
const static struct rt_pin_ops _ra_pin_ops =

bsp/renesas/libraries/HAL_Drivers/drv_sci.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,11 @@ static int ra_uart_putc(struct rt_serial_device *serial, char c)
358358
sci_uart_instance_ctrl_t *p_ctrl = (sci_uart_instance_ctrl_t *)param->sci_ctrl;
359359

360360
p_ctrl->p_reg->TDR = c;
361+
#ifdef SOC_SERIES_R9A07G0
362+
while ((p_ctrl->p_reg->CSR_b.TEND) == 0);
363+
#else
361364
while ((p_ctrl->p_reg->SSR_b.TEND) == 0);
365+
#endif
362366

363367
return RT_EOK;
364368
}

bsp/renesas/libraries/Kconfig

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,56 @@
11

2-
config SOC_FAMILY_RENESAS
2+
config SOC_FAMILY_RENESAS_RA
3+
bool
4+
default n
5+
6+
config SOC_FAMILY_RENESAS_RZ
37
bool
48
default n
59

610
config SOC_SERIES_R7FA6M3
711
bool
812
select ARCH_ARM_CORTEX_M4
9-
select SOC_FAMILY_RENESAS
13+
select SOC_FAMILY_RENESAS_RA
1014
default n
1115

1216
config SOC_SERIES_R7FA6M4
1317
bool
1418
select ARCH_ARM_CORTEX_M4
15-
select SOC_FAMILY_RENESAS
19+
select SOC_FAMILY_RENESAS_RA
1620
default n
1721

1822
config SOC_SERIES_R7FA2L1
1923
bool
2024
select ARCH_ARM_CORTEX_M23
21-
select SOC_FAMILY_RENESAS
25+
select SOC_FAMILY_RENESAS_RA
2226
default n
2327

2428
config SOC_SERIES_R7FA6M5
2529
bool
2630
select ARCH_ARM_CORTEX_M33
27-
select SOC_FAMILY_RENESAS
31+
select SOC_FAMILY_RENESAS_RA
2832
default n
2933

3034
config SOC_SERIES_R7FA4M2
3135
bool
3236
select ARCH_ARM_CORTEX_M4
33-
select SOC_FAMILY_RENESAS
37+
select SOC_FAMILY_RENESAS_RA
3438
default n
3539

3640
config SOC_SERIES_R7FA8M85
3741
bool
3842
select ARCH_ARM_CORTEX_M85
39-
select SOC_FAMILY_RENESAS
43+
select SOC_FAMILY_RENESAS_RA
4044
default n
4145

4246
config SOC_SERIES_R9A07G0
4347
bool
4448
select ARCH_ARM_CORTEX_R52
45-
select SOC_FAMILY_RENESAS
49+
select SOC_FAMILY_RENESAS_RZ
4650
default n
4751

4852
config SOC_SERIES_R7FA6E2
4953
bool
5054
select ARCH_ARM_CORTEX_M33
51-
select SOC_FAMILY_RENESAS
55+
select SOC_FAMILY_RENESAS_RA
5256
default n

bsp/renesas/libraries/bsp-template/.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ CONFIG_SOC_R7FA6M4AF=y
657657
#
658658
# On-chip Peripheral Drivers
659659
#
660-
CONFIG_SOC_FAMILY_RENESAS=y
660+
CONFIG_SOC_FAMILY_RENESAS_RA=y
661661
CONFIG_SOC_SERIES_R7FA6M4=y
662662
CONFIG_BSP_USING_GPIO=y
663663
# CONFIG_BSP_USING_ONCHIP_FLASH is not set

bsp/renesas/ra2l1-cpk/.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1035,7 +1035,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
10351035
# Uncategorized
10361036
#
10371037
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
1038-
CONFIG_SOC_FAMILY_RENESAS=y
1038+
CONFIG_SOC_FAMILY_RENESAS_RA=y
10391039
# CONFIG_SOC_SERIES_R7FA6M3 is not set
10401040
# CONFIG_SOC_SERIES_R7FA6M4 is not set
10411041
CONFIG_SOC_SERIES_R7FA2L1=y

bsp/renesas/ra4m2-eco/.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1036,7 +1036,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
10361036
# Uncategorized
10371037
#
10381038
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
1039-
CONFIG_SOC_FAMILY_RENESAS=y
1039+
CONFIG_SOC_FAMILY_RENESAS_RA=y
10401040
# CONFIG_SOC_SERIES_R7FA6M3 is not set
10411041
# CONFIG_SOC_SERIES_R7FA6M4 is not set
10421042
# CONFIG_SOC_SERIES_R7FA2L1 is not set

bsp/renesas/ra6e2-fpb/.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1153,7 +1153,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
11531153
# end of Arduino libraries
11541154
# end of RT-Thread online packages
11551155

1156-
CONFIG_SOC_FAMILY_RENESAS=y
1156+
CONFIG_SOC_FAMILY_RENESAS_RA=y
11571157
CONFIG_SOC_SERIES_R7FA6E2=y
11581158

11591159
#

bsp/renesas/ra6m3-ek/.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1021,7 +1021,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
10211021
# Uncategorized
10221022
#
10231023
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
1024-
CONFIG_SOC_FAMILY_RENESAS=y
1024+
CONFIG_SOC_FAMILY_RENESAS_RA=y
10251025
CONFIG_SOC_SERIES_R7FA6M3=y
10261026
# CONFIG_SOC_SERIES_R7FA6M4 is not set
10271027
# CONFIG_SOC_SERIES_R7FA2L1 is not set

bsp/renesas/ra6m3-hmi-board/.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1271,7 +1271,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
12711271
# end of Arduino libraries
12721272
# end of RT-Thread online packages
12731273

1274-
CONFIG_SOC_FAMILY_RENESAS=y
1274+
CONFIG_SOC_FAMILY_RENESAS_RA=y
12751275
CONFIG_SOC_SERIES_R7FA6M3=y
12761276

12771277
#

0 commit comments

Comments
 (0)