Lines Matching +full:bias +full:- +full:pull +full:- +full:pin +full:- +full:default

2 # SPDX-License-Identifier: Apache-2.0
5 ESP32 pin controller
7 Espressif's pin controller is in charge of controlling pin configurations, pin
8 functionalities and pin properties as defined by pin states. In its turn, pin
9 states are composed by groups of pre-defined pin muxing definitions and user
10 provided pin properties.
12 Each Zephyr-based application has its own set of pin muxing/pin configuration
13 requirements. The next steps use ESP-WROVER-KIT's I2C_0 to illustrate how one
14 could change a node's pin state properties. Though based on a particular board,
17 Suppose an application running on top of the ESP-WROVER-KIT board, for some
20 you'll notice that the I2C_0 node is already assigned to a pre-defined state.
24 #include "esp_wrover_kit-pinctrl.dtsi"
28 pinctrl-0 = <&i2c0_default>;
29 pinctrl-names = "default";
33 From the above excerpt, the pincrl-0 property is assigned the 'i2c0_default'
34 state value. This and other pin states of the board are defined on another file
35 (in this case, 'esp_wrover_kit-pinctrl.dtsi') on the same folder of the DTS file.
36 Check below the excerpt describing I2C_0's default state on that file
43 bias-pull-up;
44 drive-open-drain;
45 output-high;
53 pull-up resistor soldered to GPIO_21's pin pad, in which case, 'bias-pull-up'
64 IO pin has the capability to route any specific signal.
70 https://github.com/zephyrproject-rtos/zephyr/tree/main/include/zephyr/dt-bindings/pinctrl
73 The ESP-WROVER-KIT board is based on the ESP32 SoC, in that case, we search
74 through the file 'esp32-pinctrl.h' in the above URL. Luckily for us, there is
82 Now, we go back to edit 'esp_wrover_kit-pinctrl.dtsi' and create a new pin state
91 bias-pull-up;
92 drive-open-drain;
93 output-high;
102 pin supports a set of properties required by the target peripheral.
104 When defining a state, the pin muxing information is constrained to
105 the definitions at 'hal_espressif', however, pin properties (like
106 bias-push-pull, drive-open-drain, etc) can be freely chosen, given the
110 Another thing worth noting is that all pin properties should be grouped.
115 compatible: "espressif,esp32-pinctrl"
119 child-binding:
121 Espressif pin controller pin configuration state nodes.
122 child-binding:
124 Espressif pin controller pin configuration group.
127 - name: pincfg-node.yaml
128 property-allowlist:
129 - bias-disable
130 - bias-pull-down
131 - bias-pull-up
132 - drive-push-pull
133 - drive-open-drain
134 - input-enable
135 - output-enable
136 - output-high
137 - output-low
144 Each array element represents pin muxing information of an individual
145 pin. The array elements are pre-declared macros taken from Espressif's