162306a36Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * This header provides constants for Renesas RZ/V2M pinctrl bindings.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2022 Renesas Electronics Corp.
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifndef __DT_BINDINGS_RZV2M_PINCTRL_H
1062306a36Sopenharmony_ci#define __DT_BINDINGS_RZV2M_PINCTRL_H
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#define RZV2M_PINS_PER_PORT	16
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/*
1562306a36Sopenharmony_ci * Create the pin index from its bank and position numbers and store in
1662306a36Sopenharmony_ci * the upper 16 bits the alternate function identifier
1762306a36Sopenharmony_ci */
1862306a36Sopenharmony_ci#define RZV2M_PORT_PINMUX(b, p, f)	((b) * RZV2M_PINS_PER_PORT + (p) | ((f) << 16))
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/* Convert a port and pin label to its global pin index */
2162306a36Sopenharmony_ci#define RZV2M_GPIO(port, pin)	((port) * RZV2M_PINS_PER_PORT + (pin))
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#endif /* __DT_BINDINGS_RZV2M_PINCTRL_H */
24