diff options
Diffstat (limited to 'Documentation')
| -rw-r--r-- | Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt | 130 |
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 @@ | |||
| 1 | ImgTec TZ1090 PDC pin controller | ||
| 2 | |||
| 3 | Required 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 | |||
| 8 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
| 9 | common pinctrl bindings used by client devices, including the meaning of the | ||
| 10 | phrase "pin configuration node". | ||
| 11 | |||
| 12 | TZ1090-PDC's pin configuration nodes act as a container for an abitrary number | ||
| 13 | of subnodes. Each of these subnodes represents some desired configuration for a | ||
| 14 | pin, a group, or a list of pins or groups. This configuration can include the | ||
| 15 | mux function to select on those pin(s)/group(s), and various pin configuration | ||
| 16 | parameters, such as pull-up, drive strength, etc. | ||
| 17 | |||
| 18 | The name of each subnode is not important; all subnodes should be enumerated | ||
| 19 | and processed purely based on their content. | ||
| 20 | |||
| 21 | Each subnode only affects those parameters that are explicitly listed. In | ||
| 22 | other words, a subnode that lists a mux function but no pin configuration | ||
| 23 | parameters implies no information about any pin configuration parameters. | ||
| 24 | Similarly, a pin subnode that describes a pullup parameter implies no | ||
| 25 | information about e.g. the mux function. For this reason, even seemingly boolean | ||
| 26 | values are actually tristates in this binding: unspecified, off, or on. | ||
| 27 | Unspecified is represented as an absent property, and off/on are represented as | ||
| 28 | integer values 0 and 1. | ||
| 29 | |||
| 30 | Required 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 | |||
| 34 | Optional 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 | |||
| 58 | Note that many of these properties are only valid for certain specific pins | ||
| 59 | or groups. See the TZ1090 TRM for complete details regarding which groups | ||
| 60 | support which functionality. The Linux pinctrl driver may also be a useful | ||
| 61 | reference. | ||
| 62 | |||
| 63 | Valid 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 | |||
| 93 | Example: | ||
| 94 | |||
| 95 | pinctrl_pdc: pinctrl@02006500 { | ||
| 96 | #gpio-range-cells = <3>; | ||
| 97 | compatible = "img,tz1090-pdc-pinctrl"; | ||
| 98 | reg = <0x02006500 0x100>; | ||
| 99 | }; | ||
| 100 | |||
| 101 | Example 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 | }; | ||
