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

#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 tegra124_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,     RSVD4),
	PIN(DAP3_SCLK_PP3,          I2S2,       SPI5,     RSVD3,        DISPLAYB),
	PIN(PV0,                    RSVD1,      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,    GMI,          SPI4),
	PIN(UART2_CTS_N_PJ5,        UARTA,      UARTB,    GMI,          SPI4),
	PIN(UART3_TXD_PW6,          UARTC,      RSVD2,    GMI,          SPI4),
	PIN(UART3_RXD_PW7,          UARTC,      RSVD2,    GMI,          SPI4),
	PIN(UART3_CTS_N_PA1,        UARTC,      SDMMC1,   DTV,          GMI),
	PIN(UART3_RTS_N_PC0,        UARTC,      PWM0,     DTV,          GMI),
	PIN(PU0,                    OWR,        UARTA,    GMI,          RSVD4),
	PIN(PU1,                    RSVD1,      UARTA,    GMI,          RSVD4),
	PIN(PU2,                    RSVD1,      UARTA,    GMI,          RSVD4),
	PIN(PU3,                    PWM0,       UARTA,    GMI,          DISPLAYB),
	PIN(PU4,                    PWM1,       UARTA,    GMI,          DISPLAYB),
	PIN(PU5,                    PWM2,       UARTA,    GMI,          DISPLAYB),
	PIN(PU6,                    PWM3,       UARTA,    RSVD3,        GMI),
	PIN(GEN1_I2C_SDA_PC5,       I2C1,       RSVD2,    RSVD3,        RSVD4),
	PIN(GEN1_I2C_SCL_PC4,       I2C1,       RSVD2,    RSVD3,        RSVD4),
	PIN(DAP4_FS_PP4,            I2S3,       GMI,      DTV,          RSVD4),
	PIN(DAP4_DIN_PP5,           I2S3,       GMI,      RSVD3,        RSVD4),
	PIN(DAP4_DOUT_PP6,          I2S3,       GMI,      DTV,          RSVD4),
	PIN(DAP4_SCLK_PP7,          I2S3,       GMI,      RSVD3,        RSVD4),
	PIN(CLK3_OUT_PEE0,          EXTPERIPH3, RSVD2,    RSVD3,        RSVD4),
	PIN(CLK3_REQ_PEE1,          DEV3,       RSVD2,    RSVD3,        RSVD4),
	PIN(PC7,                    RSVD1,      RSVD2,    GMI,          GMI_ALT),
	PIN(PI5,                    SDMMC2,     RSVD2,    GMI,          RSVD4),
	PIN(PI7,                    RSVD1,      TRACE,    GMI,          DTV),
	PIN(PK0,                    RSVD1,      SDMMC3,   GMI,          SOC),
	PIN(PK1,                    SDMMC2,     TRACE,    GMI,          RSVD4),
	PIN(PJ0,                    RSVD1,      RSVD2,    GMI,          USB),
	PIN(PJ2,                    RSVD1,      RSVD2,    GMI,          SOC),
	PIN(PK3,                    SDMMC2,     TRACE,    GMI,          CCLA),
	PIN(PK4,                    SDMMC2,     RSVD2,    GMI,          GMI_ALT),
	PIN(PK2,                    RSVD1,      RSVD2,    GMI,          RSVD4),
	PIN(PI3,                    RSVD1,      RSVD2,    GMI,          SPI4),
	PIN(PI6,                    RSVD1,      RSVD2,    GMI,          SDMMC2),
	PIN(PG0,                    RSVD1,      RSVD2,    GMI,          RSVD4),
	PIN(PG1,                    RSVD1,      RSVD2,    GMI,          RSVD4),
	PIN(PG2,                    RSVD1,      TRACE,    GMI,          RSVD4),
	PIN(PG3,                    RSVD1,      TRACE,    GMI,          RSVD4),
	PIN(PG4,                    RSVD1,      TMDS,     GMI,          SPI4),
	PIN(PG5,                    RSVD1,      RSVD2,    GMI,          SPI4),
	PIN(PG6,                    RSVD1,      RSVD2,    GMI,          SPI4),
	PIN(PG7,                    RSVD1,      RSVD2,    GMI,          SPI4),
	PIN(PH0,                    PWM0,       TRACE,    GMI,          DTV),
	PIN(PH1,                    PWM1,       TMDS,     GMI,          DISPLAYA),
	PIN(PH2,                    PWM2,       TMDS,     GMI,          CLDVFS),
	PIN(PH3,                    PWM3,       SPI4,     GMI,          CLDVFS),
	PIN(PH4,                    SDMMC2,     RSVD2,    GMI,          RSVD4),
	PIN(PH5,                    SDMMC2,     RSVD2,    GMI,          RSVD4),
	PIN(PH6,                    SDMMC2,     TRACE,    GMI,          DTV),
	PIN(PH7,                    SDMMC2,     TRACE,    GMI,          DTV),
	PIN(PJ7,                    UARTD,      RSVD2,    GMI,          GMI_ALT),
	PIN(PB0,                    UARTD,      RSVD2,    GMI,          RSVD4),
	PIN(PB1,                    UARTD,      RSVD2,    GMI,          RSVD4),
	PIN(PK7,                    UARTD,      RSVD2,    GMI,          RSVD4),
	PIN(PI0,                    RSVD1,      RSVD2,    GMI,          RSVD4),
	PIN(PI1,                    RSVD1,      RSVD2,    GMI,          RSVD4),
	PIN(PI2,                    SDMMC2,     TRACE,    GMI,          RSVD4),
	PIN(PI4,                    SPI4,       TRACE,    GMI,          DISPLAYA),
	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,     RSVD3,        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,      SDMMC2),
	PIN(PCC1,                   I2S4,       RSVD2,    RSVD3,        SDMMC2),
	PIN(PBB0,                   VGP6,       VIMCLK2,  SDMMC2,       VIMCLK2_ALT),
	PIN(CAM_I2C_SCL_PBB1,       VGP1,       I2C3,     RSVD3,        SDMMC2),
	PIN(CAM_I2C_SDA_PBB2,       VGP2,       I2C3,     RSVD3,        SDMMC2),
	PIN(PBB3,                   VGP3,       DISPLAYA, DISPLAYB,     SDMMC2),
	PIN(PBB4,                   VGP4,       DISPLAYA, DISPLAYB,     SDMMC2),
	PIN(PBB5,                   VGP5,       DISPLAYA, RSVD3,        SDMMC2),
	PIN(PBB6,                   I2S4,       RSVD2,    DISPLAYB,     SDMMC2),
	PIN(PBB7,                   I2S4,       RSVD2,    RSVD3,        SDMMC2),
	PIN(PCC2,                   I2S4,       RSVD2,    SDMMC3,       SDMMC2),
	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, SYS,          DISPLAYB),
	PIN(KB_ROW4_PR4,            KBC,        DISPLAYA, RSVD3,        DISPLAYB),
	PIN(KB_ROW5_PR5,            KBC,        DISPLAYA, RSVD3,        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(KB_ROW11_PS3,           KBC,        RSVD2,    RSVD3,        IRDA),
	PIN(KB_ROW12_PS4,           KBC,        RSVD2,    RSVD3,        IRDA),
	PIN(KB_ROW13_PS5,           KBC,        RSVD2,    SPI2,         RSVD4),
	PIN(KB_ROW14_PS6,           KBC,        RSVD2,    SPI2,         RSVD4),
	PIN(KB_ROW15_PS7,           KBC,        SOC,      RSVD3,        RSVD4),
	PIN(KB_COL0_PQ0,            KBC,        RSVD2,    SPI2,         RSVD4),
	PIN(KB_COL1_PQ1,            KBC,        RSVD2,    SPI2,         RSVD4),
	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,    SDMMC3,       RSVD4),
	PIN(KB_COL6_PQ6,            KBC,        RSVD2,    SPI2,         UARTD),
	PIN(KB_COL7_PQ7,            KBC,        RSVD2,    SPI2,         UARTD),
	PIN(CLK_32K_OUT_PA0,        BLINK,      SOC,      RSVD3,        RSVD4),
	PIN_RESERVED,
	/* Offset 0x3324 */
	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,          SATA),
	PIN(DAP1_SCLK_PN3,          I2S0,       HDA,      GMI,          RSVD4),
	PIN(DAP_MCLK1_REQ_PEE2,     DAP,        DAP1,     SATA,         RSVD4),
	PIN(DAP_MCLK1_PW4,          EXTPERIPH1, DAP2,     RSVD3,        RSVD4),
	PIN(SPDIF_IN_PK6,           SPDIF,      RSVD2,    RSVD3,        I2C3),
	PIN(SPDIF_OUT_PK5,          SPDIF,      RSVD2,    RSVD3,        I2C3),
	PIN(DAP2_FS_PA2,            I2S1,       HDA,      GMI,          RSVD4),
	PIN(DAP2_DIN_PA4,           I2S1,       HDA,      GMI,          RSVD4),
	PIN(DAP2_DOUT_PA5,          I2S1,       HDA,      GMI,          RSVD4),
	PIN(DAP2_SCLK_PA3,          I2S1,       HDA,      GMI,          RSVD4),
	PIN(DVFS_PWM_PX0,           SPI6,       CLDVFS,   GMI,          RSVD4),
	PIN(GPIO_X1_AUD_PX1,        SPI6,       RSVD2,    GMI,          RSVD4),
	PIN(GPIO_X3_AUD_PX3,        SPI6,       SPI1,     GMI,          RSVD4),
	PIN(DVFS_CLK_PX2,           SPI6,       CLDVFS,   GMI,          RSVD4),
	PIN(GPIO_X4_AUD_PX4,        GMI,        SPI1,     SPI2,         DAP2),
	PIN(GPIO_X5_AUD_PX5,        GMI,        SPI1,     SPI2,         RSVD4),
	PIN(GPIO_X6_AUD_PX6,        SPI6,       SPI1,     SPI2,         GMI),
	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,
	/* Offset 0x33bc */
	PIN(PEX_L0_RST_N_PDD1,      PE0,        RSVD2,    RSVD3,        RSVD4),
	PIN(PEX_L0_CLKREQ_N_PDD2,   PE0,        RSVD2,    RSVD3,        RSVD4),
	PIN(PEX_WAKE_N_PDD3,        PE,         RSVD2,    RSVD3,        RSVD4),
	PIN_RESERVED,
	/* Offset 0x33cc */
	PIN(PEX_L1_RST_N_PDD5,      PE1,        RSVD2,    RSVD3,        RSVD4),
	PIN(PEX_L1_CLKREQ_N_PDD6,   PE1,        RSVD2,    RSVD3,        RSVD4),
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	/* Offset 0x33e0 */
	PIN(HDMI_CEC_PEE3,          CEC,        RSVD2,    RSVD3,        RSVD4),
	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,     RSVD2,    GMI,          RSVD4),
	PIN(RESET_OUT_N,            RSVD1,      RSVD2,    RSVD3,        RESET_OUT_N),
	PIN(KB_ROW16_PT0,           KBC,        RSVD2,    RSVD3,        UARTC),
	PIN(KB_ROW17_PT1,           KBC,        RSVD2,    RSVD3,        UARTC),
	PIN(USB_VBUS_EN2_PFF1,      USB,        RSVD2,    RSVD3,        RSVD4),
	PIN(PFF2,                   SATA,       RSVD2,    RSVD3,        RSVD4),
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	PIN_RESERVED,
	/* Offset 0x3430 */
	PIN(DP_HPD_PFF0,            DP,         RSVD2,    RSVD3,        RSVD4),
};
const struct pmux_pingrp_desc *tegra_soc_pingroups = tegra124_pingroups;

#define MIPIPADCTRL_GRP(grp, f0, f1)	\
	{				\
		.funcs = {		\
			PMUX_FUNC_##f0,	\
			PMUX_FUNC_##f1,	\
		},			\
	}

#define MIPIPADCTRL_RESERVED {}

static const struct pmux_mipipadctrlgrp_desc tegra124_mipipadctrl_groups[] = {
	/*              pin,   f0,  f1 */
	/* Offset 0x820 */
	MIPIPADCTRL_GRP(DSI_B, CSI, DSI_B),
};
const struct pmux_mipipadctrlgrp_desc *tegra_soc_mipipadctrl_groups = tegra124_mipipadctrl_groups;
