microblaze: Setup correct pointer to TLS area
[sfrench/cifs-2.6.git] / arch / arm / mach-ixp23xx / include / mach / platform.h
1 /*
2  * arch/arm/mach-ixp23xx/include/mach/platform.h
3  *
4  * Various bits of code used by platform-level code.
5  *
6  * Author: Deepak Saxena <dsaxena@plexity.net>
7  *
8  * Copyright 2005 (c) MontaVista Software, Inc.
9  *
10  * This file is licensed under the terms of the GNU General Public
11  * License version 2. This program is licensed "as is" without any
12  * warranty of any kind, whether express or implied.
13  */
14
15 #ifndef __ASSEMBLY__
16
17 static inline unsigned long ixp2000_reg_read(volatile void *reg)
18 {
19         return *((volatile unsigned long *)reg);
20 }
21
22 static inline void ixp2000_reg_write(volatile void *reg, unsigned long val)
23 {
24         *((volatile unsigned long *)reg) = val;
25 }
26
27 static inline void ixp2000_reg_wrb(volatile void *reg, unsigned long val)
28 {
29         *((volatile unsigned long *)reg) = val;
30 }
31
32 struct pci_sys_data;
33
34 void ixp23xx_map_io(void);
35 void ixp23xx_init_irq(void);
36 void ixp23xx_sys_init(void);
37 void ixp23xx_restart(char, const char *);
38 int ixp23xx_pci_setup(int, struct pci_sys_data *);
39 void ixp23xx_pci_preinit(void);
40 struct pci_bus *ixp23xx_pci_scan_bus(int, struct pci_sys_data*);
41 void ixp23xx_pci_slave_init(void);
42
43 extern struct sys_timer ixp23xx_timer;
44
45 #define IXP23XX_UART_XTAL               14745600
46
47 #ifndef __ASSEMBLY__
48 /*
49  * Is system memory on the XSI or CPP bus?
50  */
51 static inline unsigned ixp23xx_cpp_boot(void)
52 {
53         return (*IXP23XX_EXP_CFG0 & IXP23XX_EXP_CFG0_XSI_NOT_PRES);
54 }
55 #endif
56
57
58 #endif