aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa/e750.c
diff options
context:
space:
mode:
authorIan Molton <spyro@f2s.com>2008-09-26 08:38:59 -0400
committerIan Molton <spyro@f2s.com>2008-12-14 22:29:34 -0500
commitb1ae1b7b274f67c149bee4731e38a7516c723de4 (patch)
tree9f31ef6e8fb28359f6dbc8bb7ecac2c75bce2fa1 /arch/arm/mach-pxa/e750.c
parentf4ad9a9624fafec4647e7e45469e0446586f81fb (diff)
[ARM] pxa: Add multi-io support for e-series
This patchset provides support for the TMIO based IO controller used in the Toshiba e-series PDAs. Signed-off-by: Ian Molton <spyro@f2s.com> Acked-by: Samuel Ortiz <sameo@openedhand.com> Acked-by: Eric Miao <eric.y.miao@gmail.com>
Diffstat (limited to 'arch/arm/mach-pxa/e750.c')
-rw-r--r--arch/arm/mach-pxa/e750.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/arch/arm/mach-pxa/e750.c b/arch/arm/mach-pxa/e750.c
index 1410ad7e20b1..84d7c1aac58d 100644
--- a/arch/arm/mach-pxa/e750.c
+++ b/arch/arm/mach-pxa/e750.c
@@ -15,6 +15,7 @@
15#include <linux/device.h> 15#include <linux/device.h>
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/fb.h> 17#include <linux/fb.h>
18#include <linux/mfd/tc6393xb.h>
18 19
19#include <video/w100fb.h> 20#include <video/w100fb.h>
20 21
@@ -23,12 +24,15 @@
23#include <asm/mach-types.h> 24#include <asm/mach-types.h>
24 25
25#include <mach/mfp-pxa25x.h> 26#include <mach/mfp-pxa25x.h>
27#include <mach/pxa-regs.h>
26#include <mach/hardware.h> 28#include <mach/hardware.h>
29#include <mach/eseries-gpio.h>
27#include <mach/udc.h> 30#include <mach/udc.h>
28#include <mach/irda.h> 31#include <mach/irda.h>
29 32
30#include "generic.h" 33#include "generic.h"
31#include "eseries.h" 34#include "eseries.h"
35#include "clock.h"
32 36
33/* ---------------------- E750 LCD definitions -------------------- */ 37/* ---------------------- E750 LCD definitions -------------------- */
34 38
@@ -101,14 +105,41 @@ static struct platform_device e750_fb_device = {
101 .resource = e750_fb_resources, 105 .resource = e750_fb_resources,
102}; 106};
103 107
104/* ----------------------------------------------------------------------- */ 108/* ----------------- e750 tc6393xb parameters ------------------ */
109
110static struct tc6393xb_platform_data e750_tc6393xb_info = {
111 .irq_base = IRQ_BOARD_START,
112 .scr_pll2cr = 0x0cc1,
113 .scr_gper = 0,
114 .gpio_base = -1,
115 .suspend = &eseries_tmio_suspend,
116 .resume = &eseries_tmio_resume,
117 .enable = &eseries_tmio_enable,
118 .disable = &eseries_tmio_disable,
119};
120
121static struct platform_device e750_tc6393xb_device = {
122 .name = "tc6393xb",
123 .id = -1,
124 .dev = {
125 .platform_data = &e750_tc6393xb_info,
126 },
127 .num_resources = 2,
128 .resource = eseries_tmio_resources,
129};
130
131/* ------------------------------------------------------------- */
105 132
106static struct platform_device *devices[] __initdata = { 133static struct platform_device *devices[] __initdata = {
107 &e750_fb_device, 134 &e750_fb_device,
135 &e750_tc6393xb_device,
108}; 136};
109 137
110static void __init e750_init(void) 138static void __init e750_init(void)
111{ 139{
140 clk_add_alias("CLK_CK3P6MI", &e750_tc6393xb_device.dev,
141 "GPIO11_CLK", NULL),
142 eseries_get_tmio_gpios();
112 platform_add_devices(devices, ARRAY_SIZE(devices)); 143 platform_add_devices(devices, ARRAY_SIZE(devices));
113 pxa_set_udc_info(&e7xx_udc_mach_info); 144 pxa_set_udc_info(&e7xx_udc_mach_info);
114 e7xx_irda_init(); 145 e7xx_irda_init();