diff options
Diffstat (limited to 'include/asm-arm/arch-pxa')
-rw-r--r-- | include/asm-arm/arch-pxa/corgi.h | 8 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/debug-macro.S | 2 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/hardware.h | 18 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/mmc.h | 2 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/mtd-xip.h | 37 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/pxa-regs.h | 31 |
6 files changed, 80 insertions, 18 deletions
diff --git a/include/asm-arm/arch-pxa/corgi.h b/include/asm-arm/arch-pxa/corgi.h index 324db06b5dd4..4b7aa0b8391e 100644 --- a/include/asm-arm/arch-pxa/corgi.h +++ b/include/asm-arm/arch-pxa/corgi.h | |||
@@ -103,18 +103,20 @@ | |||
103 | * Shared data structures | 103 | * Shared data structures |
104 | */ | 104 | */ |
105 | extern struct platform_device corgiscoop_device; | 105 | extern struct platform_device corgiscoop_device; |
106 | extern struct platform_device corgissp_device; | ||
107 | extern struct platform_device corgifb_device; | ||
106 | 108 | ||
107 | /* | 109 | /* |
108 | * External Functions | 110 | * External Functions |
109 | */ | 111 | */ |
110 | extern unsigned long corgi_ssp_ads7846_putget(unsigned long); | 112 | extern unsigned long corgi_ssp_ads7846_putget(unsigned long); |
111 | extern unsigned long corgi_ssp_ads7846_get(void); | 113 | extern unsigned long corgi_ssp_ads7846_get(void); |
112 | extern void corgi_ssp_ads7846_put(ulong data); | 114 | extern void corgi_ssp_ads7846_put(unsigned long data); |
113 | extern void corgi_ssp_ads7846_lock(void); | 115 | extern void corgi_ssp_ads7846_lock(void); |
114 | extern void corgi_ssp_ads7846_unlock(void); | 116 | extern void corgi_ssp_ads7846_unlock(void); |
115 | extern void corgi_ssp_lcdtg_send (u8 adrs, u8 data); | 117 | extern void corgi_ssp_lcdtg_send (unsigned char adrs, unsigned char data); |
116 | extern void corgi_ssp_blduty_set(int duty); | 118 | extern void corgi_ssp_blduty_set(int duty); |
117 | extern int corgi_ssp_max1111_get(ulong data); | 119 | extern int corgi_ssp_max1111_get(unsigned long data); |
118 | 120 | ||
119 | #endif /* __ASM_ARCH_CORGI_H */ | 121 | #endif /* __ASM_ARCH_CORGI_H */ |
120 | 122 | ||
diff --git a/include/asm-arm/arch-pxa/debug-macro.S b/include/asm-arm/arch-pxa/debug-macro.S index f288e74b67c2..b6ec68879176 100644 --- a/include/asm-arm/arch-pxa/debug-macro.S +++ b/include/asm-arm/arch-pxa/debug-macro.S | |||
@@ -11,6 +11,8 @@ | |||
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include "hardware.h" | ||
15 | |||
14 | .macro addruart,rx | 16 | .macro addruart,rx |
15 | mrc p15, 0, \rx, c1, c0 | 17 | mrc p15, 0, \rx, c1, c0 |
16 | tst \rx, #1 @ MMU enabled? | 18 | tst \rx, #1 @ MMU enabled? |
diff --git a/include/asm-arm/arch-pxa/hardware.h b/include/asm-arm/arch-pxa/hardware.h index 72b04d846a23..cf35721cfa45 100644 --- a/include/asm-arm/arch-pxa/hardware.h +++ b/include/asm-arm/arch-pxa/hardware.h | |||
@@ -44,24 +44,12 @@ | |||
44 | 44 | ||
45 | #ifndef __ASSEMBLY__ | 45 | #ifndef __ASSEMBLY__ |
46 | 46 | ||
47 | #if 0 | 47 | # define __REG(x) (*((volatile unsigned long *)io_p2v(x))) |
48 | # define __REG(x) (*((volatile u32 *)io_p2v(x))) | ||
49 | #else | ||
50 | /* | ||
51 | * This __REG() version gives the same results as the one above, except | ||
52 | * that we are fooling gcc somehow so it generates far better and smaller | ||
53 | * assembly code for access to contigous registers. It's a shame that gcc | ||
54 | * doesn't guess this by itself. | ||
55 | */ | ||
56 | #include <asm/types.h> | ||
57 | typedef struct { volatile u32 offset[4096]; } __regbase; | ||
58 | # define __REGP(x) ((__regbase *)((x)&~4095))->offset[((x)&4095)>>2] | ||
59 | # define __REG(x) __REGP(io_p2v(x)) | ||
60 | #endif | ||
61 | 48 | ||
62 | /* With indexed regs we don't want to feed the index through io_p2v() | 49 | /* With indexed regs we don't want to feed the index through io_p2v() |
63 | especially if it is a variable, otherwise horrible code will result. */ | 50 | especially if it is a variable, otherwise horrible code will result. */ |
64 | # define __REG2(x,y) (*(volatile u32 *)((u32)&__REG(x) + (y))) | 51 | # define __REG2(x,y) \ |
52 | (*(volatile unsigned long *)((unsigned long)&__REG(x) + (y))) | ||
65 | 53 | ||
66 | # define __PREG(x) (io_v2p((u32)&(x))) | 54 | # define __PREG(x) (io_v2p((u32)&(x))) |
67 | 55 | ||
diff --git a/include/asm-arm/arch-pxa/mmc.h b/include/asm-arm/arch-pxa/mmc.h index 7492ea7ea614..88c17dd02ed2 100644 --- a/include/asm-arm/arch-pxa/mmc.h +++ b/include/asm-arm/arch-pxa/mmc.h | |||
@@ -9,7 +9,9 @@ struct mmc_host; | |||
9 | 9 | ||
10 | struct pxamci_platform_data { | 10 | struct pxamci_platform_data { |
11 | unsigned int ocr_mask; /* available voltages */ | 11 | unsigned int ocr_mask; /* available voltages */ |
12 | unsigned long detect_delay; /* delay in jiffies before detecting cards after interrupt */ | ||
12 | int (*init)(struct device *, irqreturn_t (*)(int, void *, struct pt_regs *), void *); | 13 | int (*init)(struct device *, irqreturn_t (*)(int, void *, struct pt_regs *), void *); |
14 | int (*get_ro)(struct device *); | ||
13 | void (*setpower)(struct device *, unsigned int); | 15 | void (*setpower)(struct device *, unsigned int); |
14 | void (*exit)(struct device *, void *); | 16 | void (*exit)(struct device *, void *); |
15 | }; | 17 | }; |
diff --git a/include/asm-arm/arch-pxa/mtd-xip.h b/include/asm-arm/arch-pxa/mtd-xip.h new file mode 100644 index 000000000000..8704dbceb432 --- /dev/null +++ b/include/asm-arm/arch-pxa/mtd-xip.h | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * MTD primitives for XIP support. Architecture specific functions | ||
3 | * | ||
4 | * Do not include this file directly. It's included from linux/mtd/xip.h | ||
5 | * | ||
6 | * Author: Nicolas Pitre | ||
7 | * Created: Nov 2, 2004 | ||
8 | * Copyright: (C) 2004 MontaVista Software, Inc. | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | * | ||
14 | * $Id: xip.h,v 1.2 2004/12/01 15:49:10 nico Exp $ | ||
15 | */ | ||
16 | |||
17 | #ifndef __ARCH_PXA_MTD_XIP_H__ | ||
18 | #define __ARCH_PXA_MTD_XIP_H__ | ||
19 | |||
20 | #include <asm/arch/pxa-regs.h> | ||
21 | |||
22 | #define xip_irqpending() (ICIP & ICMR) | ||
23 | |||
24 | /* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */ | ||
25 | #define xip_currtime() (OSCR) | ||
26 | #define xip_elapsed_since(x) (signed)((OSCR - (x)) / 4) | ||
27 | |||
28 | /* | ||
29 | * xip_cpu_idle() is used when waiting for a delay equal or larger than | ||
30 | * the system timer tick period. This should put the CPU into idle mode | ||
31 | * to save power and to be woken up only when some interrupts are pending. | ||
32 | * As above, this should not rely upon standard kernel code. | ||
33 | */ | ||
34 | |||
35 | #define xip_cpu_idle() asm volatile ("mcr p14, 0, %0, c7, c0, 0" :: "r" (1)) | ||
36 | |||
37 | #endif /* __ARCH_PXA_MTD_XIP_H__ */ | ||
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index b5e54a9e9fa7..939d9e5020a0 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
@@ -818,6 +818,23 @@ | |||
818 | #define UDCOTGICR_IEIDF (1 << 0) /* OTG ID Change Falling Edge | 818 | #define UDCOTGICR_IEIDF (1 << 0) /* OTG ID Change Falling Edge |
819 | Interrupt Enable */ | 819 | Interrupt Enable */ |
820 | 820 | ||
821 | #define UP2OCR __REG(0x40600020) /* USB Port 2 Output Control register */ | ||
822 | |||
823 | #define UP2OCR_CPVEN (1 << 0) /* Charge Pump Vbus Enable */ | ||
824 | #define UP2OCR_CPVPE (1 << 1) /* Charge Pump Vbus Pulse Enable */ | ||
825 | #define UP2OCR_DPPDE (1 << 2) /* Host Port 2 Transceiver D+ Pull Down Enable */ | ||
826 | #define UP2OCR_DMPDE (1 << 3) /* Host Port 2 Transceiver D- Pull Down Enable */ | ||
827 | #define UP2OCR_DPPUE (1 << 4) /* Host Port 2 Transceiver D+ Pull Up Enable */ | ||
828 | #define UP2OCR_DMPUE (1 << 5) /* Host Port 2 Transceiver D- Pull Up Enable */ | ||
829 | #define UP2OCR_DPPUBE (1 << 6) /* Host Port 2 Transceiver D+ Pull Up Bypass Enable */ | ||
830 | #define UP2OCR_DMPUBE (1 << 7) /* Host Port 2 Transceiver D- Pull Up Bypass Enable */ | ||
831 | #define UP2OCR_EXSP (1 << 8) /* External Transceiver Speed Control */ | ||
832 | #define UP2OCR_EXSUS (1 << 9) /* External Transceiver Speed Enable */ | ||
833 | #define UP2OCR_IDON (1 << 10) /* OTG ID Read Enable */ | ||
834 | #define UP2OCR_HXS (1 << 16) /* Host Port 2 Transceiver Output Select */ | ||
835 | #define UP2OCR_HXOE (1 << 17) /* Host Port 2 Transceiver Output Enable */ | ||
836 | #define UP2OCR_SEOS (1 << 24) /* Single-Ended Output Select */ | ||
837 | |||
821 | #define UDCCSN(x) __REG2(0x40600100, (x) << 2) | 838 | #define UDCCSN(x) __REG2(0x40600100, (x) << 2) |
822 | #define UDCCSR0 __REG(0x40600100) /* UDC Control/Status register - Endpoint 0 */ | 839 | #define UDCCSR0 __REG(0x40600100) /* UDC Control/Status register - Endpoint 0 */ |
823 | #define UDCCSR0_SA (1 << 7) /* Setup Active */ | 840 | #define UDCCSR0_SA (1 << 7) /* Setup Active */ |
@@ -1423,6 +1440,7 @@ | |||
1423 | #define GPIO84_NSSP_RX (84 | GPIO_ALT_FN_2_IN) | 1440 | #define GPIO84_NSSP_RX (84 | GPIO_ALT_FN_2_IN) |
1424 | #define GPIO85_nPCE_1_MD (85 | GPIO_ALT_FN_1_OUT) | 1441 | #define GPIO85_nPCE_1_MD (85 | GPIO_ALT_FN_1_OUT) |
1425 | #define GPIO92_MMCDAT0_MD (92 | GPIO_ALT_FN_1_OUT) | 1442 | #define GPIO92_MMCDAT0_MD (92 | GPIO_ALT_FN_1_OUT) |
1443 | #define GPIO104_pSKTSEL_MD (104 | GPIO_ALT_FN_1_OUT) | ||
1426 | #define GPIO109_MMCDAT1_MD (109 | GPIO_ALT_FN_1_OUT) | 1444 | #define GPIO109_MMCDAT1_MD (109 | GPIO_ALT_FN_1_OUT) |
1427 | #define GPIO110_MMCDAT2_MD (110 | GPIO_ALT_FN_1_OUT) | 1445 | #define GPIO110_MMCDAT2_MD (110 | GPIO_ALT_FN_1_OUT) |
1428 | #define GPIO110_MMCCS0_MD (110 | GPIO_ALT_FN_1_OUT) | 1446 | #define GPIO110_MMCCS0_MD (110 | GPIO_ALT_FN_1_OUT) |
@@ -1505,10 +1523,13 @@ | |||
1505 | #define PSSR_OTGPH (1 << 6) /* OTG Peripheral control Hold */ | 1523 | #define PSSR_OTGPH (1 << 6) /* OTG Peripheral control Hold */ |
1506 | #define PSSR_RDH (1 << 5) /* Read Disable Hold */ | 1524 | #define PSSR_RDH (1 << 5) /* Read Disable Hold */ |
1507 | #define PSSR_PH (1 << 4) /* Peripheral Control Hold */ | 1525 | #define PSSR_PH (1 << 4) /* Peripheral Control Hold */ |
1526 | #define PSSR_STS (1 << 3) /* Standby Mode Status */ | ||
1508 | #define PSSR_VFS (1 << 2) /* VDD Fault Status */ | 1527 | #define PSSR_VFS (1 << 2) /* VDD Fault Status */ |
1509 | #define PSSR_BFS (1 << 1) /* Battery Fault Status */ | 1528 | #define PSSR_BFS (1 << 1) /* Battery Fault Status */ |
1510 | #define PSSR_SSS (1 << 0) /* Software Sleep Status */ | 1529 | #define PSSR_SSS (1 << 0) /* Software Sleep Status */ |
1511 | 1530 | ||
1531 | #define PSLR_SL_ROD (1 << 20) /* Sleep-Mode/Depp-Sleep Mode nRESET_OUT Disable */ | ||
1532 | |||
1512 | #define PCFR_RO (1 << 15) /* RDH Override */ | 1533 | #define PCFR_RO (1 << 15) /* RDH Override */ |
1513 | #define PCFR_PO (1 << 14) /* PH Override */ | 1534 | #define PCFR_PO (1 << 14) /* PH Override */ |
1514 | #define PCFR_GPROD (1 << 12) /* GPIO nRESET_OUT Disable */ | 1535 | #define PCFR_GPROD (1 << 12) /* GPIO nRESET_OUT Disable */ |
@@ -1516,6 +1537,7 @@ | |||
1516 | #define PCFR_FVC (1 << 10) /* Frequency/Voltage Change */ | 1537 | #define PCFR_FVC (1 << 10) /* Frequency/Voltage Change */ |
1517 | #define PCFR_DC_EN (1 << 7) /* Sleep/deep-sleep DC-DC Converter Enable */ | 1538 | #define PCFR_DC_EN (1 << 7) /* Sleep/deep-sleep DC-DC Converter Enable */ |
1518 | #define PCFR_PI2CEN (1 << 6) /* Enable PI2C controller */ | 1539 | #define PCFR_PI2CEN (1 << 6) /* Enable PI2C controller */ |
1540 | #define PCFR_GPR_EN (1 << 4) /* nRESET_GPIO Pin Enable */ | ||
1519 | #define PCFR_DS (1 << 3) /* Deep Sleep Mode */ | 1541 | #define PCFR_DS (1 << 3) /* Deep Sleep Mode */ |
1520 | #define PCFR_FS (1 << 2) /* Float Static Chip Selects */ | 1542 | #define PCFR_FS (1 << 2) /* Float Static Chip Selects */ |
1521 | #define PCFR_FP (1 << 1) /* Float PCMCIA controls */ | 1543 | #define PCFR_FP (1 << 1) /* Float PCMCIA controls */ |
@@ -1809,6 +1831,11 @@ | |||
1809 | #define LCCR0_PDD_S 12 | 1831 | #define LCCR0_PDD_S 12 |
1810 | #define LCCR0_BM (1 << 20) /* Branch mask */ | 1832 | #define LCCR0_BM (1 << 20) /* Branch mask */ |
1811 | #define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */ | 1833 | #define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */ |
1834 | #define LCCR0_LCDT (1 << 22) /* LCD panel type */ | ||
1835 | #define LCCR0_RDSTM (1 << 23) /* Read status interrupt mask */ | ||
1836 | #define LCCR0_CMDIM (1 << 24) /* Command interrupt mask */ | ||
1837 | #define LCCR0_OUC (1 << 25) /* Overlay Underlay control bit */ | ||
1838 | #define LCCR0_LDDALT (1 << 26) /* LDD alternate mapping control */ | ||
1812 | 1839 | ||
1813 | #define LCCR1_PPL Fld (10, 0) /* Pixels Per Line - 1 */ | 1840 | #define LCCR1_PPL Fld (10, 0) /* Pixels Per Line - 1 */ |
1814 | #define LCCR1_DisWdth(Pixel) /* Display Width [1..800 pix.] */ \ | 1841 | #define LCCR1_DisWdth(Pixel) /* Display Width [1..800 pix.] */ \ |
@@ -1965,6 +1992,7 @@ | |||
1965 | #define MECR_NOS (1 << 0) /* Number Of Sockets: 0 -> 1 sock, 1 -> 2 sock */ | 1992 | #define MECR_NOS (1 << 0) /* Number Of Sockets: 0 -> 1 sock, 1 -> 2 sock */ |
1966 | #define MECR_CIT (1 << 1) /* Card Is There: 0 -> no card, 1 -> card inserted */ | 1993 | #define MECR_CIT (1 << 1) /* Card Is There: 0 -> no card, 1 -> card inserted */ |
1967 | 1994 | ||
1995 | #define MDREFR_K0DB4 (1 << 29) /* SDCLK0 Divide by 4 Control/Status */ | ||
1968 | #define MDREFR_K2FREE (1 << 25) /* SDRAM Free-Running Control */ | 1996 | #define MDREFR_K2FREE (1 << 25) /* SDRAM Free-Running Control */ |
1969 | #define MDREFR_K1FREE (1 << 24) /* SDRAM Free-Running Control */ | 1997 | #define MDREFR_K1FREE (1 << 24) /* SDRAM Free-Running Control */ |
1970 | #define MDREFR_K0FREE (1 << 23) /* SDRAM Free-Running Control */ | 1998 | #define MDREFR_K0FREE (1 << 23) /* SDRAM Free-Running Control */ |
@@ -2060,7 +2088,10 @@ | |||
2060 | #define UHCFMN __REG(0x4C00003C) /* UHC Frame Number */ | 2088 | #define UHCFMN __REG(0x4C00003C) /* UHC Frame Number */ |
2061 | #define UHCPERS __REG(0x4C000040) /* UHC Periodic Start */ | 2089 | #define UHCPERS __REG(0x4C000040) /* UHC Periodic Start */ |
2062 | #define UHCLS __REG(0x4C000044) /* UHC Low Speed Threshold */ | 2090 | #define UHCLS __REG(0x4C000044) /* UHC Low Speed Threshold */ |
2091 | |||
2063 | #define UHCRHDA __REG(0x4C000048) /* UHC Root Hub Descriptor A */ | 2092 | #define UHCRHDA __REG(0x4C000048) /* UHC Root Hub Descriptor A */ |
2093 | #define UHCRHDA_NOCP (1 << 12) /* No over current protection */ | ||
2094 | |||
2064 | #define UHCRHDB __REG(0x4C00004C) /* UHC Root Hub Descriptor B */ | 2095 | #define UHCRHDB __REG(0x4C00004C) /* UHC Root Hub Descriptor B */ |
2065 | #define UHCRHS __REG(0x4C000050) /* UHC Root Hub Status */ | 2096 | #define UHCRHS __REG(0x4C000050) /* UHC Root Hub Status */ |
2066 | #define UHCRHPS1 __REG(0x4C000054) /* UHC Root Hub Port 1 Status */ | 2097 | #define UHCRHPS1 __REG(0x4C000054) /* UHC Root Hub Port 1 Status */ |