mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 14:19:16 +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:
parent
966b0e64b6
commit
94df03a452
7 changed files with 418 additions and 94 deletions
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
Loading…
Reference in a new issue