mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-06 13:14:27 +00:00
103 lines
3.4 KiB
Text
103 lines
3.4 KiB
Text
|
Kendryte K210 FPIOA
|
||
|
|
||
|
This binding describes the Fully-Programmable Input/Output Array (FPIOA) found
|
||
|
in Kendryte K210 SoCs. Any of the 256 functions can be mapped to any of the 48
|
||
|
pins.
|
||
|
|
||
|
Required properties:
|
||
|
- compatible: should be "kendryte,k210-fpioa"
|
||
|
- reg: address and length of the FPIOA registers
|
||
|
- kendryte,sysctl: phandle to the "sysctl" register map node
|
||
|
- kendryte,power-offset: offset in the register map of the power bank control
|
||
|
register (in bytes)
|
||
|
|
||
|
Configuration nodes
|
||
|
|
||
|
Pin configuration nodes are documented in pinctrl-bindings.txt
|
||
|
|
||
|
Required properties for pin-configuration nodes or sub-nodes are:
|
||
|
- groups: list of power groups to which the configuration applies. Valid groups
|
||
|
are:
|
||
|
A0, A1, A2, B0, B1, B2, C0, C1
|
||
|
(either this or "pinmux" must be specified)
|
||
|
- pinmux: integer array representing pin multiplexing configuration. In addition
|
||
|
to the 256 standard functions, each pin can also output the direction
|
||
|
indicator (DO) of any function. This signal is high whenever the function
|
||
|
would normally drive the output. Helper macros to ease assembling the "pinmux"
|
||
|
arguments from the pin and function are provided by the FPIOA header file at:
|
||
|
<dt-bindings/pinctrl/k210-pinctrl.h>
|
||
|
Integer values in the "pinmux" argument list are assembled as:
|
||
|
((PIN << 16) | (DO << 8) | (FUNC))
|
||
|
Valid values for PIN are numbers 0 through 47.
|
||
|
Valid values for DO are 0 or 1.
|
||
|
Valid values for FUNC are numbers 0 through 255. For a complete list of
|
||
|
acceptable functions, consult the FPIOA header file.
|
||
|
(either this or "groups" must be specified)
|
||
|
|
||
|
Optional properties for "pinmux" nodes are:
|
||
|
bias-disable, bias-pull-down, bias-pull-up, drive-strength,
|
||
|
drive-strength-ua, input-enable, input-disable, input-schmitt-enable,
|
||
|
input-schmitt-disable, output-low, output-high, output-enable,
|
||
|
output-disable, slew-rate, output-polarity-invert, input-polarity-invert
|
||
|
|
||
|
Optional properties for "groups" nodes are:
|
||
|
power-source
|
||
|
|
||
|
Notes on specific properties include:
|
||
|
- bias-pull-up, -down, and -pin-default: The pull strength cannot be configured.
|
||
|
- drive-strength: There are 8 drive strength settings between 11 and 50 mA.
|
||
|
- input- and output-polarity-invert: Invert the polarity of either the input or
|
||
|
the output, respectively.
|
||
|
- power-source: Controls the output voltage of a bank of pins. Either
|
||
|
K210_PC_POWER_1V8 or K210_PC_POWER_3V3 may be specified.
|
||
|
- slew-rate: Specifying this property reduces the slew rate.
|
||
|
|
||
|
Example:
|
||
|
fpioa: pinmux@502B0000 {
|
||
|
compatible = "kendryte,k210-fpioa";
|
||
|
reg = <0x502B0000 0x100>;
|
||
|
kendryte,sysctl = <&sysctl>;
|
||
|
kendryte,power-offset = <K210_SYSCTL_POWER_SEL>;
|
||
|
|
||
|
/* JTAG running at 3.3V and driven at 11 mA */
|
||
|
fpioa_jtag: jtag {
|
||
|
voltage {
|
||
|
group = "A0";
|
||
|
power-source = <K210_PC_POWER_3V3>;
|
||
|
};
|
||
|
|
||
|
jtag {
|
||
|
pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCK)>,
|
||
|
<K210_FPIOA(1, K210_PCF_JTAG_TDI)>,
|
||
|
<K210_FPIOA(2, K210_PCF_JTAG_TMS)>,
|
||
|
<K210_FPIOA(3, K210_PCF_JTAG_TDO)>;
|
||
|
drive-strength = <11>;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
/* I2C configured for use with a TCA9800 level shifter */
|
||
|
fpioa_i2c: i2c {
|
||
|
i2c {
|
||
|
pinmux = <K210_FPIOA(6, K210_PCF_I2C0_SCLK)>,
|
||
|
<K210_FPIOA(7, K210_PCF_I2C0_SDA)>;
|
||
|
};
|
||
|
|
||
|
direction {
|
||
|
pinmux = <K210_FPIOA_DO(8, K210_PCF_I2C0_SDA)>;
|
||
|
output-polarity-invert;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/* UART with an active-high TX status LED */
|
||
|
fpioa_uart1: uart1 {
|
||
|
uart {
|
||
|
pinmux = <K210_FPIOA(9, K210_PCF_UART1_TX)>,
|
||
|
<K210_FPIOA(10, K210_PCF_UART1_RX)>;
|
||
|
};
|
||
|
|
||
|
status {
|
||
|
pinmux = <K210_FPIOA_DO(11, K210_PCF_UART1_TX)>;
|
||
|
};
|
||
|
};
|
||
|
};
|