xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/nvidia,tegra194-pinmux.txt (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
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