102 lines
3.3 KiB
YAML
102 lines
3.3 KiB
YAML
# Copyright (c) 2022 Nuvoton Technology Corporation.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
description: |
|
|
The Nuvoton 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-pull-down: Enable pull-down resistor.
|
|
- bias-pull-up: Enable pull-up resistor.
|
|
- drive-open-drain: Output driver is open-drain.
|
|
|
|
Custom pin properties for npcx series are available also:
|
|
- pinmux-locked: Lock pinmux configuration for peripheral device
|
|
- pinmux-gpio: Inverse pinmux back to gpio
|
|
- psl-in-mode: Select the assertion detection mode of PSL input
|
|
- psl-in-pol: Select the assertion detection polarity of PSL input
|
|
|
|
An example for NPCX7 family, include the chip level pinctrl DTSI file in the
|
|
board level DTS:
|
|
|
|
#include <nuvoton/npcx/npcx7/npcx7-pinctrl.dtsi>
|
|
|
|
We want to use the I2C0_0 port of the NPCX7M6FB controller and enable the
|
|
internal 3.3V pull-up if its i2c frequency won't exceed 400kHz.
|
|
|
|
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_sda_scl_gpb4_b5 {
|
|
bias-pull-up; /* Enable internal pull-up for i2c0_0 */
|
|
pinmux-locked; /* Lock pinmuxing */
|
|
};
|
|
|
|
&i2c0_0 {
|
|
pinctrl-0 = <&i2c0_0_sda_scl_gpb4_b5>;
|
|
pinctrl-names = "default";
|
|
}
|
|
|
|
compatible: "nuvoton,npcx-pinctrl"
|
|
|
|
include: base.yaml
|
|
|
|
child-binding:
|
|
description: |
|
|
NPCX pin controller pin configuration nodes
|
|
|
|
include:
|
|
- name: pincfg-node.yaml
|
|
property-allowlist:
|
|
- bias-pull-down
|
|
- bias-pull-up
|
|
- drive-open-drain
|
|
|
|
properties:
|
|
pinmux:
|
|
type: phandle
|
|
description: Configurations of pinmux selection
|
|
dev-ctl:
|
|
type: array
|
|
description: Configurations of device control such as tri-state, io type and so on.
|
|
periph-pupd:
|
|
type: array
|
|
description: |
|
|
A map to PUPD_ENn register/bit that enable pull-up/down of NPCX peripheral devices.
|
|
Please don't overwrite this property in the board-level DT driver.
|
|
psl-offset:
|
|
type: int
|
|
description: |
|
|
Offset to PSL_CTS register that is used for PSL input's status and detection mode.
|
|
Please don't overwrite this property in the board-level DT driver.
|
|
psl-polarity:
|
|
type: phandle
|
|
description: |
|
|
A map to DEVALTn that configures detection polarity of PSL input pads.
|
|
Please don't overwrite this property in the board-level DT driver.
|
|
pinmux-locked:
|
|
type: boolean
|
|
description: Lock pinmux selection
|
|
pinmux-gpio:
|
|
type: boolean
|
|
description: Inverse pinmux selection to GPIO
|
|
psl-in-mode:
|
|
type: string
|
|
description: |
|
|
The assertion detection mode of PSL input selection
|
|
- "level": Select the detection mode to level detection
|
|
- "edge": Select the detection mode to edge detection
|
|
enum:
|
|
- "level"
|
|
- "edge"
|
|
psl-in-pol:
|
|
type: string
|
|
description: |
|
|
The assertion detection polarity of PSL input selection
|
|
- "low-falling": Select the detection polarity to low/falling
|
|
- "high-rising": Select the detection polarity to high/rising
|
|
enum:
|
|
- "low-falling"
|
|
- "high-rising"
|