mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-28 04:48:52 +09:00
![Stephen Warren](/assets/img/avatar_default.png)
Tegra210 starts its drive group registers at a different offset from the APB MISC register block that other SoCs. Update the code to handle this. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
240 lines
4.4 KiB
C
240 lines
4.4 KiB
C
/*
|
|
* (C) Copyright 2010,2011
|
|
* NVIDIA Corporation <www.nvidia.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#ifndef _TEGRA20_PINMUX_H_
|
|
#define _TEGRA20_PINMUX_H_
|
|
|
|
/*
|
|
* Pin groups which we adjust. There are three basic attributes of each pin
|
|
* group which use this enum:
|
|
*
|
|
* - function
|
|
* - pullup / pulldown
|
|
* - tristate or normal
|
|
*/
|
|
enum pmux_pingrp {
|
|
/* APB_MISC_PP_TRISTATE_REG_A_0 */
|
|
PMUX_PINGRP_ATA,
|
|
PMUX_PINGRP_ATB,
|
|
PMUX_PINGRP_ATC,
|
|
PMUX_PINGRP_ATD,
|
|
PMUX_PINGRP_CDEV1,
|
|
PMUX_PINGRP_CDEV2,
|
|
PMUX_PINGRP_CSUS,
|
|
PMUX_PINGRP_DAP1,
|
|
|
|
PMUX_PINGRP_DAP2,
|
|
PMUX_PINGRP_DAP3,
|
|
PMUX_PINGRP_DAP4,
|
|
PMUX_PINGRP_DTA,
|
|
PMUX_PINGRP_DTB,
|
|
PMUX_PINGRP_DTC,
|
|
PMUX_PINGRP_DTD,
|
|
PMUX_PINGRP_DTE,
|
|
|
|
PMUX_PINGRP_GPU,
|
|
PMUX_PINGRP_GPV,
|
|
PMUX_PINGRP_I2CP,
|
|
PMUX_PINGRP_IRTX,
|
|
PMUX_PINGRP_IRRX,
|
|
PMUX_PINGRP_KBCB,
|
|
PMUX_PINGRP_KBCA,
|
|
PMUX_PINGRP_PMC,
|
|
|
|
PMUX_PINGRP_PTA,
|
|
PMUX_PINGRP_RM,
|
|
PMUX_PINGRP_KBCE,
|
|
PMUX_PINGRP_KBCF,
|
|
PMUX_PINGRP_GMA,
|
|
PMUX_PINGRP_GMC,
|
|
PMUX_PINGRP_SDIO1,
|
|
PMUX_PINGRP_OWC,
|
|
|
|
/* 32: APB_MISC_PP_TRISTATE_REG_B_0 */
|
|
PMUX_PINGRP_GME,
|
|
PMUX_PINGRP_SDC,
|
|
PMUX_PINGRP_SDD,
|
|
PMUX_PINGRP_RESERVED0,
|
|
PMUX_PINGRP_SLXA,
|
|
PMUX_PINGRP_SLXC,
|
|
PMUX_PINGRP_SLXD,
|
|
PMUX_PINGRP_SLXK,
|
|
|
|
PMUX_PINGRP_SPDI,
|
|
PMUX_PINGRP_SPDO,
|
|
PMUX_PINGRP_SPIA,
|
|
PMUX_PINGRP_SPIB,
|
|
PMUX_PINGRP_SPIC,
|
|
PMUX_PINGRP_SPID,
|
|
PMUX_PINGRP_SPIE,
|
|
PMUX_PINGRP_SPIF,
|
|
|
|
PMUX_PINGRP_SPIG,
|
|
PMUX_PINGRP_SPIH,
|
|
PMUX_PINGRP_UAA,
|
|
PMUX_PINGRP_UAB,
|
|
PMUX_PINGRP_UAC,
|
|
PMUX_PINGRP_UAD,
|
|
PMUX_PINGRP_UCA,
|
|
PMUX_PINGRP_UCB,
|
|
|
|
PMUX_PINGRP_RESERVED1,
|
|
PMUX_PINGRP_ATE,
|
|
PMUX_PINGRP_KBCC,
|
|
PMUX_PINGRP_RESERVED2,
|
|
PMUX_PINGRP_RESERVED3,
|
|
PMUX_PINGRP_GMB,
|
|
PMUX_PINGRP_GMD,
|
|
PMUX_PINGRP_DDC,
|
|
|
|
/* 64: APB_MISC_PP_TRISTATE_REG_C_0 */
|
|
PMUX_PINGRP_LD0,
|
|
PMUX_PINGRP_LD1,
|
|
PMUX_PINGRP_LD2,
|
|
PMUX_PINGRP_LD3,
|
|
PMUX_PINGRP_LD4,
|
|
PMUX_PINGRP_LD5,
|
|
PMUX_PINGRP_LD6,
|
|
PMUX_PINGRP_LD7,
|
|
|
|
PMUX_PINGRP_LD8,
|
|
PMUX_PINGRP_LD9,
|
|
PMUX_PINGRP_LD10,
|
|
PMUX_PINGRP_LD11,
|
|
PMUX_PINGRP_LD12,
|
|
PMUX_PINGRP_LD13,
|
|
PMUX_PINGRP_LD14,
|
|
PMUX_PINGRP_LD15,
|
|
|
|
PMUX_PINGRP_LD16,
|
|
PMUX_PINGRP_LD17,
|
|
PMUX_PINGRP_LHP0,
|
|
PMUX_PINGRP_LHP1,
|
|
PMUX_PINGRP_LHP2,
|
|
PMUX_PINGRP_LVP0,
|
|
PMUX_PINGRP_LVP1,
|
|
PMUX_PINGRP_HDINT,
|
|
|
|
PMUX_PINGRP_LM0,
|
|
PMUX_PINGRP_LM1,
|
|
PMUX_PINGRP_LVS,
|
|
PMUX_PINGRP_LSC0,
|
|
PMUX_PINGRP_LSC1,
|
|
PMUX_PINGRP_LSCK,
|
|
PMUX_PINGRP_LDC,
|
|
PMUX_PINGRP_LCSN,
|
|
|
|
/* 96: APB_MISC_PP_TRISTATE_REG_D_0 */
|
|
PMUX_PINGRP_LSPI,
|
|
PMUX_PINGRP_LSDA,
|
|
PMUX_PINGRP_LSDI,
|
|
PMUX_PINGRP_LPW0,
|
|
PMUX_PINGRP_LPW1,
|
|
PMUX_PINGRP_LPW2,
|
|
PMUX_PINGRP_LDI,
|
|
PMUX_PINGRP_LHS,
|
|
|
|
PMUX_PINGRP_LPP,
|
|
PMUX_PINGRP_RESERVED4,
|
|
PMUX_PINGRP_KBCD,
|
|
PMUX_PINGRP_GPU7,
|
|
PMUX_PINGRP_DTF,
|
|
PMUX_PINGRP_UDA,
|
|
PMUX_PINGRP_CRTP,
|
|
PMUX_PINGRP_SDB,
|
|
|
|
/* these pin groups only have pullup and pull down control */
|
|
PMUX_PINGRP_CK32,
|
|
PMUX_PINGRP_DDRC,
|
|
PMUX_PINGRP_PMCA,
|
|
PMUX_PINGRP_PMCB,
|
|
PMUX_PINGRP_PMCC,
|
|
PMUX_PINGRP_PMCD,
|
|
PMUX_PINGRP_PMCE,
|
|
PMUX_PINGRP_XM2C,
|
|
PMUX_PINGRP_XM2D,
|
|
PMUX_PINGRP_COUNT,
|
|
};
|
|
|
|
/*
|
|
* Functions which can be assigned to each of the pin groups. The values here
|
|
* bear no relation to the values programmed into pinmux registers and are
|
|
* purely a convenience. The translation is done through a table search.
|
|
*/
|
|
enum pmux_func {
|
|
PMUX_FUNC_DEFAULT,
|
|
PMUX_FUNC_AHB_CLK,
|
|
PMUX_FUNC_APB_CLK,
|
|
PMUX_FUNC_AUDIO_SYNC,
|
|
PMUX_FUNC_CRT,
|
|
PMUX_FUNC_DAP1,
|
|
PMUX_FUNC_DAP2,
|
|
PMUX_FUNC_DAP3,
|
|
PMUX_FUNC_DAP4,
|
|
PMUX_FUNC_DAP5,
|
|
PMUX_FUNC_DISPA,
|
|
PMUX_FUNC_DISPB,
|
|
PMUX_FUNC_EMC_TEST0_DLL,
|
|
PMUX_FUNC_EMC_TEST1_DLL,
|
|
PMUX_FUNC_GMI,
|
|
PMUX_FUNC_GMI_INT,
|
|
PMUX_FUNC_HDMI,
|
|
PMUX_FUNC_I2C,
|
|
PMUX_FUNC_I2C2,
|
|
PMUX_FUNC_I2C3,
|
|
PMUX_FUNC_IDE,
|
|
PMUX_FUNC_KBC,
|
|
PMUX_FUNC_MIO,
|
|
PMUX_FUNC_MIPI_HS,
|
|
PMUX_FUNC_NAND,
|
|
PMUX_FUNC_OSC,
|
|
PMUX_FUNC_OWR,
|
|
PMUX_FUNC_PCIE,
|
|
PMUX_FUNC_PLLA_OUT,
|
|
PMUX_FUNC_PLLC_OUT1,
|
|
PMUX_FUNC_PLLM_OUT1,
|
|
PMUX_FUNC_PLLP_OUT2,
|
|
PMUX_FUNC_PLLP_OUT3,
|
|
PMUX_FUNC_PLLP_OUT4,
|
|
PMUX_FUNC_PWM,
|
|
PMUX_FUNC_PWR_INTR,
|
|
PMUX_FUNC_PWR_ON,
|
|
PMUX_FUNC_RTCK,
|
|
PMUX_FUNC_SDIO1,
|
|
PMUX_FUNC_SDIO2,
|
|
PMUX_FUNC_SDIO3,
|
|
PMUX_FUNC_SDIO4,
|
|
PMUX_FUNC_SFLASH,
|
|
PMUX_FUNC_SPDIF,
|
|
PMUX_FUNC_SPI1,
|
|
PMUX_FUNC_SPI2,
|
|
PMUX_FUNC_SPI2_ALT,
|
|
PMUX_FUNC_SPI3,
|
|
PMUX_FUNC_SPI4,
|
|
PMUX_FUNC_TRACE,
|
|
PMUX_FUNC_TWC,
|
|
PMUX_FUNC_UARTA,
|
|
PMUX_FUNC_UARTB,
|
|
PMUX_FUNC_UARTC,
|
|
PMUX_FUNC_UARTD,
|
|
PMUX_FUNC_UARTE,
|
|
PMUX_FUNC_ULPI,
|
|
PMUX_FUNC_VI,
|
|
PMUX_FUNC_VI_SENSOR_CLK,
|
|
PMUX_FUNC_XIO,
|
|
PMUX_FUNC_RSVD1,
|
|
PMUX_FUNC_RSVD2,
|
|
PMUX_FUNC_RSVD3,
|
|
PMUX_FUNC_RSVD4,
|
|
PMUX_FUNC_COUNT,
|
|
};
|
|
|
|
#define TEGRA_PMX_SOC_DRV_GROUP_BASE_REG 0x868
|
|
#include <asm/arch-tegra/pinmux.h>
|
|
|
|
#endif /* _TEGRA20_PINMUX_H_ */
|