aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/pinctrl
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2013-06-20 05:26:29 -0400
committerLinus Walleij <linus.walleij@linaro.org>2013-06-24 11:21:38 -0400
commitb58f0273f0858214da2ee4e1675221e56f7712ec (patch)
tree4b271facfd342bde65323cf0d37cf5ca6841b728 /Documentation/devicetree/bindings/pinctrl
parentd5025f9f535108ba44c7f00573a2a34c18a3ea2b (diff)
pinctrl-tz1090-pdc: add TZ1090 PDC pinctrl driver
Add a pin control driver for the TZ1090's low power pins via the powerdown controller SOC_GPIO_CONTROL registers. These pins have individually controlled pull-up, and group controlled schmitt, slew-rate, drive-strength, and power-on-start (pos). The pdc_gpio0 and pdc_gpio1 pins can also be muxed onto the ir_mod_stable_out and ir_mod_power_out functions respectively. If no function is set they remain in GPIO mode. These muxes can be overridden by requesting them as GPIOs. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Grant Likely <grant.likely@linaro.org> Cc: Rob Herring <rob.herring@calxeda.com> Cc: Rob Landley <rob@landley.net> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: linux-doc@vger.kernel.org Cc: devicetree-discuss@lists.ozlabs.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'Documentation/devicetree/bindings/pinctrl')
-rw-r--r--Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt130
1 files changed, 130 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt
new file mode 100644
index 000000000000..9f7a85bb8fca
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt
@@ -0,0 +1,130 @@
1ImgTec TZ1090 PDC pin controller
2
3Required properties:
4- compatible: "img,tz1090-pdc-pinctrl"
5- reg: Should contain the register physical address and length of the
6 SOC_GPIO_CONTROL registers in the PDC register region.
7
8Please refer to pinctrl-bindings.txt in this directory for details of the
9common pinctrl bindings used by client devices, including the meaning of the
10phrase "pin configuration node".
11
12TZ1090-PDC's pin configuration nodes act as a container for an abitrary number
13of subnodes. Each of these subnodes represents some desired configuration for a
14pin, a group, or a list of pins or groups. This configuration can include the
15mux function to select on those pin(s)/group(s), and various pin configuration
16parameters, such as pull-up, drive strength, etc.
17
18The name of each subnode is not important; all subnodes should be enumerated
19and processed purely based on their content.
20
21Each subnode only affects those parameters that are explicitly listed. In
22other words, a subnode that lists a mux function but no pin configuration
23parameters implies no information about any pin configuration parameters.
24Similarly, a pin subnode that describes a pullup parameter implies no
25information about e.g. the mux function. For this reason, even seemingly boolean
26values are actually tristates in this binding: unspecified, off, or on.
27Unspecified is represented as an absent property, and off/on are represented as
28integer values 0 and 1.
29
30Required subnode-properties:
31- tz1090,pins : An array of strings. Each string contains the name of a pin or
32 group. Valid values for these names are listed below.
33
34Optional subnode-properties:
35- tz1090,function: A string containing the name of the function to mux to the
36 pin or group. Valid values for function names are listed below, including
37 which pingroups can be muxed to them.
38- supported generic pinconfig properties (for further details see
39 Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt):
40 - bias-disable
41 - bias-high-impedance
42 - bias-bus-hold
43 - bias-pull-up
44 - bias-pull-down
45 - input-schmitt-enable
46 - input-schmitt-disable
47 - slew-rate: Integer, control slew rate of pins.
48 0: slow (half frequency)
49 1: fast
50 - drive-strength: Integer, control drive strength of pins in mA.
51 2: 2mA
52 4: 4mA
53 8: 8mA
54 12: 12mA
55 - low-power-enable: Flag, power-on-start weak pull-down for invalid power.
56 - low-power-disable: Flag, power-on-start weak pull-down disabled.
57
58Note that many of these properties are only valid for certain specific pins
59or groups. See the TZ1090 TRM for complete details regarding which groups
60support which functionality. The Linux pinctrl driver may also be a useful
61reference.
62
63Valid values for pin and group names are:
64
65 pins:
66
67 These all support bias-high-impediance, bias-pull-up, bias-pull-down, and
68 bias-bus-hold (which can also be provided to any of the groups below to set
69 it for all gpio pins in that group).
70
71 gpio0, gpio1, sys_wake0, sys_wake1, sys_wake2, ir_data, ext_power.
72
73 mux groups:
74
75 These all support function.
76
77 gpio0
78 pins: gpio0.
79 function: ir_mod_stable_out.
80 gpio1
81 pins: gpio1.
82 function: ir_mod_power_out.
83
84 drive groups:
85
86 These support input-schmitt-enable, input-schmitt-disable, slew-rate,
87 drive-strength, low-power-enable, and low-power-disable.
88
89 pdc
90 pins: gpio0, gpio1, sys_wake0, sys_wake1, sys_wake2, ir_data,
91 ext_power.
92
93Example:
94
95 pinctrl_pdc: pinctrl@02006500 {
96 #gpio-range-cells = <3>;
97 compatible = "img,tz1090-pdc-pinctrl";
98 reg = <0x02006500 0x100>;
99 };
100
101Example board file extracts:
102
103 &pinctrl_pdc {
104 pinctrl-names = "default";
105 pinctrl-0 = <&syswake_default>;
106
107 syswake_default: syswakes {
108 syswake_cfg {
109 tz1090,pins = "sys_wake0",
110 "sys_wake1",
111 "sys_wake2";
112 pull-up;
113 };
114 };
115 irmod_default: irmod {
116 gpio0_cfg {
117 tz1090,pins = "gpio0";
118 tz1090,function = "ir_mod_stable_out";
119 };
120 gpio1_cfg {
121 tz1090,pins = "gpio1";
122 tz1090,function = "ir_mod_power_out";
123 };
124 };
125 };
126
127 ir: ir@02006200 {
128 pinctrl-names = "default";
129 pinctrl-0 = <&irmod_default>;
130 };