Mention branches and keyring.
[releases.git] / bindings / pinctrl / nvidia,tegra194-pinmux.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/pinctrl/nvidia,tegra194-pinmux.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NVIDIA Tegra194 Pinmux Controller
8
9 maintainers:
10   - Thierry Reding <thierry.reding@gmail.com>
11   - Jon Hunter <jonathanh@nvidia.com>
12
13 properties:
14   compatible:
15     enum:
16       - nvidia,tegra194-pinmux
17       - nvidia,tegra194-pinmux-aon
18
19   reg:
20     items:
21       - description: pinmux registers
22
23 patternProperties:
24   "^pinmux(-[a-z0-9-_]+)?$":
25     type: object
26
27     # pin groups
28     additionalProperties:
29       $ref: nvidia,tegra-pinmux-common.yaml
30       unevaluatedProperties: false
31       properties:
32         nvidia,function:
33           enum: [ aud, can0, can1, ccla, dca, dcb, dgpu, directdc, directdc1,
34                   displaya, displayb, dmic1, dmic2, dmic3, dmic4, dmic5, dp,
35                   dspk0, dspk1, eqos, extperiph1, extperiph2, extperiph3,
36                   extperiph4, gp, gpio, hdmi, i2c1, i2c2, i2c3, i2c5, i2c8,
37                   i2s1, i2s2, i2s3, i2s4, i2s5, i2s6, igpu, iqc1, iqc2, mipi,
38                   nv, pe0, pe1, pe2, pe3, pe4, pe5, qspi, qspi0, qspi1, rsvd0,
39                   rsvd1, rsvd2, rsvd3, sata, sce, sdmmc1, sdmmc3, sdmmc4, slvs,
40                   soc, spdif, spi1, spi2, spi3, touch, uarta, uartb, uartc,
41                   uartd, uarte, uartg, ufs0, usb, vgp1, vgp2, vgp3, vgp4, vgp5,
42                   vgp6, wdt ]
43
44         nvidia,pull: true
45         nvidia,tristate: true
46         nvidia,schmitt: true
47         nvidia,enable-input: true
48         nvidia,open-drain: true
49         nvidia,lock: true
50         nvidia,drive-type: true
51         nvidia,io-hv: true
52
53       required:
54         - nvidia,pins
55
56 additionalProperties: false
57
58 allOf:
59   - if:
60       properties:
61         compatible:
62           const: nvidia,tegra194-pinmux
63     then:
64       patternProperties:
65         "^pinmux(-[a-z0-9-_]+)?$":
66           type: object
67           additionalProperties:
68             properties:
69               nvidia,pins:
70                 description: An array of strings. Each string contains the name
71                   of a pin or group. Valid values for these names are listed
72                   below.
73
74                   Note that the pex_l5_clkreq_n_pgg0 and pex_l5_rst_n_pgg1 pins
75                   are part of PCIE C5 power partition. Client devices must
76                   enable this partition before accessing the configuration for
77                   these pins.
78                 items:
79                   enum: [ dap6_sclk_pa0, dap6_dout_pa1, dap6_din_pa2,
80                           dap6_fs_pa3, dap4_sclk_pa4, dap4_dout_pa5,
81                           dap4_din_pa6, dap4_fs_pa7, cpu_pwr_req_0_pb0,
82                           cpu_pwr_req_1_pb1, qspi0_sck_pc0, qspi0_cs_n_pc1,
83                           qspi0_io0_pc2, qspi0_io1_pc3, qspi0_io2_pc4,
84                           qspi0_io3_pc5, qspi1_sck_pc6, qspi1_cs_n_pc7,
85                           qspi1_io0_pd0, qspi1_io1_pd1, qspi1_io2_pd2,
86                           qspi1_io3_pd3, eqos_txc_pe0, eqos_td0_pe1,
87                           eqos_td1_pe2, eqos_td2_pe3, eqos_td3_pe4,
88                           eqos_tx_ctl_pe5, eqos_rd0_pe6, eqos_rd1_pe7,
89                           eqos_rd2_pf0, eqos_rd3_pf1, eqos_rx_ctl_pf2,
90                           eqos_rxc_pf3, eqos_sma_mdio_pf4, eqos_sma_mdc_pf5,
91                           soc_gpio00_pg0, soc_gpio01_pg1, soc_gpio02_pg2,
92                           soc_gpio03_pg3, soc_gpio08_pg4, soc_gpio09_pg5,
93                           soc_gpio10_pg6, soc_gpio11_pg7, soc_gpio12_ph0,
94                           soc_gpio13_ph1, soc_gpio14_ph2, uart4_tx_ph3,
95                           uart4_rx_ph4, uart4_rts_ph5, uart4_cts_ph6,
96                           dap2_sclk_ph7, dap2_dout_pi0, dap2_din_pi1,
97                           dap2_fs_pi2, gen1_i2c_scl_pi3, gen1_i2c_sda_pi4,
98                           sdmmc1_clk_pj0, sdmmc1_cmd_pj1, sdmmc1_dat0_pj2,
99                           sdmmc1_dat1_pj3, sdmmc1_dat2_pj4, sdmmc1_dat3_pj5,
100                           pex_l0_clkreq_n_pk0, pex_l0_rst_n_pk1,
101                           pex_l1_clkreq_n_pk2, pex_l1_rst_n_pk3,
102                           pex_l2_clkreq_n_pk4, pex_l2_rst_n_pk5,
103                           pex_l3_clkreq_n_pk6, pex_l3_rst_n_pk7,
104                           pex_l4_clkreq_n_pl0, pex_l4_rst_n_pl1,
105                           pex_wake_n_pl2, sata_dev_slp_pl3, dp_aux_ch0_hpd_pm0,
106                           dp_aux_ch1_hpd_pm1, dp_aux_ch2_hpd_pm2,
107                           dp_aux_ch3_hpd_pm3, hdmi_cec_pm4, soc_gpio50_pm5,
108                           soc_gpio51_pm6, soc_gpio52_pm7, soc_gpio53_pn0,
109                           soc_gpio54_pn1, soc_gpio55_pn2, sdmmc3_clk_po0,
110                           sdmmc3_cmd_po1, sdmmc3_dat0_po2, sdmmc3_dat1_po3,
111                           sdmmc3_dat2_po4, sdmmc3_dat3_po5, extperiph1_clk_pp0,
112                           extperiph2_clk_pp1, cam_i2c_scl_pp2, cam_i2c_sda_pp3,
113                           soc_gpio04_pp4, soc_gpio05_pp5, soc_gpio06_pp6,
114                           soc_gpio07_pp7, soc_gpio20_pq0, soc_gpio21_pq1,
115                           soc_gpio22_pq2, soc_gpio23_pq3, soc_gpio40_pq4,
116                           soc_gpio41_pq5, soc_gpio42_pq6, soc_gpio43_pq7,
117                           soc_gpio44_pr0, soc_gpio45_pr1, uart1_tx_pr2,
118                           uart1_rx_pr3, uart1_rts_pr4, uart1_cts_pr5,
119                           dap1_sclk_ps0, dap1_dout_ps1, dap1_din_ps2,
120                           dap1_fs_ps3, aud_mclk_ps4, soc_gpio30_ps5,
121                           soc_gpio31_ps6, soc_gpio32_ps7, soc_gpio33_pt0,
122                           dap3_sclk_pt1, dap3_dout_pt2, dap3_din_pt3,
123                           dap3_fs_pt4, dap5_sclk_pt5, dap5_dout_pt6,
124                           dap5_din_pt7, dap5_fs_pu0, directdc1_clk_pv0,
125                           directdc1_in_pv1, directdc1_out0_pv2,
126                           directdc1_out1_pv3, directdc1_out2_pv4,
127                           directdc1_out3_pv5, directdc1_out4_pv6,
128                           directdc1_out5_pv7, directdc1_out6_pw0,
129                           directdc1_out7_pw1, gpu_pwr_req_px0, cv_pwr_req_px1,
130                           gp_pwm2_px2, gp_pwm3_px3, uart2_tx_px4, uart2_rx_px5,
131                           uart2_rts_px6, uart2_cts_px7, spi3_sck_py0,
132                           spi3_miso_py1, spi3_mosi_py2, spi3_cs0_py3,
133                           spi3_cs1_py4, uart5_tx_py5, uart5_rx_py6,
134                           uart5_rts_py7, uart5_cts_pz0, usb_vbus_en0_pz1,
135                           usb_vbus_en1_pz2, spi1_sck_pz3, spi1_miso_pz4,
136                           spi1_mosi_pz5, spi1_cs0_pz6, spi1_cs1_pz7,
137                           ufs0_ref_clk_pff0, ufs0_rst_pff1,
138                           pex_l5_clkreq_n_pgg0, pex_l5_rst_n_pgg1,
139                           directdc_comp, sdmmc4_clk, sdmmc4_cmd, sdmmc4_dqs,
140                           sdmmc4_dat7, sdmmc4_dat6, sdmmc4_dat5, sdmmc4_dat4,
141                           sdmmc4_dat3, sdmmc4_dat2, sdmmc4_dat1, sdmmc4_dat0,
142                           sdmmc1_comp, sdmmc1_hv_trim, sdmmc3_comp,
143                           sdmmc3_hv_trim, eqos_comp, qspi_comp,
144                           # drive groups
145                           drive_soc_gpio33_pt0, drive_soc_gpio32_ps7,
146                           drive_soc_gpio31_ps6, drive_soc_gpio30_ps5,
147                           drive_aud_mclk_ps4, drive_dap1_fs_ps3,
148                           drive_dap1_din_ps2, drive_dap1_dout_ps1,
149                           drive_dap1_sclk_ps0, drive_dap3_fs_pt4,
150                           drive_dap3_din_pt3, drive_dap3_dout_pt2,
151                           drive_dap3_sclk_pt1, drive_dap5_fs_pu0,
152                           drive_dap5_din_pt7, drive_dap5_dout_pt6,
153                           drive_dap5_sclk_pt5, drive_dap6_fs_pa3,
154                           drive_dap6_din_pa2, drive_dap6_dout_pa1,
155                           drive_dap6_sclk_pa0, drive_dap4_fs_pa7,
156                           drive_dap4_din_pa6, drive_dap4_dout_pa5,
157                           drive_dap4_sclk_pa4, drive_extperiph2_clk_pp1,
158                           drive_extperiph1_clk_pp0, drive_cam_i2c_sda_pp3,
159                           drive_cam_i2c_scl_pp2, drive_soc_gpio40_pq4,
160                           drive_soc_gpio41_pq5, drive_soc_gpio42_pq6,
161                           drive_soc_gpio43_pq7, drive_soc_gpio44_pr0,
162                           drive_soc_gpio45_pr1, drive_soc_gpio20_pq0,
163                           drive_soc_gpio21_pq1, drive_soc_gpio22_pq2,
164                           drive_soc_gpio23_pq3, drive_soc_gpio04_pp4,
165                           drive_soc_gpio05_pp5, drive_soc_gpio06_pp6,
166                           drive_soc_gpio07_pp7, drive_uart1_cts_pr5,
167                           drive_uart1_rts_pr4, drive_uart1_rx_pr3,
168                           drive_uart1_tx_pr2, drive_dap2_din_pi1,
169                           drive_dap2_dout_pi0, drive_dap2_fs_pi2,
170                           drive_dap2_sclk_ph7, drive_uart4_cts_ph6,
171                           drive_uart4_rts_ph5, drive_uart4_rx_ph4,
172                           drive_uart4_tx_ph3, drive_soc_gpio03_pg3,
173                           drive_soc_gpio02_pg2, drive_soc_gpio01_pg1,
174                           drive_soc_gpio00_pg0, drive_gen1_i2c_scl_pi3,
175                           drive_gen1_i2c_sda_pi4, drive_soc_gpio08_pg4,
176                           drive_soc_gpio09_pg5, drive_soc_gpio10_pg6,
177                           drive_soc_gpio11_pg7, drive_soc_gpio12_ph0,
178                           drive_soc_gpio13_ph1, drive_soc_gpio14_ph2,
179                           drive_soc_gpio50_pm5, drive_soc_gpio51_pm6,
180                           drive_soc_gpio52_pm7, drive_soc_gpio53_pn0,
181                           drive_soc_gpio54_pn1, drive_soc_gpio55_pn2,
182                           drive_dp_aux_ch0_hpd_pm0, drive_dp_aux_ch1_hpd_pm1,
183                           drive_dp_aux_ch2_hpd_pm2, drive_dp_aux_ch3_hpd_pm3,
184                           drive_hdmi_cec_pm4, drive_pex_l2_clkreq_n_pk4,
185                           drive_pex_wake_n_pl2, drive_pex_l1_clkreq_n_pk2,
186                           drive_pex_l1_rst_n_pk3, drive_pex_l0_clkreq_n_pk0,
187                           drive_pex_l0_rst_n_pk1, drive_pex_l2_rst_n_pk5,
188                           drive_pex_l3_clkreq_n_pk6, drive_pex_l3_rst_n_pk7,
189                           drive_pex_l4_clkreq_n_pl0, drive_pex_l4_rst_n_pl1,
190                           drive_sata_dev_slp_pl3, drive_pex_l5_clkreq_n_pgg0,
191                           drive_pex_l5_rst_n_pgg1, drive_cpu_pwr_req_1_pb1,
192                           drive_cpu_pwr_req_0_pb0, drive_sdmmc1_clk_pj0,
193                           drive_sdmmc1_cmd_pj1, drive_sdmmc1_dat3_pj5,
194                           drive_sdmmc1_dat2_pj4, drive_sdmmc1_dat1_pj3,
195                           drive_sdmmc1_dat0_pj2, drive_sdmmc3_dat3_po5,
196                           drive_sdmmc3_dat2_po4, drive_sdmmc3_dat1_po3,
197                           drive_sdmmc3_dat0_po2, drive_sdmmc3_cmd_po1,
198                           drive_sdmmc3_clk_po0, drive_gpu_pwr_req_px0,
199                           drive_spi3_miso_py1, drive_spi1_cs0_pz6,
200                           drive_spi3_cs0_py3, drive_spi1_miso_pz4,
201                           drive_spi3_cs1_py4, drive_gp_pwm3_px3,
202                           drive_gp_pwm2_px2, drive_spi1_sck_pz3,
203                           drive_spi3_sck_py0, drive_spi1_cs1_pz7,
204                           drive_spi1_mosi_pz5, drive_spi3_mosi_py2,
205                           drive_cv_pwr_req_px1, drive_uart2_tx_px4,
206                           drive_uart2_rx_px5, drive_uart2_rts_px6,
207                           drive_uart2_cts_px7, drive_uart5_rx_py6,
208                           drive_uart5_tx_py5, drive_uart5_rts_py7,
209                           drive_uart5_cts_pz0, drive_usb_vbus_en0_pz1,
210                           drive_usb_vbus_en1_pz2, drive_ufs0_rst_pff1,
211                           drive_ufs0_ref_clk_pff0 ]
212
213   - if:
214       properties:
215         compatible:
216           const: nvidia,tegra194-pinmux-aon
217     then:
218       patternProperties:
219         "^pinmux(-[a-z0-9-_]+)?$":
220           type: object
221           additionalProperties:
222             properties:
223               nvidia,pins:
224                 items:
225                   enum: [ can1_dout_paa0, can1_din_paa1, can0_dout_paa2,
226                           can0_din_paa3, can0_stb_paa4, can0_en_paa5,
227                           can0_wake_paa6, can0_err_paa7, can1_stb_pbb0,
228                           can1_en_pbb1, can1_wake_pbb2, can1_err_pbb3,
229                           spi2_sck_pcc0, spi2_miso_pcc1, spi2_mosi_pcc2,
230                           spi2_cs0_pcc3, touch_clk_pcc4, uart3_tx_pcc5,
231                           uart3_rx_pcc6, gen2_i2c_scl_pcc7, gen2_i2c_sda_pdd0,
232                           gen8_i2c_scl_pdd1, gen8_i2c_sda_pdd2,
233                           safe_state_pee0, vcomp_alert_pee1,
234                           ao_retention_n_pee2, batt_oc_pee3, power_on_pee4,
235                           pwr_i2c_scl_pee5, pwr_i2c_sda_pee6, sys_reset_n,
236                           shutdown_n, pmu_int_n, soc_pwr_req, clk_32k_in,
237                           # drive groups
238                           drive_shutdown_n, drive_pmu_int_n,
239                           drive_safe_state_pee0, drive_vcomp_alert_pee1,
240                           drive_soc_pwr_req, drive_batt_oc_pee3,
241                           drive_clk_32k_in, drive_power_on_pee4,
242                           drive_pwr_i2c_scl_pee5, drive_pwr_i2c_sda_pee6,
243                           drive_ao_retention_n_pee2, drive_touch_clk_pcc4,
244                           drive_uart3_rx_pcc6, drive_uart3_tx_pcc5,
245                           drive_gen8_i2c_sda_pdd2, drive_gen8_i2c_scl_pdd1,
246                           drive_spi2_mosi_pcc2, drive_gen2_i2c_scl_pcc7,
247                           drive_spi2_cs0_pcc3, drive_gen2_i2c_sda_pdd0,
248                           drive_spi2_sck_pcc0, drive_spi2_miso_pcc1,
249                           drive_can1_dout_paa0, drive_can1_din_paa1,
250                           drive_can0_dout_paa2, drive_can0_din_paa3,
251                           drive_can0_stb_paa4, drive_can0_en_paa5,
252                           drive_can0_wake_paa6, drive_can0_err_paa7,
253                           drive_can1_stb_pbb0, drive_can1_en_pbb1,
254                           drive_can1_wake_pbb2, drive_can1_err_pbb3 ]
255
256 required:
257   - compatible
258   - reg
259
260 examples:
261   - |
262     #include <dt-bindings/pinctrl/pinctrl-tegra.h>
263
264     pinmux@2430000 {
265         compatible = "nvidia,tegra194-pinmux";
266         reg = <0x2430000 0x17000>;
267
268         pinctrl-names = "pex_rst";
269         pinctrl-0 = <&pex_rst_c5_out_state>;
270
271         pex_rst_c5_out_state: pinmux-pex-rst-c5-out {
272             pex_rst {
273                 nvidia,pins = "pex_l5_rst_n_pgg1";
274                 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
275                 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
276                 nvidia,io-hv = <TEGRA_PIN_ENABLE>;
277                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
278                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
279             };
280         };
281     };
282 ...