1c66ec88fSEmmanuel VadotNVIDIA Tegra194 pinmux controller 2c66ec88fSEmmanuel Vadot 3c66ec88fSEmmanuel VadotRequired properties: 4c66ec88fSEmmanuel Vadot- compatible: "nvidia,tegra194-pinmux" 5c66ec88fSEmmanuel Vadot- reg: Should contain a list of base address and size pairs for: 6c66ec88fSEmmanuel Vadot - first entry: The APB_MISC_GP_*_PADCTRL registers (pad control) 7c66ec88fSEmmanuel Vadot - second entry: The PINMUX_AUX_* registers (pinmux) 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel VadotPlease refer to pinctrl-bindings.txt in this directory for details of the 10c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the meaning of the 11c66ec88fSEmmanuel Vadotphrase "pin configuration node". 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel VadotTegra's pin configuration nodes act as a container for an arbitrary number of 14c66ec88fSEmmanuel Vadotsubnodes. Each of these subnodes represents some desired configuration for a 15c66ec88fSEmmanuel Vadotpin, a group, or a list of pins or groups. This configuration can include the 16c66ec88fSEmmanuel Vadotmux function to select on those pin(s)/group(s), and various pin configuration 17c66ec88fSEmmanuel Vadotparameters, such as pull-up, tristate, drive strength, etc. 18c66ec88fSEmmanuel Vadot 19c66ec88fSEmmanuel VadotSee the TRM to determine which properties and values apply to each pin/group. 20c66ec88fSEmmanuel VadotMacro values for property values are defined in 21c66ec88fSEmmanuel Vadotinclude/dt-binding/pinctrl/pinctrl-tegra.h. 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel VadotRequired subnode-properties: 24c66ec88fSEmmanuel Vadot- nvidia,pins : An array of strings. Each string contains the name of a pin or 25c66ec88fSEmmanuel Vadot group. Valid values for these names are listed below. 26c66ec88fSEmmanuel Vadot 27c66ec88fSEmmanuel VadotOptional subnode-properties: 28c66ec88fSEmmanuel Vadot- nvidia,function: A string containing the name of the function to mux to the 29c66ec88fSEmmanuel Vadot pin or group. 30c66ec88fSEmmanuel Vadot- nvidia,pull: Integer, representing the pull-down/up to apply to the pin. 31c66ec88fSEmmanuel Vadot 0: none, 1: down, 2: up. 32c66ec88fSEmmanuel Vadot- nvidia,tristate: Integer. 33c66ec88fSEmmanuel Vadot 0: drive, 1: tristate. 34c66ec88fSEmmanuel Vadot- nvidia,enable-input: Integer. Enable the pin's input path. 35c66ec88fSEmmanuel Vadot enable :TEGRA_PIN_ENABLE and 36c66ec88fSEmmanuel Vadot disable or output only: TEGRA_PIN_DISABLE. 37c66ec88fSEmmanuel Vadot- nvidia,open-drain: Integer. 38c66ec88fSEmmanuel Vadot enable: TEGRA_PIN_ENABLE. 39c66ec88fSEmmanuel Vadot disable: TEGRA_PIN_DISABLE. 40c66ec88fSEmmanuel Vadot- nvidia,lock: Integer. Lock the pin configuration against further changes 41c66ec88fSEmmanuel Vadot until reset. 42c66ec88fSEmmanuel Vadot enable: TEGRA_PIN_ENABLE. 43c66ec88fSEmmanuel Vadot disable: TEGRA_PIN_DISABLE. 44c66ec88fSEmmanuel Vadot- nvidia,io-hv: Integer. Select high-voltage receivers. 45c66ec88fSEmmanuel Vadot normal: TEGRA_PIN_DISABLE 46c66ec88fSEmmanuel Vadot high: TEGRA_PIN_ENABLE 47c66ec88fSEmmanuel Vadot- nvidia,schmitt: Integer. Enables Schmitt Trigger on the input. 48c66ec88fSEmmanuel Vadot normal: TEGRA_PIN_DISABLE 49c66ec88fSEmmanuel Vadot high: TEGRA_PIN_ENABLE 50c66ec88fSEmmanuel Vadot- nvidia,drive-type: Integer. Valid range 0...3. 51c66ec88fSEmmanuel Vadot- nvidia,pull-down-strength: Integer. Controls drive strength. 0 is weakest. 52c66ec88fSEmmanuel Vadot The range of valid values depends on the pingroup. See "CAL_DRVDN" in the 53c66ec88fSEmmanuel Vadot Tegra TRM. 54c66ec88fSEmmanuel Vadot- nvidia,pull-up-strength: Integer. Controls drive strength. 0 is weakest. 55c66ec88fSEmmanuel Vadot The range of valid values depends on the pingroup. See "CAL_DRVUP" in the 56c66ec88fSEmmanuel Vadot Tegra TRM. 57c66ec88fSEmmanuel Vadot 58c66ec88fSEmmanuel VadotValid values for pin and group names (nvidia,pin) are: 59c66ec88fSEmmanuel Vadot 60c66ec88fSEmmanuel Vadot These correspond to Tegra PADCTL_* (pinmux) registers. 61c66ec88fSEmmanuel Vadot 62c66ec88fSEmmanuel Vadot Mux groups: 63c66ec88fSEmmanuel Vadot 64c66ec88fSEmmanuel Vadot These correspond to Tegra PADCTL_* (pinmux) registers. Any property 65c66ec88fSEmmanuel Vadot that exists in those registers may be set for the following pin names. 66c66ec88fSEmmanuel Vadot 67c66ec88fSEmmanuel Vadot pex_l5_clkreq_n_pgg0, pex_l5_rst_n_pgg1 68c66ec88fSEmmanuel Vadot 69c66ec88fSEmmanuel Vadot Drive groups: 70c66ec88fSEmmanuel Vadot 71c66ec88fSEmmanuel Vadot These registers controls a single pin for which a mux group exists. 72c66ec88fSEmmanuel Vadot See the list above for the pin name to use when configuring the pinmux. 73c66ec88fSEmmanuel Vadot 74c66ec88fSEmmanuel Vadot pex_l5_clkreq_n_pgg0, pex_l5_rst_n_pgg1 75c66ec88fSEmmanuel Vadot 76c66ec88fSEmmanuel VadotValid values for nvidia,functions are: 77c66ec88fSEmmanuel Vadot 78c66ec88fSEmmanuel Vadot pe5 79c66ec88fSEmmanuel Vadot 80c66ec88fSEmmanuel VadotPower Domain: 81c66ec88fSEmmanuel Vadot pex_l5_clkreq_n_pgg0 and pex_l5_rst_n_pgg1 are part of PCIE C5 power 82c66ec88fSEmmanuel Vadot partition. Client devices must enable this partition before accessing 83c66ec88fSEmmanuel Vadot these pins here. 84c66ec88fSEmmanuel Vadot 85c66ec88fSEmmanuel Vadot 86c66ec88fSEmmanuel VadotExample: 87c66ec88fSEmmanuel Vadot 88c66ec88fSEmmanuel Vadot tegra_pinctrl: pinmux: pinmux@2430000 { 89c66ec88fSEmmanuel Vadot compatible = "nvidia,tegra194-pinmux"; 90c66ec88fSEmmanuel Vadot reg = <0x2430000 0x17000 91c66ec88fSEmmanuel Vadot 0xc300000 0x4000>; 92c66ec88fSEmmanuel Vadot 93c66ec88fSEmmanuel Vadot pinctrl-names = "pex_rst"; 94c66ec88fSEmmanuel Vadot pinctrl-0 = <&pex_rst_c5_out_state>; 95c66ec88fSEmmanuel Vadot 96c66ec88fSEmmanuel Vadot pex_rst_c5_out_state: pex_rst_c5_out { 97c66ec88fSEmmanuel Vadot pex_rst { 98c66ec88fSEmmanuel Vadot nvidia,pins = "pex_l5_rst_n_pgg1"; 99c66ec88fSEmmanuel Vadot nvidia,schmitt = <TEGRA_PIN_DISABLE>; 100c66ec88fSEmmanuel Vadot nvidia,lpdr = <TEGRA_PIN_ENABLE>; 101c66ec88fSEmmanuel Vadot nvidia,enable-input = <TEGRA_PIN_DISABLE>; 102*5def4c47SEmmanuel Vadot nvidia,io-hv = <TEGRA_PIN_ENABLE>; 103c66ec88fSEmmanuel Vadot nvidia,tristate = <TEGRA_PIN_DISABLE>; 104c66ec88fSEmmanuel Vadot nvidia,pull = <TEGRA_PIN_PULL_NONE>; 105c66ec88fSEmmanuel Vadot }; 106c66ec88fSEmmanuel Vadot }; 107c66ec88fSEmmanuel Vadot }; 108