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
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_ */