xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-tegra20/pinmux.h (revision b79dadf846e5e140e261bbfa4decd024357702d7)
100a2749dSAllen Martin /*
200a2749dSAllen Martin  *  (C) Copyright 2010,2011
300a2749dSAllen Martin  *  NVIDIA Corporation <www.nvidia.com>
400a2749dSAllen Martin  *
51a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
600a2749dSAllen Martin  */
700a2749dSAllen Martin 
8e2969957SStephen Warren #ifndef _TEGRA20_PINMUX_H_
9e2969957SStephen Warren #define _TEGRA20_PINMUX_H_
1000a2749dSAllen Martin 
1100a2749dSAllen Martin /*
1200a2749dSAllen Martin  * Pin groups which we adjust. There are three basic attributes of each pin
1300a2749dSAllen Martin  * group which use this enum:
1400a2749dSAllen Martin  *
1500a2749dSAllen Martin  *	- function
1600a2749dSAllen Martin  *	- pullup / pulldown
1700a2749dSAllen Martin  *	- tristate or normal
1800a2749dSAllen Martin  */
1900a2749dSAllen Martin enum pmux_pingrp {
2000a2749dSAllen Martin 	/* APB_MISC_PP_TRISTATE_REG_A_0 */
2170ad375eSStephen Warren 	PMUX_PINGRP_ATA,
2270ad375eSStephen Warren 	PMUX_PINGRP_ATB,
2370ad375eSStephen Warren 	PMUX_PINGRP_ATC,
2470ad375eSStephen Warren 	PMUX_PINGRP_ATD,
2570ad375eSStephen Warren 	PMUX_PINGRP_CDEV1,
2670ad375eSStephen Warren 	PMUX_PINGRP_CDEV2,
2770ad375eSStephen Warren 	PMUX_PINGRP_CSUS,
2870ad375eSStephen Warren 	PMUX_PINGRP_DAP1,
2900a2749dSAllen Martin 
3070ad375eSStephen Warren 	PMUX_PINGRP_DAP2,
3170ad375eSStephen Warren 	PMUX_PINGRP_DAP3,
3270ad375eSStephen Warren 	PMUX_PINGRP_DAP4,
3370ad375eSStephen Warren 	PMUX_PINGRP_DTA,
3470ad375eSStephen Warren 	PMUX_PINGRP_DTB,
3570ad375eSStephen Warren 	PMUX_PINGRP_DTC,
3670ad375eSStephen Warren 	PMUX_PINGRP_DTD,
3770ad375eSStephen Warren 	PMUX_PINGRP_DTE,
3800a2749dSAllen Martin 
3970ad375eSStephen Warren 	PMUX_PINGRP_GPU,
4070ad375eSStephen Warren 	PMUX_PINGRP_GPV,
4170ad375eSStephen Warren 	PMUX_PINGRP_I2CP,
4270ad375eSStephen Warren 	PMUX_PINGRP_IRTX,
4370ad375eSStephen Warren 	PMUX_PINGRP_IRRX,
4470ad375eSStephen Warren 	PMUX_PINGRP_KBCB,
4570ad375eSStephen Warren 	PMUX_PINGRP_KBCA,
4670ad375eSStephen Warren 	PMUX_PINGRP_PMC,
4700a2749dSAllen Martin 
4870ad375eSStephen Warren 	PMUX_PINGRP_PTA,
4970ad375eSStephen Warren 	PMUX_PINGRP_RM,
5070ad375eSStephen Warren 	PMUX_PINGRP_KBCE,
5170ad375eSStephen Warren 	PMUX_PINGRP_KBCF,
5270ad375eSStephen Warren 	PMUX_PINGRP_GMA,
5370ad375eSStephen Warren 	PMUX_PINGRP_GMC,
5470ad375eSStephen Warren 	PMUX_PINGRP_SDIO1,
5570ad375eSStephen Warren 	PMUX_PINGRP_OWC,
5600a2749dSAllen Martin 
5700a2749dSAllen Martin 	/* 32: APB_MISC_PP_TRISTATE_REG_B_0 */
5870ad375eSStephen Warren 	PMUX_PINGRP_GME,
5970ad375eSStephen Warren 	PMUX_PINGRP_SDC,
6070ad375eSStephen Warren 	PMUX_PINGRP_SDD,
6170ad375eSStephen Warren 	PMUX_PINGRP_RESERVED0,
6270ad375eSStephen Warren 	PMUX_PINGRP_SLXA,
6370ad375eSStephen Warren 	PMUX_PINGRP_SLXC,
6470ad375eSStephen Warren 	PMUX_PINGRP_SLXD,
6570ad375eSStephen Warren 	PMUX_PINGRP_SLXK,
6600a2749dSAllen Martin 
6770ad375eSStephen Warren 	PMUX_PINGRP_SPDI,
6870ad375eSStephen Warren 	PMUX_PINGRP_SPDO,
6970ad375eSStephen Warren 	PMUX_PINGRP_SPIA,
7070ad375eSStephen Warren 	PMUX_PINGRP_SPIB,
7170ad375eSStephen Warren 	PMUX_PINGRP_SPIC,
7270ad375eSStephen Warren 	PMUX_PINGRP_SPID,
7370ad375eSStephen Warren 	PMUX_PINGRP_SPIE,
7470ad375eSStephen Warren 	PMUX_PINGRP_SPIF,
7500a2749dSAllen Martin 
7670ad375eSStephen Warren 	PMUX_PINGRP_SPIG,
7770ad375eSStephen Warren 	PMUX_PINGRP_SPIH,
7870ad375eSStephen Warren 	PMUX_PINGRP_UAA,
7970ad375eSStephen Warren 	PMUX_PINGRP_UAB,
8070ad375eSStephen Warren 	PMUX_PINGRP_UAC,
8170ad375eSStephen Warren 	PMUX_PINGRP_UAD,
8270ad375eSStephen Warren 	PMUX_PINGRP_UCA,
8370ad375eSStephen Warren 	PMUX_PINGRP_UCB,
8400a2749dSAllen Martin 
8570ad375eSStephen Warren 	PMUX_PINGRP_RESERVED1,
8670ad375eSStephen Warren 	PMUX_PINGRP_ATE,
8770ad375eSStephen Warren 	PMUX_PINGRP_KBCC,
8870ad375eSStephen Warren 	PMUX_PINGRP_RESERVED2,
8970ad375eSStephen Warren 	PMUX_PINGRP_RESERVED3,
9070ad375eSStephen Warren 	PMUX_PINGRP_GMB,
9170ad375eSStephen Warren 	PMUX_PINGRP_GMD,
9270ad375eSStephen Warren 	PMUX_PINGRP_DDC,
9300a2749dSAllen Martin 
9400a2749dSAllen Martin 	/* 64: APB_MISC_PP_TRISTATE_REG_C_0 */
9570ad375eSStephen Warren 	PMUX_PINGRP_LD0,
9670ad375eSStephen Warren 	PMUX_PINGRP_LD1,
9770ad375eSStephen Warren 	PMUX_PINGRP_LD2,
9870ad375eSStephen Warren 	PMUX_PINGRP_LD3,
9970ad375eSStephen Warren 	PMUX_PINGRP_LD4,
10070ad375eSStephen Warren 	PMUX_PINGRP_LD5,
10170ad375eSStephen Warren 	PMUX_PINGRP_LD6,
10270ad375eSStephen Warren 	PMUX_PINGRP_LD7,
10300a2749dSAllen Martin 
10470ad375eSStephen Warren 	PMUX_PINGRP_LD8,
10570ad375eSStephen Warren 	PMUX_PINGRP_LD9,
10670ad375eSStephen Warren 	PMUX_PINGRP_LD10,
10770ad375eSStephen Warren 	PMUX_PINGRP_LD11,
10870ad375eSStephen Warren 	PMUX_PINGRP_LD12,
10970ad375eSStephen Warren 	PMUX_PINGRP_LD13,
11070ad375eSStephen Warren 	PMUX_PINGRP_LD14,
11170ad375eSStephen Warren 	PMUX_PINGRP_LD15,
11200a2749dSAllen Martin 
11370ad375eSStephen Warren 	PMUX_PINGRP_LD16,
11470ad375eSStephen Warren 	PMUX_PINGRP_LD17,
11570ad375eSStephen Warren 	PMUX_PINGRP_LHP0,
11670ad375eSStephen Warren 	PMUX_PINGRP_LHP1,
11770ad375eSStephen Warren 	PMUX_PINGRP_LHP2,
11870ad375eSStephen Warren 	PMUX_PINGRP_LVP0,
11970ad375eSStephen Warren 	PMUX_PINGRP_LVP1,
12070ad375eSStephen Warren 	PMUX_PINGRP_HDINT,
12100a2749dSAllen Martin 
12270ad375eSStephen Warren 	PMUX_PINGRP_LM0,
12370ad375eSStephen Warren 	PMUX_PINGRP_LM1,
12470ad375eSStephen Warren 	PMUX_PINGRP_LVS,
12570ad375eSStephen Warren 	PMUX_PINGRP_LSC0,
12670ad375eSStephen Warren 	PMUX_PINGRP_LSC1,
12770ad375eSStephen Warren 	PMUX_PINGRP_LSCK,
12870ad375eSStephen Warren 	PMUX_PINGRP_LDC,
12970ad375eSStephen Warren 	PMUX_PINGRP_LCSN,
13000a2749dSAllen Martin 
13100a2749dSAllen Martin 	/* 96: APB_MISC_PP_TRISTATE_REG_D_0 */
13270ad375eSStephen Warren 	PMUX_PINGRP_LSPI,
13370ad375eSStephen Warren 	PMUX_PINGRP_LSDA,
13470ad375eSStephen Warren 	PMUX_PINGRP_LSDI,
13570ad375eSStephen Warren 	PMUX_PINGRP_LPW0,
13670ad375eSStephen Warren 	PMUX_PINGRP_LPW1,
13770ad375eSStephen Warren 	PMUX_PINGRP_LPW2,
13870ad375eSStephen Warren 	PMUX_PINGRP_LDI,
13970ad375eSStephen Warren 	PMUX_PINGRP_LHS,
14000a2749dSAllen Martin 
14170ad375eSStephen Warren 	PMUX_PINGRP_LPP,
14270ad375eSStephen Warren 	PMUX_PINGRP_RESERVED4,
14370ad375eSStephen Warren 	PMUX_PINGRP_KBCD,
14470ad375eSStephen Warren 	PMUX_PINGRP_GPU7,
14570ad375eSStephen Warren 	PMUX_PINGRP_DTF,
14670ad375eSStephen Warren 	PMUX_PINGRP_UDA,
14770ad375eSStephen Warren 	PMUX_PINGRP_CRTP,
14870ad375eSStephen Warren 	PMUX_PINGRP_SDB,
14900a2749dSAllen Martin 
15000a2749dSAllen Martin 	/* these pin groups only have pullup and pull down control */
15170ad375eSStephen Warren 	PMUX_PINGRP_CK32,
15270ad375eSStephen Warren 	PMUX_PINGRP_DDRC,
15370ad375eSStephen Warren 	PMUX_PINGRP_PMCA,
15470ad375eSStephen Warren 	PMUX_PINGRP_PMCB,
15570ad375eSStephen Warren 	PMUX_PINGRP_PMCC,
15670ad375eSStephen Warren 	PMUX_PINGRP_PMCD,
15770ad375eSStephen Warren 	PMUX_PINGRP_PMCE,
15870ad375eSStephen Warren 	PMUX_PINGRP_XM2C,
15970ad375eSStephen Warren 	PMUX_PINGRP_XM2D,
160dfb42fc9SStephen Warren 	PMUX_PINGRP_COUNT,
16100a2749dSAllen Martin };
16200a2749dSAllen Martin 
16300a2749dSAllen Martin /*
16400a2749dSAllen Martin  * Functions which can be assigned to each of the pin groups. The values here
16500a2749dSAllen Martin  * bear no relation to the values programmed into pinmux registers and are
16600a2749dSAllen Martin  * purely a convenience. The translation is done through a table search.
16700a2749dSAllen Martin  */
16800a2749dSAllen Martin enum pmux_func {
1694a68d343SStephen Warren 	PMUX_FUNC_DEFAULT,
17000a2749dSAllen Martin 	PMUX_FUNC_AHB_CLK,
17100a2749dSAllen Martin 	PMUX_FUNC_APB_CLK,
17200a2749dSAllen Martin 	PMUX_FUNC_AUDIO_SYNC,
17300a2749dSAllen Martin 	PMUX_FUNC_CRT,
17400a2749dSAllen Martin 	PMUX_FUNC_DAP1,
17500a2749dSAllen Martin 	PMUX_FUNC_DAP2,
17600a2749dSAllen Martin 	PMUX_FUNC_DAP3,
17700a2749dSAllen Martin 	PMUX_FUNC_DAP4,
17800a2749dSAllen Martin 	PMUX_FUNC_DAP5,
17900a2749dSAllen Martin 	PMUX_FUNC_DISPA,
18000a2749dSAllen Martin 	PMUX_FUNC_DISPB,
18100a2749dSAllen Martin 	PMUX_FUNC_EMC_TEST0_DLL,
18200a2749dSAllen Martin 	PMUX_FUNC_EMC_TEST1_DLL,
18300a2749dSAllen Martin 	PMUX_FUNC_GMI,
18400a2749dSAllen Martin 	PMUX_FUNC_GMI_INT,
18500a2749dSAllen Martin 	PMUX_FUNC_HDMI,
18600a2749dSAllen Martin 	PMUX_FUNC_I2C,
18700a2749dSAllen Martin 	PMUX_FUNC_I2C2,
18800a2749dSAllen Martin 	PMUX_FUNC_I2C3,
18900a2749dSAllen Martin 	PMUX_FUNC_IDE,
19000a2749dSAllen Martin 	PMUX_FUNC_KBC,
19100a2749dSAllen Martin 	PMUX_FUNC_MIO,
19200a2749dSAllen Martin 	PMUX_FUNC_MIPI_HS,
19300a2749dSAllen Martin 	PMUX_FUNC_NAND,
19400a2749dSAllen Martin 	PMUX_FUNC_OSC,
19500a2749dSAllen Martin 	PMUX_FUNC_OWR,
19600a2749dSAllen Martin 	PMUX_FUNC_PCIE,
19700a2749dSAllen Martin 	PMUX_FUNC_PLLA_OUT,
19800a2749dSAllen Martin 	PMUX_FUNC_PLLC_OUT1,
19900a2749dSAllen Martin 	PMUX_FUNC_PLLM_OUT1,
20000a2749dSAllen Martin 	PMUX_FUNC_PLLP_OUT2,
20100a2749dSAllen Martin 	PMUX_FUNC_PLLP_OUT3,
20200a2749dSAllen Martin 	PMUX_FUNC_PLLP_OUT4,
20300a2749dSAllen Martin 	PMUX_FUNC_PWM,
20400a2749dSAllen Martin 	PMUX_FUNC_PWR_INTR,
20500a2749dSAllen Martin 	PMUX_FUNC_PWR_ON,
20600a2749dSAllen Martin 	PMUX_FUNC_RTCK,
20700a2749dSAllen Martin 	PMUX_FUNC_SDIO1,
20800a2749dSAllen Martin 	PMUX_FUNC_SDIO2,
20900a2749dSAllen Martin 	PMUX_FUNC_SDIO3,
21000a2749dSAllen Martin 	PMUX_FUNC_SDIO4,
21100a2749dSAllen Martin 	PMUX_FUNC_SFLASH,
21200a2749dSAllen Martin 	PMUX_FUNC_SPDIF,
21300a2749dSAllen Martin 	PMUX_FUNC_SPI1,
21400a2749dSAllen Martin 	PMUX_FUNC_SPI2,
21500a2749dSAllen Martin 	PMUX_FUNC_SPI2_ALT,
21600a2749dSAllen Martin 	PMUX_FUNC_SPI3,
21700a2749dSAllen Martin 	PMUX_FUNC_SPI4,
21800a2749dSAllen Martin 	PMUX_FUNC_TRACE,
21900a2749dSAllen Martin 	PMUX_FUNC_TWC,
22000a2749dSAllen Martin 	PMUX_FUNC_UARTA,
22100a2749dSAllen Martin 	PMUX_FUNC_UARTB,
22200a2749dSAllen Martin 	PMUX_FUNC_UARTC,
22300a2749dSAllen Martin 	PMUX_FUNC_UARTD,
22400a2749dSAllen Martin 	PMUX_FUNC_UARTE,
22500a2749dSAllen Martin 	PMUX_FUNC_ULPI,
22600a2749dSAllen Martin 	PMUX_FUNC_VI,
22700a2749dSAllen Martin 	PMUX_FUNC_VI_SENSOR_CLK,
22800a2749dSAllen Martin 	PMUX_FUNC_XIO,
229d381294aSStephen Warren 	PMUX_FUNC_RSVD1,
230d381294aSStephen Warren 	PMUX_FUNC_RSVD2,
231d381294aSStephen Warren 	PMUX_FUNC_RSVD3,
232d381294aSStephen Warren 	PMUX_FUNC_RSVD4,
23300a2749dSAllen Martin 	PMUX_FUNC_COUNT,
23400a2749dSAllen Martin };
23500a2749dSAllen Martin 
236*790f7719SStephen Warren #define TEGRA_PMX_SOC_DRV_GROUP_BASE_REG 0x868
237e2969957SStephen Warren #include <asm/arch-tegra/pinmux.h>
23800a2749dSAllen Martin 
239e2969957SStephen Warren #endif /* _TEGRA20_PINMUX_H_ */
240