/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_SH7757_H__
#define __ASM_SH7757_H__

enum {
	/* PTA */
	GPIO_PTA0, GPIO_PTA1, GPIO_PTA2, GPIO_PTA3,
	GPIO_PTA4, GPIO_PTA5, GPIO_PTA6, GPIO_PTA7,

	/* PTB */
	GPIO_PTB0, GPIO_PTB1, GPIO_PTB2, GPIO_PTB3,
	GPIO_PTB4, GPIO_PTB5, GPIO_PTB6, GPIO_PTB7,

	/* PTC */
	GPIO_PTC0, GPIO_PTC1, GPIO_PTC2, GPIO_PTC3,
	GPIO_PTC4, GPIO_PTC5, GPIO_PTC6, GPIO_PTC7,

	/* PTD */
	GPIO_PTD0, GPIO_PTD1, GPIO_PTD2, GPIO_PTD3,
	GPIO_PTD4, GPIO_PTD5, GPIO_PTD6, GPIO_PTD7,

	/* PTE */
	GPIO_PTE0, GPIO_PTE1, GPIO_PTE2, GPIO_PTE3,
	GPIO_PTE4, GPIO_PTE5, GPIO_PTE6, GPIO_PTE7,

	/* PTF */
	GPIO_PTF0, GPIO_PTF1, GPIO_PTF2, GPIO_PTF3,
	GPIO_PTF4, GPIO_PTF5, GPIO_PTF6, GPIO_PTF7,

	/* PTG */
	GPIO_PTG0, GPIO_PTG1, GPIO_PTG2, GPIO_PTG3,
	GPIO_PTG4, GPIO_PTG5, GPIO_PTG6, GPIO_PTG7,

	/* PTH */
	GPIO_PTH0, GPIO_PTH1, GPIO_PTH2, GPIO_PTH3,
	GPIO_PTH4, GPIO_PTH5, GPIO_PTH6, GPIO_PTH7,

	/* PTI */
	GPIO_PTI0, GPIO_PTI1, GPIO_PTI2, GPIO_PTI3,
	GPIO_PTI4, GPIO_PTI5, GPIO_PTI6, GPIO_PTI7,

	/* PTJ */
	GPIO_PTJ0, GPIO_PTJ1, GPIO_PTJ2, GPIO_PTJ3,
	GPIO_PTJ4, GPIO_PTJ5, GPIO_PTJ6,

	/* PTK */
	GPIO_PTK0, GPIO_PTK1, GPIO_PTK2, GPIO_PTK3,
	GPIO_PTK4, GPIO_PTK5, GPIO_PTK6, GPIO_PTK7,

	/* PTL */
	GPIO_PTL0, GPIO_PTL1, GPIO_PTL2, GPIO_PTL3,
	GPIO_PTL4, GPIO_PTL5, GPIO_PTL6,

	/* PTM */
	GPIO_PTM0, GPIO_PTM1, GPIO_PTM2, GPIO_PTM3,
	GPIO_PTM4, GPIO_PTM5, GPIO_PTM6, GPIO_PTM7,

	/* PTN */
	GPIO_PTN0, GPIO_PTN1, GPIO_PTN2, GPIO_PTN3,
	GPIO_PTN4, GPIO_PTN5, GPIO_PTN6,

	/* PTO */
	GPIO_PTO0, GPIO_PTO1, GPIO_PTO2, GPIO_PTO3,
	GPIO_PTO4, GPIO_PTO5, GPIO_PTO6, GPIO_PTO7,

	/* PTP */
	GPIO_PTP0, GPIO_PTP1, GPIO_PTP2, GPIO_PTP3,
	GPIO_PTP4, GPIO_PTP5, GPIO_PTP6, GPIO_PTP7,

	/* PTQ */
	GPIO_PTQ0, GPIO_PTQ1, GPIO_PTQ2, GPIO_PTQ3,
	GPIO_PTQ4, GPIO_PTQ5, GPIO_PTQ6,

	/* PTR */
	GPIO_PTR0, GPIO_PTR1, GPIO_PTR2, GPIO_PTR3,
	GPIO_PTR4, GPIO_PTR5, GPIO_PTR6, GPIO_PTR7,

