Functional GPIO
The following code blocks show an example of a functional GPIO device tree configuration.
pcie0_perst_default: pcie0_perst_default { perst-pins { sf,pins = <PAD_GPIO26>; sf,pinmux = <PAD_GPIO26_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_HIGH>; sf,pin-gpio-doen = <OEN_LOW>; }; }; pcie0_perst_active: pcie0_perst_active { perst-pins { sf,pins = <PAD_GPIO26>; sf,pinmux = <PAD_GPIO26_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_LOW>; sf,pin-gpio-doen = <OEN_LOW>; }; }; pcie0_power_active: pcie0_power_active { power-pins { sf,pins = <PAD_GPIO32>; sf,pinmux = <PAD_GPIO32_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_HIGH>; sf,pin-gpio-doen = <OEN_LOW>; }; };
&pcie0 { pinctrl-names = "perst-default", "perst-active", "power-active"; pinctrl-0 = <&pcie0_perst_default>; pinctrl-1 = <&pcie0_perst_active>; pinctrl-2 = <&pcie0_power_active>; status = "okay"; };
In the above example, make sure you understand the use of the following values:
- The parameter value of “perst-default” in pinctrl-0 is the pin configuration for normal work mode.
- The parameter value of “perst-active” in pinctrl-1 is the pin configuration for active mode.