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