nuvoton,npcm-pinctrl

Description

Nuvoton NPCM pin controller.

Pin multiplexing, pull-up/down enables, and low-voltage selects are all bits in the System
Configuration (SCFG) block. The nuvoton,npcm-pinfunc node lists the bits of every pin
function; this controller writes the ones a pin group selects.

Each child is a pin group, and each of its children configures one pin by selecting a pin
function with pinmux. The SoC devicetree provides a group for every peripheral port, so a
board only adds per-pin settings. Example, I2C6B with SDA pulled up at 1.8 V:

  &i2c6b_scl_sda_gpio16_17 {
    sda {
      bias-pull-up;
      nuvoton,voltage-level-mv = <1800>;
    };
  };

  &i2c6b {
    pinctrl-0 = <&i2c6b_scl_sda_gpio16_17>;
    pinctrl-names = "default";
  };

A multiplexed pin is returned to GPIO by selecting its pin_gpioNN_gpio function.

Properties

Top level properties

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

Properties not inherited from the base binding file.

Name

Type

Details

nuvoton,scfg

phandle

SCFG register block.

This property is required.

Grandchild node properties

Name

Type

Details

pinmux

phandle

Pin function to select, a child of the nuvoton,npcm-pinfunc node.

This property is required.

nuvoton,voltage-level-mv

int

Input voltage level of the pin. The low-voltage selects reset to 1.8 V, so a pin
used at 3.3 V needs <3300>.

Legal values: 1800, 3300

nuvoton,device-control

array

An extra SCFG bit written with this pin, as <register bit value>, for per-port
controls such as tri-state or write protect. One bit per pin node.

bias-disable

boolean

disable any pin bias

bias-pull-up

boolean

enable pull-up resistor

bias-pull-down

boolean

enable pull-down resistor