Zephyr API Documentation
4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
esp-pinctrl-common.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2022-2026 Espressif Systems (Shanghai) Co., Ltd.
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_ESP_PINCTRL_COMMON_H_
8
#define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_ESP_PINCTRL_COMMON_H_
9
10
#include <
zephyr/dt-bindings/dt-util.h
>
11
13
#define ESP32_PIN_NUM_SHIFT 0U
14
#define ESP32_PIN_NUM_MASK 0x3FU
15
22
#define ESP32_PIN_SIGI_MASK 0x1FFU
23
#define ESP32_PIN_SIGI_SHIFT 6U
24
#define ESP32_PIN_SIGO_MASK 0x1FFU
25
#define ESP32_PIN_SIGO_SHIFT 15U
26
#define ESP_SIG_INVAL ESP32_PIN_SIGI_MASK
27
35
#define ESP32_PINMUX(pin, sig_i, sig_o) \
36
(((pin & ESP32_PIN_NUM_MASK) << ESP32_PIN_NUM_SHIFT) | \
37
((sig_i & ESP32_PIN_SIGI_MASK) << ESP32_PIN_SIGI_SHIFT) | \
38
((sig_o & ESP32_PIN_SIGO_MASK) << ESP32_PIN_SIGO_SHIFT))
39
49
#define ESP32_RMII_SLOT_SHIFT 24U
50
#define ESP32_RMII_SLOT_MASK 0xFU
51
#define ESP32_RMII_MARKER BIT(30)
52
57
#define ESP_RMII_CLK 0
58
#define ESP_RMII_TX_EN 1
59
#define ESP_RMII_TXD0 2
60
#define ESP_RMII_TXD1 3
61
#define ESP_RMII_CRS_DV 4
62
#define ESP_RMII_RXD0 5
63
#define ESP_RMII_RXD1 6
64
#define ESP_RMII_SLOT_COUNT 7
66
73
#define ESP32_RMII_PINMUX(pin, slot) \
74
(ESP32_RMII_MARKER | (((slot) & ESP32_RMII_SLOT_MASK) << ESP32_RMII_SLOT_SHIFT) | \
75
(((pin) & ESP32_PIN_NUM_MASK) << ESP32_PIN_NUM_SHIFT))
76
94
99
#define ESP32_PIN_BIAS_SHIFT 0U
100
#define ESP32_PIN_BIAS_MASK 0x3U
101
#define ESP32_PIN_DRV_SHIFT 2U
102
#define ESP32_PIN_DRV_MASK 0x3U
103
#define ESP32_PIN_OUT_SHIFT 4U
104
#define ESP32_PIN_OUT_MASK 0x3U
105
#define ESP32_PIN_EN_DIR_SHIFT 6U
106
#define ESP32_PIN_EN_DIR_MASK 0x3U
107
#define ESP32_PIN_SLEEP_HOLD_SHIFT 8U
108
#define ESP32_PIN_SLEEP_HOLD_MASK 0x1U
110
115
#define ESP32_NO_PULL 0x1
116
#define ESP32_PULL_UP 0x2
117
#define ESP32_PULL_DOWN 0x3
119
124
#define ESP32_PUSH_PULL 0x1
125
#define ESP32_OPEN_DRAIN 0x2
127
132
#define ESP32_PIN_OUT_HIGH 0x1
133
#define ESP32_PIN_OUT_LOW 0x2
135
140
#define ESP32_PIN_OUT_EN 0x1
141
#define ESP32_PIN_IN_EN 0x2
143
148
#define ESP32_PIN_SLEEP_HOLD_EN 0x1
150
160
#define ESP32_NO_PULL_FLAG BIT(0)
161
#define ESP32_PULL_UP_FLAG BIT(1)
162
#define ESP32_PULL_DOWN_FLAG BIT(2)
163
#define ESP32_PUSH_PULL_FLAG BIT(3)
164
#define ESP32_OPEN_DRAIN_FLAG BIT(4)
165
#define ESP32_DIR_INP_FLAG BIT(5)
166
#define ESP32_DIR_OUT_FLAG BIT(6)
167
#define ESP32_PIN_OUT_HIGH_FLAG BIT(7)
168
#define ESP32_PIN_OUT_LOW_FLAG BIT(8)
169
#define ESP32_PIN_OUT_EN_FLAG BIT(9)
170
#define ESP32_PIN_IN_EN_FLAG BIT(10)
171
#define ESP32_SLEEP_HOLD_FLAG BIT(11)
173
174
#endif
/* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_ESP_PINCTRL_COMMON_H_ */
dt-util.h
zephyr
dt-bindings
pinctrl
esp-pinctrl-common.h
Generated on
for Zephyr API Documentation by
1.16.1