pinctrl: add nexell driver
[platform/kernel/u-boot.git] / doc / device-tree-bindings / pinctrl / nexell,s5pxx18-pinctrl.txt
1 Binding for Nexell s5pxx18 pin cotroller
2 ========================================
3
4 Nexell's ARM bases SoC's integrates a GPIO and Pin mux/config hardware
5 controller. It controls the input/output settings on the available pads/pins
6 and also provides ability to multiplex and configure the output of various
7 on-chip controllers onto these pads.
8
9 Please refer to pinctrl-bindings.txt in this directory for details of the
10 common pinctrl bindings used by client devices, including the meaning of the
11 phrase "pin configuration node".
12
13
14 Required properties:
15   - compatible: "nexell,s5pxx18-pinctrl"
16   - reg: should be register base and length as documented in the datasheet
17   - interrupts: interrupt specifier for the controller over gpio and alive pins
18
19 Example:
20 pinctrl_0: pinctrl@c0010000 {
21         compatible = "nexell,s5pxx18-pinctrl";
22                 reg = <0xc0010000 0xf000>;
23                 u-boot,dm-pre-reloc;
24 };
25
26 Nexell's pin configuration nodes act as a container for an arbitrary number of
27 subnodes. Each of these subnodes represents some desired configuration for a
28 pin, a group, or a list of pins or groups. This configuration can include the
29 mux function to select on those pin(s)/group(s), and various pin configuration
30 parameters.
31
32   Child nodes must be set at least one of the following settings:
33   - pins = Select pins for using this function.
34   - pin-function = Select the function for use in a selected pin.
35   - pin-pull = Pull up/down configuration.
36   - pin-strength = Drive strength configuration.
37
38   Valid values for nexell,pins are:
39      "gpioX-N" : X in {A,B,C,D,E}, N in {0-31}
40   Valid values for nexell,pin-function are:
41      "N"       : N in {0-3}.
42                  This setting means that the value is different for each pin.
43                  Please refer to datasheet.
44   Valid values for nexell,pin-pull are:
45      "N"       : 0 - Down, 1 - Up, 2 - Off
46   Valid values for nexell,pin-strength are:
47      "N"       : 0,1,2,3
48
49
50 Example:
51   - pin settings
52         mmc0_clk: mmc0-clk {
53                 pins = "gpioa-29";
54                 pin-function = <1>;
55                 pin-pull = <2>;
56                 pin-strength = <2>;
57         };
58
59         mmc0_cmd: mmc0-cmd {
60                 pins = "gpioa-31";
61                 pin-function = <1>;
62                 pin-pull = <2>;
63                 pin-strength = <1>;
64         };
65
66         mmc0_bus4: mmc0-bus-width4 {
67                 pins = "gpiob-1, gpiob-3, gpiob-5, gpiob-7";
68                 pin-function = <1>;
69                 pin-pull = <2>;
70                 pin-strength = <1>;
71         };
72
73   - used by client devices
74         mmc0:mmc@... {
75                 pinctrl-names = "default";
76                 pinctrl-0 = <&mmc0_clk>, <&mmc0_cmd>, <&mmc0_bus4>;
77                 ...
78         };