Skip to content

Commit 9a03938

Browse files
tiennguyenzgkartben
authored andcommitted
drivers: pinctrl: Add support for Renesas RZ/V2H
Add support for Renesas RZ/V2H Signed-off-by: Tien Nguyen <[email protected]> Signed-off-by: Quang Le <[email protected]>
1 parent 9db4953 commit 9a03938

File tree

3 files changed

+168
-0
lines changed

3 files changed

+168
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Copyright (c) 2025 Renesas Electronics Corporation
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
#include <zephyr/dt-bindings/gpio/gpio.h>
7+
#include <zephyr/dt-bindings/pinctrl/renesas/pinctrl-rzv2h.h>
8+
9+
&pinctrl {
10+
/omit-if-no-ref/ sci0_pins: sci0 {
11+
sci0-pinmux {
12+
pinmux = <RZV_PINMUX(PORT_05, 0, 1)>, /* TXD */
13+
<RZV_PINMUX(PORT_05, 1, 1)>; /* RXD */
14+
drive-strength = <1>;
15+
};
16+
};
17+
};

dts/arm/renesas/rz/rzv/r9a09g057_cm33.dtsi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@
3030
};
3131
};
3232
};
33+
34+
soc {
35+
pinctrl: pin-controller@40410000 {
36+
compatible = "renesas,rzv-pinctrl";
37+
reg = <0x40410000 DT_SIZE_K(64)>;
38+
reg-names = "pinctrl";
39+
};
40+
};
3341
};
3442

