// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (c) 2010-2014, NVIDIA CORPORATION. All rights reserved.
 */

#include <common.h>
#include <asm/io.h>
#include <asm/arch/pinmux.h>

#define PIN(pin, f0, f1, f2, f3)	\
	{				\
		.funcs = {		\
			PMUX_FUNC_##f0,	\
			PMUX_FUNC_##f1,	\
			PMUX_FUNC_##f2,	\
			PMUX_FUNC_##f3,	\
		},			\
	}

#define PIN_RESERVED {}

static const struct pmux_pingrp_desc tegra114_pingroups[] = {
	/*  pin,                    f0,         f1,       f2,           f3 */
	/* Offset 0x3000 */
	PIN(ULPI_DATA0_PO1,         SPI3,       HSI,      UARTA,        ULPI),
	PIN(ULPI_DATA1_PO2,         SPI3,       HSI,      UARTA,        ULPI),
	PIN(ULPI_DATA2_PO3,         SPI3,       HSI,      UARTA,        ULPI),
	PIN(ULPI_DATA3_PO4,         SPI3,       HSI,      UARTA,        ULPI),
	PIN(ULPI_DATA4_PO5,         SPI2,       HSI,      UARTA,        ULPI),
	PIN(ULPI_DATA5_PO6,         SPI2,       HSI,      UARTA,        ULPI),
	PIN(ULPI_DATA6_PO7,         SPI2,       HSI,      UARTA,        ULPI),
	PIN(ULPI_DATA7_PO0,         SPI2,       HSI,      UARTA,        ULPI),
	PIN(ULPI_CLK_PY0,           SPI1,       SPI5,     UARTD,        ULPI),
	PIN(ULPI_DIR_PY1,           SPI1,       SPI5,     UARTD,        ULPI),
	PIN(ULPI_NXT_PY2,           SPI1,       SPI5,     UARTD,        ULPI),
	PIN(ULPI_STP_PY3,           SPI1,       SPI5,     UARTD,        ULPI),
	PIN(DAP3_FS_PP0,            I2S2,       SPI5,     DISPLAYA,     DISPLAYB),
	PIN(DAP3_DIN_PP1,           I2S2,       SPI5,     DISPLAYA,     DISPLAYB),
	PIN(DAP3_DOUT_PP2,          I2S2,       SPI5,     DISPLAYA,     DISPLAYB),
	PIN(DAP3_SCLK_PP3,          I2S2,       SPI5,     DISPLAYA,     DISPLAYB),
	PIN(PV0,                    USB,        RSVD2,    RSVD3,        RSVD4),
	PIN(PV1,                    RSVD1,      RSVD2,    RSVD3,        RSVD4),
	PIN(SDMMC1_CLK_PZ0,         SDMMC1,     CLK12,    RSVD3,        RSVD4),
	PIN(SDMMC1_CMD_PZ1,         SDMMC1,     SPDIF,    SPI4,         UARTA),
	PIN(SDMMC1_DAT3_PY4,        SDMMC1,     SPDIF,    SPI4,         UARTA),
	PIN(SDMMC1_DAT2_PY5,        SDMMC1,     PWM0,     SPI4,         UARTA),
	PIN(SDMMC1_DAT1_PY6,        SDMMC1,     PWM1,     SPI4,         UARTA),
	PIN(SDMMC1_DAT0_PY7,        SDMMC1,     RSVD2,    SPI4,         UARTA),
	PIN_RESERVED,
	PIN_RESERVED,
	/* Offset 0x3068 */
	PIN(CLK2_OUT_PW5,           EXTPERIPH2, RSVD2,    RSVD3,        RSVD4),
	PIN(CLK2_REQ_PCC5,          DAP,        RSVD2,    RSVD3,        RSVD4),
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	/* Offset 0x3110 */
	PIN(HDMI_INT_PN7,           RSVD1,      RSVD2,    RSVD3,        RSVD4),
	PIN(DDC_SCL_PV4,            I2C4,       RSVD2,    RSVD3,        RSVD4),
	PIN(DDC_SDA_PV5,            I2C4,       RSVD2,    RSVD3,        RSVD4),
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	/* Offset 0x3164 */
	PIN(UART2_RXD_PC3,          IRDA,       SPDIF,    UARTA,        SPI4),
	PIN(UART2_TXD_PC2,          IRDA,       SPDIF,    UARTA,        SPI4),
	PIN(UART2_RTS_N_PJ6,        UARTA,      UARTB,    RSVD3,        SPI4),
	PIN(UART2_CTS_N_PJ5,        UARTA,      UARTB,    RSVD3,        SPI4),
	PIN(UART3_TXD_PW6,          UARTC,      RSVD2,    RSVD3,        SPI4),
	PIN(UART3_RXD_PW7,          UARTC,      RSVD2,    RSVD3,        SPI4),
	PIN(UART3_CTS_N_PA1,        UARTC,      SDMMC1,   DTV,          SPI4),
	PIN(UART3_RTS_N_PC0,        UARTC,      PWM0,     DTV,          DISPLAYA),
	PIN(PU0,                    OWR,        UARTA,    RSVD3,        RSVD4),
	PIN(PU1,                    RSVD1,      UARTA,    RSVD3,        RSVD4),
	PIN(PU2,                    RSVD1,      UARTA,    RSVD3,        RSVD4),
	PIN(PU3,                    PWM0,       UARTA,    DISPLAYA,     DISPLAYB),
	PIN(PU4,                    PWM1,       UARTA,    DISPLAYA,     DISPLAYB),
	PIN(PU5,                    PWM2,       UARTA,    DISPLAYA,     DISPLAYB),
	PIN(PU6,                    PWM3,       UARTA,    USB,          DISPLAYB),
	PIN(GEN1_I2C_SDA_PC5,       I2C1,       RSVD2,    RSVD3,        RSVD4),
	PIN(GEN1_I2C_SCL_PC4,       I2C1,       RSVD2,    RSVD3,        RSVD4),
	PIN(DAP4_FS_PP4,            I2S3,       RSVD2,    DTV,          RSVD4),
	PIN(DAP4_DIN_PP5,           I2S3,       RSVD2,    RSVD3,        RSVD4),
	PIN(DAP4_DOUT_PP6,          I2S3,       RSVD2,    DTV,          RSVD4),
	PIN(DAP4_SCLK_PP7,          I2S3,       RSVD2,    RSVD3,        RSVD4),
	PIN(CLK3_OUT_PEE0,          EXTPERIPH3, RSVD2,    RSVD3,        RSVD4),
	PIN(CLK3_REQ_PEE1,          DEV3,       RSVD2,    RSVD3,        RSVD4),
	PIN(GMI_WP_N_PC7,           RSVD1,      NAND,     GMI,          GMI_ALT),
	PIN(GMI_IORDY_PI5,          SDMMC2,     RSVD2,    GMI,          TRACE),
	PIN(GMI_WAIT_PI7,           SPI4,       NAND,     GMI,          DTV),
	PIN(GMI_ADV_N_PK0,          RSVD1,      NAND,     GMI,          TRACE),
	PIN(GMI_CLK_PK1,            SDMMC2,     NAND,     GMI,          TRACE),
	PIN(GMI_CS0_N_PJ0,          RSVD1,      NAND,     GMI,          USB),
	PIN(GMI_CS1_N_PJ2,          RSVD1,      NAND,     GMI,          SOC),
	PIN(GMI_CS2_N_PK3,          SDMMC2,     NAND,     GMI,          TRACE),
	PIN(GMI_CS3_N_PK4,          SDMMC2,     NAND,     GMI,          GMI_ALT),
	PIN(GMI_CS4_N_PK2,          USB,        NAND,     GMI,          TRACE),
	PIN(GMI_CS6_N_PI3,          NAND,       NAND_ALT, GMI,          SPI4),
	PIN(GMI_CS7_N_PI6,          NAND,       NAND_ALT, GMI,          SDMMC2),
	PIN(GMI_AD0_PG0,            RSVD1,      NAND,     GMI,          RSVD4),
	PIN(GMI_AD1_PG1,            RSVD1,      NAND,     GMI,          RSVD4),
	PIN(GMI_AD2_PG2,            RSVD1,      NAND,     GMI,          RSVD4),
	PIN(GMI_AD3_PG3,            RSVD1,      NAND,     GMI,          RSVD4),
	PIN(GMI_AD4_PG4,            RSVD1,      NAND,     GMI,          RSVD4),
	PIN(GMI_AD5_PG5,            RSVD1,      NAND,     GMI,          SPI4),
	PIN(GMI_AD6_PG6,            RSVD1,      NAND,     GMI,          SPI4),
	PIN(GMI_AD7_PG7,            RSVD1,      NAND,     GMI,          SPI4),
	PIN(GMI_AD8_PH0,            PWM0,       NAND,     GMI,          DTV),
	PIN(GMI_AD9_PH1,            PWM1,       NAND,     GMI,          CLDVFS),
	PIN(GMI_AD10_PH2,           PWM2,       NAND,     GMI,          CLDVFS),
	PIN(GMI_AD11_PH3,           PWM3,       NAND,     GMI,          USB),
	PIN(GMI_AD12_PH4,           SDMMC2,     NAND,     GMI,          RSVD4),
	PIN(GMI_AD13_PH5,           SDMMC2,     NAND,     GMI,          RSVD4),
	PIN(GMI_AD14_PH6,           SDMMC2,     NAND,     GMI,          DTV),
	PIN(GMI_AD15_PH7,           SDMMC2,     NAND,     GMI,          DTV),
	PIN(GMI_A16_PJ7,            UARTD,      TRACE,    GMI,          GMI_ALT),
	PIN(GMI_A17_PB0,            UARTD,      RSVD2,    GMI,          TRACE),
	PIN(GMI_A18_PB1,            UARTD,      RSVD2,    GMI,          TRACE),
	PIN(GMI_A19_PK7,            UARTD,      SPI4,     GMI,          TRACE),
	PIN(GMI_WR_N_PI0,           RSVD1,      NAND,     GMI,          SPI4),
	PIN(GMI_OE_N_PI1,           RSVD1,      NAND,     GMI,          SOC),
	PIN(GMI_DQS_P_PJ3,          SDMMC2,     NAND,     GMI,          TRACE),
	PIN(GMI_RST_N_PI4,          NAND,       NAND_ALT, GMI,          RSVD4),
	PIN(GEN2_I2C_SCL_PT5,       I2C2,       RSVD2,    GMI,          RSVD4),
	PIN(GEN2_I2C_SDA_PT6,       I2C2,       RSVD2,    GMI,          RSVD4),
	PIN(SDMMC4_CLK_PCC4,        SDMMC4,     RSVD2,    GMI,          RSVD4),
	PIN(SDMMC4_CMD_PT7,         SDMMC4,     RSVD2,    GMI,          RSVD4),
	PIN(SDMMC4_DAT0_PAA0,       SDMMC4,     SPI3,     GMI,          RSVD4),
	PIN(SDMMC4_DAT1_PAA1,       SDMMC4,     SPI3,     GMI,          RSVD4),
	PIN(SDMMC4_DAT2_PAA2,       SDMMC4,     SPI3,     GMI,          RSVD4),
	PIN(SDMMC4_DAT3_PAA3,       SDMMC4,     SPI3,     GMI,          RSVD4),
	PIN(SDMMC4_DAT4_PAA4,       SDMMC4,     SPI3,     GMI,          RSVD4),
	PIN(SDMMC4_DAT5_PAA5,       SDMMC4,     SPI3,     GMI,          RSVD4),
	PIN(SDMMC4_DAT6_PAA6,       SDMMC4,     SPI3,     GMI,          RSVD4),
	PIN(SDMMC4_DAT7_PAA7,       SDMMC4,     RSVD2,    GMI,          RSVD4),
	PIN_RESERVED,
	/* Offset 0x3284 */
	PIN(CAM_MCLK_PCC0,          VI,         VI_ALT1,  VI_ALT3,      RSVD4),
	PIN(PCC1,                   I2S4,       RSVD2,    RSVD3,        RSVD4),
	PIN(PBB0,                   I2S4,       VI,       VI_ALT1,      VI_ALT3),
	PIN(CAM_I2C_SCL_PBB1,       VGP1,       I2C3,     RSVD3,        RSVD4),
	PIN(CAM_I2C_SDA_PBB2,       VGP2,       I2C3,     RSVD3,        RSVD4),
	PIN(PBB3,                   VGP3,       DISPLAYA, DISPLAYB,     RSVD4),
	PIN(PBB4,                   VGP4,       DISPLAYA, DISPLAYB,     RSVD4),
	PIN(PBB5,                   VGP5,       DISPLAYA, DISPLAYB,     RSVD4),
	PIN(PBB6,                   VGP6,       DISPLAYA, DISPLAYB,     RSVD4),
	PIN(PBB7,                   I2S4,       RSVD2,    RSVD3,        RSVD4),
	PIN(PCC2,                   I2S4,       RSVD2,    RSVD3,        RSVD4),
	PIN(JTAG_RTCK,              RTCK,       RSVD2,    RSVD3,        RSVD4),
	PIN(PWR_I2C_SCL_PZ6,        I2CPWR,     RSVD2,    RSVD3,        RSVD4),
	PIN(PWR_I2C_SDA_PZ7,        I2CPWR,     RSVD2,    RSVD3,        RSVD4),
	PIN(KB_ROW0_PR0,            KBC,        RSVD2,    RSVD3,        RSVD4),
	PIN(KB_ROW1_PR1,            KBC,        RSVD2,    RSVD3,        RSVD4),
	PIN(KB_ROW2_PR2,            KBC,        RSVD2,    RSVD3,        RSVD4),
	PIN(KB_ROW3_PR3,            KBC,        DISPLAYA, RSVD3,        DISPLAYB),
	PIN(KB_ROW4_PR4,            KBC,        DISPLAYA, SPI2,         DISPLAYB),
	PIN(KB_ROW5_PR5,            KBC,        DISPLAYA, SPI2,         DISPLAYB),
	PIN(KB_ROW6_PR6,            KBC,        DISPLAYA, DISPLAYA_ALT, DISPLAYB),
	PIN(KB_ROW7_PR7,            KBC,        RSVD2,    CLDVFS,       UARTA),
	PIN(KB_ROW8_PS0,            KBC,        RSVD2,    CLDVFS,       UARTA),
	PIN(KB_ROW9_PS1,            KBC,        RSVD2,    RSVD3,        UARTA),
	PIN(KB_ROW10_PS2,           KBC,        RSVD2,    RSVD3,        UARTA),
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	/* Offset 0x32fc */
	PIN(KB_COL0_PQ0,            KBC,        USB,      SPI2,         EMC_DLL),
	PIN(KB_COL1_PQ1,            KBC,        RSVD2,    SPI2,         EMC_DLL),
	PIN(KB_COL2_PQ2,            KBC,        RSVD2,    SPI2,         RSVD4),
	PIN(KB_COL3_PQ3,            KBC,        DISPLAYA, PWM2,         UARTA),
	PIN(KB_COL4_PQ4,            KBC,        OWR,      SDMMC3,       UARTA),
	PIN(KB_COL5_PQ5,            KBC,        RSVD2,    SDMMC1,       RSVD4),
	PIN(KB_COL6_PQ6,            KBC,        RSVD2,    SPI2,         RSVD4),
	PIN(KB_COL7_PQ7,            KBC,        RSVD2,    SPI2,         RSVD4),
	PIN(CLK_32K_OUT_PA0,        BLINK,      SOC,      RSVD3,        RSVD4),
	PIN(SYS_CLK_REQ_PZ5,        SYSCLK,     RSVD2,    RSVD3,        RSVD4),
	PIN(CORE_PWR_REQ,           PWRON,      RSVD2,    RSVD3,        RSVD4),
	PIN(CPU_PWR_REQ,            CPU,        RSVD2,    RSVD3,        RSVD4),
	PIN(PWR_INT_N,              PMI,        RSVD2,    RSVD3,        RSVD4),
	PIN(CLK_32K_IN,             CLK,        RSVD2,    RSVD3,        RSVD4),
	PIN(OWR,                    OWR,        RSVD2,    RSVD3,        RSVD4),
	PIN(DAP1_FS_PN0,            I2S0,       HDA,      GMI,          RSVD4),
	PIN(DAP1_DIN_PN1,           I2S0,       HDA,      GMI,          RSVD4),
	PIN(DAP1_DOUT_PN2,          I2S0,       HDA,      GMI,          RSVD4),
	PIN(DAP1_SCLK_PN3,          I2S0,       HDA,      GMI,          RSVD4),
	PIN(CLK1_REQ_PEE2,          DAP,        DAP1,     RSVD3,        RSVD4),
	PIN(CLK1_OUT_PW4,           EXTPERIPH1, DAP2,     RSVD3,        RSVD4),
	PIN(SPDIF_IN_PK6,           SPDIF,      USB,      RSVD3,        RSVD4),
	PIN(SPDIF_OUT_PK5,          SPDIF,      RSVD2,    RSVD3,        RSVD4),
	PIN(DAP2_FS_PA2,            I2S1,       HDA,      RSVD3,        RSVD4),
	PIN(DAP2_DIN_PA4,           I2S1,       HDA,      RSVD3,        RSVD4),
	PIN(DAP2_DOUT_PA5,          I2S1,       HDA,      RSVD3,        RSVD4),
	PIN(DAP2_SCLK_PA3,          I2S1,       HDA,      RSVD3,        RSVD4),
	PIN(DVFS_PWM_PX0,           SPI6,       CLDVFS,   RSVD3,        RSVD4),
	PIN(GPIO_X1_AUD_PX1,        SPI6,       RSVD2,    RSVD3,        RSVD4),
	PIN(GPIO_X3_AUD_PX3,        SPI6,       SPI1,     RSVD3,        RSVD4),
	PIN(DVFS_CLK_PX2,           SPI6,       CLDVFS,   RSVD3,        RSVD4),
	PIN(GPIO_X4_AUD_PX4,        RSVD1,      SPI1,     SPI2,         DAP2),
	PIN(GPIO_X5_AUD_PX5,        RSVD1,      SPI1,     SPI2,         RSVD4),
	PIN(GPIO_X6_AUD_PX6,        SPI6,       SPI1,     SPI2,         RSVD4),
	PIN(GPIO_X7_AUD_PX7,        RSVD1,      SPI1,     SPI2,         RSVD4),
	PIN_RESERVED,
	PIN_RESERVED,
	/* Offset 0x3390 */
	PIN(SDMMC3_CLK_PA6,         SDMMC3,     RSVD2,    RSVD3,        SPI3),
	PIN(SDMMC3_CMD_PA7,         SDMMC3,     PWM3,     UARTA,        SPI3),
	PIN(SDMMC3_DAT0_PB7,        SDMMC3,     RSVD2,    RSVD3,        SPI3),
	PIN(SDMMC3_DAT1_PB6,        SDMMC3,     PWM2,     UARTA,        SPI3),
	PIN(SDMMC3_DAT2_PB5,        SDMMC3,     PWM1,     DISPLAYA,     SPI3),
	PIN(SDMMC3_DAT3_PB4,        SDMMC3,     PWM0,     DISPLAYB,     SPI3),
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	/* Offset 0x33e0 */
	PIN(HDMI_CEC_PEE3,          CEC,        SDMMC3,   RSVD3,        SOC),
	PIN(SDMMC1_WP_N_PV3,        SDMMC1,     CLK12,    SPI4,         UARTA),
	PIN(SDMMC3_CD_N_PV2,        SDMMC3,     OWR,      RSVD3,        RSVD4),
	PIN(GPIO_W2_AUD_PW2,        SPI6,       RSVD2,    SPI2,         I2C1),
	PIN(GPIO_W3_AUD_PW3,        SPI6,       SPI1,     SPI2,         I2C1),
	PIN(USB_VBUS_EN0_PN4,       USB,        RSVD2,    RSVD3,        RSVD4),
	PIN(USB_VBUS_EN1_PN5,       USB,        RSVD2,    RSVD3,        RSVD4),
	PIN(SDMMC3_CLK_LB_IN_PEE5,  SDMMC3,     RSVD2,    RSVD3,        RSVD4),
	PIN(SDMMC3_CLK_LB_OUT_PEE4, SDMMC3,     RSVD2,    RSVD3,        RSVD4),
	PIN(GMI_CLK_LB,             SDMMC2,     NAND,     GMI,          RSVD4),
	PIN(RESET_OUT_N,            RSVD1,      RSVD2,    RSVD3,        RESET_OUT_N),
};
const struct pmux_pingrp_desc *tegra_soc_pingroups = tegra114_pingroups;
