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 arbitrary 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