blob: 8736ce038ecab772a48ae673338582c8224b135c [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Defines macros and constants for Renesas RZ/A2 pin controller pin
4 * muxing functions.
5 */
6#ifndef __DT_BINDINGS_PINCTRL_RENESAS_RZA2_H
7#define __DT_BINDINGS_PINCTRL_RENESAS_RZA2_H
8
9#define RZA2_PINS_PER_PORT 8
10
11/* Port names as labeled in the Hardware Manual */
12#define PORT0 0
13#define PORT1 1
14#define PORT2 2
15#define PORT3 3
16#define PORT4 4
17#define PORT5 5
18#define PORT6 6
19#define PORT7 7
20#define PORT8 8
21#define PORT9 9
22#define PORTA 10
23#define PORTB 11
24#define PORTC 12
25#define PORTD 13
26#define PORTE 14
27#define PORTF 15
28#define PORTG 16
29#define PORTH 17
30/* No I */
31#define PORTJ 18
32#define PORTK 19
33#define PORTL 20
34#define PORTM 21 /* Pins PM_0/1 are labeled JP_0/1 in HW manual */
35
36/*
37 * Create the pin index from its bank and position numbers and store in
38 * the upper 16 bits the alternate function identifier
39 */
40#define RZA2_PINMUX(b, p, f) ((b) * RZA2_PINS_PER_PORT + (p) | (f << 16))
41
42/*
43 * Convert a port and pin label to its global pin index
44 */
45#define RZA2_PIN(port, pin) ((port) * RZA2_PINS_PER_PORT + (pin))
46
47#endif /* __DT_BINDINGS_PINCTRL_RENESAS_RZA2_H */