	/* PTS */
	GPIO_PTS0, GPIO_PTS1, GPIO_PTS2, GPIO_PTS3,
	GPIO_PTS4, GPIO_PTS5, GPIO_PTS6, GPIO_PTS7,

	/* PTT */
	GPIO_PTT0, GPIO_PTT1, GPIO_PTT2, GPIO_PTT3,
	GPIO_PTT4, GPIO_PTT5, GPIO_PTT6, GPIO_PTT7,

	/* PTU */
	GPIO_PTU0, GPIO_PTU1, GPIO_PTU2, GPIO_PTU3,
	GPIO_PTU4, GPIO_PTU5, GPIO_PTU6, GPIO_PTU7,

	/* PTV */
	GPIO_PTV0, GPIO_PTV1, GPIO_PTV2, GPIO_PTV3,
	GPIO_PTV4, GPIO_PTV5, GPIO_PTV6, GPIO_PTV7,

	/* PTW */
	GPIO_PTW0, GPIO_PTW1, GPIO_PTW2, GPIO_PTW3,
	GPIO_PTW4, GPIO_PTW5, GPIO_PTW6, GPIO_PTW7,

	/* PTX */
	GPIO_PTX0, GPIO_PTX1, GPIO_PTX2, GPIO_PTX3,
	GPIO_PTX4, GPIO_PTX5, GPIO_PTX6, GPIO_PTX7,

	/* PTY */
	GPIO_PTY0, GPIO_PTY1, GPIO_PTY2, GPIO_PTY3,
	GPIO_PTY4, GPIO_PTY5, GPIO_PTY6, GPIO_PTY7,

	/* PTZ */
	GPIO_PTZ0, GPIO_PTZ1, GPIO_PTZ2, GPIO_PTZ3,
	GPIO_PTZ4, GPIO_PTZ5, GPIO_PTZ6, GPIO_PTZ7,


	/* PTA (mobule: LBSC, RGMII) */
	GPIO_FN_BS,	GPIO_FN_RDWR,	GPIO_FN_WE1,	GPIO_FN_RDY,
	GPIO_FN_ET0_MDC,	GPIO_FN_ET0_MDIO,
	GPIO_FN_ET1_MDC,	GPIO_FN_ET1_MDIO,

	/* PTB (mobule: INTC, ONFI, TMU) */
	GPIO_FN_IRQ15,	GPIO_FN_IRQ14,	GPIO_FN_IRQ13,	GPIO_FN_IRQ12,
	GPIO_FN_IRQ11,	GPIO_FN_IRQ10,	GPIO_FN_IRQ9,	GPIO_FN_IRQ8,
	GPIO_FN_ON_NRE,	GPIO_FN_ON_NWE,	GPIO_FN_ON_NWP,	GPIO_FN_ON_NCE0,
	GPIO_FN_ON_R_B0,	GPIO_FN_ON_ALE,	GPIO_FN_ON_CLE,
	GPIO_FN_TCLK,

	/* PTC (mobule: IRQ, PWMU) */
	GPIO_FN_IRQ7,	GPIO_FN_IRQ6,	GPIO_FN_IRQ5,	GPIO_FN_IRQ4,
	GPIO_FN_IRQ3,	GPIO_FN_IRQ2,	GPIO_FN_IRQ1,	GPIO_FN_IRQ0,
	GPIO_FN_PWMU0,	GPIO_FN_PWMU1,	GPIO_FN_PWMU2,	GPIO_FN_PWMU3,
	GPIO_FN_PWMU4,	GPIO_FN_PWMU5,

	/* PTD (mobule: SPI0, DMAC) */
	GPIO_FN_SP0_MOSI,	GPIO_FN_SP0_MISO,	GPIO_FN_SP0_SCK,
	GPIO_FN_SP0_SCK_FB,	GPIO_FN_SP0_SS0,	GPIO_FN_SP0_SS1,
	GPIO_FN_SP0_SS2,	GPIO_FN_SP0_SS3,	GPIO_FN_DREQ0,
	GPIO_FN_DACK0,		GPIO_FN_TEND0,

	/* PTE (mobule: RMII) */
	GPIO_FN_RMII0_CRS_DV,	GPIO_FN_RMII0_TXD1,	GPIO_FN_RMII0_TXD0,
	GPIO_FN_RMII0_TXEN,	GPIO_FN_RMII0_REFCLK,	GPIO_FN_RMII0_RXD1,
	GPIO_FN_RMII0_RXD0,	GPIO_FN_RMII0_RX_ER,

