tegra210_pinmux.c revision 1.2 1 1.2 skrll /* $NetBSD: tegra210_pinmux.c,v 1.2 2019/09/28 07:42:47 skrll Exp $ */
2 1.1 jmcneill
3 1.1 jmcneill /*-
4 1.1 jmcneill * Copyright (c) 2017 Jared McNeill <jmcneill (at) invisible.ca>
5 1.1 jmcneill * All rights reserved.
6 1.1 jmcneill *
7 1.1 jmcneill * Redistribution and use in source and binary forms, with or without
8 1.1 jmcneill * modification, are permitted provided that the following conditions
9 1.1 jmcneill * are met:
10 1.1 jmcneill * 1. Redistributions of source code must retain the above copyright
11 1.1 jmcneill * notice, this list of conditions and the following disclaimer.
12 1.1 jmcneill * 2. Redistributions in binary form must reproduce the above copyright
13 1.1 jmcneill * notice, this list of conditions and the following disclaimer in the
14 1.1 jmcneill * documentation and/or other materials provided with the distribution.
15 1.1 jmcneill *
16 1.1 jmcneill * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 1.1 jmcneill * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 1.1 jmcneill * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 1.1 jmcneill * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 1.1 jmcneill * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21 1.1 jmcneill * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 1.1 jmcneill * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23 1.1 jmcneill * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 1.1 jmcneill * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 1.1 jmcneill * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 1.1 jmcneill * SUCH DAMAGE.
27 1.1 jmcneill */
28 1.1 jmcneill
29 1.1 jmcneill #include <sys/cdefs.h>
30 1.2 skrll __KERNEL_RCSID(0, "$NetBSD: tegra210_pinmux.c,v 1.2 2019/09/28 07:42:47 skrll Exp $");
31 1.1 jmcneill
32 1.1 jmcneill #include <sys/param.h>
33 1.1 jmcneill #include <sys/systm.h>
34 1.1 jmcneill #include <sys/kernel.h>
35 1.1 jmcneill #include <sys/types.h>
36 1.1 jmcneill
37 1.1 jmcneill #include <arm/nvidia/tegra_pinmux.h>
38 1.1 jmcneill
39 1.2 skrll #define TEGRA_PIN(n, r, f1, f2, f3, f4) \
40 1.2 skrll { \
41 1.2 skrll .tpp_name = n, \
42 1.2 skrll .tpp_reg = (r), \
43 1.2 skrll .tpp_type = TEGRA_PINMUX, \
44 1.2 skrll .tpp_functions = { \
45 1.2 skrll f1, f2, f3, f4 \
46 1.2 skrll } \
47 1.2 skrll }
48 1.2 skrll
49 1.2 skrll #define TEGRA_PINGROUP(n, r, drvdn_m, drvup_m, slwrr_m, slwrf_m) \
50 1.2 skrll { \
51 1.2 skrll .tpp_name = "drive_" n, \
52 1.2 skrll .tpp_reg = (r) - 0x8d4, \
53 1.2 skrll .tpp_type = TEGRA_PADCTRL, \
54 1.2 skrll .tpp_dg = { \
55 1.2 skrll .drvdn_mask = drvdn_m, \
56 1.2 skrll .drvup_mask = drvup_m, \
57 1.2 skrll .slwrr_mask = slwrr_m, \
58 1.2 skrll .slwrf_mask = slwrf_m \
59 1.2 skrll } \
60 1.2 skrll }
61 1.2 skrll
62 1.2 skrll // 9.15 Pinmux registers
63 1.1 jmcneill static const struct tegra_pinmux_pins tegra210_pins[] = {
64 1.2 skrll TEGRA_PIN("sdmmc1_clk_pm0", 0x00, "sdmmc1", "rsvd1", "rsvd2", "rsvd3"),
65 1.2 skrll TEGRA_PIN("sdmmc1_cmd_pm1", 0x04, "sdmmc1", "rsvd1", "rsvd2", "rsvd3"),
66 1.2 skrll TEGRA_PIN("sdmmc1_dat3_pm2", 0x08, "sdmmc1", "rsvd1", "rsvd2", "rsvd3"),
67 1.2 skrll TEGRA_PIN("sdmmc1_dat2_pm3", 0x0c, "sdmmc1", "rsvd1", "rsvd2", "rsvd3"),
68 1.2 skrll TEGRA_PIN("sdmmc1_dat1_pm4", 0x10, "sdmmc1", "rsvd1", "rsvd2", "rsvd3"),
69 1.2 skrll TEGRA_PIN("sdmmc1_dat0_pm5", 0x14, "sdmmc1", "rsvd1", "rsvd2", "rsvd3"),
70 1.2 skrll TEGRA_PIN("sdmmc3_clk_pp0", 0x1c, "sdmmc3", "rsvd1", "rsvd2", "rsvd3"),
71 1.2 skrll TEGRA_PIN("sdmmc3_cmd_pp1", 0x20, "sdmmc3", "rsvd1", "rsvd2", "rsvd3"),
72 1.2 skrll TEGRA_PIN("sdmmc3_dat0_pp5", 0x24, "sdmmc3", "rsvd1", "rsvd2", "rsvd3"),
73 1.2 skrll TEGRA_PIN("sdmmc3_dat1_pp4", 0x28, "sdmmc3", "rsvd1", "rsvd2", "rsvd3"),
74 1.2 skrll TEGRA_PIN("sdmmc3_dat2_pp3", 0x2c, "sdmmc3", "rsvd1", "rsvd2", "rsvd3"),
75 1.2 skrll TEGRA_PIN("sdmmc3_dat3_pp2", 0x30, "sdmmc3", "rsvd1", "rsvd2", "rsvd3"),
76 1.2 skrll TEGRA_PIN("pex_l0_rst_n_pa0", 0x38, "pe0", "rsvd1", "rsvd2", "rsvd3"),
77 1.2 skrll TEGRA_PIN("pex_l0_clkreq_n_pa1", 0x3c, "pe0", "rsvd1", "rsvd2", "rsvd3"),
78 1.2 skrll TEGRA_PIN("pex_wake_n_pa2", 0x40, "pe", "rsvd1", "rsvd2", "rsvd3"),
79 1.2 skrll TEGRA_PIN("pex_l1_rst_n_pa3", 0x44, "pe1", "rsvd1", "rsvd2", "rsvd3"),
80 1.2 skrll TEGRA_PIN("pex_l1_clkreq_n_pa4", 0x48, "pe1", "rsvd1", "rsvd2", "rsvd3"),
81 1.2 skrll TEGRA_PIN("sata_led_active_pa5", 0x4c, "sata", "rsvd1", "rsvd2", "rsvd3"),
82 1.2 skrll TEGRA_PIN("spi1_mosi_pc0", 0x50, "spi1", "rsvd1", "rsvd2", "rsvd3"),
83 1.2 skrll TEGRA_PIN("spi1_miso_pc1", 0x54, "spi1", "rsvd1", "rsvd2", "rsvd3"),
84 1.2 skrll TEGRA_PIN("spi1_sck_pc2", 0x58, "spi1", "rsvd1", "rsvd2", "rsvd3"),
85 1.2 skrll TEGRA_PIN("spi1_cs0_pc3", 0x5c, "spi1", "rsvd1", "rsvd2", "rsvd3"),
86 1.2 skrll TEGRA_PIN("spi1_cs1_pc4", 0x60, "spi1", "rsvd1", "rsvd2", "rsvd3"),
87 1.2 skrll TEGRA_PIN("spi2_mosi_pb4", 0x64, "spi2", "dtv", "rsvd2", "rsvd3"),
88 1.2 skrll TEGRA_PIN("spi2_miso_pb5", 0x68, "spi2", "dtv", "rsvd2", "rsvd3"),
89 1.2 skrll TEGRA_PIN("spi2_sck_pb6", 0x6c, "spi2", "dtv", "rsvd2", "rsvd3"),
90 1.2 skrll TEGRA_PIN("spi2_cs0_pb7", 0x70, "spi2", "dtv", "rsvd2", "rsvd3"),
91 1.2 skrll TEGRA_PIN("spi2_cs1_pdd0", 0x74, "spi2", "rsvd1", "rsvd2", "rsvd3"),
92 1.2 skrll TEGRA_PIN("spi4_mosi_pc7", 0x78, "spi4", "rsvd1", "rsvd2", "rsvd3"),
93 1.2 skrll TEGRA_PIN("spi4_miso_pd0", 0x7c, "spi4", "rsvd1", "rsvd2", "rsvd3"),
94 1.2 skrll TEGRA_PIN("spi4_sck_pc5", 0x80, "spi4", "rsvd1", "rsvd2", "rsvd3"),
95 1.2 skrll TEGRA_PIN("spi4_cs0_pc6", 0x84, "spi4", "rsvd1", "rsvd2", "rsvd3"),
96 1.2 skrll TEGRA_PIN("qspi_sck_pee0", 0x88, "qspi", "rsvd1", "rsvd2", "rsvd3"),
97 1.2 skrll TEGRA_PIN("qspi_cs_n_pee1", 0x8c, "qspi", "rsvd1", "rsvd2", "rsvd3"),
98 1.2 skrll TEGRA_PIN("qspi_io0_pee2", 0x90, "qspi", "rsvd1", "rsvd2", "rsvd3"),
99 1.2 skrll TEGRA_PIN("qspi_io1_pee3", 0x94, "qspi", "rsvd1", "rsvd2", "rsvd3"),
100 1.2 skrll TEGRA_PIN("qspi_io2_pee4", 0x98, "qspi", "rsvd1", "rsvd2", "rsvd3"),
101 1.2 skrll TEGRA_PIN("qspi_io3_pee5", 0x9c, "qspi", "rsvd1", "rsvd2", "rsvd3"),
102 1.2 skrll TEGRA_PIN("dmic1_clk_pe0", 0xa4, "dmic1", "i2s3", "rsvd2", "rsvd3"),
103 1.2 skrll TEGRA_PIN("dmic1_dat_pe1", 0xa8, "dmic1", "i2s3", "rsvd2", "rsvd3"),
104 1.2 skrll TEGRA_PIN("dmic2_clk_pe2", 0xac, "dmic2", "i2s3", "rsvd2", "rsvd3"),
105 1.2 skrll TEGRA_PIN("dmic2_dat_pe3", 0xb0, "dmic2", "i2s3", "rsvd2", "rsvd3"),
106 1.2 skrll TEGRA_PIN("dmic3_clk_pe4", 0xb4, "dmic3", "i2s5a", "rsvd2", "rsvd3"),
107 1.2 skrll TEGRA_PIN("dmic3_dat_pe5", 0xb8, "dmic3", "i2s5a", "rsvd2", "rsvd3"),
108 1.2 skrll TEGRA_PIN("gen1_i2c_scl_pj1", 0xbc, "i2c1", "rsvd1", "rsvd2", "rsvd3"),
109 1.2 skrll TEGRA_PIN("gen1_i2c_sda_pj0", 0xc0, "i2c1", "rsvd1", "rsvd2", "rsvd3"),
110 1.2 skrll TEGRA_PIN("gen2_i2c_scl_pj2", 0xc4, "i2c2", "rsvd1", "rsvd2", "rsvd3"),
111 1.2 skrll TEGRA_PIN("gen2_i2c_sda_pj3", 0xc8, "i2c2", "rsvd1", "rsvd2", "rsvd3"),
112 1.2 skrll TEGRA_PIN("gen3_i2c_scl_pf0", 0xcc, "i2c3", "rsvd1", "rsvd2", "rsvd3"),
113 1.2 skrll TEGRA_PIN("gen3_i2c_sda_pf1", 0xd0, "i2c3", "rsvd1", "rsvd2", "rsvd3"),
114 1.2 skrll TEGRA_PIN("cam_i2c_scl_ps2", 0xd4, "i2c3", "i2cvi", "rsvd2", "rsvd3"),
115 1.2 skrll TEGRA_PIN("cam_i2c_sda_ps3", 0xd8, "i2c3", "i2cvi", "rsvd2", "rsvd3"),
116 1.2 skrll TEGRA_PIN("pwr_i2c_scl_py3", 0xdc, "i2cpmu", "rsvd1", "rsvd2", "rsvd3"),
117 1.2 skrll TEGRA_PIN("pwr_i2c_sda_py4", 0xe0, "i2cpmu", "rsvd1", "rsvd2", "rsvd3"),
118 1.2 skrll TEGRA_PIN("uart1_tx_pu0", 0xe4, "uarta", "rsvd1", "rsvd2", "rsvd3"),
119 1.2 skrll TEGRA_PIN("uart1_rx_pu1", 0xe8, "uarta", "rsvd1", "rsvd2", "rsvd3"),
120 1.2 skrll TEGRA_PIN("uart1_rts_pu2", 0xec, "uarta", "rsvd1", "rsvd2", "rsvd3"),
121 1.2 skrll TEGRA_PIN("uart1_cts_pu3", 0xf0, "uarta", "rsvd1", "rsvd2", "rsvd3"),
122 1.2 skrll TEGRA_PIN("uart2_tx_pg0", 0xf4, "uartb", "i2s4a", "spdif", "uart"),
123 1.2 skrll TEGRA_PIN("uart2_rx_pg1", 0xf8, "uartb", "i2s4a", "spdif", "uart"),
124 1.2 skrll TEGRA_PIN("uart2_rts_pg2", 0xfc, "uartb", "i2s4a", "rsvd2", "uart"),
125 1.2 skrll TEGRA_PIN("uart2_cts_pg3", 0x100, "uartb", "i2s4a", "rsvd2", "uart"),
126 1.2 skrll TEGRA_PIN("uart3_tx_pd1", 0x104, "uartc", "spi4", "rsvd2", "rsvd3"),
127 1.2 skrll TEGRA_PIN("uart3_rx_pd2", 0x108, "uartc", "spi4", "rsvd2", "rsvd3"),
128 1.2 skrll TEGRA_PIN("uart3_rts_pd3", 0x10c, "uartc", "spi4", "rsvd2", "rsvd3"),
129 1.2 skrll TEGRA_PIN("uart3_cts_pd4", 0x110, "uartc", "spi4", "rsvd2", "rsvd3"),
130 1.2 skrll TEGRA_PIN("uart4_tx_pi4", 0x114, "uartd", "uart", "rsvd2", "rsvd3"),
131 1.2 skrll TEGRA_PIN("uart4_rx_pi5", 0x118, "uartd", "uart", "rsvd2", "rsvd3"),
132 1.2 skrll TEGRA_PIN("uart4_rts_pi6", 0x11c, "uartd", "uart", "rsvd2", "rsvd3"),
133 1.2 skrll TEGRA_PIN("uart4_cts_pi7", 0x120, "uartd", "uart", "rsvd2", "rsvd3"),
134 1.2 skrll TEGRA_PIN("dap1_fs_pb0", 0x124, "i2s1", "rsvd1", "rsvd2", "rsvd3"),
135 1.2 skrll TEGRA_PIN("dap1_din_pb1", 0x128, "i2s1", "rsvd1", "rsvd2", "rsvd3"),
136 1.2 skrll TEGRA_PIN("dap1_dout_pb2", 0x12c, "i2s1", "rsvd1", "rsvd2", "rsvd3"),
137 1.2 skrll TEGRA_PIN("dap1_sclk_pb3", 0x130, "i2s1", "rsvd1", "rsvd2", "rsvd3"),
138 1.2 skrll TEGRA_PIN("dap2_fs_paa0", 0x134, "i2s2", "rsvd1", "rsvd2", "rsvd3"),
139 1.2 skrll TEGRA_PIN("dap2_din_paa2", 0x138, "i2s2", "rsvd1", "rsvd2", "rsvd3"),
140 1.2 skrll TEGRA_PIN("dap2_dout_paa3", 0x13c, "i2s2", "rsvd1", "rsvd2", "rsvd3"),
141 1.2 skrll TEGRA_PIN("dap2_sclk_paa1", 0x140, "i2s2", "rsvd1", "rsvd2", "rsvd3"),
142 1.2 skrll TEGRA_PIN("dap4_fs_pj4", 0x144, "i2s4b", "rsvd1", "rsvd2", "rsvd3"),
143 1.2 skrll TEGRA_PIN("dap4_din_pj5", 0x148, "i2s4b", "rsvd1", "rsvd2", "rsvd3"),
144 1.2 skrll TEGRA_PIN("dap4_dout_pj6", 0x14c, "i2s4b", "rsvd1", "rsvd2", "rsvd3"),
145 1.2 skrll TEGRA_PIN("dap4_sclk_pj7", 0x150, "i2s4b", "rsvd1", "rsvd2", "rsvd3"),
146 1.2 skrll TEGRA_PIN("cam1_mclk_ps0", 0x154, "extperiph3", "rsvd1", "rsvd2", "rsvd3"),
147 1.2 skrll TEGRA_PIN("cam2_mclk_ps1", 0x158, "extperiph3", "rsvd1", "rsvd2", "rsvd3"),
148 1.2 skrll TEGRA_PIN("jtag_rtck", 0x15c, "jtag", "rsvd1", "rsvd2", "rsvd3"),
149 1.2 skrll TEGRA_PIN("clk_32k_in", 0x160, NULL, NULL, NULL, NULL),
150 1.2 skrll TEGRA_PIN("clk_32k_out_py5", 0x164, "soc", "blink", "rsvd2", "rsvd3"),
151 1.2 skrll TEGRA_PIN("batt_bcl", 0x168, "bcl", "rsvd1", "rsvd2", "rsvd3"),
152 1.2 skrll TEGRA_PIN("clk_req", 0x16c, NULL, NULL, NULL, NULL),
153 1.2 skrll TEGRA_PIN("cpu_pwr_req", 0x170, NULL, NULL, NULL, NULL),
154 1.2 skrll TEGRA_PIN("pwr_int_n", 0x174, NULL, NULL, NULL, NULL),
155 1.2 skrll TEGRA_PIN("shutdown", 0x178, NULL, NULL, NULL, NULL),
156 1.2 skrll TEGRA_PIN("core_pwr_req", 0x17c, NULL, NULL, NULL, NULL),
157 1.2 skrll TEGRA_PIN("aud_mclk_pbb0", 0x180, "aud", "rsvd1", "rsvd2", "rsvd3"),
158 1.2 skrll TEGRA_PIN("dvfs_pwm_pbb1", 0x184, "rsvd0", "cldvfs", "spi3", "rsvd3"),
159 1.2 skrll TEGRA_PIN("dvfs_clk_pbb2", 0x188, "rsvd0", "cldvfs", "spi3", "rsvd3"),
160 1.2 skrll TEGRA_PIN("gpio_x1_aud_pbb3", 0x18c, "rsvd0", "rsvd1", "spi3", "rsvd3"),
161 1.2 skrll TEGRA_PIN("gpio_x3_aud_pbb4", 0x190, "rsvd0", "rsvd1", "spi3", "rsvd3"),
162 1.2 skrll TEGRA_PIN("pcc7", 0x194, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
163 1.2 skrll TEGRA_PIN("hdmi_cec_pcc0", 0x198, "cec", "rsvd1", "rsvd2", "rsvd3"),
164 1.2 skrll TEGRA_PIN("hdmi_int_dp_hpd_pcc1", 0x19c, "dp", "rsvd1", "rsvd2", "rsvd3"),
165 1.2 skrll TEGRA_PIN("spdif_out_pcc2", 0x1a0, "spdif", "rsvd1", "rsvd2", "rsvd3"),
166 1.2 skrll TEGRA_PIN("spdif_in_pcc3", 0x1a4, "spdif", "rsvd1", "rsvd2", "rsvd3"),
167 1.2 skrll TEGRA_PIN("usb_vbus_en0_pcc4", 0x1a8, "usb", "rsvd1", "rsvd2", "rsvd3"),
168 1.2 skrll TEGRA_PIN("usb_vbus_en1_pcc5", 0x1ac, "usb", "rsvd1", "rsvd2", "rsvd3"),
169 1.2 skrll TEGRA_PIN("dp_hpd0_pcc6", 0x1b0, "dp", "rsvd1", "rsvd2", "rsvd3"),
170 1.2 skrll TEGRA_PIN("wifi_en_ph0", 0x1b4, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
171 1.2 skrll TEGRA_PIN("wifi_rst_ph1", 0x1b8, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
172 1.2 skrll TEGRA_PIN("wifi_wake_ap_ph2", 0x1bc, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
173 1.2 skrll TEGRA_PIN("ap_wake_bt_ph3", 0x1c0, "rsvd0", "uartb", "spdif", "rsvd3"),
174 1.2 skrll TEGRA_PIN("bt_rst_ph4", 0x1c4, "rsvd0", "uartb", "spdif", "rsvd3"),
175 1.2 skrll TEGRA_PIN("bt_wake_ap_ph5", 0x1c8, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
176 1.2 skrll TEGRA_PIN("ap_wake_nfc_ph7", 0x1cc, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
177 1.2 skrll TEGRA_PIN("nfc_en_pi0", 0x1d0, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
178 1.2 skrll TEGRA_PIN("nfc_int_pi1", 0x1d4, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
179 1.2 skrll TEGRA_PIN("gps_en_pi2", 0x1d8, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
180 1.2 skrll TEGRA_PIN("gps_rst_pi3", 0x1dc, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
181 1.2 skrll TEGRA_PIN("cam_rst_ps4", 0x1e0, "vgp1", "rsvd1", "rsvd2", "rsvd3"),
182 1.2 skrll TEGRA_PIN("cam_af_en_ps5", 0x1e4, "vimclk", "vgp2", "rsvd2", "rsvd3"),
183 1.2 skrll TEGRA_PIN("cam_flash_en_ps6", 0x1e8, "vimclk", "vgp3", "rsvd2", "rsvd3"),
184 1.2 skrll TEGRA_PIN("cam1_pwdn_ps7", 0x1ec, "vgp4", "rsvd1", "rsvd2", "rsvd3"),
185 1.2 skrll TEGRA_PIN("cam2_pwdn_pt0", 0x1f0, "vgp5", "rsvd1", "rsvd2", "rsvd3"),
186 1.2 skrll TEGRA_PIN("cam1_strobe_pt1", 0x1f4, "vgp6", "rsvd1", "rsvd2", "rsvd3"),
187 1.2 skrll TEGRA_PIN("lcd_te_py2", 0x1f8, "displaya", "rsvd1", "rsvd2", "rsvd3"),
188 1.2 skrll TEGRA_PIN("lcd_bl_pwm_pv0", 0x1fc, "displaya", "pwm0", "sor0", "rsvd3"),
189 1.2 skrll TEGRA_PIN("lcd_bl_en_pv1", 0x200, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
190 1.2 skrll TEGRA_PIN("lcd_rst_pv2", 0x204, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
191 1.2 skrll TEGRA_PIN("lcd_gpio1_pv3", 0x208, "displayb", "rsvd1", "rsvd2", "rsvd3"),
192 1.2 skrll TEGRA_PIN("lcd_gpio2_pv4", 0x20c, "displayb", "pwm1", "rsvd2", "sor1"),
193 1.2 skrll TEGRA_PIN("ap_ready_pv5", 0x210, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
194 1.2 skrll TEGRA_PIN("touch_rst_pv6", 0x214, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
195 1.2 skrll TEGRA_PIN("touch_clk_pv7", 0x218, "touch", "rsvd1", "rsvd2", "rsvd3"),
196 1.2 skrll TEGRA_PIN("modem_wake_ap_px0", 0x21c, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
197 1.2 skrll TEGRA_PIN("touch_int_px1", 0x220, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
198 1.2 skrll TEGRA_PIN("motion_int_px2", 0x224, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
199 1.2 skrll TEGRA_PIN("als_prox_int_px3", 0x228, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
200 1.2 skrll TEGRA_PIN("temp_alert_px4", 0x22c, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
201 1.2 skrll TEGRA_PIN("button_power_on_px5", 0x230, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
202 1.2 skrll TEGRA_PIN("button_vol_up_px6", 0x234, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
203 1.2 skrll TEGRA_PIN("button_vol_down_px7", 0x238, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
204 1.2 skrll TEGRA_PIN("button_slide_sw_py0", 0x23c, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
205 1.2 skrll TEGRA_PIN("button_home_py1", 0x240, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
206 1.2 skrll TEGRA_PIN("pa6", 0x244, "sata", "rsvd1", "rsvd2", "rsvd3"),
207 1.2 skrll TEGRA_PIN("pe6", 0x248, "rsvd0", "i2s5a", "pwm2", "rsvd3"),
208 1.2 skrll TEGRA_PIN("pe7", 0x24c, "rsvd0", "i2s5a", "pwm3", "rsvd3"),
209 1.2 skrll TEGRA_PIN("ph6", 0x250, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
210 1.2 skrll TEGRA_PIN("pk0", 0x254, "iqc0", "i2s5b", "rsvd2", "rsvd3"),
211 1.2 skrll TEGRA_PIN("pk1", 0x258, "iqc0", "i2s5b", "rsvd2", "rsvd3"),
212 1.2 skrll TEGRA_PIN("pk2", 0x25c, "iqc0", "i2s5b", "rsvd2", "rsvd3"),
213 1.2 skrll TEGRA_PIN("pk3", 0x260, "iqc0", "i2s5b", "rsvd2", "rsvd3"),
214 1.2 skrll TEGRA_PIN("pk4", 0x264, "iqc1", "rsvd1", "rsvd2", "rsvd3"),
215 1.2 skrll TEGRA_PIN("pk5", 0x268, "iqc1", "rsvd1", "rsvd2", "rsvd3"),
216 1.2 skrll TEGRA_PIN("pk6", 0x26c, "iqc1", "rsvd1", "rsvd2", "rsvd3"),
217 1.2 skrll TEGRA_PIN("pk7", 0x270, "iqc1", "rsvd1", "rsvd2", "rsvd3"),
218 1.2 skrll TEGRA_PIN("pl0", 0x274, "rsvd0", "rsvd1", "rsvd2", "rsvd3"),
219 1.2 skrll TEGRA_PIN("pl1", 0x278, "soc", "rsvd1", "rsvd2", "rsvd3"),
220 1.2 skrll TEGRA_PIN("pz0", 0x27c, "vimclk2", "rsvd1", "rsvd2", "rsvd3"),
221 1.2 skrll TEGRA_PIN("pz1", 0x280, "vimclk2", "sdmmc1", "rsvd2", "rsvd3"),
222 1.2 skrll TEGRA_PIN("pz2", 0x284, "sdmmc3", "ccla", "rsvd2", "rsvd3"),
223 1.2 skrll TEGRA_PIN("pz3", 0x288, "sdmmc1", "rsvd1", "rsvd2", "rsvd3"),
224 1.2 skrll TEGRA_PIN("pz4", 0x28c, "sdmmc1", "rsvd1", "rsvd2", "rsvd3"),
225 1.2 skrll TEGRA_PIN("pz5", 0x290, "soc", "rsvd1", "rsvd2", "rsvd3"),
226 1.2 skrll
227 1.2 skrll TEGRA_PINGROUP("pa6", 0x9c0, __BITS(16, 12), __BITS(24, 20), 0, 0),
228 1.2 skrll TEGRA_PINGROUP("pcc7", 0x9c4, __BITS(16, 12), __BITS(24, 20), 0, 0),
229 1.2 skrll TEGRA_PINGROUP("pe6", 0x9c8, __BITS(16, 12), __BITS(24, 20), 0, 0),
230 1.2 skrll TEGRA_PINGROUP("pe7", 0x9cc, __BITS(16, 12), __BITS(24, 20), 0, 0),
231 1.2 skrll TEGRA_PINGROUP("ph6", 0x9d0, __BITS(16, 12), __BITS(24, 20), 0, 0),
232 1.2 skrll TEGRA_PINGROUP("pk0", 0x9d4, 0, 0, __BITS(30, 28), __BITS(31, 30)),
233 1.2 skrll TEGRA_PINGROUP("pk1", 0x9d8, 0, 0, __BITS(30, 28), __BITS(31, 30)),
234 1.2 skrll TEGRA_PINGROUP("pk2", 0x9dc, 0, 0, __BITS(30, 28), __BITS(31, 30)),
235 1.2 skrll TEGRA_PINGROUP("pk3", 0x9e0, 0, 0, __BITS(30, 28), __BITS(31, 30)),
236 1.2 skrll TEGRA_PINGROUP("pk4", 0x9e4, 0, 0, __BITS(30, 28), __BITS(31, 30)),
237 1.2 skrll TEGRA_PINGROUP("pk5", 0x9e8, 0, 0, __BITS(30, 28), __BITS(31, 30)),
238 1.2 skrll TEGRA_PINGROUP("pk6", 0x9ec, 0, 0, __BITS(30, 28), __BITS(31, 30)),
239 1.2 skrll TEGRA_PINGROUP("pk7", 0x9f0, 0, 0, __BITS(30, 28), __BITS(31, 30)),
240 1.2 skrll TEGRA_PINGROUP("pl0", 0x9f4, 0, 0, __BITS(30, 28), __BITS(31, 30)),
241 1.2 skrll TEGRA_PINGROUP("pl1", 0x9f8, 0, 0, __BITS(30, 28), __BITS(31, 30)),
242 1.2 skrll TEGRA_PINGROUP("pz0", 0x9fc, __BITS(18, 12), __BITS(26, 20), 0, 0),
243 1.2 skrll TEGRA_PINGROUP("pz1", 0xa00, __BITS(18, 12), __BITS(26, 20), 0, 0),
244 1.2 skrll TEGRA_PINGROUP("pz2", 0xa04, __BITS(18, 12), __BITS(26, 20), 0, 0),
245 1.2 skrll TEGRA_PINGROUP("pz3", 0xa08, __BITS(18, 12), __BITS(26, 20), 0, 0),
246 1.2 skrll TEGRA_PINGROUP("pz4", 0xa0c, __BITS(18, 12), __BITS(26, 20), 0, 0),
247 1.2 skrll TEGRA_PINGROUP("pz5", 0xa10, __BITS(18, 12), __BITS(26, 20), 0, 0),
248 1.2 skrll TEGRA_PINGROUP("sdmmc1",0xa98, __BITS(18, 12), __BITS(26, 20), __BITS(30, 28), __BITS(31, 30)),
249 1.2 skrll TEGRA_PINGROUP("sdmmc2",0xa9c, __BITS(7, 2), __BITS(13, 8), __BITS(30, 28), __BITS(31, 30)),
250 1.2 skrll TEGRA_PINGROUP("sdmmc3",0xab0, __BITS(18, 12), __BITS(26, 20), __BITS(30, 28), __BITS(31, 30)),
251 1.2 skrll TEGRA_PINGROUP("sdmmc4",0xab4, __BITS(7, 2), __BITS(13, 8), __BITS(30, 28), __BITS(31, 30)),
252 1.1 jmcneill };
253 1.1 jmcneill
254 1.2 skrll
255 1.1 jmcneill const struct tegra_pinmux_conf tegra210_pinmux_conf = {
256 1.1 jmcneill .npins = __arraycount(tegra210_pins),
257 1.1 jmcneill .pins = tegra210_pins,
258 1.1 jmcneill };
259