1*bf3a08beSPrzemyslaw Marczak /* 2*bf3a08beSPrzemyslaw Marczak * Copyright (C) 2014 Samsung Electronics 3*bf3a08beSPrzemyslaw Marczak * Przemyslaw Marczak <p.marczak@samsung.com> 4*bf3a08beSPrzemyslaw Marczak * 5*bf3a08beSPrzemyslaw Marczak * SPDX-License-Identifier: GPL-2.0+ 6*bf3a08beSPrzemyslaw Marczak */ 7*bf3a08beSPrzemyslaw Marczak 8*bf3a08beSPrzemyslaw Marczak #ifndef __ODROIDU3_SETUP__ 9*bf3a08beSPrzemyslaw Marczak #define __ODROIDU3_SETUP__ 10*bf3a08beSPrzemyslaw Marczak 11*bf3a08beSPrzemyslaw Marczak /* A/M PLL_CON0 */ 12*bf3a08beSPrzemyslaw Marczak #define SDIV(x) ((x) & 0x7) 13*bf3a08beSPrzemyslaw Marczak #define PDIV(x) (((x) & 0x3f) << 8) 14*bf3a08beSPrzemyslaw Marczak #define MDIV(x) (((x) & 0x3ff) << 16) 15*bf3a08beSPrzemyslaw Marczak #define FSEL(x) (((x) & 0x1) << 27) 16*bf3a08beSPrzemyslaw Marczak #define PLL_LOCKED_BIT (0x1 << 29) 17*bf3a08beSPrzemyslaw Marczak #define PLL_ENABLE(x) (((x) & 0x1) << 31) 18*bf3a08beSPrzemyslaw Marczak 19*bf3a08beSPrzemyslaw Marczak /* CLK_SRC_CPU */ 20*bf3a08beSPrzemyslaw Marczak #define MUX_APLL_SEL(x) ((x) & 0x1) 21*bf3a08beSPrzemyslaw Marczak #define MUX_CORE_SEL(x) (((x) & 0x1) << 16) 22*bf3a08beSPrzemyslaw Marczak #define MUX_HPM_SEL(x) (((x) & 0x1) << 20) 23*bf3a08beSPrzemyslaw Marczak #define MUX_MPLL_USER_SEL_C(x) (((x) & 0x1) << 24) 24*bf3a08beSPrzemyslaw Marczak 25*bf3a08beSPrzemyslaw Marczak #define MUX_STAT_CHANGING 0x100 26*bf3a08beSPrzemyslaw Marczak 27*bf3a08beSPrzemyslaw Marczak /* CLK_MUX_STAT_CPU */ 28*bf3a08beSPrzemyslaw Marczak #define APLL_SEL(x) ((x) & 0x7) 29*bf3a08beSPrzemyslaw Marczak #define CORE_SEL(x) (((x) & 0x7) << 16) 30*bf3a08beSPrzemyslaw Marczak #define HPM_SEL(x) (((x) & 0x7) << 20) 31*bf3a08beSPrzemyslaw Marczak #define MPLL_USER_SEL_C(x) (((x) & 0x7) << 24) 32*bf3a08beSPrzemyslaw Marczak #define MUX_STAT_CPU_CHANGING (APLL_SEL(MUX_STAT_CHANGING) | \ 33*bf3a08beSPrzemyslaw Marczak CORE_SEL(MUX_STAT_CHANGING) | \ 34*bf3a08beSPrzemyslaw Marczak HPM_SEL(MUX_STAT_CHANGING) | \ 35*bf3a08beSPrzemyslaw Marczak MPLL_USER_SEL_C(MUX_STAT_CHANGING)) 36*bf3a08beSPrzemyslaw Marczak 37*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_CPU0 */ 38*bf3a08beSPrzemyslaw Marczak #define CORE_RATIO(x) ((x) & 0x7) 39*bf3a08beSPrzemyslaw Marczak #define COREM0_RATIO(x) (((x) & 0x7) << 4) 40*bf3a08beSPrzemyslaw Marczak #define COREM1_RATIO(x) (((x) & 0x7) << 8) 41*bf3a08beSPrzemyslaw Marczak #define PERIPH_RATIO(x) (((x) & 0x7) << 12) 42*bf3a08beSPrzemyslaw Marczak #define ATB_RATIO(x) (((x) & 0x7) << 16) 43*bf3a08beSPrzemyslaw Marczak #define PCLK_DBG_RATIO(x) (((x) & 0x7) << 20) 44*bf3a08beSPrzemyslaw Marczak #define APLL_RATIO(x) (((x) & 0x7) << 24) 45*bf3a08beSPrzemyslaw Marczak #define CORE2_RATIO(x) (((x) & 0x7) << 28) 46*bf3a08beSPrzemyslaw Marczak 47*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_CPU0 */ 48*bf3a08beSPrzemyslaw Marczak #define DIV_CORE(x) ((x) & 0x1) 49*bf3a08beSPrzemyslaw Marczak #define DIV_COREM0(x) (((x) & 0x1) << 4) 50*bf3a08beSPrzemyslaw Marczak #define DIV_COREM1(x) (((x) & 0x1) << 8) 51*bf3a08beSPrzemyslaw Marczak #define DIV_PERIPH(x) (((x) & 0x1) << 12) 52*bf3a08beSPrzemyslaw Marczak #define DIV_ATB(x) (((x) & 0x1) << 16) 53*bf3a08beSPrzemyslaw Marczak #define DIV_PCLK_DBG(x) (((x) & 0x1) << 20) 54*bf3a08beSPrzemyslaw Marczak #define DIV_APLL(x) (((x) & 0x1) << 24) 55*bf3a08beSPrzemyslaw Marczak #define DIV_CORE2(x) (((x) & 0x1) << 28) 56*bf3a08beSPrzemyslaw Marczak 57*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_CHANGING 0x1 58*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_CPU0_CHANGING (DIV_CORE(DIV_STAT_CHANGING) | \ 59*bf3a08beSPrzemyslaw Marczak DIV_COREM0(DIV_STAT_CHANGING) | \ 60*bf3a08beSPrzemyslaw Marczak DIV_COREM1(DIV_STAT_CHANGING) | \ 61*bf3a08beSPrzemyslaw Marczak DIV_PERIPH(DIV_STAT_CHANGING) | \ 62*bf3a08beSPrzemyslaw Marczak DIV_ATB(DIV_STAT_CHANGING) | \ 63*bf3a08beSPrzemyslaw Marczak DIV_PCLK_DBG(DIV_STAT_CHANGING) | \ 64*bf3a08beSPrzemyslaw Marczak DIV_APLL(DIV_STAT_CHANGING) | \ 65*bf3a08beSPrzemyslaw Marczak DIV_CORE2(DIV_STAT_CHANGING)) 66*bf3a08beSPrzemyslaw Marczak 67*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_CPU1 */ 68*bf3a08beSPrzemyslaw Marczak #define COPY_RATIO(x) ((x) & 0x7) 69*bf3a08beSPrzemyslaw Marczak #define HPM_RATIO(x) (((x) & 0x7) << 4) 70*bf3a08beSPrzemyslaw Marczak #define CORES_RATIO(x) (((x) & 0x7) << 8) 71*bf3a08beSPrzemyslaw Marczak 72*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_CPU1 */ 73*bf3a08beSPrzemyslaw Marczak #define DIV_COPY(x) ((x) & 0x7) 74*bf3a08beSPrzemyslaw Marczak #define DIV_HPM(x) (((x) & 0x1) << 4) 75*bf3a08beSPrzemyslaw Marczak #define DIV_CORES(x) (((x) & 0x1) << 8) 76*bf3a08beSPrzemyslaw Marczak 77*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_CPU1_CHANGING (DIV_COPY(DIV_STAT_CHANGING) | \ 78*bf3a08beSPrzemyslaw Marczak DIV_HPM(DIV_STAT_CHANGING) | \ 79*bf3a08beSPrzemyslaw Marczak DIV_CORES(DIV_STAT_CHANGING)) 80*bf3a08beSPrzemyslaw Marczak 81*bf3a08beSPrzemyslaw Marczak /* CLK_SRC_DMC */ 82*bf3a08beSPrzemyslaw Marczak #define MUX_C2C_SEL(x) ((x) & 0x1) 83*bf3a08beSPrzemyslaw Marczak #define MUX_DMC_BUS_SEL(x) (((x) & 0x1) << 4) 84*bf3a08beSPrzemyslaw Marczak #define MUX_DPHY_SEL(x) (((x) & 0x1) << 8) 85*bf3a08beSPrzemyslaw Marczak #define MUX_MPLL_SEL(x) (((x) & 0x1) << 12) 86*bf3a08beSPrzemyslaw Marczak #define MUX_PWI_SEL(x) (((x) & 0xf) << 16) 87*bf3a08beSPrzemyslaw Marczak #define MUX_G2D_ACP0_SEL(x) (((x) & 0x1) << 20) 88*bf3a08beSPrzemyslaw Marczak #define MUX_G2D_ACP1_SEL(x) (((x) & 0x1) << 24) 89*bf3a08beSPrzemyslaw Marczak #define MUX_G2D_ACP_SEL(x) (((x) & 0x1) << 28) 90*bf3a08beSPrzemyslaw Marczak 91*bf3a08beSPrzemyslaw Marczak /* CLK_MUX_STAT_DMC */ 92*bf3a08beSPrzemyslaw Marczak #define C2C_SEL(x) (((x)) & 0x7) 93*bf3a08beSPrzemyslaw Marczak #define DMC_BUS_SEL(x) (((x) & 0x7) << 4) 94*bf3a08beSPrzemyslaw Marczak #define DPHY_SEL(x) (((x) & 0x7) << 8) 95*bf3a08beSPrzemyslaw Marczak #define MPLL_SEL(x) (((x) & 0x7) << 12) 96*bf3a08beSPrzemyslaw Marczak /* #define PWI_SEL(x) (((x) & 0xf) << 16) - Reserved */ 97*bf3a08beSPrzemyslaw Marczak #define G2D_ACP0_SEL(x) (((x) & 0x7) << 20) 98*bf3a08beSPrzemyslaw Marczak #define G2D_ACP1_SEL(x) (((x) & 0x7) << 24) 99*bf3a08beSPrzemyslaw Marczak #define G2D_ACP_SEL(x) (((x) & 0x7) << 28) 100*bf3a08beSPrzemyslaw Marczak 101*bf3a08beSPrzemyslaw Marczak #define MUX_STAT_DMC_CHANGING (C2C_SEL(MUX_STAT_CHANGING) | \ 102*bf3a08beSPrzemyslaw Marczak DMC_BUS_SEL(MUX_STAT_CHANGING) | \ 103*bf3a08beSPrzemyslaw Marczak DPHY_SEL(MUX_STAT_CHANGING) | \ 104*bf3a08beSPrzemyslaw Marczak MPLL_SEL(MUX_STAT_CHANGING) |\ 105*bf3a08beSPrzemyslaw Marczak G2D_ACP0_SEL(MUX_STAT_CHANGING) | \ 106*bf3a08beSPrzemyslaw Marczak G2D_ACP1_SEL(MUX_STAT_CHANGING) | \ 107*bf3a08beSPrzemyslaw Marczak G2D_ACP_SEL(MUX_STAT_CHANGING)) 108*bf3a08beSPrzemyslaw Marczak 109*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_DMC0 */ 110*bf3a08beSPrzemyslaw Marczak #define ACP_RATIO(x) ((x) & 0x7) 111*bf3a08beSPrzemyslaw Marczak #define ACP_PCLK_RATIO(x) (((x) & 0x7) << 4) 112*bf3a08beSPrzemyslaw Marczak #define DPHY_RATIO(x) (((x) & 0x7) << 8) 113*bf3a08beSPrzemyslaw Marczak #define DMC_RATIO(x) (((x) & 0x7) << 12) 114*bf3a08beSPrzemyslaw Marczak #define DMCD_RATIO(x) (((x) & 0x7) << 16) 115*bf3a08beSPrzemyslaw Marczak #define DMCP_RATIO(x) (((x) & 0x7) << 20) 116*bf3a08beSPrzemyslaw Marczak 117*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_DMC0 */ 118*bf3a08beSPrzemyslaw Marczak #define DIV_ACP(x) ((x) & 0x1) 119*bf3a08beSPrzemyslaw Marczak #define DIV_ACP_PCLK(x) (((x) & 0x1) << 4) 120*bf3a08beSPrzemyslaw Marczak #define DIV_DPHY(x) (((x) & 0x1) << 8) 121*bf3a08beSPrzemyslaw Marczak #define DIV_DMC(x) (((x) & 0x1) << 12) 122*bf3a08beSPrzemyslaw Marczak #define DIV_DMCD(x) (((x) & 0x1) << 16) 123*bf3a08beSPrzemyslaw Marczak #define DIV_DMCP(x) (((x) & 0x1) << 20) 124*bf3a08beSPrzemyslaw Marczak 125*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_DMC0_CHANGING (DIV_ACP(DIV_STAT_CHANGING) | \ 126*bf3a08beSPrzemyslaw Marczak DIV_ACP_PCLK(DIV_STAT_CHANGING) | \ 127*bf3a08beSPrzemyslaw Marczak DIV_DPHY(DIV_STAT_CHANGING) | \ 128*bf3a08beSPrzemyslaw Marczak DIV_DMC(DIV_STAT_CHANGING) | \ 129*bf3a08beSPrzemyslaw Marczak DIV_DMCD(DIV_STAT_CHANGING) | \ 130*bf3a08beSPrzemyslaw Marczak DIV_DMCP(DIV_STAT_CHANGING)) 131*bf3a08beSPrzemyslaw Marczak 132*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_DMC1 */ 133*bf3a08beSPrzemyslaw Marczak #define G2D_ACP_RATIO(x) ((x) & 0xf) 134*bf3a08beSPrzemyslaw Marczak #define C2C_RATIO(x) (((x) & 0x7) << 4) 135*bf3a08beSPrzemyslaw Marczak #define PWI_RATIO(x) (((x) & 0xf) << 8) 136*bf3a08beSPrzemyslaw Marczak #define C2C_ACLK_RATIO(x) (((x) & 0x7) << 12) 137*bf3a08beSPrzemyslaw Marczak #define DVSEM_RATIO(x) (((x) & 0x7f) << 16) 138*bf3a08beSPrzemyslaw Marczak #define DPM_RATIO(x) (((x) & 0x7f) << 24) 139*bf3a08beSPrzemyslaw Marczak 140*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_DMC1 */ 141*bf3a08beSPrzemyslaw Marczak #define DIV_G2D_ACP(x) ((x) & 0x1) 142*bf3a08beSPrzemyslaw Marczak #define DIV_C2C(x) (((x) & 0x1) << 4) 143*bf3a08beSPrzemyslaw Marczak #define DIV_PWI(x) (((x) & 0x1) << 8) 144*bf3a08beSPrzemyslaw Marczak #define DIV_C2C_ACLK(x) (((x) & 0x1) << 12) 145*bf3a08beSPrzemyslaw Marczak #define DIV_DVSEM(x) (((x) & 0x1) << 16) 146*bf3a08beSPrzemyslaw Marczak #define DIV_DPM(x) (((x) & 0x1) << 24) 147*bf3a08beSPrzemyslaw Marczak 148*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_DMC1_CHANGING (DIV_G2D_ACP(DIV_STAT_CHANGING) | \ 149*bf3a08beSPrzemyslaw Marczak DIV_C2C(DIV_STAT_CHANGING) | \ 150*bf3a08beSPrzemyslaw Marczak DIV_PWI(DIV_STAT_CHANGING) | \ 151*bf3a08beSPrzemyslaw Marczak DIV_C2C_ACLK(DIV_STAT_CHANGING) | \ 152*bf3a08beSPrzemyslaw Marczak DIV_DVSEM(DIV_STAT_CHANGING) | \ 153*bf3a08beSPrzemyslaw Marczak DIV_DPM(DIV_STAT_CHANGING)) 154*bf3a08beSPrzemyslaw Marczak 155*bf3a08beSPrzemyslaw Marczak /* Set CLK_SRC_PERIL0 */ 156*bf3a08beSPrzemyslaw Marczak #define UART4_SEL(x) (((x) & 0xf) << 16) 157*bf3a08beSPrzemyslaw Marczak #define UART3_SEL(x) (((x) & 0xf) << 12) 158*bf3a08beSPrzemyslaw Marczak #define UART2_SEL(x) (((x) & 0xf) << 8) 159*bf3a08beSPrzemyslaw Marczak #define UART1_SEL(x) (((x) & 0xf) << 4) 160*bf3a08beSPrzemyslaw Marczak #define UART0_SEL(x) ((x) & 0xf) 161*bf3a08beSPrzemyslaw Marczak 162*bf3a08beSPrzemyslaw Marczak /* Set CLK_DIV_PERIL0 */ 163*bf3a08beSPrzemyslaw Marczak #define UART4_RATIO(x) (((x) & 0xf) << 16) 164*bf3a08beSPrzemyslaw Marczak #define UART3_RATIO(x) (((x) & 0xf) << 12) 165*bf3a08beSPrzemyslaw Marczak #define UART2_RATIO(x) (((x) & 0xf) << 8) 166*bf3a08beSPrzemyslaw Marczak #define UART1_RATIO(x) (((x) & 0xf) << 4) 167*bf3a08beSPrzemyslaw Marczak #define UART0_RATIO(x) ((x) & 0xf) 168*bf3a08beSPrzemyslaw Marczak 169*bf3a08beSPrzemyslaw Marczak /* Set CLK_DIV_STAT_PERIL0 */ 170*bf3a08beSPrzemyslaw Marczak #define DIV_UART4(x) (((x) & 0x1) << 16) 171*bf3a08beSPrzemyslaw Marczak #define DIV_UART3(x) (((x) & 0x1) << 12) 172*bf3a08beSPrzemyslaw Marczak #define DIV_UART2(x) (((x) & 0x1) << 8) 173*bf3a08beSPrzemyslaw Marczak #define DIV_UART1(x) (((x) & 0x1) << 4) 174*bf3a08beSPrzemyslaw Marczak #define DIV_UART0(x) ((x) & 0x1) 175*bf3a08beSPrzemyslaw Marczak 176*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_PERIL0_CHANGING (DIV_UART4(DIV_STAT_CHANGING) | \ 177*bf3a08beSPrzemyslaw Marczak DIV_UART3(DIV_STAT_CHANGING) | \ 178*bf3a08beSPrzemyslaw Marczak DIV_UART2(DIV_STAT_CHANGING) | \ 179*bf3a08beSPrzemyslaw Marczak DIV_UART1(DIV_STAT_CHANGING) | \ 180*bf3a08beSPrzemyslaw Marczak DIV_UART0(DIV_STAT_CHANGING)) 181*bf3a08beSPrzemyslaw Marczak 182*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_FSYS1 */ 183*bf3a08beSPrzemyslaw Marczak #define MMC0_RATIO(x) ((x) & 0xf) 184*bf3a08beSPrzemyslaw Marczak #define MMC0_PRE_RATIO(x) (((x) & 0xff) << 8) 185*bf3a08beSPrzemyslaw Marczak #define MMC1_RATIO(x) (((x) & 0xf) << 16) 186*bf3a08beSPrzemyslaw Marczak #define MMC1_PRE_RATIO(x) (((x) & 0xff) << 24) 187*bf3a08beSPrzemyslaw Marczak 188*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_FSYS1 */ 189*bf3a08beSPrzemyslaw Marczak #define DIV_MMC0(x) ((x) & 1) 190*bf3a08beSPrzemyslaw Marczak #define DIV_MMC0_PRE(x) (((x) & 1) << 8) 191*bf3a08beSPrzemyslaw Marczak #define DIV_MMC1(x) (((x) & 1) << 16) 192*bf3a08beSPrzemyslaw Marczak #define DIV_MMC1_PRE(x) (((x) & 1) << 24) 193*bf3a08beSPrzemyslaw Marczak 194*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_FSYS1_CHANGING (DIV_MMC0(DIV_STAT_CHANGING) | \ 195*bf3a08beSPrzemyslaw Marczak DIV_MMC0_PRE(DIV_STAT_CHANGING) | \ 196*bf3a08beSPrzemyslaw Marczak DIV_MMC1(DIV_STAT_CHANGING) | \ 197*bf3a08beSPrzemyslaw Marczak DIV_MMC1_PRE(DIV_STAT_CHANGING)) 198*bf3a08beSPrzemyslaw Marczak 199*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_FSYS2 */ 200*bf3a08beSPrzemyslaw Marczak #define MMC2_RATIO(x) ((x) & 0xf) 201*bf3a08beSPrzemyslaw Marczak #define MMC2_PRE_RATIO(x) (((x) & 0xff) << 8) 202*bf3a08beSPrzemyslaw Marczak #define MMC3_RATIO(x) (((x) & 0xf) << 16) 203*bf3a08beSPrzemyslaw Marczak #define MMC3_PRE_RATIO(x) (((x) & 0xff) << 24) 204*bf3a08beSPrzemyslaw Marczak 205*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_FSYS2 */ 206*bf3a08beSPrzemyslaw Marczak #define DIV_MMC2(x) ((x) & 0x1) 207*bf3a08beSPrzemyslaw Marczak #define DIV_MMC2_PRE(x) (((x) & 0x1) << 8) 208*bf3a08beSPrzemyslaw Marczak #define DIV_MMC3(x) (((x) & 0x1) << 16) 209*bf3a08beSPrzemyslaw Marczak #define DIV_MMC3_PRE(x) (((x) & 0x1) << 24) 210*bf3a08beSPrzemyslaw Marczak 211*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_FSYS2_CHANGING (DIV_MMC2(DIV_STAT_CHANGING) | \ 212*bf3a08beSPrzemyslaw Marczak DIV_MMC2_PRE(DIV_STAT_CHANGING) | \ 213*bf3a08beSPrzemyslaw Marczak DIV_MMC3(DIV_STAT_CHANGING) | \ 214*bf3a08beSPrzemyslaw Marczak DIV_MMC3_PRE(DIV_STAT_CHANGING)) 215*bf3a08beSPrzemyslaw Marczak 216*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_FSYS3 */ 217*bf3a08beSPrzemyslaw Marczak #define MMC4_RATIO(x) ((x) & 0x7) 218*bf3a08beSPrzemyslaw Marczak #define MMC4_PRE_RATIO(x) (((x) & 0xff) << 8) 219*bf3a08beSPrzemyslaw Marczak 220*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_FSYS3 */ 221*bf3a08beSPrzemyslaw Marczak #define DIV_MMC4(x) ((x) & 0x1) 222*bf3a08beSPrzemyslaw Marczak #define DIV_MMC4_PRE(x) (((x) & 0x1) << 8) 223*bf3a08beSPrzemyslaw Marczak 224*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_FSYS3_CHANGING (DIV_MMC4(DIV_STAT_CHANGING) | \ 225*bf3a08beSPrzemyslaw Marczak DIV_MMC4_PRE(DIV_STAT_CHANGING)) 226*bf3a08beSPrzemyslaw Marczak 227*bf3a08beSPrzemyslaw Marczak /* XCL205 GPIO config - Odroid U3 */ 228*bf3a08beSPrzemyslaw Marczak #define XCL205_GPIO_BASE EXYNOS4X12_GPIO_PART1_BASE 229*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_OFFSET 0x20 /* GPA1 */ 230*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_PIN 1 231*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_CON (XCL205_GPIO_BASE + \ 232*bf3a08beSPrzemyslaw Marczak XCL205_EN_GPIO_OFFSET) 233*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_CON_CFG (S5P_GPIO_OUTPUT << \ 234*bf3a08beSPrzemyslaw Marczak 4 * XCL205_EN_GPIO_PIN) 235*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_DAT_CFG (0x1 << XCL205_EN_GPIO_PIN) 236*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_PUD_CFG (S5P_GPIO_PULL_UP << \ 237*bf3a08beSPrzemyslaw Marczak 2 * XCL205_EN_GPIO_PIN) 238*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_DRV_CFG (S5P_GPIO_DRV_4X << \ 239*bf3a08beSPrzemyslaw Marczak 2 * XCL205_EN_GPIO_PIN) 240*bf3a08beSPrzemyslaw Marczak 241*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_OFFSET 0x80 /* GPC1 */ 242*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_PIN 2 243*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_CON (XCL205_GPIO_BASE + \ 244*bf3a08beSPrzemyslaw Marczak XCL205_STATE_GPIO_OFFSET) 245*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_DAT XCL205_STATE_GPIO_CON + 0x4 246*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_CON_CFG (S5P_GPIO_INPUT << \ 247*bf3a08beSPrzemyslaw Marczak 4 * XCL205_STATE_GPIO_PIN) 248*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_PUD_CFG (S5P_GPIO_PULL_NONE << \ 249*bf3a08beSPrzemyslaw Marczak 2 * XCL205_STATE_GPIO_PIN) 250*bf3a08beSPrzemyslaw Marczak 251*bf3a08beSPrzemyslaw Marczak #ifdef CONFIG_BOARD_TYPES 252*bf3a08beSPrzemyslaw Marczak extern void sdelay(unsigned long); 253*bf3a08beSPrzemyslaw Marczak #endif 254*bf3a08beSPrzemyslaw Marczak 255*bf3a08beSPrzemyslaw Marczak #endif /*__ODROIDU3_SETUP__ */ 256