	/* PTF (mobule: RMII, SerMux) */
	GPIO_FN_RMII1_CRS_DV,	GPIO_FN_RMII1_TXD1,	GPIO_FN_RMII1_TXD0,
	GPIO_FN_RMII1_TXEN,	GPIO_FN_RMII1_REFCLK,	GPIO_FN_RMII1_RXD1,
	GPIO_FN_RMII1_RXD0,	GPIO_FN_RMII1_RX_ER,	GPIO_FN_RAC_RI,

	/* PTG (mobule: system, LBSC, LPC, WDT, LPC, eMMC) */
	GPIO_FN_BOOTFMS,		GPIO_FN_BOOTWP,
	GPIO_FN_A25,	GPIO_FN_A24,	GPIO_FN_SERIRQ,	GPIO_FN_WDTOVF,
	GPIO_FN_LPCPD,	GPIO_FN_LDRQ,	GPIO_FN_MMCCLK,	GPIO_FN_MMCCMD,

	/* PTH (mobule: SPI1, LPC, DMAC, ADC) */
	GPIO_FN_SP1_MOSI,		GPIO_FN_SP1_MISO,
	GPIO_FN_SP1_SCK,		GPIO_FN_SP1_SCK_FB,
	GPIO_FN_SP1_SS0,		GPIO_FN_SP1_SS1,
	GPIO_FN_WP,	GPIO_FN_FMS0,	GPIO_FN_TEND1,	GPIO_FN_DREQ1,
	GPIO_FN_DACK1,	GPIO_FN_ADTRG1,	GPIO_FN_ADTRG0,

	/* PTI (mobule: LBSC, SDHI) */
	GPIO_FN_D15,	GPIO_FN_D14,	GPIO_FN_D13,	GPIO_FN_D12,
	GPIO_FN_D11,	GPIO_FN_D10,	GPIO_FN_D9,	GPIO_FN_D8,
	GPIO_FN_SD_WP,	GPIO_FN_SD_CD,	GPIO_FN_SD_CLK,	GPIO_FN_SD_CMD,
	GPIO_FN_SD_D3,	GPIO_FN_SD_D2,	GPIO_FN_SD_D1,	GPIO_FN_SD_D0,

	/* PTJ (mobule: SCIF234) */
	GPIO_FN_RTS3,	GPIO_FN_CTS3,	GPIO_FN_TXD3,	GPIO_FN_RXD3,
	GPIO_FN_RTS4,	GPIO_FN_RXD4,	GPIO_FN_TXD4,

	/* PTK (mobule: SERMUX, LBSC, SCIF) */
	GPIO_FN_COM2_TXD,	GPIO_FN_COM2_RXD,	GPIO_FN_COM2_RTS,
	GPIO_FN_COM2_CTS,	GPIO_FN_COM2_DTR,	GPIO_FN_COM2_DSR,
	GPIO_FN_COM2_DCD,	GPIO_FN_CLKOUT,
	GPIO_FN_SCK2,		GPIO_FN_SCK4,	GPIO_FN_SCK3,

	/* PTL (mobule: SERMUX, SCIF, LBSC, AUD) */
	GPIO_FN_RAC_RXD,	GPIO_FN_RAC_RTS,	GPIO_FN_RAC_CTS,
	GPIO_FN_RAC_DTR,	GPIO_FN_RAC_DSR,	GPIO_FN_RAC_DCD,
	GPIO_FN_RAC_TXD,	GPIO_FN_RXD2,		GPIO_FN_CS5,
	GPIO_FN_CS6,		GPIO_FN_AUDSYNC,	GPIO_FN_AUDCK,
	GPIO_FN_TXD2,

	/* PTM (mobule: LBSC, IIC) */
	GPIO_FN_CS4,	GPIO_FN_RD,	GPIO_FN_WE0,	GPIO_FN_CS0,
	GPIO_FN_SDA6,	GPIO_FN_SCL6,	GPIO_FN_SDA7,	GPIO_FN_SCL7,

