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