# 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 <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;
    };

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