	/* PTN (mobule: USB, JMC, SGPIO, WDT) */
	GPIO_FN_VBUS_EN,	GPIO_FN_VBUS_OC,	GPIO_FN_JMCTCK,
	GPIO_FN_JMCTMS,		GPIO_FN_JMCTDO,		GPIO_FN_JMCTDI,
	GPIO_FN_JMCTRST,
	GPIO_FN_SGPIO1_CLK,	GPIO_FN_SGPIO1_LOAD,	GPIO_FN_SGPIO1_DI,
	GPIO_FN_SGPIO1_DO,	GPIO_FN_SUB_CLKIN,

	/* PTO (mobule: SGPIO, SerMux) */
	GPIO_FN_SGPIO0_CLK,	GPIO_FN_SGPIO0_LOAD,	GPIO_FN_SGPIO0_DI,
	GPIO_FN_SGPIO0_DO,	GPIO_FN_SGPIO2_CLK,	GPIO_FN_SGPIO2_LOAD,
	GPIO_FN_SGPIO2_DI,	GPIO_FN_SGPIO2_DO,	GPIO_FN_COM1_TXD,
	GPIO_FN_COM1_RXD,	GPIO_FN_COM1_RTS,	GPIO_FN_COM1_CTS,

	/* PTQ (mobule: LPC) */
	GPIO_FN_LAD3,	GPIO_FN_LAD2,	GPIO_FN_LAD1,	GPIO_FN_LAD0,
	GPIO_FN_LFRAME,	GPIO_FN_LRESET,	GPIO_FN_LCLK,

	/* PTR (mobule: GRA, IIC) */
	GPIO_FN_DDC3,	GPIO_FN_DDC2,	GPIO_FN_SDA2,	GPIO_FN_SCL2,
	GPIO_FN_SDA1,	GPIO_FN_SCL1,	GPIO_FN_SDA0,	GPIO_FN_SCL0,
	GPIO_FN_SDA8,	GPIO_FN_SCL8,

	/* PTS (mobule: GRA, IIC) */
	GPIO_FN_DDC1,	GPIO_FN_DDC0,	GPIO_FN_SDA5,	GPIO_FN_SCL5,
	GPIO_FN_SDA4,	GPIO_FN_SCL4,	GPIO_FN_SDA3,	GPIO_FN_SCL3,
	GPIO_FN_SDA9,	GPIO_FN_SCL9,

	/* PTT (mobule: PWMX, AUD) */
	GPIO_FN_PWMX7,	GPIO_FN_PWMX6,	GPIO_FN_PWMX5,	GPIO_FN_PWMX4,
	GPIO_FN_PWMX3,	GPIO_FN_PWMX2,	GPIO_FN_PWMX1,	GPIO_FN_PWMX0,
	GPIO_FN_AUDATA3,	GPIO_FN_AUDATA2,	GPIO_FN_AUDATA1,
	GPIO_FN_AUDATA0,	GPIO_FN_STATUS1,	GPIO_FN_STATUS0,

	/* PTU (mobule: LPC, APM) */
	GPIO_FN_LGPIO7,	GPIO_FN_LGPIO6,	GPIO_FN_LGPIO5,	GPIO_FN_LGPIO4,
	GPIO_FN_LGPIO3,	GPIO_FN_LGPIO2,	GPIO_FN_LGPIO1,	GPIO_FN_LGPIO0,
	GPIO_FN_APMONCTL_O,	GPIO_FN_APMPWBTOUT_O,	GPIO_FN_APMSCI_O,
	GPIO_FN_APMVDDON,	GPIO_FN_APMSLPBTN,	GPIO_FN_APMPWRBTN,
	GPIO_FN_APMS5N,		GPIO_FN_APMS3N,

	/* PTV (mobule: LBSC, SerMux, R-SPI, EVC, GRA) */
	GPIO_FN_A23,	GPIO_FN_A22,	GPIO_FN_A21,	GPIO_FN_A20,
	GPIO_FN_A19,	GPIO_FN_A18,	GPIO_FN_A17,	GPIO_FN_A16,
	GPIO_FN_COM2_RI,	GPIO_FN_R_SPI_MOSI,	GPIO_FN_R_SPI_MISO,
	GPIO_FN_R_SPI_RSPCK,	GPIO_FN_R_SPI_SSL0,	GPIO_FN_R_SPI_SSL1,
	GPIO_FN_EVENT7,		GPIO_FN_EVENT6,		GPIO_FN_VBIOS_DI,
	GPIO_FN_VBIOS_DO,	GPIO_FN_VBIOS_CLK,	GPIO_FN_VBIOS_CS,

