forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
4.8 KiB
171 lines
4.8 KiB
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
|
%YAML 1.2 |
|
--- |
|
$id: http://devicetree.org/schemas/pinctrl/canaan,k210-fpioa.yaml# |
|
$schema: http://devicetree.org/meta-schemas/core.yaml# |
|
|
|
title: Canaan Kendryte K210 FPIOA Device Tree Bindings |
|
|
|
maintainers: |
|
- Damien Le Moal <[email protected]> |
|
|
|
description: |
|
The Canaan Kendryte K210 SoC Fully Programmable IO Array (FPIOA) |
|
controller allows assiging any of 256 possible functions to any of |
|
48 IO pins of the SoC. Pin function configuration is performed on |
|
a per-pin basis. |
|
|
|
properties: |
|
compatible: |
|
const: canaan,k210-fpioa |
|
|
|
reg: |
|
maxItems: 1 |
|
description: |
|
Address and length of the register set for the FPIOA controller. |
|
|
|
clocks: |
|
items: |
|
- description: Controller reference clock source |
|
- description: APB interface clock source |
|
|
|
clock-names: |
|
items: |
|
- const: ref |
|
- const: pclk |
|
|
|
resets: |
|
maxItems: 1 |
|
|
|
canaan,k210-sysctl-power: |
|
$ref: /schemas/types.yaml#/definitions/phandle-array |
|
description: | |
|
phandle of the K210 system controller node and offset of its |
|
power domain control register. |
|
|
|
patternProperties: |
|
'-pinmux$': |
|
type: object |
|
$ref: /schemas/pinctrl/pinmux-node.yaml |
|
description: |
|
FPIOA client devices use sub-nodes to define the desired pin |
|
configuration. Client device sub-nodes use the pinux property |
|
below. |
|
|
|
properties: |
|
pinmux: |
|
description: |
|
List of IO pins alternate functions. The values for each IO |
|
pin is a combination of an IO pin number (0 to 47) with the |
|
desired function for the IO pin. Functions are defined as |
|
macros in include/dt-bindings/pinctrl/k210-fpioa.h. |
|
The K210_FPIOA(IO pin, function) macro is provided to |
|
facilitate the combination of IO pin numbers and functions. |
|
|
|
required: |
|
- pinmux |
|
|
|
additionalProperties: false |
|
|
|
'-pins$': |
|
type: object |
|
$ref: /schemas/pinctrl/pincfg-node.yaml |
|
description: |
|
FPIOA client devices use sub-nodes to define the desired |
|
configuration of pins. Client device sub-nodes use the |
|
properties below. |
|
|
|
properties: |
|
pins: |
|
description: |
|
List of IO pins affected by the properties specified in this |
|
subnode. IO pins are identified using the pin names "IO_xx". |
|
Pin configuration nodes can also define the power domain to |
|
be used for the SoC pin groups A0 (IO pins 0-5), |
|
A1 (IO pins 6-11), A2 (IO pins 12-17), B0 (IO pins 18-23), |
|
B1 (IO pins 24-29), B2 (IO pins 30-35), B3 (IO pins 30-35), |
|
C0 (IO pins 36-41) and C1 (IO pins 42-47) using the |
|
power-source property. |
|
items: |
|
anyOf: |
|
- pattern: "^(IO_([0-9]*))|(A[0-2])|(B[3-5])|(C[6-7])$" |
|
- enum: [ IO_0, IO_1, IO_2, IO_3, IO_4, IO_5, IO_6, IO_7, |
|
IO_8, IO_9, IO_10, IO_11, IO_12, IO_13, IO_14, |
|
IO_15, IO_16, IO_17, IO_18, IO_19, IO_20, IO_21, |
|
IO_22, IO_23, IO_24, IO_25, IO_26, IO_27, IO_28, |
|
IO_29, IO_30, IO_31, IO_32, IO_33, IO_34, IO_35, |
|
IO_36, IO_37, IO_38, IO_39, IO_40, IO_41, IO_42, |
|
IO_43, IO_44, IO_45, IO_46, IO_47, |
|
A0, A1, A2, B3, B4, B5, C6, C7 ] |
|
bias-disable: true |
|
|
|
bias-pull-down: true |
|
|
|
bias-pull-up: true |
|
|
|
drive-strength: true |
|
|
|
drive-strength-microamp: true |
|
|
|
input-enable: true |
|
|
|
input-disable: true |
|
|
|
input-schmitt-enable: true |
|
|
|
input-schmitt-disable: true |
|
|
|
input-polarity-invert: |
|
description: |
|
Enable or disable pin input polarity inversion. |
|
|
|
output-enable: true |
|
|
|
output-disable: true |
|
|
|
output-high: true |
|
|
|
output-low: true |
|
|
|
output-polarity-invert: |
|
description: |
|
Enable or disable pin output polarity inversion. |
|
|
|
slew-rate: true |
|
|
|
power-source: true |
|
|
|
additionalProperties: false |
|
|
|
required: |
|
- compatible |
|
- reg |
|
- clocks |
|
- canaan,k210-sysctl-power |
|
|
|
additionalProperties: false |
|
|
|
examples: |
|
- | |
|
#include <dt-bindings/pinctrl/k210-fpioa.h> |
|
#include <dt-bindings/clock/k210-clk.h> |
|
#include <dt-bindings/reset/k210-rst.h> |
|
|
|
fpioa: pinmux@502B0000 { |
|
compatible = "canaan,k210-fpioa"; |
|
reg = <0x502B0000 0x100>; |
|
clocks = <&sysclk K210_CLK_FPIOA>, |
|
<&sysclk K210_CLK_APB0>; |
|
clock-names = "ref", "pclk"; |
|
resets = <&sysrst K210_RST_FPIOA>; |
|
canaan,k210-sysctl-power = <&sysctl 108>; |
|
pinctrl-0 = <&jtag_pinctrl>; |
|
pinctrl-names = "default"; |
|
|
|
jtag_pinctrl: jtag-pinmux { |
|
pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCLK)>, |
|
<K210_FPIOA(1, K210_PCF_JTAG_TDI)>, |
|
<K210_FPIOA(2, K210_PCF_JTAG_TMS)>, |
|
<K210_FPIOA(3, K210_PCF_JTAG_TDO)>; |
|
}; |
|
};
|
|
|