18c2ecf20Sopenharmony_ciNVIDIA Tegra194 pinmux controller 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciRequired properties: 48c2ecf20Sopenharmony_ci- compatible: "nvidia,tegra194-pinmux" 58c2ecf20Sopenharmony_ci- reg: Should contain a list of base address and size pairs for: 68c2ecf20Sopenharmony_ci - first entry: The APB_MISC_GP_*_PADCTRL registers (pad control) 78c2ecf20Sopenharmony_ci - second entry: The PINMUX_AUX_* registers (pinmux) 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the 108c2ecf20Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning of the 118c2ecf20Sopenharmony_ciphrase "pin configuration node". 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciTegra's pin configuration nodes act as a container for an arbitrary number of 148c2ecf20Sopenharmony_cisubnodes. Each of these subnodes represents some desired configuration for a 158c2ecf20Sopenharmony_cipin, a group, or a list of pins or groups. This configuration can include the 168c2ecf20Sopenharmony_cimux function to select on those pin(s)/group(s), and various pin configuration 178c2ecf20Sopenharmony_ciparameters, such as pull-up, tristate, drive strength, etc. 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciSee the TRM to determine which properties and values apply to each pin/group. 208c2ecf20Sopenharmony_ciMacro values for property values are defined in 218c2ecf20Sopenharmony_ciinclude/dt-binding/pinctrl/pinctrl-tegra.h. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciRequired subnode-properties: 248c2ecf20Sopenharmony_ci- nvidia,pins : An array of strings. Each string contains the name of a pin or 258c2ecf20Sopenharmony_ci group. Valid values for these names are listed below. 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciOptional subnode-properties: 288c2ecf20Sopenharmony_ci- nvidia,function: A string containing the name of the function to mux to the 298c2ecf20Sopenharmony_ci pin or group. 308c2ecf20Sopenharmony_ci- nvidia,pull: Integer, representing the pull-down/up to apply to the pin. 318c2ecf20Sopenharmony_ci 0: none, 1: down, 2: up. 328c2ecf20Sopenharmony_ci- nvidia,tristate: Integer. 338c2ecf20Sopenharmony_ci 0: drive, 1: tristate. 348c2ecf20Sopenharmony_ci- nvidia,enable-input: Integer. Enable the pin's input path. 358c2ecf20Sopenharmony_ci enable :TEGRA_PIN_ENABLE and 368c2ecf20Sopenharmony_ci disable or output only: TEGRA_PIN_DISABLE. 378c2ecf20Sopenharmony_ci- nvidia,open-drain: Integer. 388c2ecf20Sopenharmony_ci enable: TEGRA_PIN_ENABLE. 398c2ecf20Sopenharmony_ci disable: TEGRA_PIN_DISABLE. 408c2ecf20Sopenharmony_ci- nvidia,lock: Integer. Lock the pin configuration against further changes 418c2ecf20Sopenharmony_ci until reset. 428c2ecf20Sopenharmony_ci enable: TEGRA_PIN_ENABLE. 438c2ecf20Sopenharmony_ci disable: TEGRA_PIN_DISABLE. 448c2ecf20Sopenharmony_ci- nvidia,io-hv: Integer. Select high-voltage receivers. 458c2ecf20Sopenharmony_ci normal: TEGRA_PIN_DISABLE 468c2ecf20Sopenharmony_ci high: TEGRA_PIN_ENABLE 478c2ecf20Sopenharmony_ci- nvidia,schmitt: Integer. Enables Schmitt Trigger on the input. 488c2ecf20Sopenharmony_ci normal: TEGRA_PIN_DISABLE 498c2ecf20Sopenharmony_ci high: TEGRA_PIN_ENABLE 508c2ecf20Sopenharmony_ci- nvidia,drive-type: Integer. Valid range 0...3. 518c2ecf20Sopenharmony_ci- nvidia,pull-down-strength: Integer. Controls drive strength. 0 is weakest. 528c2ecf20Sopenharmony_ci The range of valid values depends on the pingroup. See "CAL_DRVDN" in the 538c2ecf20Sopenharmony_ci Tegra TRM. 548c2ecf20Sopenharmony_ci- nvidia,pull-up-strength: Integer. Controls drive strength. 0 is weakest. 558c2ecf20Sopenharmony_ci The range of valid values depends on the pingroup. See "CAL_DRVUP" in the 568c2ecf20Sopenharmony_ci Tegra TRM. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciValid values for pin and group names (nvidia,pin) are: 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci These correspond to Tegra PADCTL_* (pinmux) registers. 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci Mux groups: 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci These correspond to Tegra PADCTL_* (pinmux) registers. Any property 658c2ecf20Sopenharmony_ci that exists in those registers may be set for the following pin names. 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci pex_l5_clkreq_n_pgg0, pex_l5_rst_n_pgg1 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci Drive groups: 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci These registers controls a single pin for which a mux group exists. 728c2ecf20Sopenharmony_ci See the list above for the pin name to use when configuring the pinmux. 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci pex_l5_clkreq_n_pgg0, pex_l5_rst_n_pgg1 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciValid values for nvidia,functions are: 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci pe5 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ciPower Domain: 818c2ecf20Sopenharmony_ci pex_l5_clkreq_n_pgg0 and pex_l5_rst_n_pgg1 are part of PCIE C5 power 828c2ecf20Sopenharmony_ci partition. Client devices must enable this partition before accessing 838c2ecf20Sopenharmony_ci these pins here. 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ciExample: 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci tegra_pinctrl: pinmux: pinmux@2430000 { 898c2ecf20Sopenharmony_ci compatible = "nvidia,tegra194-pinmux"; 908c2ecf20Sopenharmony_ci reg = <0x2430000 0x17000 918c2ecf20Sopenharmony_ci 0xc300000 0x4000>; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci pinctrl-names = "pex_rst"; 948c2ecf20Sopenharmony_ci pinctrl-0 = <&pex_rst_c5_out_state>; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci pex_rst_c5_out_state: pex_rst_c5_out { 978c2ecf20Sopenharmony_ci pex_rst { 988c2ecf20Sopenharmony_ci nvidia,pins = "pex_l5_rst_n_pgg1"; 998c2ecf20Sopenharmony_ci nvidia,schmitt = <TEGRA_PIN_DISABLE>; 1008c2ecf20Sopenharmony_ci nvidia,lpdr = <TEGRA_PIN_ENABLE>; 1018c2ecf20Sopenharmony_ci nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1028c2ecf20Sopenharmony_ci nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>; 1038c2ecf20Sopenharmony_ci nvidia,tristate = <TEGRA_PIN_DISABLE>; 1048c2ecf20Sopenharmony_ci nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1058c2ecf20Sopenharmony_ci }; 1068c2ecf20Sopenharmony_ci }; 1078c2ecf20Sopenharmony_ci }; 108