	/* PTW (mobule: LBSC, EVC, SCIF) */
	GPIO_FN_A15,	GPIO_FN_A14,	GPIO_FN_A13,	GPIO_FN_A12,
	GPIO_FN_A11,	GPIO_FN_A10,	GPIO_FN_A9,	GPIO_FN_A8,
	GPIO_FN_EVENT5,	GPIO_FN_EVENT4,	GPIO_FN_EVENT3,	GPIO_FN_EVENT2,
	GPIO_FN_EVENT1,	GPIO_FN_EVENT0,	GPIO_FN_CTS4,	GPIO_FN_CTS2,

	/* PTX (mobule: LBSC, SCIF, SIM) */
	GPIO_FN_A7,	GPIO_FN_A6,	GPIO_FN_A5,	GPIO_FN_A4,
	GPIO_FN_A3,	GPIO_FN_A2,	GPIO_FN_A1,	GPIO_FN_A0,
	GPIO_FN_RTS2,	GPIO_FN_SIM_D,	GPIO_FN_SIM_CLK, GPIO_FN_SIM_RST,

	/* PTY (mobule: LBSC) */
	GPIO_FN_D7,	GPIO_FN_D6,	GPIO_FN_D5,	GPIO_FN_D4,
	GPIO_FN_D3,	GPIO_FN_D2,	GPIO_FN_D1,	GPIO_FN_D0,

	/* PTZ (mobule: eMMC, ONFI) */
	GPIO_FN_MMCDAT7,	GPIO_FN_MMCDAT6,	GPIO_FN_MMCDAT5,
	GPIO_FN_MMCDAT4,	GPIO_FN_MMCDAT3,	GPIO_FN_MMCDAT2,
	GPIO_FN_MMCDAT1,	GPIO_FN_MMCDAT0,
	GPIO_FN_ON_DQ7,	GPIO_FN_ON_DQ6,	GPIO_FN_ON_DQ5,	GPIO_FN_ON_DQ4,
	GPIO_FN_ON_DQ3,	GPIO_FN_ON_DQ2,	GPIO_FN_ON_DQ1,	GPIO_FN_ON_DQ0,
};

enum {
	SHDMA_SLAVE_INVALID,
	SHDMA_SLAVE_SDHI_TX,
	SHDMA_SLAVE_SDHI_RX,
	SHDMA_SLAVE_MMCIF_TX,
	SHDMA_SLAVE_MMCIF_RX,
	SHDMA_SLAVE_SCIF2_TX,
	SHDMA_SLAVE_SCIF2_RX,
	SHDMA_SLAVE_SCIF3_TX,
	SHDMA_SLAVE_SCIF3_RX,
	SHDMA_SLAVE_SCIF4_TX,
	SHDMA_SLAVE_SCIF4_RX,
	SHDMA_SLAVE_RIIC0_TX,
	SHDMA_SLAVE_RIIC0_RX,
	SHDMA_SLAVE_RIIC1_TX,
	SHDMA_SLAVE_RIIC1_RX,
	SHDMA_SLAVE_RIIC2_TX,
	SHDMA_SLAVE_RIIC2_RX,
	SHDMA_SLAVE_RIIC3_TX,
	SHDMA_SLAVE_RIIC3_RX,
	SHDMA_SLAVE_RIIC4_TX,
	SHDMA_SLAVE_RIIC4_RX,
	SHDMA_SLAVE_RIIC5_TX,
	SHDMA_SLAVE_RIIC5_RX,
	SHDMA_SLAVE_RIIC6_TX,
	SHDMA_SLAVE_RIIC6_RX,
	SHDMA_SLAVE_RIIC7_TX,
	SHDMA_SLAVE_RIIC7_RX,
	SHDMA_SLAVE_RIIC8_TX,
	SHDMA_SLAVE_RIIC8_RX,
	SHDMA_SLAVE_RIIC9_TX,
	SHDMA_SLAVE_RIIC9_RX,
	SHDMA_SLAVE_RSPI_TX,
	SHDMA_SLAVE_RSPI_RX,
};
#endif /* __ASM_SH7757_H__ */
