mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
dt-bindings: pinctrl: Convert Amlogic Meson pinctrl binding
Convert Amlogic Meson pin controller binding to yaml. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Link: https://lore.kernel.org/r/dd29c1b7-05db-dd98-df40-20a238d89a96@gmail.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
committed by
Linus Walleij
parent
966b0e64b6
commit
94df03a452
@@ -0,0 +1,67 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pinctrl/amlogic,meson-pinctrl-a1.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Amlogic Meson A1 pinmux controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: amlogic,meson-pinctrl-common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- amlogic,meson-a1-periphs-pinctrl
|
||||||
|
- amlogic,meson-s4-periphs-pinctrl
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^bank@[0-9a-z]+$":
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
maxItems: 2
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
items:
|
||||||
|
- const: mux
|
||||||
|
- const: gpio
|
||||||
|
|
||||||
|
unevaluatedProperties:
|
||||||
|
type: object
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
periphs_pinctrl: pinctrl {
|
||||||
|
compatible = "amlogic,meson-a1-periphs-pinctrl";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
bank@400 {
|
||||||
|
reg = <0x0400 0x003c>,
|
||||||
|
<0x0480 0x0118>;
|
||||||
|
reg-names = "mux", "gpio";
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-ranges = <&periphs_pinctrl 0 0 62>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cec_ao_a_h_pins: cec_ao_a_h {
|
||||||
|
mux {
|
||||||
|
groups = "cec_ao_a_h";
|
||||||
|
function = "cec_ao_a_h";
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pinctrl/amlogic,meson-pinctrl-common.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Amlogic Meson pinmux controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: pinctrl.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
ranges: true
|
||||||
|
|
||||||
|
"#address-cells":
|
||||||
|
enum: [1, 2]
|
||||||
|
|
||||||
|
"#size-cells":
|
||||||
|
enum: [1, 2]
|
||||||
|
|
||||||
|
required:
|
||||||
|
- ranges
|
||||||
|
- "#address-cells"
|
||||||
|
- "#size-cells"
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
|
|
||||||
|
$defs:
|
||||||
|
meson-gpio:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
properties:
|
||||||
|
gpio-controller: true
|
||||||
|
|
||||||
|
"#gpio-cells":
|
||||||
|
const: 2
|
||||||
|
|
||||||
|
gpio-ranges:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- reg
|
||||||
|
- reg-names
|
||||||
|
- gpio-controller
|
||||||
|
- "#gpio-cells"
|
||||||
|
- gpio-ranges
|
||||||
|
|
||||||
|
meson-pins:
|
||||||
|
type: object
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
allOf:
|
||||||
|
- $ref: pincfg-node.yaml#
|
||||||
|
- $ref: pinmux-node.yaml#
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pinctrl/amlogic,meson-pinctrl-g12a-aobus.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Amlogic Meson G12 AOBUS pinmux controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: amlogic,meson-pinctrl-common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- amlogic,meson-g12a-aobus-pinctrl
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^bank@[0-9a-z]+$":
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
items:
|
||||||
|
- const: mux
|
||||||
|
- const: ds
|
||||||
|
- const: gpio
|
||||||
|
|
||||||
|
unevaluatedProperties:
|
||||||
|
type: object
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
ao_pinctrl: pinctrl {
|
||||||
|
compatible = "amlogic,meson-g12a-aobus-pinctrl";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
bank@14 {
|
||||||
|
reg = <0x14 0x8>,
|
||||||
|
<0x1c 0x8>,
|
||||||
|
<0x24 0x14>;
|
||||||
|
reg-names = "mux", "ds", "gpio";
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-ranges = <&ao_pinctrl 0 0 15>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cec_ao_a_h_pins: cec_ao_a_h {
|
||||||
|
mux {
|
||||||
|
groups = "cec_ao_a_h";
|
||||||
|
function = "cec_ao_a_h";
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pinctrl/amlogic,meson-pinctrl-g12a-periphs.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Amlogic Meson G12 PERIPHS pinmux controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: amlogic,meson-pinctrl-common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- amlogic,meson-g12a-periphs-pinctrl
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^bank@[0-9a-z]+$":
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
maxItems: 5
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
items:
|
||||||
|
- const: gpio
|
||||||
|
- const: pull
|
||||||
|
- const: pull-enable
|
||||||
|
- const: mux
|
||||||
|
- const: ds
|
||||||
|
|
||||||
|
unevaluatedProperties:
|
||||||
|
type: object
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
periphs_pinctrl: pinctrl {
|
||||||
|
compatible = "amlogic,meson-g12a-periphs-pinctrl";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
bank@40 {
|
||||||
|
reg = <0x40 0x4c>,
|
||||||
|
<0xe8 0x18>,
|
||||||
|
<0x120 0x18>,
|
||||||
|
<0x2c0 0x40>,
|
||||||
|
<0x340 0x1c>;
|
||||||
|
reg-names = "gpio", "pull", "pull-enable", "mux", "ds";
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-ranges = <&periphs_pinctrl 0 0 86>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cec_ao_a_h_pins: cec_ao_a_h {
|
||||||
|
mux {
|
||||||
|
groups = "cec_ao_a_h";
|
||||||
|
function = "cec_ao_a_h";
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pinctrl/amlogic,meson8-pinctrl-aobus.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Amlogic Meson8 AOBUS pinmux controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: amlogic,meson-pinctrl-common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- enum:
|
||||||
|
- amlogic,meson8-aobus-pinctrl
|
||||||
|
- amlogic,meson8b-aobus-pinctrl
|
||||||
|
- amlogic,meson-gxbb-aobus-pinctrl
|
||||||
|
- amlogic,meson-gxl-aobus-pinctrl
|
||||||
|
- amlogic,meson-axg-aobus-pinctrl
|
||||||
|
- items:
|
||||||
|
- const: amlogic,meson8m2-aobus-pinctrl
|
||||||
|
- const: amlogic,meson8-aobus-pinctrl
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^bank@[0-9a-z]+$":
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
items:
|
||||||
|
- const: mux
|
||||||
|
- const: pull
|
||||||
|
- const: gpio
|
||||||
|
|
||||||
|
unevaluatedProperties:
|
||||||
|
type: object
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
pinctrl_aobus: pinctrl {
|
||||||
|
compatible = "amlogic,meson8-aobus-pinctrl";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
bank@14 {
|
||||||
|
reg = <0x14 0x4>,
|
||||||
|
<0x2c 0x4>,
|
||||||
|
<0x24 0x8>;
|
||||||
|
reg-names = "mux", "pull", "gpio";
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-ranges = <&pinctrl_aobus 0 0 16>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cec_ao_a_h_pins: cec_ao_a_h {
|
||||||
|
mux {
|
||||||
|
groups = "cec_ao_a_h";
|
||||||
|
function = "cec_ao_a_h";
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pinctrl/amlogic,meson8-pinctrl-cbus.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Amlogic Meson8 CBUS pinmux controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: amlogic,meson-pinctrl-common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- enum:
|
||||||
|
- amlogic,meson8-cbus-pinctrl
|
||||||
|
- amlogic,meson8b-cbus-pinctrl
|
||||||
|
- amlogic,meson-gxbb-periphs-pinctrl
|
||||||
|
- amlogic,meson-gxl-periphs-pinctrl
|
||||||
|
- amlogic,meson-axg-periphs-pinctrl
|
||||||
|
- items:
|
||||||
|
- const: amlogic,meson8m2-cbus-pinctrl
|
||||||
|
- const: amlogic,meson8-cbus-pinctrl
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^bank@[0-9a-z]+$":
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
items:
|
||||||
|
- const: mux
|
||||||
|
- const: pull
|
||||||
|
- const: pull-enable
|
||||||
|
- const: gpio
|
||||||
|
|
||||||
|
unevaluatedProperties:
|
||||||
|
type: object
|
||||||
|
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
pinctrl_cbus: pinctrl {
|
||||||
|
compatible = "amlogic,meson8-cbus-pinctrl";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
bank@80b0 {
|
||||||
|
reg = <0x80b0 0x28>,
|
||||||
|
<0x80e8 0x18>,
|
||||||
|
<0x8120 0x18>,
|
||||||
|
<0x8030 0x30>;
|
||||||
|
reg-names = "mux", "pull", "pull-enable", "gpio";
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-ranges = <&pinctrl_cbus 0 0 120>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cec_ao_a_h_pins: cec_ao_a_h {
|
||||||
|
mux {
|
||||||
|
groups = "cec_ao_a_h";
|
||||||
|
function = "cec_ao_a_h";
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
== Amlogic Meson pinmux controller ==
|
|
||||||
|
|
||||||
Required properties for the root node:
|
|
||||||
- compatible: one of "amlogic,meson8-cbus-pinctrl"
|
|
||||||
"amlogic,meson8b-cbus-pinctrl"
|
|
||||||
"amlogic,meson8m2-cbus-pinctrl"
|
|
||||||
"amlogic,meson8-aobus-pinctrl"
|
|
||||||
"amlogic,meson8b-aobus-pinctrl"
|
|
||||||
"amlogic,meson8m2-aobus-pinctrl"
|
|
||||||
"amlogic,meson-gxbb-periphs-pinctrl"
|
|
||||||
"amlogic,meson-gxbb-aobus-pinctrl"
|
|
||||||
"amlogic,meson-gxl-periphs-pinctrl"
|
|
||||||
"amlogic,meson-gxl-aobus-pinctrl"
|
|
||||||
"amlogic,meson-axg-periphs-pinctrl"
|
|
||||||
"amlogic,meson-axg-aobus-pinctrl"
|
|
||||||
"amlogic,meson-g12a-periphs-pinctrl"
|
|
||||||
"amlogic,meson-g12a-aobus-pinctrl"
|
|
||||||
"amlogic,meson-a1-periphs-pinctrl"
|
|
||||||
"amlogic,meson-s4-periphs-pinctrl"
|
|
||||||
- reg: address and size of registers controlling irq functionality
|
|
||||||
|
|
||||||
=== GPIO sub-nodes ===
|
|
||||||
|
|
||||||
The GPIO bank for the controller is represented as a sub-node and it acts as a
|
|
||||||
GPIO controller.
|
|
||||||
|
|
||||||
Required properties for sub-nodes are:
|
|
||||||
- reg: should contain a list of address and size, one tuple for each entry
|
|
||||||
in reg-names.
|
|
||||||
- reg-names: an array of strings describing the "reg" entries.
|
|
||||||
Must contain "mux" and "gpio".
|
|
||||||
May contain "pull", "pull-enable" and "ds" when appropriate.
|
|
||||||
- gpio-controller: identifies the node as a gpio controller
|
|
||||||
- #gpio-cells: must be 2
|
|
||||||
|
|
||||||
=== Other sub-nodes ===
|
|
||||||
|
|
||||||
Child nodes without the "gpio-controller" represent some desired
|
|
||||||
configuration for a pin or a group. Those nodes can be pinmux nodes or
|
|
||||||
configuration nodes.
|
|
||||||
|
|
||||||
Required properties for pinmux nodes are:
|
|
||||||
- groups: a list of pinmux groups. The list of all available groups
|
|
||||||
depends on the SoC and can be found in driver sources.
|
|
||||||
- function: the name of a function to activate for the specified set
|
|
||||||
of groups. The list of all available functions depends on the SoC
|
|
||||||
and can be found in driver sources.
|
|
||||||
|
|
||||||
Required properties for configuration nodes:
|
|
||||||
- pins: a list of pin names
|
|
||||||
|
|
||||||
Configuration nodes support the following generic properties, as
|
|
||||||
described in file pinctrl-bindings.txt:
|
|
||||||
- "bias-disable"
|
|
||||||
- "bias-pull-up"
|
|
||||||
- "bias-pull-down"
|
|
||||||
- "output-enable"
|
|
||||||
- "output-disable"
|
|
||||||
- "output-low"
|
|
||||||
- "output-high"
|
|
||||||
|
|
||||||
Optional properties :
|
|
||||||
- drive-strength-microamp: Drive strength for the specified pins in uA.
|
|
||||||
This property is only valid for G12A and newer.
|
|
||||||
|
|
||||||
=== Example ===
|
|
||||||
|
|
||||||
pinctrl: pinctrl@c1109880 {
|
|
||||||
compatible = "amlogic,meson8-cbus-pinctrl";
|
|
||||||
reg = <0xc1109880 0x10>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
ranges;
|
|
||||||
|
|
||||||
gpio: banks@c11080b0 {
|
|
||||||
reg = <0xc11080b0 0x28>,
|
|
||||||
<0xc11080e8 0x18>,
|
|
||||||
<0xc1108120 0x18>,
|
|
||||||
<0xc1108030 0x30>;
|
|
||||||
reg-names = "mux", "pull", "pull-enable", "gpio";
|
|
||||||
gpio-controller;
|
|
||||||
#gpio-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
nand {
|
|
||||||
mux {
|
|
||||||
groups = "nand_io", "nand_io_ce0", "nand_io_ce1",
|
|
||||||
"nand_io_rb0", "nand_ale", "nand_cle",
|
|
||||||
"nand_wen_clk", "nand_ren_clk", "nand_dqs",
|
|
||||||
"nand_ce2", "nand_ce3";
|
|
||||||
function = "nand";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user