1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * (C) Copyright 2008 3*4882a593Smuzhiyun * Steve Sakoman <steve@sakoman.com> 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun #ifndef _OVERO_H_ 8*4882a593Smuzhiyun #define _OVERO_H_ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun const omap3_sysinfo sysinfo = { 11*4882a593Smuzhiyun DDR_STACKED, 12*4882a593Smuzhiyun "Gumstix Overo board", 13*4882a593Smuzhiyun #if defined(CONFIG_ENV_IS_IN_ONENAND) 14*4882a593Smuzhiyun "OneNAND", 15*4882a593Smuzhiyun #else 16*4882a593Smuzhiyun "NAND", 17*4882a593Smuzhiyun #endif 18*4882a593Smuzhiyun }; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun int get_board_revision(void); 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun /* overo revisions */ 23*4882a593Smuzhiyun #define REVISION_0 0x0 24*4882a593Smuzhiyun #define REVISION_1 0x1 25*4882a593Smuzhiyun #define REVISION_2 0x2 26*4882a593Smuzhiyun #define REVISION_3 0x3 27*4882a593Smuzhiyun #define REVISION_4 0x4 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun /* 30*4882a593Smuzhiyun * IEN - Input Enable 31*4882a593Smuzhiyun * IDIS - Input Disable 32*4882a593Smuzhiyun * PTD - Pull type Down 33*4882a593Smuzhiyun * PTU - Pull type Up 34*4882a593Smuzhiyun * DIS - Pull type selection is inactive 35*4882a593Smuzhiyun * EN - Pull type selection is active 36*4882a593Smuzhiyun * M0 - Mode 0 37*4882a593Smuzhiyun * The commented string gives the final mux configuration for that pin 38*4882a593Smuzhiyun */ 39*4882a593Smuzhiyun #define MUX_GUMSTIX() \ 40*4882a593Smuzhiyun /*GPMC*/\ 41*4882a593Smuzhiyun MUX_VAL(CP(GPMC_NCS1), (IDIS | PTU | EN | M0)) /*GPMC_nCS1*/\ 42*4882a593Smuzhiyun MUX_VAL(CP(GPMC_NCS4), (IDIS | PTU | EN | M0)) /*GPMC_nCS4*/\ 43*4882a593Smuzhiyun MUX_VAL(CP(GPMC_NCS5), (IDIS | PTU | EN | M0)) /*GPMC_nCS5*/\ 44*4882a593Smuzhiyun MUX_VAL(CP(GPMC_NCS6), (IEN | PTD | DIS | M0)) /*GPMC_nCS6*/\ 45*4882a593Smuzhiyun MUX_VAL(CP(GPMC_WAIT1), (IEN | PTU | EN | M4)) /*GPIO_63*/\ 46*4882a593Smuzhiyun /* - CAM_IRQ*/\ 47*4882a593Smuzhiyun MUX_VAL(CP(GPMC_WAIT2), (IEN | PTU | EN | M4)) /*GPIO_64*/\ 48*4882a593Smuzhiyun /* - SMSC911X_NRES*/\ 49*4882a593Smuzhiyun MUX_VAL(CP(GPMC_WAIT3), (IEN | PTU | DIS | M4)) /*GPIO_65*/\ 50*4882a593Smuzhiyun /*DSS*/\ 51*4882a593Smuzhiyun MUX_VAL(CP(DSS_PCLK), (IDIS | PTD | DIS | M0)) /*DSS_PCLK*/\ 52*4882a593Smuzhiyun MUX_VAL(CP(DSS_HSYNC), (IDIS | PTD | DIS | M0)) /*DSS_HSYNC*/\ 53*4882a593Smuzhiyun MUX_VAL(CP(DSS_VSYNC), (IDIS | PTD | DIS | M0)) /*DSS_VSYNC*/\ 54*4882a593Smuzhiyun MUX_VAL(CP(DSS_ACBIAS), (IDIS | PTD | DIS | M0)) /*DSS_ACBIAS*/\ 55*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA0), (IDIS | PTD | DIS | M0)) /*DSS_DATA0*/\ 56*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA1), (IDIS | PTD | DIS | M0)) /*DSS_DATA1*/\ 57*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA2), (IDIS | PTD | DIS | M0)) /*DSS_DATA2*/\ 58*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA3), (IDIS | PTD | DIS | M0)) /*DSS_DATA3*/\ 59*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA4), (IDIS | PTD | DIS | M0)) /*DSS_DATA4*/\ 60*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA5), (IDIS | PTD | DIS | M0)) /*DSS_DATA5*/\ 61*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA6), (IDIS | PTD | DIS | M0)) /*DSS_DATA6*/\ 62*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA7), (IDIS | PTD | DIS | M0)) /*DSS_DATA7*/\ 63*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA8), (IDIS | PTD | DIS | M0)) /*DSS_DATA8*/\ 64*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA9), (IDIS | PTD | DIS | M0)) /*DSS_DATA9*/\ 65*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA10), (IDIS | PTD | DIS | M0)) /*DSS_DATA10*/\ 66*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA11), (IDIS | PTD | DIS | M0)) /*DSS_DATA11*/\ 67*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA12), (IDIS | PTD | DIS | M0)) /*DSS_DATA12*/\ 68*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA13), (IDIS | PTD | DIS | M0)) /*DSS_DATA13*/\ 69*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA14), (IDIS | PTD | DIS | M0)) /*DSS_DATA14*/\ 70*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA15), (IDIS | PTD | DIS | M0)) /*DSS_DATA15*/\ 71*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA16), (IDIS | PTD | DIS | M0)) /*DSS_DATA16*/\ 72*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA17), (IDIS | PTD | DIS | M0)) /*DSS_DATA17*/\ 73*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA18), (IDIS | PTD | DIS | M0)) /*DSS_DATA18*/\ 74*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA19), (IDIS | PTD | DIS | M0)) /*DSS_DATA19*/\ 75*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA20), (IDIS | PTD | DIS | M0)) /*DSS_DATA20*/\ 76*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA21), (IDIS | PTD | DIS | M0)) /*DSS_DATA21*/\ 77*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA22), (IDIS | PTD | DIS | M0)) /*DSS_DATA22*/\ 78*4882a593Smuzhiyun MUX_VAL(CP(DSS_DATA23), (IDIS | PTD | DIS | M0)) /*DSS_DATA23*/\ 79*4882a593Smuzhiyun /*CAMERA*/\ 80*4882a593Smuzhiyun MUX_VAL(CP(CAM_FLD), (IDIS | PTD | DIS | M4)) /*CAM_FLD*/\ 81*4882a593Smuzhiyun MUX_VAL(CP(CAM_XCLKB), (IDIS | PTD | DIS | M0)) /*CAM_XCLKB*/\ 82*4882a593Smuzhiyun MUX_VAL(CP(CAM_WEN), (IEN | PTD | DIS | M0)) /*CAM_WEN*/\ 83*4882a593Smuzhiyun MUX_VAL(CP(CAM_STROBE), (IDIS | PTD | DIS | M0)) /*CAM_STROBE*/\ 84*4882a593Smuzhiyun MUX_VAL(CP(CSI2_DX1), (IEN | PTD | EN | M4)) /*GPIO_114*/\ 85*4882a593Smuzhiyun /* - PEN_DOWN*/\ 86*4882a593Smuzhiyun /*Bluetooth*/\ 87*4882a593Smuzhiyun MUX_VAL(CP(UART2_CTS), (IEN | PTD | DIS | M4)) /*GPIO_144 - LCD_EN*/\ 88*4882a593Smuzhiyun MUX_VAL(CP(UART2_RTS), (IEN | PTD | DIS | M4)) /*GPIO_145*/\ 89*4882a593Smuzhiyun MUX_VAL(CP(UART2_TX), (IEN | PTD | DIS | M4)) /*GPIO_146*/\ 90*4882a593Smuzhiyun MUX_VAL(CP(UART2_RX), (IEN | PTD | DIS | M4)) /*GPIO_147*/\ 91*4882a593Smuzhiyun MUX_VAL(CP(UART1_TX), (IDIS | PTD | DIS | M0)) /*UART1_TX*/\ 92*4882a593Smuzhiyun MUX_VAL(CP(UART1_CTS), (IEN | PTU | DIS | M4)) /*GPIO_150-MMC3_WP*/\ 93*4882a593Smuzhiyun MUX_VAL(CP(UART1_RX), (IEN | PTD | DIS | M0)) /*UART1_RX*/\ 94*4882a593Smuzhiyun /*Serial Interface*/\ 95*4882a593Smuzhiyun MUX_VAL(CP(UART3_CTS_RCTX), (IEN | PTD | EN | M0)) /*UART3_CTS_RCTX*/\ 96*4882a593Smuzhiyun MUX_VAL(CP(HDQ_SIO), (IDIS | PTU | EN | M4)) /*HDQ_SIO*/\ 97*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_CLK), (IEN | PTD | DIS | M0)) /*McSPI1_CLK*/\ 98*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_SIMO), (IEN | PTD | DIS | M0)) /*McSPI1_SIMO */\ 99*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_SOMI), (IEN | PTD | DIS | M0)) /*McSPI1_SOMI */\ 100*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_CS0), (IEN | PTD | EN | M0)) /*McSPI1_CS0*/\ 101*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_CS1), (IDIS | PTD | EN | M0)) /*McSPI1_CS1*/\ 102*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_CS2), (IEN | PTU | DIS | M4)) /*GPIO_176 */\ 103*4882a593Smuzhiyun /* - LAN_INTR */\ 104*4882a593Smuzhiyun /*Control and debug */\ 105*4882a593Smuzhiyun MUX_VAL(CP(SYS_CLKOUT1), (IEN | PTU | EN | M4)) /*GPIO_10*/\ 106*4882a593Smuzhiyun MUX_VAL(CP(SYS_CLKOUT2), (IEN | PTU | EN | M4)) /*GPIO_186*/\ 107*4882a593Smuzhiyun MUX_VAL(CP(ETK_CLK_ES2), (IEN | PTU | EN | M2)) /*MMC3_CLK*/\ 108*4882a593Smuzhiyun MUX_VAL(CP(ETK_CTL_ES2), (IEN | PTU | EN | M2)) /*MMC3_CMD*/\ 109*4882a593Smuzhiyun MUX_VAL(CP(ETK_D0_ES2), (IEN | PTU | EN | M4)) /*GPIO_14*/\ 110*4882a593Smuzhiyun MUX_VAL(CP(ETK_D3_ES2), (IEN | PTU | EN | M2)) /*MMC3_DAT3*/\ 111*4882a593Smuzhiyun MUX_VAL(CP(ETK_D4_ES2), (IEN | PTU | EN | M2)) /*MMC3_DAT0*/\ 112*4882a593Smuzhiyun MUX_VAL(CP(ETK_D5_ES2), (IEN | PTU | EN | M2)) /*MMC3_DAT1*/\ 113*4882a593Smuzhiyun MUX_VAL(CP(ETK_D6_ES2), (IEN | PTU | EN | M2)) /*MMC3_DAT2*/\ 114*4882a593Smuzhiyun MUX_VAL(CP(ETK_D7_ES2), (IEN | PTU | EN | M4)) /*GPIO_21*/\ 115*4882a593Smuzhiyun MUX_VAL(CP(ETK_D8_ES2), (IEN | PTU | EN | M4)) /*GPIO_22*/\ 116*4882a593Smuzhiyun MUX_VAL(CP(ETK_D9_ES2), (IEN | PTU | EN | M4)) /*GPIO_23*/\ 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun #define MUX_OVERO_SDIO2_DIRECT() \ 119*4882a593Smuzhiyun MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\ 120*4882a593Smuzhiyun MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\ 121*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\ 122*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\ 123*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\ 124*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\ 125*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M0)) /*MMC2_DAT4*/\ 126*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M0)) /*MMC2_DAT5*/\ 127*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M0)) /*MMC2_DAT6*/\ 128*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M0)) /*MMC2_DAT7*/\ 129*4882a593Smuzhiyun MUX_VAL(CP(MMC1_DAT4), (IEN | PTD | EN | M4)) /*GPIO_126*/\ 130*4882a593Smuzhiyun MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M4)) /*GPIO_127*/\ 131*4882a593Smuzhiyun MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M4)) /*GPIO_128*/\ 132*4882a593Smuzhiyun MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M4)) /*GPIO_129*/ 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun #define MUX_OVERO_SDIO2_TRANSCEIVER() \ 135*4882a593Smuzhiyun MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\ 136*4882a593Smuzhiyun MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\ 137*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\ 138*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\ 139*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\ 140*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\ 141*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT0*/\ 142*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT1*/\ 143*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M1)) /*MMC2_DIR_CMD*/\ 144*4882a593Smuzhiyun MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M1)) /*MMC2_CLKIN*/\ 145*4882a593Smuzhiyun MUX_VAL(CP(MMC1_DAT4), (IEN | PTU | EN | M4)) /*GPIO_126*/\ 146*4882a593Smuzhiyun MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M4)) /*GPIO_127*/\ 147*4882a593Smuzhiyun MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M4)) /*GPIO_128*/\ 148*4882a593Smuzhiyun MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M4)) /*GPIO_129*/ 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun #define MUX_USRP_E() \ 151*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_SOMI), (IEN | PTD | DIS | M4)) /*GPIO_173 */\ 152*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_CS1), (IDIS | PTD | EN | M4)) /*GPIO_175 */\ 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun #define MUX_ALTO35() \ 155*4882a593Smuzhiyun MUX_VAL(CP(SYS_CLKOUT1), (IEN | PTU | EN | M4)) /*GPIO_10-BTN*/\ 156*4882a593Smuzhiyun MUX_VAL(CP(UART1_TX), (IDIS | PTD | DIS | M4)) /*GPIO_148-RED LED*/\ 157*4882a593Smuzhiyun MUX_VAL(CP(UART1_CTS), (IDIS | PTD | DIS | M4)) /*GPIO_150-YELLOW LED*/\ 158*4882a593Smuzhiyun MUX_VAL(CP(UART1_RX), (IDIS | PTD | DIS | M4)) /*GPIO_151-BLUE LED*/\ 159*4882a593Smuzhiyun MUX_VAL(CP(HDQ_SIO), (IDIS | PTD | DIS | M4)) /*GPIO_170-GREEN LED*/\ 160*4882a593Smuzhiyun MUX_VAL(CP(MCSPI1_CS1), (IDIS | PTD | EN | M4)) /*GPIO_175*/\ 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun #define MUX_ARBOR43C() \ 163*4882a593Smuzhiyun MUX_VAL(CP(CSI2_DX1), (IDIS | PTD | DIS | M4)) /*GPIO_114-RED LED*/\ 164*4882a593Smuzhiyun MUX_VAL(CP(UART1_CTS), (IDIS | PTD | DIS | M4)) /*GPIO_150-YELLOW LED*/\ 165*4882a593Smuzhiyun MUX_VAL(CP(HDQ_SIO), (IEN | PTU | EN | M4)) /*GPIO_170-BUTTON */\ 166*4882a593Smuzhiyun MUX_VAL(CP(SYS_CLKOUT2), (IDIS | PTD | DIS | M4)) /*GPIO_186-BLUE LED*/\ 167*4882a593Smuzhiyun MUX_VAL(CP(JTAG_EMU1), (IDIS | PTD | DIS | M4)) /*GPIO_31-CAP WAKE*/\ 168*4882a593Smuzhiyun MUX_VAL(CP(SYS_CLKOUT1), (IEN | PTU | EN | M4)) /*GPIO_10-CAP IRQ*/\ 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun #endif 171