# SPDX-License-Identifier: Apache-2.0 description: | The ENE KB1200 pin controller is a singleton node responsible for controlling pin function selection and pin properties. For example, you can use these nodes to select peripheral pin functions. Here is a list of supported standard pin properties: - bias-disable: Disable pull-up/down resistor. - bias-pull-up: Enable pull-up resistor. - bias-pull-down: Enable pull-down resistor. - drive-push-pull: Output driver is push-pull. - drive-open-drain: Output driver is open-drain. - output-disable: Disable GPIO output driver data - output-enable: Ensable GPIO output driver data - output-high: GPIO output data high - output-low: GPIO output data low - low-power-enable: Support input data ViH/ViL with low vlotage range(ex. 1.8V domain) Here is a list of support pinmux type: - PINMUX_FUNC_A : GPIO Function - PINMUX_FUNC_B : AltOutput 1 Function - PINMUX_FUNC_C : AltOutput 2 Function - PINMUX_FUNC_D : AltOutput 3 Function - PINMUX_FUNC_E : AltOutput 4 Function (Note. Alt-input function does not need to set pinmux type other than PINMUX_FUNC_A) An example for KB1200, include the chip level pinctrl DTSI file in the board level DTS: #include We want to use the I2C0_0 port of the KB1200 controller and enable the internal 3.3V pull-up if its i2c frequency won't exceed 400kHz. And we need to set I2C0_0 pinmux type as PINMUX_FUNC_B (the alt-output 1 function) not a GPIO. To change a pin's pinctrl default properties, add a reference to the pin in the board's DTS file and set the properties as below: &i2c0_0 { pinctrl-0 = <&i2c0_clk_gpio2c &i2c0_dat_gpio2d>; pinctrl-names = "default"; } /omit-if-no-ref/ i2c0_clk_gpio2c: i2c0_clk_gpio2c { pinmux = ; bias-pull-up; }; /omit-if-no-ref/ i2c0_dat_gpio2d: i2c0_dat_gpio2d { pinmux = ; bias-pull-up; }; compatible: "ene,kb1200-pinctrl" include: base.yaml properties: reg: required: true child-binding: description: | This binding gives a base representation of the ENE KB1200 pins configuration include: - name: pincfg-node.yaml property-allowlist: - bias-disable - bias-pull-down - bias-pull-up - drive-push-pull - drive-open-drain - output-disable - output-enable - output-high - output-low - low-power-enable properties: pinmux: type: int required: true description: Pinmux selection