Merge tag 'arc-4.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / pinctrl / meson,pinctrl.txt
1 == Amlogic Meson pinmux controller ==
2
3 Required properties for the root node:
4  - compatible: one of "amlogic,meson8-cbus-pinctrl"
5                       "amlogic,meson8b-cbus-pinctrl"
6                       "amlogic,meson8-aobus-pinctrl"
7                       "amlogic,meson8b-aobus-pinctrl"
8                       "amlogic,meson-gxbb-periphs-pinctrl"
9                       "amlogic,meson-gxbb-aobus-pinctrl"
10                       "amlogic,meson-gxl-periphs-pinctrl"
11                       "amlogic,meson-gxl-aobus-pinctrl"
12                       "amlogic,meson-axg-periphs-pinctrl"
13                       "amlogic,meson-axg-aobus-pinctrl"
14  - reg: address and size of registers controlling irq functionality
15
16 === GPIO sub-nodes ===
17
18 The GPIO bank for the controller is represented as a sub-node and it acts as a
19 GPIO controller.
20
21 Required properties for sub-nodes are:
22  - reg: should contain address and size for mux, pull-enable, pull and
23    gpio register sets
24  - reg-names: an array of strings describing the "reg" entries. Must
25    contain "mux", "pull" and "gpio". "pull-enable" is optional and
26    when it is missing the "pull" registers are used instead
27  - gpio-controller: identifies the node as a gpio controller
28  - #gpio-cells: must be 2
29
30 === Other sub-nodes ===
31
32 Child nodes without the "gpio-controller" represent some desired
33 configuration for a pin or a group. Those nodes can be pinmux nodes or
34 configuration nodes.
35
36 Required properties for pinmux nodes are:
37  - groups: a list of pinmux groups. The list of all available groups
38    depends on the SoC and can be found in driver sources.
39  - function: the name of a function to activate for the specified set
40    of groups. The list of all available functions depends on the SoC
41    and can be found in driver sources.
42
43 Required properties for configuration nodes:
44  - pins: a list of pin names
45
46 Configuration nodes support the generic properties "bias-disable",
47 "bias-pull-up" and "bias-pull-down", described in file
48 pinctrl-bindings.txt
49
50 === Example ===
51
52         pinctrl: pinctrl@c1109880 {
53                 compatible = "amlogic,meson8-cbus-pinctrl";
54                 reg = <0xc1109880 0x10>;
55                 #address-cells = <1>;
56                 #size-cells = <1>;
57                 ranges;
58
59                 gpio: banks@c11080b0 {
60                         reg = <0xc11080b0 0x28>,
61                               <0xc11080e8 0x18>,
62                               <0xc1108120 0x18>,
63                               <0xc1108030 0x30>;
64                         reg-names = "mux", "pull", "pull-enable", "gpio";
65                         gpio-controller;
66                         #gpio-cells = <2>;
67                };
68
69                 nand {
70                         mux {
71                                 groups = "nand_io", "nand_io_ce0", "nand_io_ce1",
72                                          "nand_io_rb0", "nand_ale", "nand_cle",
73                                          "nand_wen_clk", "nand_ren_clk", "nand_dqs",
74                                          "nand_ce2", "nand_ce3";
75                                 function = "nand";
76                         };
77                 };
78         };