1 /* SPDX-License-Identifier: GPL-2.0 2 * 3 * SH7786 Pinmux 4 * 5 * Copyright (C) 2008, 2009 Renesas Solutions Corp. 6 * Kuninori Morimoto <morimoto.kuninori@renesas.com> 7 * 8 * Based on sh7785.h 9 */ 10 11 #ifndef __CPU_SH7786_H__ 12 #define __CPU_SH7786_H__ 13 14 #include <linux/io.h> 15 16 enum { 17 /* PA */ 18 GPIO_PA7, GPIO_PA6, GPIO_PA5, GPIO_PA4, 19 GPIO_PA3, GPIO_PA2, GPIO_PA1, GPIO_PA0, 20 21 /* PB */ 22 GPIO_PB7, GPIO_PB6, GPIO_PB5, GPIO_PB4, 23 GPIO_PB3, GPIO_PB2, GPIO_PB1, GPIO_PB0, 24 25 /* PC */ 26 GPIO_PC7, GPIO_PC6, GPIO_PC5, GPIO_PC4, 27 GPIO_PC3, GPIO_PC2, GPIO_PC1, GPIO_PC0, 28 29 /* PD */ 30 GPIO_PD7, GPIO_PD6, GPIO_PD5, GPIO_PD4, 31 GPIO_PD3, GPIO_PD2, GPIO_PD1, GPIO_PD0, 32 33 /* PE */ 34 GPIO_PE7, GPIO_PE6, 35 36 /* PF */ 37 GPIO_PF7, GPIO_PF6, GPIO_PF5, GPIO_PF4, 38 GPIO_PF3, GPIO_PF2, GPIO_PF1, GPIO_PF0, 39 40 /* PG */ 41 GPIO_PG7, GPIO_PG6, GPIO_PG5, 42 43 /* PH */ 44 GPIO_PH7, GPIO_PH6, GPIO_PH5, GPIO_PH4, 45 GPIO_PH3, GPIO_PH2, GPIO_PH1, GPIO_PH0, 46 47 /* PJ */ 48 GPIO_PJ7, GPIO_PJ6, GPIO_PJ5, GPIO_PJ4, 49 GPIO_PJ3, GPIO_PJ2, GPIO_PJ1, 50 51 /* DU */ 52 GPIO_FN_DCLKIN, GPIO_FN_DCLKOUT, GPIO_FN_ODDF, 53 GPIO_FN_VSYNC, GPIO_FN_HSYNC, GPIO_FN_CDE, GPIO_FN_DISP, 54 GPIO_FN_DR0, GPIO_FN_DG0, GPIO_FN_DB0, 55 GPIO_FN_DR1, GPIO_FN_DG1, GPIO_FN_DB1, 56 GPIO_FN_DR2, GPIO_FN_DG2, GPIO_FN_DB2, 57 GPIO_FN_DR3, GPIO_FN_DG3, GPIO_FN_DB3, 58 GPIO_FN_DR4, GPIO_FN_DG4, GPIO_FN_DB4, 59 GPIO_FN_DR5, GPIO_FN_DG5, GPIO_FN_DB5, 60 61 /* Eth */ 62 GPIO_FN_ETH_MAGIC, GPIO_FN_ETH_LINK, GPIO_FN_ETH_TX_ER, 63 GPIO_FN_ETH_TX_EN, GPIO_FN_ETH_MDIO, GPIO_FN_ETH_RX_CLK, 64 GPIO_FN_ETH_MDC, GPIO_FN_ETH_COL, GPIO_FN_ETH_TX_CLK, 65 GPIO_FN_ETH_CRS, GPIO_FN_ETH_RX_DV, GPIO_FN_ETH_RX_ER, 66 GPIO_FN_ETH_TXD3, GPIO_FN_ETH_TXD2, GPIO_FN_ETH_TXD1, GPIO_FN_ETH_TXD0, 67 GPIO_FN_ETH_RXD3, GPIO_FN_ETH_RXD2, GPIO_FN_ETH_RXD1, GPIO_FN_ETH_RXD0, 68 69 /* HSPI */ 70 GPIO_FN_HSPI_CLK, GPIO_FN_HSPI_CS, GPIO_FN_HSPI_RX, GPIO_FN_HSPI_TX, 71 72 /* SCIF0 */ 73 GPIO_FN_SCIF0_CTS, GPIO_FN_SCIF0_RTS, GPIO_FN_SCIF0_SCK, 74 GPIO_FN_SCIF0_RXD, GPIO_FN_SCIF0_TXD, 75 76 /* SCIF1 */ 77 GPIO_FN_SCIF1_SCK, GPIO_FN_SCIF1_RXD, GPIO_FN_SCIF1_TXD, 78 79 /* SCIF3 */ 80 GPIO_FN_SCIF3_SCK, GPIO_FN_SCIF3_RXD, GPIO_FN_SCIF3_TXD, 81 82 /* SCIF4 */ 83 GPIO_FN_SCIF4_SCK, GPIO_FN_SCIF4_RXD, GPIO_FN_SCIF4_TXD, 84 85 /* SCIF5 */ 86 GPIO_FN_SCIF5_SCK, GPIO_FN_SCIF5_RXD, GPIO_FN_SCIF5_TXD, 87 88 /* LBSC */ 89 GPIO_FN_BREQ, GPIO_FN_IOIS16, GPIO_FN_CE2B, GPIO_FN_CE2A, GPIO_FN_BACK, 90 91 /* FLCTL */ 92 GPIO_FN_FALE, GPIO_FN_FRB, GPIO_FN_FSTATUS, 93 GPIO_FN_FSE, GPIO_FN_FCLE, 94 95 /* DMAC */ 96 GPIO_FN_DACK0, GPIO_FN_DREQ0, GPIO_FN_DRAK0, 97 GPIO_FN_DACK1, GPIO_FN_DREQ1, GPIO_FN_DRAK1, 98 GPIO_FN_DACK2, GPIO_FN_DREQ2, GPIO_FN_DRAK2, 99 GPIO_FN_DACK3, GPIO_FN_DREQ3, GPIO_FN_DRAK3, 100 101 /* USB */ 102 GPIO_FN_USB_OVC0, GPIO_FN_USB_PENC0, 103 GPIO_FN_USB_OVC1, GPIO_FN_USB_PENC1, 104 105 /* HAC */ 106 GPIO_FN_HAC_RES, 107 GPIO_FN_HAC0_SDOUT, GPIO_FN_HAC0_SDIN, 108 GPIO_FN_HAC0_SYNC, GPIO_FN_HAC0_BITCLK, 109 GPIO_FN_HAC1_SDOUT, GPIO_FN_HAC1_SDIN, 110 GPIO_FN_HAC1_SYNC, GPIO_FN_HAC1_BITCLK, 111 112 /* SSI */ 113 GPIO_FN_SSI0_SDATA, GPIO_FN_SSI0_SCK, GPIO_FN_SSI0_WS, GPIO_FN_SSI0_CLK, 114 GPIO_FN_SSI1_SDATA, GPIO_FN_SSI1_SCK, GPIO_FN_SSI1_WS, GPIO_FN_SSI1_CLK, 115 GPIO_FN_SSI2_SDATA, GPIO_FN_SSI2_SCK, GPIO_FN_SSI2_WS, 116 GPIO_FN_SSI3_SDATA, GPIO_FN_SSI3_SCK, GPIO_FN_SSI3_WS, 117 118 /* SDIF1 */ 119 GPIO_FN_SDIF1CMD, GPIO_FN_SDIF1CD, GPIO_FN_SDIF1WP, GPIO_FN_SDIF1CLK, 120 GPIO_FN_SDIF1D3, GPIO_FN_SDIF1D2, GPIO_FN_SDIF1D1, GPIO_FN_SDIF1D0, 121 122 /* SDIF0 */ 123 GPIO_FN_SDIF0CMD, GPIO_FN_SDIF0CD, GPIO_FN_SDIF0WP, GPIO_FN_SDIF0CLK, 124 GPIO_FN_SDIF0D3, GPIO_FN_SDIF0D2, GPIO_FN_SDIF0D1, GPIO_FN_SDIF0D0, 125 126 /* TMU */ 127 GPIO_FN_TCLK, 128 129 /* INTC */ 130 GPIO_FN_IRL7, GPIO_FN_IRL6, GPIO_FN_IRL5, GPIO_FN_IRL4, 131 }; 132 133 static inline u32 sh7786_mm_sel(void) 134 { 135 return __raw_readl((const volatile void __iomem *)0xFC400020) & 0x7; 136 } 137 138 #endif /* __CPU_SH7786_H__ */ 139