3543
&nvic {
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
/*
2+
* Copyright (c) 2025 Renesas Electronics Corporation
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RENESAS_PINCTRL_RZV2H_H_
7+
#define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RENESAS_PINCTRL_RZV2H_H_
8+
9+
/* Superset list of all possible IO ports. */
10+
#define PORT_00 0x0000 /* IO port 0 */
11+
#define PORT_01 0x0100 /* IO port 1 */
12+
#define PORT_02 0x0200 /* IO port 2 */
13+
#define PORT_03 0x0300 /* IO port 3 */
14+
#define PORT_04 0x0400 /* IO port 4 */
15+
#define PORT_05 0x0500 /* IO port 5 */
16+
#define PORT_06 0x0600 /* IO port 6 */
17+
#define PORT_07 0x0700 /* IO port 7 */
18+
#define PORT_08 0x0800 /* IO port 8 */
19+
#define PORT_09 0x0900 /* IO port 9 */
20+
#define PORT_10 0x0A00 /* IO port 10 */
21+
#define PORT_11 0x0B00 /* IO port 11 */
22+
23+
/*
24+
* Create the value contain port/pin/function information
25+
*
26+
* port: port number BSP_IO_PORT_00..BSP_IO_PORT_11
27+
* pin: pin number
28+
* func: pin function
29+
*/
30+
#define RZV_PINMUX(port, pin, func) (port | pin | (func << 4))
31+
32+
/* Special purpose port */
33+
#define BSP_IO_NMI 0xFFFF0100 /* NMI */
34+
35+
#define BSP_IO_TMS_SWDIO 0xFFFF0300 /* TMS_SWDIO */
36+
37+
#define BSP_IO_TDO 0xFFFF0302 /* TDO */
38+
39+
#define BSP_IO_WDTUDFCA 0xFFFF0500 /* WDTUDFCA */
40+
#define BSP_IO_WDTUDFCM 0xFFFF0501 /* WDTUDFCM */
41+
42+
#define BSP_IO_SCIF_RXD 0xFFFF0600 /* SCIF_RXD */
43+
#define BSP_IO_SCIF_TXD 0xFFFF0601 /* SCIF_TXD */
44+
45+
#define BSP_IO_XSPI0_CKP 0xFFFF0700 /* XSPI0_CKP */
46+
#define BSP_IO_XSPI0_CKN 0xFFFF0701 /* XSPI0_CKN */
47+
#define BSP_IO_XSPI0_CS0N 0xFFFF0702 /* XSPI0_CS0N */
48+
#define BSP_IO_XSPI0_DS 0xFFFF0703 /* XSPI0_DS */
49+
#define BSP_IO_XSPI0_RESET0N 0xFFFF0704 /* XSPI0_RESET0N */
50+
#define BSP_IO_XSPI0_RSTO0N 0xFFFF0705 /* XSPI0_RSTO0N */
51+
#define BSP_IO_XSPI0_INT0N 0xFFFF0706 /* XSPI0_INT0N */
52+
#define BSP_IO_XSPI0_ECS0N 0xFFFF0707 /* XSPI0_ECS0N */
53+
54+
#define BSP_IO_XSPI0_IO0 0xFFFF0800 /* XSPI0_IO0 */
55+
#define BSP_IO_XSPI0_IO1 0xFFFF0801 /* XSPI0_IO1 */
56+
#define BSP_IO_XSPI0_IO2 0xFFFF0802 /* XSPI0_IO2 */
57+
#define BSP_IO_XSPI0_IO3 0xFFFF0803 /* XSPI0_IO3 */
58+
#define BSP_IO_XSPI0_IO4 0xFFFF0804 /* XSPI0_IO4 */
59+
#define BSP_IO_XSPI0_IO5 0xFFFF0805 /* XSPI0_IO5 */
60+
#define BSP_IO_XSPI0_IO6 0xFFFF0806 /* XSPI0_IO6 */
61+
#define BSP_IO_XSPI0_IO7 0xFFFF0807 /* XSPI0_IO7 */
62+
63+
#define BSP_IO_SD0CLK 0xFFFF0900 /* SD0CLK */
64+
#define BSP_IO_SD0CMD 0xFFFF0901 /* SD0CMD */
65+
#define BSP_IO_SD0RSTN 0xFFFF0902 /* SD0RSTN */
66+
67+
#define BSP_IO_SD0DAT0 0xFFFF0A00 /* SD0DAT0 */
68+
#define BSP_IO_SD0DAT1 0xFFFF0A01 /* SD0DAT1 */
69+
#define BSP_IO_SD0DAT2 0xFFFF0A02 /* SD0DAT2 */
70+
#define BSP_IO_SD0DAT3 0xFFFF0A03 /* SD0DAT3 */
71+
#define BSP_IO_SD0DAT4 0xFFFF0A04 /* SD0DAT4 */
72+
#define BSP_IO_SD0DAT5 0xFFFF0A05 /* SD0DAT5 */
73+
#define BSP_IO_SD0DAT6 0xFFFF0A06 /* SD0DAT6 */
74+
#define BSP_IO_SD0DAT7 0xFFFF0A07 /* SD0DAT7 */
75+
76+
#define BSP_IO_SD1CLK 0xFFFF0B00 /* SD1CLK */
77+
#define BSP_IO_SD1CMD 0xFFFF0B01 /* SD1CMD */
78+
79+
#define BSP_IO_SD1DAT0 0xFFFF0C00 /* SD1DAT0 */
80+
#define BSP_IO_SD1DAT1 0xFFFF0C01 /* SD1DAT1 */
81+
#define BSP_IO_SD1DAT2 0xFFFF0C02 /* SD1DAT2 */
82+
#define BSP_IO_SD1DAT3 0xFFFF0C03 /* SD1DAT3 */
83+
84+
#define BSP_IO_PCIE0_RSTOUTB 0xFFFF0E00 /* PCIE0_RSTOUTB */
85+
#define BSP_IO_PCIE1_RSTOUTB 0xFFFF0E01 /* PCIE1_RSTOUTB */
86+
87+
#define BSP_IO_ET0_MDIO 0xFFFF0F00 /* ET0_MDIO */
88+
#define BSP_IO_ET0_MDC 0xFFFF0F01 /* ET0_MDC */
89+
90+
#define BSP_IO_ET0_RXCTL_RXDV 0xFFFF1000 /* ET0_RXCTL_RXDV */
91+
#define BSP_IO_ET0_TXCTL_TXEN 0xFFFF1001 /* ET0_TXCTL_TXEN */
92+
#define BSP_IO_ET0_TXER 0xFFFF1002 /* ET0_TXER */
93+
#define BSP_IO_ET0_RXER 0xFFFF1003 /* ET0_RXER */
94+
#define BSP_IO_ET0_RXC_RXCLK 0xFFFF1004 /* ET0_RXC_RXCLK */
95+
#define BSP_IO_ET0_TXC_TXCLK 0xFFFF1005 /* ET0_TXC_TXCLK */
96+
#define BSP_IO_ET0_CRS 0xFFFF1006 /* ET0_CRS */
97+
#define BSP_IO_ET0_COL 0xFFFF1007 /* ET0_COL */
98+
99+
#define BSP_IO_ET0_TXD0 0xFFFF1100 /* ET0_TXD0 */
100+
#define BSP_IO_ET0_TXD1 0xFFFF1101 /* ET0_TXD1 */
101+
#define BSP_IO_ET0_TXD2 0xFFFF1102 /* ET0_TXD2 */
102+
#define BSP_IO_ET0_TXD3 0xFFFF1103 /* ET0_TXD3 */
103+
#define BSP_IO_ET0_RXD0 0xFFFF1104 /* ET0_RXD0 */
104+
#define BSP_IO_ET0_RXD1 0xFFFF1105 /* ET0_RXD1 */
105+
#define BSP_IO_ET0_RXD2 0xFFFF1106 /* ET0_RXD2 */
106+
#define BSP_IO_ET0_RXD3 0xFFFF1107 /* ET0_RXD3 */
107+
108+
#define BSP_IO_ET1_MDIO 0xFFFF1200 /* ET1_MDIO */
109+
#define BSP_IO_ET1_MDC 0xFFFF1201 /* ET1_MDC */
110+
111+
#define BSP_IO_ET1_RXCTL_RXDV 0xFFFF1300 /* ET1_RXCTL_RXDV */
112+
#define BSP_IO_ET1_TXCTL_TXEN 0xFFFF1301 /* ET1_TXCTL_TXEN */
113+
#define BSP_IO_ET1_TXER 0xFFFF1302 /* ET1_TXER */
114+
#define BSP_IO_ET1_RXER 0xFFFF1303 /* ET1_RXER */
115+
#define BSP_IO_ET1_RXC_RXCLK 0xFFFF1304 /* ET1_RXC_RXCLK */
116+
#define BSP_IO_ET1_TXC_TXCLK 0xFFFF1305 /* ET1_TXC_TXCLK */
117+
#define BSP_IO_ET1_CRS 0xFFFF1306 /* ET1_CRS */
118+
#define BSP_IO_ET1_COL 0xFFFF1307 /* ET1_COL */
119+
120+
#define BSP_IO_ET1_TXD0 0xFFFF1400 /* ET1_TXD0 */
121+
#define BSP_IO_ET1_TXD1 0xFFFF1401 /* ET1_TXD1 */
122+
#define BSP_IO_ET1_TXD2 0xFFFF1402 /* ET1_TXD2 */
123+
#define BSP_IO_ET1_TXD3 0xFFFF1403 /* ET1_TXD3 */
124+
#define BSP_IO_ET1_RXD0 0xFFFF1404 /* ET1_RXD0 */
125+
#define BSP_IO_ET1_RXD1 0xFFFF1405 /* ET1_RXD1 */
126+
#define BSP_IO_ET1_RXD2 0xFFFF1406 /* ET1_RXD2 */
127+
#define BSP_IO_ET1_RXD3 0xFFFF1407 /* ET1_RXD3 */
128+
129+
/* FILNUM */
130+
#define RZV_FILNUM_4_STAGE 0
131+
#define RZV_FILNUM_8_STAGE 1
132+
#define RZV_FILNUM_12_STAGE 2
133+
#define RZV_FILNUM_16_STAGE 3
134+
135+
/* FILCLKSEL */
136+
#define RZV_FILCLKSEL_NOT_DIV 0
137+
#define RZV_FILCLKSEL_DIV_9000 1
138+
#define RZV_FILCLKSEL_DIV_18000 2
139+
#define RZV_FILCLKSEL_DIV_36000 3
140+
141+
#define RZV_FILTER_SET(filnum, filclksel) (((filnum) & 0x3) << 0x2) | (filclksel & 0x3)
142+
143+
#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RENESAS_PINCTRL_RZV2H_H_ */

0 commit comments

Comments
 (0)