]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - cpu/arm925t/omap925.c
* Add support for IceCube board (with MGT5100 and MPC5200 CPUs)
[karo-tx-uboot.git] / cpu / arm925t / omap925.c
1 /*
2  * (C) Copyright 2003
3  * Texas Instruments <www.ti.com>
4  *
5  * See file CREDITS for list of people who contributed to this
6  * project.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23
24 #include <common.h>
25 #include <command.h>
26 #include <arm925t.h>
27
28 ushort gpioreserved;
29
30 void gpioreserve(ushort mask)
31 {
32         gpioreserved |= mask;
33 }
34
35 void gpiosetdir(ushort mask, ushort in)
36 {
37         *(ushort *)GPIO_DIR_CONTROL_REG = (*(ushort *)GPIO_DIR_CONTROL_REG & ~mask) | (in & mask);
38 }
39
40
41 void gpiosetout(ushort mask, ushort out)
42 {
43         ushort *r_ptr, r_val;
44
45         r_ptr = (ushort *)GPIO_DATA_OUTPUT_REG; /* set pointer */
46         r_val = *r_ptr & ~mask;         /* get previous val, clear bits we want to change */
47         r_val |= (out & mask);          /* set specified bits in value + plus origional ones */
48         *r_ptr = r_val;                 /* write it out */
49 /*
50  * gcc screwed this one up :(.
51  *
52  * *(ushort *)GPIO_DATA_OUTPUT_REG = (*(ushort *)GPIO_DATA_OUTPUT_REG & ~mask) | (out & mask);
53  */
54
55 }
56
57 void gpioinit(void)
58 {
59 }
60
61
62 #define MIF_CONFIG_REG 0xFFFECC0C
63 #define FLASH_GLOBAL_CTRL_NWP 1
64
65 void archflashwp (void *archdata, int wp)
66 {
67         ulong *fgc = (ulong *) MIF_CONFIG_REG;
68
69         if (wp == 1)
70                 *fgc &= ~FLASH_GLOBAL_CTRL_NWP;
71         else
72                 *fgc |= FLASH_GLOBAL_CTRL_NWP;
73 }