]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - board/freescale/mx31_3stack/mx31_3stack.c
applied patches from Freescale and Ka-Ro
[karo-tx-uboot.git] / board / freescale / mx31_3stack / mx31_3stack.c
1 /*
2  * Copyright (C) 2008, Guennadi Liakhovetski <lg@denx.de>
3  * Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
4  *      Modifications for MX31 3Stack board
5  *
6  * See file CREDITS for list of people who contributed to this
7  * project.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License as
11  * published by the Free Software Foundation; either version 2 of
12  * the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22  * MA 02111-1307 USA
23  */
24
25 #include <common.h>
26 #include <asm/io.h>
27 #include <asm/arch/mx31.h>
28 #include <asm/arch/mx31-regs.h>
29
30 DECLARE_GLOBAL_DATA_PTR;
31
32 int dram_init(void)
33 {
34         gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
35         gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
36
37         return 0;
38 }
39
40 int board_init(void)
41 {
42         /* CS5: Debug board for ethernet */
43         __REG(CSCR_U(5)) = 0x0000D843;
44         __REG(CSCR_L(5)) = 0x22252521;
45         __REG(CSCR_A(5)) = 0x22220A00;
46
47         /* setup pins for UART1 */
48         mx31_gpio_mux(MUX_RXD1__UART1_RXD_MUX);
49         mx31_gpio_mux(MUX_TXD1__UART1_TXD_MUX);
50         mx31_gpio_mux(MUX_RTS1__UART1_RTS_B);
51         mx31_gpio_mux(MUX_CTS1__UART1_CTS_B);
52
53         /* SPI2 */
54         mx31_gpio_mux((MUX_CTL_FUNC << 8) | MUX_CTL_CSPI2_SS2);
55         mx31_gpio_mux((MUX_CTL_FUNC << 8) | MUX_CTL_CSPI2_SCLK);
56         mx31_gpio_mux((MUX_CTL_FUNC << 8) | MUX_CTL_CSPI2_SPI_RDY);
57         mx31_gpio_mux((MUX_CTL_FUNC << 8) | MUX_CTL_CSPI2_MOSI);
58         mx31_gpio_mux((MUX_CTL_FUNC << 8) | MUX_CTL_CSPI2_MISO);
59         mx31_gpio_mux((MUX_CTL_FUNC << 8) | MUX_CTL_CSPI2_SS0);
60         mx31_gpio_mux((MUX_CTL_FUNC << 8) | MUX_CTL_CSPI2_SS1);
61
62         /* start SPI2 clock */
63         __REG(CCM_CGR2) = __REG(CCM_CGR2) | (3 << 4);
64
65         gd->bd->bi_arch_number = MACH_TYPE_MX31_3DS;    /* board id for linux */
66         gd->bd->bi_boot_params = 0x80000100;    /* adress of boot parameters */
67
68         return 0;
69 }
70
71 int checkboard(void)
72 {
73         printf("Board: MX31 3Stack\n");
74         return 0;
75 }