Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
realtek-rts5912-pinctrl.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: Apache-2.0
3 *
4 * Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7
5 * Author: Lin Yu-Cheng <lin_yu_cheng@realtek.com>
6 */
7
8#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_REALTEK_RTS5912_PINCTRL_H_
9#define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_REALTEK_RTS5912_PINCTRL_H_
10
12
13#define REALTEK_RTS5912_GPIO_INOUT BIT(0) /* IN/OUT : 0 input 1 output */
14#define REALTEK_RTS5912_GPIO_PINON BIT(1) /* Input_detect : 1 enable 0 disable */
15#define REALTEK_RTS5912_GPIO_VOLT BIT(2) /* Pin Volt : 1 1.8V 0 3.3V */
16#define REALTEK_RTS5912_FUNC0 0 /* GPIO mode */
17#define REALTEK_RTS5912_FUNC1 BIT(8) /* Function mode use BIT0~2 */
18#define REALTEK_RTS5912_FUNC2 BIT(9)
19#define REALTEK_RTS5912_FUNC3 ((BIT(8)) | (BIT(9)))
20#define REALTEK_RTS5912_FUNC4 BIT(10)
21
22#define REALTEK_RTS5912_INPUT_OUTPUT_POS 0
23#define REALTEK_RTS5912_INPUT_DETECTION_POS 1
24#define REALTEK_RTS5912_VOLTAGE_POS 2
25#define REALTEK_RTS5912_DRV_STR_POS 11
26#define REALTEK_RTS5912_SLEW_RATE_POS 12
27#define REALTEK_RTS5912_PD_POS 13
28#define REALTEK_RTS5912_PU_POS 14
29#define REALTEK_RTS5912_SCHMITTER_POS 15
30#define REALTEK_RTS5912_TYPE_POS 16
31#define REALTEK_RTS5912_HIGH_LOW_POS 17
32
33#define REALTEK_RTS5912_GPIO_HIGH_POS 18
34#define REALTEK_RTS5912_GPIO_HIGH_MSK 0x3f
35#define REALTEK_RTS5912_GPIO_LOW_POS 3
36#define REALTEK_RTS5912_GPIO_LOW_MSK 0x1f
37
38#define FUNC0 REALTEK_RTS5912_FUNC0
39#define FUNC1 REALTEK_RTS5912_FUNC1
40#define FUNC2 REALTEK_RTS5912_FUNC2
41#define FUNC3 REALTEK_RTS5912_FUNC3
42#define FUNC4 REALTEK_RTS5912_FUNC4
43
44#define REALTEK_RTS5912_PINMUX(n, f) \
45 (((((n) >> 5) & REALTEK_RTS5912_GPIO_HIGH_MSK) << REALTEK_RTS5912_GPIO_HIGH_POS) | \
46 (((n) & REALTEK_RTS5912_GPIO_LOW_MSK) << REALTEK_RTS5912_GPIO_LOW_POS) | (f))
47
48#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_REALTEK_RTS5912_PINCTRL_H_ */