2 * Copyright (c) 2011 The Chromium OS Authors.
4 * SPDX-License-Identifier: GPL-2.0+
7 /* Tegra20 pin multiplexing functions */
11 #include <asm/arch/pinmux.h>
14 * This defines the order of the pin mux control bits in the registers. For
15 * some reason there is no correspendence between the tristate, pin mux and
16 * pullup/pulldown registers.
19 /* 0: APB_MISC_PP_PIN_MUX_CTL_A_0 */
38 /* 16: APB_MISC_PP_PIN_MUX_CTL_B_0 */
57 /* 32: APB_MISC_PP_PIN_MUX_CTL_C_0 */
76 /* 48: APB_MISC_PP_PIN_MUX_CTL_D_0 */
95 /* 64: APB_MISC_PP_PIN_MUX_CTL_E_0 */
114 /* 80: APB_MISC_PP_PIN_MUX_CTL_F_0 */
133 /* 96: APB_MISC_PP_PIN_MUX_CTL_G_0 */
156 * And this defines the order of the pullup/pulldown controls which are again
157 * in a different order
160 /* 0: APB_MISC_PP_PULLUPDOWN_REG_A_0 */
179 /* 16: APB_MISC_PP_PULLUPDOWN_REG_B_0 */
197 /* 32: APB_MISC_PP_PULLUPDOWN_REG_C_0 */
216 /* 48: APB_MISC_PP_PULLUPDOWN_REG_D_0 */
235 /* 64: APB_MISC_PP_PULLUPDOWN_REG_E_0 */
257 /* Convenient macro for defining pin group properties */
258 #define PINALL(pg_name, vdd, f0, f1, f2, f3, f_safe, mux, pupd) \
270 /* A normal pin group where the mux name and pull-up name match */
271 #define PIN(pg_name, vdd, f0, f1, f2, f3, f_safe) \
272 PINALL(pg_name, vdd, f0, f1, f2, f3, f_safe, \
273 MUXCTL_ ## pg_name, PUCTL_ ## pg_name)
275 /* A pin group where the pull-up name doesn't have a 1-1 mapping */
276 #define PINP(pg_name, vdd, f0, f1, f2, f3, f_safe, pupd) \
277 PINALL(pg_name, vdd, f0, f1, f2, f3, f_safe, \
278 MUXCTL_ ## pg_name, PUCTL_ ## pupd)
280 /* A pin group number which is not used */
281 #define PIN_RESERVED \
282 PIN(NONE, NONE, RSVD, RSVD, RSVD, RSVD, RSVD)
284 #define PMUX_FUNC_RSVD PMUX_FUNC_RSVD1
286 static const struct tegra_pingroup_desc tegra20_pingroups
[] = {
287 PIN(ATA
, NAND
, IDE
, NAND
, GMI
, RSVD
, IDE
),
288 PIN(ATB
, NAND
, IDE
, NAND
, GMI
, SDIO4
, IDE
),
289 PIN(ATC
, NAND
, IDE
, NAND
, GMI
, SDIO4
, IDE
),
290 PIN(ATD
, NAND
, IDE
, NAND
, GMI
, SDIO4
, IDE
),
291 PIN(CDEV1
, AUDIO
, OSC
, PLLA_OUT
, PLLM_OUT1
, AUDIO_SYNC
, OSC
),
292 PIN(CDEV2
, AUDIO
, OSC
, AHB_CLK
, APB_CLK
, PLLP_OUT4
, OSC
),
293 PIN(CSUS
, VI
, PLLC_OUT1
, PLLP_OUT2
, PLLP_OUT3
, VI_SENSOR_CLK
,
295 PIN(DAP1
, AUDIO
, DAP1
, RSVD
, GMI
, SDIO2
, DAP1
),
297 PIN(DAP2
, AUDIO
, DAP2
, TWC
, RSVD
, GMI
, DAP2
),
298 PIN(DAP3
, BB
, DAP3
, RSVD
, RSVD
, RSVD
, DAP3
),
299 PIN(DAP4
, UART
, DAP4
, RSVD
, GMI
, RSVD
, DAP4
),
300 PIN(DTA
, VI
, RSVD
, SDIO2
, VI
, RSVD
, RSVD4
),
301 PIN(DTB
, VI
, RSVD
, RSVD
, VI
, SPI1
, RSVD1
),
302 PIN(DTC
, VI
, RSVD
, RSVD
, VI
, RSVD
, RSVD1
),
303 PIN(DTD
, VI
, RSVD
, SDIO2
, VI
, RSVD
, RSVD1
),
304 PIN(DTE
, VI
, RSVD
, RSVD
, VI
, SPI1
, RSVD1
),
306 PINP(GPU
, UART
, PWM
, UARTA
, GMI
, RSVD
, RSVD4
,
308 PIN(GPV
, SD
, PCIE
, RSVD
, RSVD
, RSVD
, PCIE
),
309 PIN(I2CP
, SYS
, I2C
, RSVD
, RSVD
, RSVD
, RSVD4
),
310 PIN(IRTX
, UART
, UARTA
, UARTB
, GMI
, SPI4
, UARTB
),
311 PIN(IRRX
, UART
, UARTA
, UARTB
, GMI
, SPI4
, UARTB
),
312 PIN(KBCB
, SYS
, KBC
, NAND
, SDIO2
, MIO
, KBC
),
313 PIN(KBCA
, SYS
, KBC
, NAND
, SDIO2
, EMC_TEST0_DLL
, KBC
),
314 PINP(PMC
, SYS
, PWR_ON
, PWR_INTR
, RSVD
, RSVD
, PWR_ON
, NONE
),
316 PIN(PTA
, NAND
, I2C2
, HDMI
, GMI
, RSVD
, RSVD4
),
317 PIN(RM
, UART
, I2C
, RSVD
, RSVD
, RSVD
, RSVD4
),
318 PIN(KBCE
, SYS
, KBC
, NAND
, OWR
, RSVD
, KBC
),
319 PIN(KBCF
, SYS
, KBC
, NAND
, TRACE
, MIO
, KBC
),
320 PIN(GMA
, NAND
, UARTE
, SPI3
, GMI
, SDIO4
, SPI3
),
321 PIN(GMC
, NAND
, UARTD
, SPI4
, GMI
, SFLASH
, SPI4
),
322 PIN(SDMMC1
, BB
, SDIO1
, RSVD
, UARTE
, UARTA
, RSVD2
),
323 PIN(OWC
, SYS
, OWR
, RSVD
, RSVD
, RSVD
, OWR
),
325 PIN(GME
, NAND
, RSVD
, DAP5
, GMI
, SDIO4
, GMI
),
326 PIN(SDC
, SD
, PWM
, TWC
, SDIO3
, SPI3
, TWC
),
327 PIN(SDD
, SD
, UARTA
, PWM
, SDIO3
, SPI3
, PWM
),
329 PINP(SLXA
, SD
, PCIE
, SPI4
, SDIO3
, SPI2
, PCIE
, CRTP
),
330 PIN(SLXC
, SD
, SPDIF
, SPI4
, SDIO3
, SPI2
, SPI4
),
331 PIN(SLXD
, SD
, SPDIF
, SPI4
, SDIO3
, SPI2
, SPI4
),
332 PIN(SLXK
, SD
, PCIE
, SPI4
, SDIO3
, SPI2
, PCIE
),
334 PIN(SPDI
, AUDIO
, SPDIF
, RSVD
, I2C
, SDIO2
, RSVD2
),
335 PIN(SPDO
, AUDIO
, SPDIF
, RSVD
, I2C
, SDIO2
, RSVD2
),
336 PIN(SPIA
, AUDIO
, SPI1
, SPI2
, SPI3
, GMI
, GMI
),
337 PIN(SPIB
, AUDIO
, SPI1
, SPI2
, SPI3
, GMI
, GMI
),
338 PIN(SPIC
, AUDIO
, SPI1
, SPI2
, SPI3
, GMI
, GMI
),
339 PIN(SPID
, AUDIO
, SPI2
, SPI1
, SPI2_ALT
, GMI
, GMI
),
340 PIN(SPIE
, AUDIO
, SPI2
, SPI1
, SPI2_ALT
, GMI
, GMI
),
341 PIN(SPIF
, AUDIO
, SPI3
, SPI1
, SPI2
, RSVD
, RSVD4
),
343 PIN(SPIG
, AUDIO
, SPI3
, SPI2
, SPI2_ALT
, I2C
, SPI2_ALT
),
344 PIN(SPIH
, AUDIO
, SPI3
, SPI2
, SPI2_ALT
, I2C
, SPI2_ALT
),
345 PIN(UAA
, BB
, SPI3
, MIPI_HS
, UARTA
, ULPI
, MIPI_HS
),
346 PIN(UAB
, BB
, SPI2
, MIPI_HS
, UARTA
, ULPI
, MIPI_HS
),
347 PIN(UAC
, BB
, OWR
, RSVD
, RSVD
, RSVD
, RSVD4
),
348 PIN(UAD
, UART
, UARTB
, SPDIF
, UARTA
, SPI4
, SPDIF
),
349 PIN(UCA
, UART
, UARTC
, RSVD
, GMI
, RSVD
, RSVD4
),
350 PIN(UCB
, UART
, UARTC
, PWM
, GMI
, RSVD
, RSVD4
),
353 PIN(ATE
, NAND
, IDE
, NAND
, GMI
, RSVD
, IDE
),
354 PIN(KBCC
, SYS
, KBC
, NAND
, TRACE
, EMC_TEST1_DLL
, KBC
),
357 PIN(GMB
, NAND
, IDE
, NAND
, GMI
, GMI_INT
, GMI
),
358 PIN(GMD
, NAND
, RSVD
, NAND
, GMI
, SFLASH
, GMI
),
359 PIN(DDC
, LCD
, I2C2
, RSVD
, RSVD
, RSVD
, RSVD4
),
362 PINP(LD0
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
363 PINP(LD1
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
364 PINP(LD2
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
365 PINP(LD3
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
366 PINP(LD4
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
367 PINP(LD5
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
368 PINP(LD6
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
369 PINP(LD7
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
371 PINP(LD8
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
372 PINP(LD9
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
373 PINP(LD10
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
374 PINP(LD11
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
375 PINP(LD12
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
376 PINP(LD13
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
377 PINP(LD14
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
378 PINP(LD15
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
380 PINP(LD16
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LD17
),
381 PINP(LD17
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LD17
),
382 PINP(LHP0
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LD21_20
),
383 PINP(LHP1
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LD19_18
),
384 PINP(LHP2
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LD19_18
),
385 PINP(LVP0
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LC
),
386 PINP(LVP1
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LD21_20
),
387 PINP(HDINT
, LCD
, HDMI
, RSVD
, RSVD
, RSVD
, HDMI
, LC
),
389 PINP(LM0
, LCD
, DISPA
, DISPB
, SPI3
, RSVD
, RSVD4
, LC
),
390 PINP(LM1
, LCD
, DISPA
, DISPB
, RSVD
, CRT
, RSVD3
, LC
),
391 PINP(LVS
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LC
),
392 PINP(LSC0
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LC
),
393 PINP(LSC1
, LCD
, DISPA
, DISPB
, SPI3
, HDMI
, DISPA
, LS
),
394 PINP(LSCK
, LCD
, DISPA
, DISPB
, SPI3
, HDMI
, DISPA
, LS
),
395 PINP(LDC
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LS
),
396 PINP(LCSN
, LCD
, DISPA
, DISPB
, SPI3
, RSVD
, RSVD4
, LS
),
399 PINP(LSPI
, LCD
, DISPA
, DISPB
, XIO
, HDMI
, DISPA
, LC
),
400 PINP(LSDA
, LCD
, DISPA
, DISPB
, SPI3
, HDMI
, DISPA
, LS
),
401 PINP(LSDI
, LCD
, DISPA
, DISPB
, SPI3
, RSVD
, DISPA
, LS
),
402 PINP(LPW0
, LCD
, DISPA
, DISPB
, SPI3
, HDMI
, DISPA
, LS
),
403 PINP(LPW1
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LS
),
404 PINP(LPW2
, LCD
, DISPA
, DISPB
, SPI3
, HDMI
, DISPA
, LS
),
405 PINP(LDI
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LD23_22
),
406 PINP(LHS
, LCD
, DISPA
, DISPB
, XIO
, RSVD
, RSVD4
, LC
),
408 PINP(LPP
, LCD
, DISPA
, DISPB
, RSVD
, RSVD
, RSVD4
, LD23_22
),
410 PIN(KBCD
, SYS
, KBC
, NAND
, SDIO2
, MIO
, KBC
),
411 PIN(GPU7
, SYS
, RTCK
, RSVD
, RSVD
, RSVD
, RTCK
),
412 PIN(DTF
, VI
, I2C3
, RSVD
, VI
, RSVD
, RSVD4
),
413 PIN(UDA
, BB
, SPI1
, RSVD
, UARTD
, ULPI
, RSVD2
),
414 PIN(CRTP
, LCD
, CRT
, RSVD
, RSVD
, RSVD
, RSVD
),
415 PINP(SDB
, SD
, UARTA
, PWM
, SDIO3
, SPI2
, PWM
, NONE
),
417 /* these pin groups only have pullup and pull down control */
418 PINALL(CK32
, SYS
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
420 PINALL(DDRC
, DDR
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
422 PINALL(PMCA
, SYS
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
424 PINALL(PMCB
, SYS
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
426 PINALL(PMCC
, SYS
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
428 PINALL(PMCD
, SYS
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
430 PINALL(PMCE
, SYS
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
432 PINALL(XM2C
, DDR
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
434 PINALL(XM2D
, DDR
, RSVD
, RSVD
, RSVD
, RSVD
, RSVD
, MUXCTL_NONE
,
437 const struct tegra_pingroup_desc
*tegra_soc_pingroups
= tegra20_pingroups
;