Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
pinctrl-rcar-common.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021-2023 IoT.bzh
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RENESAS_PINCTRL_RCAR_COMMON_H_
8#define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RENESAS_PINCTRL_RCAR_COMMON_H_
9
25#define IPSR(bank, shift, func) (((bank) << 10U) | ((shift) << 4U) | (func))
26
27/* Arbitrary number to encode non capable gpio pin */
28#define PIN_NOGPSR_START 1024U
29
36#define RCAR_GP_PIN(bank, pin) (((bank) * 32U) + (pin))
37
43#define RCAR_NOGP_PIN(pin) (PIN_NOGPSR_START + pin)
44
45/* Renesas Gen4 has IPSR registers at different base address
46 * reg is here an index for the base address.
47 * Each base address has 4 IPSR banks.
48 */
49#define IPnSR(bank, reg, shift, func) \
50 IPSR(((reg) << 5U) | (bank), shift, func)
51
52#define IP0SR0(shift, func) IPnSR(0, 0, shift, func)
53#define IP1SR0(shift, func) IPnSR(1, 0, shift, func)
54#define IP2SR0(shift, func) IPnSR(2, 0, shift, func)
55#define IP3SR0(shift, func) IPnSR(3, 0, shift, func)
56#define IP0SR1(shift, func) IPnSR(0, 1, shift, func)
57#define IP1SR1(shift, func) IPnSR(1, 1, shift, func)
58#define IP2SR1(shift, func) IPnSR(2, 1, shift, func)
59#define IP3SR1(shift, func) IPnSR(3, 1, shift, func)
60#define IP0SR2(shift, func) IPnSR(0, 2, shift, func)
61#define IP1SR2(shift, func) IPnSR(1, 2, shift, func)
62#define IP2SR2(shift, func) IPnSR(2, 2, shift, func)
63#define IP3SR2(shift, func) IPnSR(3, 2, shift, func)
64#define IP0SR3(shift, func) IPnSR(0, 3, shift, func)
65#define IP1SR3(shift, func) IPnSR(1, 3, shift, func)
66#define IP2SR3(shift, func) IPnSR(2, 3, shift, func)
67#define IP3SR3(shift, func) IPnSR(3, 3, shift, func)
68#define IP0SR4(shift, func) IPnSR(0, 4, shift, func)
69#define IP1SR4(shift, func) IPnSR(1, 4, shift, func)
70#define IP2SR4(shift, func) IPnSR(2, 4, shift, func)
71#define IP3SR4(shift, func) IPnSR(3, 4, shift, func)
72#define IP0SR5(shift, func) IPnSR(0, 5, shift, func)
73#define IP1SR5(shift, func) IPnSR(1, 5, shift, func)
74#define IP2SR5(shift, func) IPnSR(2, 5, shift, func)
75#define IP3SR5(shift, func) IPnSR(3, 5, shift, func)
76#define IP0SR6(shift, func) IPnSR(0, 6, shift, func)
77#define IP1SR6(shift, func) IPnSR(1, 6, shift, func)
78#define IP2SR6(shift, func) IPnSR(2, 6, shift, func)
79#define IP3SR6(shift, func) IPnSR(3, 6, shift, func)
80#define IP0SR7(shift, func) IPnSR(0, 7, shift, func)
81#define IP1SR7(shift, func) IPnSR(1, 7, shift, func)
82#define IP2SR7(shift, func) IPnSR(2, 7, shift, func)
83#define IP3SR7(shift, func) IPnSR(3, 7, shift, func)
84
95#define IPSR_DUMMY IPnSR(0x1f, 7, 0x1f, 0xf)
96
97#define PIN_VOLTAGE_NONE 0
98#define PIN_VOLTAGE_1P8V 1
99#define PIN_VOLTAGE_3P3V 2
100
101#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RENESAS_PINCTRL_RCAR_COMMON_H_ */