181ca8409SOtavio Salvador /* 281ca8409SOtavio Salvador * Freescale MX23EVK Boot setup 381ca8409SOtavio Salvador * 481ca8409SOtavio Salvador * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com> 581ca8409SOtavio Salvador * on behalf of DENX Software Engineering GmbH 681ca8409SOtavio Salvador * 781ca8409SOtavio Salvador * See file CREDITS for list of people who contributed to this 881ca8409SOtavio Salvador * project. 981ca8409SOtavio Salvador * 1081ca8409SOtavio Salvador * This program is free software; you can redistribute it and/or 1181ca8409SOtavio Salvador * modify it under the terms of the GNU General Public License as 1281ca8409SOtavio Salvador * published by the Free Software Foundation; either version 2 of 1381ca8409SOtavio Salvador * the License, or (at your option) any later version. 1481ca8409SOtavio Salvador * 1581ca8409SOtavio Salvador * This program is distributed in the hope that it will be useful, 1681ca8409SOtavio Salvador * but WITHOUT ANY WARRANTY; without even the implied warranty of 1781ca8409SOtavio Salvador * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1881ca8409SOtavio Salvador * GNU General Public License for more details. 1981ca8409SOtavio Salvador */ 2081ca8409SOtavio Salvador 2181ca8409SOtavio Salvador #include <common.h> 2281ca8409SOtavio Salvador #include <config.h> 2381ca8409SOtavio Salvador #include <asm/io.h> 2481ca8409SOtavio Salvador #include <asm/arch/iomux-mx23.h> 2581ca8409SOtavio Salvador #include <asm/arch/imx-regs.h> 2681ca8409SOtavio Salvador #include <asm/arch/sys_proto.h> 2781ca8409SOtavio Salvador 283d11444cSFabio Estevam #define MUX_CONFIG_SSP1 (MXS_PAD_8MA | MXS_PAD_PULLUP) 290ede8272SFabio Estevam #define MUX_CONFIG_EMI (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_PULLUP) 30*eadfc135SFabio Estevam #define MUX_CONFIG_LCD (MXS_PAD_4MA | MXS_PAD_NOPULL) 3181ca8409SOtavio Salvador 3281ca8409SOtavio Salvador const iomux_cfg_t iomux_setup[] = { 3381ca8409SOtavio Salvador /* DUART */ 3481ca8409SOtavio Salvador MX23_PAD_PWM0__DUART_RX, 3581ca8409SOtavio Salvador MX23_PAD_PWM1__DUART_TX, 3681ca8409SOtavio Salvador 3781ca8409SOtavio Salvador /* EMI */ 3881ca8409SOtavio Salvador MX23_PAD_EMI_D00__EMI_D00 | MUX_CONFIG_EMI, 3981ca8409SOtavio Salvador MX23_PAD_EMI_D01__EMI_D01 | MUX_CONFIG_EMI, 4081ca8409SOtavio Salvador MX23_PAD_EMI_D02__EMI_D02 | MUX_CONFIG_EMI, 4181ca8409SOtavio Salvador MX23_PAD_EMI_D03__EMI_D03 | MUX_CONFIG_EMI, 4281ca8409SOtavio Salvador MX23_PAD_EMI_D04__EMI_D04 | MUX_CONFIG_EMI, 4381ca8409SOtavio Salvador MX23_PAD_EMI_D05__EMI_D05 | MUX_CONFIG_EMI, 4481ca8409SOtavio Salvador MX23_PAD_EMI_D06__EMI_D06 | MUX_CONFIG_EMI, 4581ca8409SOtavio Salvador MX23_PAD_EMI_D07__EMI_D07 | MUX_CONFIG_EMI, 4681ca8409SOtavio Salvador MX23_PAD_EMI_D08__EMI_D08 | MUX_CONFIG_EMI, 4781ca8409SOtavio Salvador MX23_PAD_EMI_D09__EMI_D09 | MUX_CONFIG_EMI, 4881ca8409SOtavio Salvador MX23_PAD_EMI_D10__EMI_D10 | MUX_CONFIG_EMI, 4981ca8409SOtavio Salvador MX23_PAD_EMI_D11__EMI_D11 | MUX_CONFIG_EMI, 5081ca8409SOtavio Salvador MX23_PAD_EMI_D12__EMI_D12 | MUX_CONFIG_EMI, 5181ca8409SOtavio Salvador MX23_PAD_EMI_D13__EMI_D13 | MUX_CONFIG_EMI, 5281ca8409SOtavio Salvador MX23_PAD_EMI_D14__EMI_D14 | MUX_CONFIG_EMI, 5381ca8409SOtavio Salvador MX23_PAD_EMI_D15__EMI_D15 | MUX_CONFIG_EMI, 5481ca8409SOtavio Salvador MX23_PAD_EMI_DQM0__EMI_DQM0 | MUX_CONFIG_EMI, 5581ca8409SOtavio Salvador MX23_PAD_EMI_DQM1__EMI_DQM1 | MUX_CONFIG_EMI, 5681ca8409SOtavio Salvador MX23_PAD_EMI_DQS0__EMI_DQS0 | MUX_CONFIG_EMI, 5781ca8409SOtavio Salvador MX23_PAD_EMI_DQS1__EMI_DQS1 | MUX_CONFIG_EMI, 5881ca8409SOtavio Salvador MX23_PAD_EMI_CLK__EMI_CLK | MUX_CONFIG_EMI, 5981ca8409SOtavio Salvador MX23_PAD_EMI_CLKN__EMI_CLKN | MUX_CONFIG_EMI, 6081ca8409SOtavio Salvador 6181ca8409SOtavio Salvador MX23_PAD_EMI_A00__EMI_A00 | MUX_CONFIG_EMI, 6281ca8409SOtavio Salvador MX23_PAD_EMI_A01__EMI_A01 | MUX_CONFIG_EMI, 6381ca8409SOtavio Salvador MX23_PAD_EMI_A02__EMI_A02 | MUX_CONFIG_EMI, 6481ca8409SOtavio Salvador MX23_PAD_EMI_A03__EMI_A03 | MUX_CONFIG_EMI, 6581ca8409SOtavio Salvador MX23_PAD_EMI_A04__EMI_A04 | MUX_CONFIG_EMI, 6681ca8409SOtavio Salvador MX23_PAD_EMI_A05__EMI_A05 | MUX_CONFIG_EMI, 6781ca8409SOtavio Salvador MX23_PAD_EMI_A06__EMI_A06 | MUX_CONFIG_EMI, 6881ca8409SOtavio Salvador MX23_PAD_EMI_A07__EMI_A07 | MUX_CONFIG_EMI, 6981ca8409SOtavio Salvador MX23_PAD_EMI_A08__EMI_A08 | MUX_CONFIG_EMI, 7081ca8409SOtavio Salvador MX23_PAD_EMI_A09__EMI_A09 | MUX_CONFIG_EMI, 7181ca8409SOtavio Salvador MX23_PAD_EMI_A10__EMI_A10 | MUX_CONFIG_EMI, 7281ca8409SOtavio Salvador MX23_PAD_EMI_A11__EMI_A11 | MUX_CONFIG_EMI, 7381ca8409SOtavio Salvador MX23_PAD_EMI_A12__EMI_A12 | MUX_CONFIG_EMI, 7481ca8409SOtavio Salvador MX23_PAD_EMI_BA0__EMI_BA0 | MUX_CONFIG_EMI, 7581ca8409SOtavio Salvador MX23_PAD_EMI_BA1__EMI_BA1 | MUX_CONFIG_EMI, 7681ca8409SOtavio Salvador 7781ca8409SOtavio Salvador MX23_PAD_EMI_CASN__EMI_CASN | MUX_CONFIG_EMI, 7881ca8409SOtavio Salvador MX23_PAD_EMI_CE0N__EMI_CE0N | MUX_CONFIG_EMI, 7981ca8409SOtavio Salvador MX23_PAD_EMI_CE1N__EMI_CE1N | MUX_CONFIG_EMI, 8081ca8409SOtavio Salvador MX23_PAD_EMI_CKE__EMI_CKE | MUX_CONFIG_EMI, 8181ca8409SOtavio Salvador MX23_PAD_EMI_RASN__EMI_RASN | MUX_CONFIG_EMI, 8281ca8409SOtavio Salvador MX23_PAD_EMI_WEN__EMI_WEN | MUX_CONFIG_EMI, 8381ca8409SOtavio Salvador 8481ca8409SOtavio Salvador /* MMC 0 */ 8581ca8409SOtavio Salvador MX23_PAD_SSP1_DATA0__SSP1_DATA0 | MUX_CONFIG_SSP1, 8681ca8409SOtavio Salvador MX23_PAD_SSP1_DATA1__SSP1_DATA1 | MUX_CONFIG_SSP1, 8781ca8409SOtavio Salvador MX23_PAD_SSP1_DATA2__SSP1_DATA2 | MUX_CONFIG_SSP1, 8881ca8409SOtavio Salvador MX23_PAD_SSP1_DATA3__SSP1_DATA3 | MUX_CONFIG_SSP1, 8981ca8409SOtavio Salvador MX23_PAD_SSP1_CMD__SSP1_CMD | MUX_CONFIG_SSP1, 9081ca8409SOtavio Salvador MX23_PAD_SSP1_DETECT__SSP1_DETECT | MUX_CONFIG_SSP1, 9181ca8409SOtavio Salvador (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), 9281ca8409SOtavio Salvador MX23_PAD_SSP1_SCK__SSP1_SCK | 9381ca8409SOtavio Salvador (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), 9481ca8409SOtavio Salvador /* Write Protect Pin */ 9581ca8409SOtavio Salvador MX23_PAD_PWM4__GPIO_1_30 | 9681ca8409SOtavio Salvador (MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), 9781ca8409SOtavio Salvador /* Slot Power Enable */ 9881ca8409SOtavio Salvador MX23_PAD_PWM3__GPIO_1_29 | 9981ca8409SOtavio Salvador (MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), 100*eadfc135SFabio Estevam /* LCD */ 101*eadfc135SFabio Estevam MX23_PAD_LCD_D00__LCD_D00 | MUX_CONFIG_LCD, 102*eadfc135SFabio Estevam MX23_PAD_LCD_D01__LCD_D01 | MUX_CONFIG_LCD, 103*eadfc135SFabio Estevam MX23_PAD_LCD_D02__LCD_D02 | MUX_CONFIG_LCD, 104*eadfc135SFabio Estevam MX23_PAD_LCD_D03__LCD_D03 | MUX_CONFIG_LCD, 105*eadfc135SFabio Estevam MX23_PAD_LCD_D04__LCD_D04 | MUX_CONFIG_LCD, 106*eadfc135SFabio Estevam MX23_PAD_LCD_D05__LCD_D05 | MUX_CONFIG_LCD, 107*eadfc135SFabio Estevam MX23_PAD_LCD_D06__LCD_D06 | MUX_CONFIG_LCD, 108*eadfc135SFabio Estevam MX23_PAD_LCD_D07__LCD_D07 | MUX_CONFIG_LCD, 109*eadfc135SFabio Estevam MX23_PAD_LCD_D08__LCD_D08 | MUX_CONFIG_LCD, 110*eadfc135SFabio Estevam MX23_PAD_LCD_D09__LCD_D09 | MUX_CONFIG_LCD, 111*eadfc135SFabio Estevam MX23_PAD_LCD_D10__LCD_D10 | MUX_CONFIG_LCD, 112*eadfc135SFabio Estevam MX23_PAD_LCD_D11__LCD_D11 | MUX_CONFIG_LCD, 113*eadfc135SFabio Estevam MX23_PAD_LCD_D12__LCD_D12 | MUX_CONFIG_LCD, 114*eadfc135SFabio Estevam MX23_PAD_LCD_D13__LCD_D13 | MUX_CONFIG_LCD, 115*eadfc135SFabio Estevam MX23_PAD_LCD_D14__LCD_D14 | MUX_CONFIG_LCD, 116*eadfc135SFabio Estevam MX23_PAD_LCD_D15__LCD_D15 | MUX_CONFIG_LCD, 117*eadfc135SFabio Estevam MX23_PAD_LCD_D16__LCD_D16 | MUX_CONFIG_LCD, 118*eadfc135SFabio Estevam MX23_PAD_LCD_D17__LCD_D17 | MUX_CONFIG_LCD, 119*eadfc135SFabio Estevam MX23_PAD_GPMI_D08__LCD_D18 | MUX_CONFIG_LCD, 120*eadfc135SFabio Estevam MX23_PAD_GPMI_D09__LCD_D19 | MUX_CONFIG_LCD, 121*eadfc135SFabio Estevam MX23_PAD_GPMI_D10__LCD_D20 | MUX_CONFIG_LCD, 122*eadfc135SFabio Estevam MX23_PAD_GPMI_D11__LCD_D21 | MUX_CONFIG_LCD, 123*eadfc135SFabio Estevam MX23_PAD_GPMI_D12__LCD_D22 | MUX_CONFIG_LCD, 124*eadfc135SFabio Estevam MX23_PAD_GPMI_D13__LCD_D23 | MUX_CONFIG_LCD, 125*eadfc135SFabio Estevam MX23_PAD_LCD_DOTCK__LCD_DOTCK | MUX_CONFIG_LCD, 126*eadfc135SFabio Estevam MX23_PAD_LCD_ENABLE__LCD_ENABLE | MUX_CONFIG_LCD, 127*eadfc135SFabio Estevam MX23_PAD_LCD_HSYNC__LCD_HSYNC | MUX_CONFIG_LCD, 128*eadfc135SFabio Estevam MX23_PAD_LCD_VSYNC__LCD_VSYNC | MUX_CONFIG_LCD, 129*eadfc135SFabio Estevam MX23_PAD_LCD_RESET__GPIO_1_18 | MUX_CONFIG_LCD, /* LCD power */ 130*eadfc135SFabio Estevam MX23_PAD_PWM2__GPIO_1_28 | MUX_CONFIG_LCD, /* LCD contrast */ 13181ca8409SOtavio Salvador }; 13281ca8409SOtavio Salvador 133920178d3SOtavio Salvador #define HW_DRAM_CTL14 (0x38 >> 2) 134920178d3SOtavio Salvador #define CS_MAP 0x3 135920178d3SOtavio Salvador #define INTAREF 0x2 136920178d3SOtavio Salvador #define HW_DRAM_CTL14_CONFIG (INTAREF << 8 | CS_MAP) 137920178d3SOtavio Salvador 138920178d3SOtavio Salvador void mxs_adjust_memory_params(uint32_t *dram_vals) 139920178d3SOtavio Salvador { 140920178d3SOtavio Salvador dram_vals[HW_DRAM_CTL14] = HW_DRAM_CTL14_CONFIG; 141920178d3SOtavio Salvador } 142920178d3SOtavio Salvador 14381ca8409SOtavio Salvador void board_init_ll(void) 14481ca8409SOtavio Salvador { 14581ca8409SOtavio Salvador mxs_common_spl_init(iomux_setup, ARRAY_SIZE(iomux_setup)); 14681ca8409SOtavio Salvador } 147