linux/Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt
<<
>>
Prefs
   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  - drive-strength: Integer, control drive strength of pins in mA.
  48      2: 2mA
  49      4: 4mA
  50      8: 8mA
  51      12: 12mA
  52  - low-power-enable: Flag, power-on-start weak pull-down for invalid power.
  53  - low-power-disable: Flag, power-on-start weak pull-down disabled.
  54
  55Note that many of these properties are only valid for certain specific pins
  56or groups. See the TZ1090 TRM for complete details regarding which groups
  57support which functionality. The Linux pinctrl driver may also be a useful
  58reference.
  59
  60Valid values for pin and group names are:
  61
  62  pins:
  63
  64    These all support bias-high-impediance, bias-pull-up, bias-pull-down, and
  65    bias-bus-hold (which can also be provided to any of the groups below to set
  66    it for all gpio pins in that group).
  67
  68    gpio0, gpio1, sys_wake0, sys_wake1, sys_wake2, ir_data, ext_power.
  69
  70  mux groups:
  71
  72    These all support function.
  73
  74    gpio0
  75        pins:       gpio0.
  76        function:   ir_mod_stable_out.
  77    gpio1
  78        pins:       gpio1.
  79        function:   ir_mod_power_out.
  80
  81  drive groups:
  82
  83    These support input-schmitt-enable, input-schmitt-disable,
  84    drive-strength, low-power-enable, and low-power-disable.
  85
  86    pdc
  87        pins:   gpio0, gpio1, sys_wake0, sys_wake1, sys_wake2, ir_data,
  88                ext_power.
  89
  90Example:
  91
  92        pinctrl_pdc: pinctrl@02006500 {
  93                #gpio-range-cells = <3>;
  94                compatible = "img,tz1090-pdc-pinctrl";
  95                reg = <0x02006500 0x100>;
  96        };
  97
  98Example board file extracts:
  99
 100        &pinctrl_pdc {
 101                pinctrl-names = "default";
 102                pinctrl-0 = <&syswake_default>;
 103
 104                syswake_default: syswakes {
 105                        syswake_cfg {
 106                                tz1090,pins =   "sys_wake0",
 107                                                "sys_wake1",
 108                                                "sys_wake2";
 109                                pull-up;
 110                        };
 111                };
 112                irmod_default: irmod {
 113                        gpio0_cfg {
 114                                tz1090,pins =   "gpio0";
 115                                tz1090,function = "ir_mod_stable_out";
 116                        };
 117                        gpio1_cfg {
 118                                tz1090,pins =   "gpio1";
 119                                tz1090,function = "ir_mod_power_out";
 120                        };
 121                };
 122        };
 123
 124        ir: ir@02006200 {
 125                pinctrl-names = "default";
 126                pinctrl-0 = <&irmod_default>;
 127        };
 128