ene,kb1200-pinctrl

Vendor: ENE Technology, Inc.

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 <ene_kb1200/ene_kb1200-pinctrl.dtsi>

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 = <ENE_KB1200_PINMUX(0x2C, PINMUX_FUNC_B)>;
    bias-pull-up;
  };
  /omit-if-no-ref/ i2c0_dat_gpio2d: i2c0_dat_gpio2d {
    pinmux = <ENE_KB1200_PINMUX(0x2D, PINMUX_FUNC_B)>;
    bias-pull-up;
  };

Properties

Top level properties

These property descriptions apply to “ene,kb1200-pinctrl” nodes themselves. This page also describes child node properties in the following sections.

Properties not inherited from the base binding file.

(None)

Child node properties

Name

Type

Details

bias-disable

boolean

disable any pin bias

bias-pull-up

boolean

enable pull-up resistor

bias-pull-down

boolean

enable pull-down resistor

drive-push-pull

boolean

drive actively high and low

drive-open-drain

boolean

drive with open drain (hardware AND)

low-power-enable

boolean

enable low power mode

output-disable

boolean

disable output on a pin (e.g. disable an output buffer)

output-enable

boolean

enable output on a pin without actively driving it (e.g. enable an output
buffer)

output-low

boolean

set the pin to output mode with low level

output-high

boolean

set the pin to output mode with high level

pinmux

int

Pinmux selection

This property is required.