diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:36:49 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:36:49 -0500 |
commit | 14a3c4ab0e58d143c7928c9eb2f2610205e13bf2 (patch) | |
tree | 885992999d7a1a2fd3586efcf32ebcbcbc3a72aa /arch/arm/mach-imx | |
parent | 1af237a099a3b8ff56aa384f605c6a68af7bf288 (diff) | |
parent | 47992cbdaef2f18a47871b2ed01ad27f568c8b73 (diff) |
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (407 commits)
[ARM] pxafb: add support for overlay1 and overlay2 as framebuffer devices
[ARM] pxafb: cleanup of the timing checking code
[ARM] pxafb: cleanup of the color format manipulation code
[ARM] pxafb: add palette format support for LCCR4_PAL_FOR_3
[ARM] pxafb: add support for FBIOPAN_DISPLAY by dma braching
[ARM] pxafb: allow pxafb_set_par() to start from arbitrary yoffset
[ARM] pxafb: allow video memory size to be configurable
[ARM] pxa: add document on the MFP design and how to use it
[ARM] sa1100_wdt: don't assume CLOCK_TICK_RATE to be a constant
[ARM] rtc-sa1100: don't assume CLOCK_TICK_RATE to be a constant
[ARM] pxa/tavorevb: update board support (smartpanel LCD + keypad)
[ARM] pxa: Update eseries defconfig
[ARM] 5352/1: add w90p910-plat config file
[ARM] s3c: S3C options should depend on PLAT_S3C
[ARM] mv78xx0: implement GPIO and GPIO interrupt support
[ARM] Kirkwood: implement GPIO and GPIO interrupt support
[ARM] Orion: share GPIO IRQ handling code
[ARM] Orion: share GPIO handling code
[ARM] s3c: define __io using the typesafe version
[ARM] S3C64XX: Ensure CPU_V6 is selected
...
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/dma.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/imx-dma.h | 12 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/imxfb.h | 50 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/io.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/memory.h | 10 |
5 files changed, 61 insertions, 22 deletions
diff --git a/arch/arm/mach-imx/dma.c b/arch/arm/mach-imx/dma.c index c10810c936b3..1536583eece0 100644 --- a/arch/arm/mach-imx/dma.c +++ b/arch/arm/mach-imx/dma.c | |||
@@ -28,10 +28,11 @@ | |||
28 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
29 | #include <linux/errno.h> | 29 | #include <linux/errno.h> |
30 | 30 | ||
31 | #include <asm/scatterlist.h> | ||
31 | #include <asm/system.h> | 32 | #include <asm/system.h> |
32 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
33 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
34 | #include <asm/dma.h> | 35 | #include <mach/dma.h> |
35 | #include <mach/imx-dma.h> | 36 | #include <mach/imx-dma.h> |
36 | 37 | ||
37 | struct imx_dma_channel imx_dma_channels[IMX_DMA_CHANNELS]; | 38 | struct imx_dma_channel imx_dma_channels[IMX_DMA_CHANNELS]; |
@@ -138,7 +139,7 @@ imx_dma_setup_sg_base(imx_dmach_t dma_ch, | |||
138 | int | 139 | int |
139 | imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address, | 140 | imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address, |
140 | unsigned int dma_length, unsigned int dev_addr, | 141 | unsigned int dma_length, unsigned int dev_addr, |
141 | dmamode_t dmamode) | 142 | unsigned int dmamode) |
142 | { | 143 | { |
143 | struct imx_dma_channel *imxdma = &imx_dma_channels[dma_ch]; | 144 | struct imx_dma_channel *imxdma = &imx_dma_channels[dma_ch]; |
144 | 145 | ||
@@ -223,7 +224,7 @@ imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address, | |||
223 | int | 224 | int |
224 | imx_dma_setup_sg(imx_dmach_t dma_ch, | 225 | imx_dma_setup_sg(imx_dmach_t dma_ch, |
225 | struct scatterlist *sg, unsigned int sgcount, unsigned int dma_length, | 226 | struct scatterlist *sg, unsigned int sgcount, unsigned int dma_length, |
226 | unsigned int dev_addr, dmamode_t dmamode) | 227 | unsigned int dev_addr, unsigned int dmamode) |
227 | { | 228 | { |
228 | int res; | 229 | int res; |
229 | struct imx_dma_channel *imxdma = &imx_dma_channels[dma_ch]; | 230 | struct imx_dma_channel *imxdma = &imx_dma_channels[dma_ch]; |
diff --git a/arch/arm/mach-imx/include/mach/imx-dma.h b/arch/arm/mach-imx/include/mach/imx-dma.h index 44d89c35539a..bbe54df7f0de 100644 --- a/arch/arm/mach-imx/include/mach/imx-dma.h +++ b/arch/arm/mach-imx/include/mach/imx-dma.h | |||
@@ -18,7 +18,7 @@ | |||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <asm/dma.h> | 21 | #include <mach/dma.h> |
22 | 22 | ||
23 | #ifndef __ASM_ARCH_IMX_DMA_H | 23 | #ifndef __ASM_ARCH_IMX_DMA_H |
24 | #define __ASM_ARCH_IMX_DMA_H | 24 | #define __ASM_ARCH_IMX_DMA_H |
@@ -48,7 +48,7 @@ struct imx_dma_channel { | |||
48 | void (*irq_handler) (int, void *); | 48 | void (*irq_handler) (int, void *); |
49 | void (*err_handler) (int, void *, int errcode); | 49 | void (*err_handler) (int, void *, int errcode); |
50 | void *data; | 50 | void *data; |
51 | dmamode_t dma_mode; | 51 | unsigned int dma_mode; |
52 | struct scatterlist *sg; | 52 | struct scatterlist *sg; |
53 | unsigned int sgbc; | 53 | unsigned int sgbc; |
54 | unsigned int sgcount; | 54 | unsigned int sgcount; |
@@ -66,14 +66,18 @@ extern struct imx_dma_channel imx_dma_channels[IMX_DMA_CHANNELS]; | |||
66 | /* The type to distinguish channel numbers parameter from ordinal int type */ | 66 | /* The type to distinguish channel numbers parameter from ordinal int type */ |
67 | typedef int imx_dmach_t; | 67 | typedef int imx_dmach_t; |
68 | 68 | ||
69 | #define DMA_MODE_READ 0 | ||
70 | #define DMA_MODE_WRITE 1 | ||
71 | #define DMA_MODE_MASK 1 | ||
72 | |||
69 | int | 73 | int |
70 | imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address, | 74 | imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address, |
71 | unsigned int dma_length, unsigned int dev_addr, dmamode_t dmamode); | 75 | unsigned int dma_length, unsigned int dev_addr, unsigned int dmamode); |
72 | 76 | ||
73 | int | 77 | int |
74 | imx_dma_setup_sg(imx_dmach_t dma_ch, | 78 | imx_dma_setup_sg(imx_dmach_t dma_ch, |
75 | struct scatterlist *sg, unsigned int sgcount, unsigned int dma_length, | 79 | struct scatterlist *sg, unsigned int sgcount, unsigned int dma_length, |
76 | unsigned int dev_addr, dmamode_t dmamode); | 80 | unsigned int dev_addr, unsigned int dmamode); |
77 | 81 | ||
78 | int | 82 | int |
79 | imx_dma_setup_handlers(imx_dmach_t dma_ch, | 83 | imx_dma_setup_handlers(imx_dmach_t dma_ch, |
diff --git a/arch/arm/mach-imx/include/mach/imxfb.h b/arch/arm/mach-imx/include/mach/imxfb.h index 3ed9ec8b9f00..870d0d939616 100644 --- a/arch/arm/mach-imx/include/mach/imxfb.h +++ b/arch/arm/mach-imx/include/mach/imxfb.h | |||
@@ -1,7 +1,52 @@ | |||
1 | /* | 1 | /* |
2 | * This structure describes the machine which we are running on. | 2 | * This structure describes the machine which we are running on. |
3 | */ | 3 | */ |
4 | struct imxfb_mach_info { | 4 | |
5 | #define PCR_TFT (1 << 31) | ||
6 | #define PCR_COLOR (1 << 30) | ||
7 | #define PCR_PBSIZ_1 (0 << 28) | ||
8 | #define PCR_PBSIZ_2 (1 << 28) | ||
9 | #define PCR_PBSIZ_4 (2 << 28) | ||
10 | #define PCR_PBSIZ_8 (3 << 28) | ||
11 | #define PCR_BPIX_1 (0 << 25) | ||
12 | #define PCR_BPIX_2 (1 << 25) | ||
13 | #define PCR_BPIX_4 (2 << 25) | ||
14 | #define PCR_BPIX_8 (3 << 25) | ||
15 | #define PCR_BPIX_12 (4 << 25) | ||
16 | #define PCR_BPIX_16 (4 << 25) | ||
17 | #define PCR_PIXPOL (1 << 24) | ||
18 | #define PCR_FLMPOL (1 << 23) | ||
19 | #define PCR_LPPOL (1 << 22) | ||
20 | #define PCR_CLKPOL (1 << 21) | ||
21 | #define PCR_OEPOL (1 << 20) | ||
22 | #define PCR_SCLKIDLE (1 << 19) | ||
23 | #define PCR_END_SEL (1 << 18) | ||
24 | #define PCR_END_BYTE_SWAP (1 << 17) | ||
25 | #define PCR_REV_VS (1 << 16) | ||
26 | #define PCR_ACD_SEL (1 << 15) | ||
27 | #define PCR_ACD(x) (((x) & 0x7f) << 8) | ||
28 | #define PCR_SCLK_SEL (1 << 7) | ||
29 | #define PCR_SHARP (1 << 6) | ||
30 | #define PCR_PCD(x) ((x) & 0x3f) | ||
31 | |||
32 | #define PWMR_CLS(x) (((x) & 0x1ff) << 16) | ||
33 | #define PWMR_LDMSK (1 << 15) | ||
34 | #define PWMR_SCR1 (1 << 10) | ||
35 | #define PWMR_SCR0 (1 << 9) | ||
36 | #define PWMR_CC_EN (1 << 8) | ||
37 | #define PWMR_PW(x) ((x) & 0xff) | ||
38 | |||
39 | #define LSCR1_PS_RISE_DELAY(x) (((x) & 0x7f) << 26) | ||
40 | #define LSCR1_CLS_RISE_DELAY(x) (((x) & 0x3f) << 16) | ||
41 | #define LSCR1_REV_TOGGLE_DELAY(x) (((x) & 0xf) << 8) | ||
42 | #define LSCR1_GRAY2(x) (((x) & 0xf) << 4) | ||
43 | #define LSCR1_GRAY1(x) (((x) & 0xf)) | ||
44 | |||
45 | #define DMACR_BURST (1 << 31) | ||
46 | #define DMACR_HM(x) (((x) & 0xf) << 16) | ||
47 | #define DMACR_TM(x) ((x) & 0xf) | ||
48 | |||
49 | struct imx_fb_platform_data { | ||
5 | u_long pixclock; | 50 | u_long pixclock; |
6 | 51 | ||
7 | u_short xres; | 52 | u_short xres; |
@@ -34,4 +79,5 @@ struct imxfb_mach_info { | |||
34 | void (*lcd_power)(int); | 79 | void (*lcd_power)(int); |
35 | void (*backlight_power)(int); | 80 | void (*backlight_power)(int); |
36 | }; | 81 | }; |
37 | void set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info); | 82 | |
83 | void set_imx_fb_info(struct imx_fb_platform_data *); | ||
diff --git a/arch/arm/mach-imx/include/mach/io.h b/arch/arm/mach-imx/include/mach/io.h index c50c5fa6fb81..9e197ae4590f 100644 --- a/arch/arm/mach-imx/include/mach/io.h +++ b/arch/arm/mach-imx/include/mach/io.h | |||
@@ -20,11 +20,9 @@ | |||
20 | #ifndef __ASM_ARM_ARCH_IO_H | 20 | #ifndef __ASM_ARM_ARCH_IO_H |
21 | #define __ASM_ARM_ARCH_IO_H | 21 | #define __ASM_ARM_ARCH_IO_H |
22 | 22 | ||
23 | #include <mach/hardware.h> | ||
24 | |||
25 | #define IO_SPACE_LIMIT 0xffffffff | 23 | #define IO_SPACE_LIMIT 0xffffffff |
26 | 24 | ||
27 | #define __io(a) ((void __iomem *)(a)) | 25 | #define __io(a) __typesafe_io(a) |
28 | #define __mem_pci(a) (a) | 26 | #define __mem_pci(a) (a) |
29 | 27 | ||
30 | #endif | 28 | #endif |
diff --git a/arch/arm/mach-imx/include/mach/memory.h b/arch/arm/mach-imx/include/mach/memory.h index 5c453063c0ed..a93df7cba694 100644 --- a/arch/arm/mach-imx/include/mach/memory.h +++ b/arch/arm/mach-imx/include/mach/memory.h | |||
@@ -23,14 +23,4 @@ | |||
23 | 23 | ||
24 | #define PHYS_OFFSET UL(0x08000000) | 24 | #define PHYS_OFFSET UL(0x08000000) |
25 | 25 | ||
26 | /* | ||
27 | * Virtual view <-> DMA view memory address translations | ||
28 | * virt_to_bus: Used to translate the virtual address to an | ||
29 | * address suitable to be passed to set_dma_addr | ||
30 | * bus_to_virt: Used to convert an address for DMA operations | ||
31 | * to an address that the kernel can use. | ||
32 | */ | ||
33 | #define __virt_to_bus(x) (x - PAGE_OFFSET + PHYS_OFFSET) | ||
34 | #define __bus_to_virt(x) (x - PHYS_OFFSET + PAGE_OFFSET) | ||
35 | |||
36 | #endif | 26 | #endif |