87 lines
2.6 KiB
YAML
87 lines
2.6 KiB
YAML
# 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
|