Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]

Diff markup

Differences between /linux/arch/arm/mach-pxa/stargate2.c (Version 2.6.31.13) and /linux/arch/i386/mach-pxa/stargate2.c (Version 2.6.25)


  1 /*                                                  1 
  2  *  linux/arch/arm/mach-pxa/stargate2.c           
  3  *                                                
  4  *  Author:     Ed C. Epp                         
  5  *  Created:    Nov 05, 2002                      
  6  *  Copyright:  Intel Corp.                       
  7  *                                                
  8  *  Modified 2009:  Jonathan Cameron <jic23@ca    
  9  *                                                
 10  *  This program is free software; you can red    
 11  *  it under the terms of the GNU General Publ    
 12  *  published by the Free Software Foundation.    
 13  */                                               
 14                                                   
 15 #include <linux/init.h>                           
 16 #include <linux/device.h>                         
 17 #include <linux/interrupt.h>                      
 18 #include <linux/sched.h>                          
 19 #include <linux/bitops.h>                         
 20 #include <linux/fb.h>                             
 21 #include <linux/delay.h>                          
 22 #include <linux/platform_device.h>                
 23 #include <linux/regulator/machine.h>              
 24 #include <linux/mtd/mtd.h>                        
 25 #include <linux/mtd/plat-ram.h>                   
 26 #include <linux/mtd/partitions.h>                 
 27                                                   
 28 #include <linux/i2c/pcf857x.h>                    
 29 #include <linux/i2c/at24.h>                       
 30 #include <linux/smc91x.h>                         
 31 #include <linux/gpio.h>                           
 32                                                   
 33 #include <asm/types.h>                            
 34 #include <asm/setup.h>                            
 35 #include <asm/memory.h>                           
 36 #include <asm/mach-types.h>                       
 37 #include <asm/irq.h>                              
 38                                                   
 39 #include <asm/mach/arch.h>                        
 40 #include <asm/mach/map.h>                         
 41 #include <asm/mach/irq.h>                         
 42 #include <asm/mach/flash.h>                       
 43                                                   
 44 #include <mach/pxa27x.h>                          
 45 #include <plat/i2c.h>                             
 46 #include <mach/mmc.h>                             
 47 #include <mach/udc.h>                             
 48 #include <mach/pxa2xx_spi.h>                      
 49 #include <mach/pxa27x-udc.h>                      
 50                                                   
 51 #include <linux/spi/spi.h>                        
 52 #include <linux/mfd/da903x.h>                     
 53 #include <linux/sht15.h>                          
 54                                                   
 55 #include "devices.h"                              
 56 #include "generic.h"                              
 57                                                   
 58 /* Bluetooth */                                   
 59 #define SG2_BT_RESET            81                
 60                                                   
 61 /* SD */                                          
 62 #define SG2_GPIO_nSD_DETECT     90                
 63 #define SG2_SD_POWER_ENABLE     89                
 64                                                   
 65 static unsigned long stargate2_pin_config[] __    
 66                                                   
 67         GPIO15_nCS_1, /* SRAM */                  
 68         /* SMC91x */                              
 69         GPIO80_nCS_4,                             
 70         GPIO40_GPIO, /*cable detect?*/            
 71         /* Device Identification for wakeup*/     
 72         GPIO102_GPIO,                             
 73                                                   
 74         /* Button */                              
 75         GPIO91_GPIO | WAKEUP_ON_LEVEL_HIGH,       
 76                                                   
 77         /* DA9030 */                              
 78         GPIO1_GPIO,                               
 79                                                   
 80         /* Compact Flash */                       
 81         GPIO79_PSKTSEL,                           
 82         GPIO48_nPOE,                              
 83         GPIO49_nPWE,                              
 84         GPIO50_nPIOR,                             
 85         GPIO51_nPIOW,                             
 86         GPIO85_nPCE_1,                            
 87         GPIO54_nPCE_2,                            
 88         GPIO55_nPREG,                             
 89         GPIO56_nPWAIT,                            
 90         GPIO57_nIOIS16,                           
 91         GPIO120_GPIO, /* Buff ctrl */             
 92         GPIO108_GPIO, /* Power ctrl */            
 93         GPIO82_GPIO, /* Reset */                  
 94         GPIO53_GPIO, /* SG2_S0_GPIO_DETECT */     
 95                                                   
 96         /* MMC */                                 
 97         GPIO32_MMC_CLK,                           
 98         GPIO112_MMC_CMD,                          
 99         GPIO92_MMC_DAT_0,                         
100         GPIO109_MMC_DAT_1,                        
101         GPIO110_MMC_DAT_2,                        
102         GPIO111_MMC_DAT_3,                        
103         GPIO90_GPIO, /* nSD detect */             
104         GPIO89_GPIO, /* SD_POWER_ENABLE */        
105                                                   
106         /* Bluetooth */                           
107         GPIO81_GPIO, /* reset */                  
108                                                   
109         /* cc2420 802.15.4 radio */               
110         GPIO22_GPIO,            /* CC_RSTN  (o    
111         GPIO114_GPIO,           /* CC_FIFO (in    
112         GPIO116_GPIO,           /* CC_CCA (in)    
113         GPIO0_GPIO,             /* CC_FIFOP (i    
114         GPIO16_GPIO,            /* CCSFD (in)     
115         GPIO39_GPIO,            /* CSn (out) *    
116                                                   
117         /* I2C */                                 
118         GPIO117_I2C_SCL,                          
119         GPIO118_I2C_SDA,                          
120                                                   
121         /* SSP 3 - 802.15.4 radio */              
122         GPIO39_GPIO, /* chip select */            
123         GPIO34_SSP3_SCLK,                         
124         GPIO35_SSP3_TXD,                          
125         GPIO41_SSP3_RXD,                          
126                                                   
127         /* SSP 2 */                               
128         GPIO11_SSP2_RXD,                          
129         GPIO38_SSP2_TXD,                          
130         GPIO36_SSP2_SCLK,                         
131         GPIO37_GPIO, /* chip select */            
132                                                   
133         /* SSP 1 */                               
134         GPIO26_SSP1_RXD,                          
135         GPIO25_SSP1_TXD,                          
136         GPIO23_SSP1_SCLK,                         
137         GPIO24_GPIO, /* chip select */            
138                                                   
139         /* BTUART */                              
140         GPIO42_BTUART_RXD,                        
141         GPIO43_BTUART_TXD,                        
142         GPIO44_BTUART_CTS,                        
143         GPIO45_BTUART_RTS,                        
144                                                   
145         /* STUART */                              
146         GPIO46_STUART_RXD,                        
147         GPIO47_STUART_TXD,                        
148                                                   
149         /* Basic sensor board */                  
150         GPIO96_GPIO,    /* accelerometer inter    
151         GPIO99_GPIO,    /* ADC interrupt */       
152                                                   
153         /* Connector pins specified as gpios *    
154         GPIO94_GPIO, /* large basic connector     
155         GPIO10_GPIO, /* large basic connector     
156                                                   
157         /* SHT15 */                               
158         GPIO100_GPIO,                             
159         GPIO98_GPIO,                              
160 };                                                
161                                                   
162 /**                                               
163  * stargate2_reset_bluetooth() reset the bluec    
164  **/                                              
165 static int stargate2_reset_bluetooth(void)        
166 {                                                 
167         int err;                                  
168         err = gpio_request(SG2_BT_RESET, "SG2_    
169         if (err) {                                
170                 printk(KERN_ERR "Could not get    
171                 return err;                       
172         }                                         
173         gpio_direction_output(SG2_BT_RESET, 1)    
174         mdelay(5);                                
175         /* now reset it - 5 msec minimum */       
176         gpio_set_value(SG2_BT_RESET, 0);          
177         mdelay(10);                               
178         gpio_set_value(SG2_BT_RESET, 1);          
179         gpio_free(SG2_BT_RESET);                  
180         return 0;                                 
181 }                                                 
182                                                   
183 static struct led_info stargate2_leds[] = {       
184         {                                         
185                 .name = "sg2:red",                
186                 .flags = DA9030_LED_RATE_ON,      
187         }, {                                      
188                 .name = "sg2:blue",               
189                 .flags = DA9030_LED_RATE_ON,      
190         }, {                                      
191                 .name = "sg2:green",              
192                 .flags = DA9030_LED_RATE_ON,      
193         },                                        
194 };                                                
195                                                   
196 static struct sht15_platform_data platform_dat    
197         .gpio_data =  100,                        
198         .gpio_sck  =  98,                         
199 };                                                
200                                                   
201 static struct platform_device sht15 = {           
202         .name = "sht15",                          
203         .id = -1,                                 
204         .dev = {                                  
205                 .platform_data = &platform_dat    
206         },                                        
207 };                                                
208                                                   
209 static struct regulator_consumer_supply starga    
210         {                                         
211                 .dev = &sht15.dev,                
212                 .supply = "vcc",                  
213         },                                        
214 };                                                
215                                                   
216 enum stargate2_ldos{                              
217         vcc_vref,                                 
218         vcc_cc2420,                               
219         /* a mote connector? */                   
220         vcc_mica,                                 
221         /* the CSR bluecore chip */               
222         vcc_bt,                                   
223         /* The two voltages available to senso    
224         vcc_sensor_1_8,                           
225         vcc_sensor_3,                             
226         /* directly connected to the pxa27x */    
227         vcc_sram_ext,                             
228         vcc_pxa_pll,                              
229         vcc_pxa_usim, /* Reference voltage for    
230         vcc_pxa_mem,                              
231         vcc_pxa_flash,                            
232         vcc_pxa_core, /*Dc-Dc buck not yet sup    
233         vcc_lcd,                                  
234         vcc_bb,                                   
235         vcc_bbio, /*not sure!*/                   
236         vcc_io, /* cc2420 802.15.4 radio and p    
237 };                                                
238                                                   
239 /* The values of the various regulator constra    
240  * on exactly what is wired to each ldo.  Unfo    
241  * not generally available.  More information     
242  */                                               
243 static struct regulator_init_data stargate2_ld    
244         [vcc_bbio] = {                            
245                 .constraints = { /* board defa    
246                         .name = "vcc_bbio",       
247                         .min_uV = 1800000,        
248                         .max_uV = 1800000,        
249                 },                                
250         },                                        
251         [vcc_bb] = {                              
252                 .constraints = { /* board defa    
253                         .name = "vcc_bb",         
254                         .min_uV = 2700000,        
255                         .max_uV = 3000000,        
256                 },                                
257         },                                        
258         [vcc_pxa_flash] = {                       
259                 .constraints = {/* default is     
260                         .name = "vcc_pxa_flash    
261                         .min_uV = 1800000,        
262                         .max_uV = 1800000,        
263                 },                                
264         },                                        
265         [vcc_cc2420] = { /* also vcc_io */        
266                 .constraints = {                  
267                         /* board default is 2.    
268                         .name = "vcc_cc2420",     
269                         .min_uV = 2700000,        
270                         .max_uV = 3300000,        
271                 },                                
272         },                                        
273         [vcc_vref] = { /* Reference for what?     
274                 .constraints = { /* default 1.    
275                         .name = "vcc_vref",       
276                         .min_uV = 1800000,        
277                         .max_uV = 1800000,        
278                 },                                
279         },                                        
280         [vcc_sram_ext] = {                        
281                 .constraints = { /* default 2.    
282                         .name = "vcc_sram_ext"    
283                         .min_uV = 2800000,        
284                         .max_uV = 2800000,        
285                 },                                
286         },                                        
287         [vcc_mica] = {                            
288                 .constraints = { /* default 2.    
289                         .name = "vcc_mica",       
290                         .min_uV = 2800000,        
291                         .max_uV = 2800000,        
292                 },                                
293         },                                        
294         [vcc_bt] = {                              
295                 .constraints = { /* default 2.    
296                         .name = "vcc_bt",         
297                         .min_uV = 2800000,        
298                         .max_uV = 2800000,        
299                 },                                
300         },                                        
301         [vcc_lcd] = {                             
302                 .constraints = { /* default 2.    
303                         .name = "vcc_lcd",        
304                         .min_uV = 2700000,        
305                         .max_uV = 3300000,        
306                 },                                
307         },                                        
308         [vcc_io] = { /* Same or higher than ev    
309                           * bar vccbat and vcc    
310                 .constraints = { /* default 2.    
311                         .name = "vcc_io",         
312                         .min_uV = 2692000,        
313                         .max_uV = 3300000,        
314                 },                                
315         },                                        
316         [vcc_sensor_1_8] = {                      
317                 .constraints = { /* default 1.    
318                         .name = "vcc_sensor_1_    
319                         .min_uV = 1800000,        
320                         .max_uV = 1800000,        
321                 },                                
322         },                                        
323         [vcc_sensor_3] = { /* curiously defaul    
324                 .constraints = {                  
325                         .name = "vcc_sensor_3"    
326                         .min_uV = 2800000,        
327                         .max_uV = 3000000,        
328                 },                                
329                 .num_consumer_supplies = ARRAY    
330                 .consumer_supplies = stargate2    
331         },                                        
332         [vcc_pxa_pll] = { /* 1.17V - 1.43V, de    
333                 .constraints = {                  
334                         .name = "vcc_pxa_pll",    
335                         .min_uV = 1170000,        
336                         .max_uV = 1430000,        
337                 },                                
338         },                                        
339         [vcc_pxa_usim] = {                        
340                 .constraints = { /* default 1.    
341                         .name = "vcc_pxa_usim"    
342                         .min_uV = 1710000,        
343                         .max_uV = 2160000,        
344                 },                                
345         },                                        
346         [vcc_pxa_mem] = {                         
347                 .constraints = { /* default 1.    
348                         .name = "vcc_pxa_mem",    
349                         .min_uV = 1800000,        
350                         .max_uV = 1800000,        
351                 },                                
352         },                                        
353 };                                                
354                                                   
355 static struct da903x_subdev_info stargate2_da9    
356         {                                         
357                 .name = "da903x-led",             
358                 .id = DA9030_ID_LED_2,            
359                 .platform_data = &stargate2_le    
360         }, {                                      
361                 .name = "da903x-led",             
362                 .id = DA9030_ID_LED_3,            
363                 .platform_data = &stargate2_le    
364         }, {                                      
365                 .name = "da903x-led",             
366                 .id = DA9030_ID_LED_4,            
367                 .platform_data = &stargate2_le    
368         }, {                                      
369                 .name = "da903x-regulator",       
370                 .id = DA9030_ID_LDO2,             
371                 .platform_data = &stargate2_ld    
372         }, {                                      
373                 .name = "da903x-regulator",       
374                 .id = DA9030_ID_LDO3,             
375                 .platform_data = &stargate2_ld    
376         }, {                                      
377                 .name = "da903x-regulator",       
378                 .id = DA9030_ID_LDO4,             
379                 .platform_data = &stargate2_ld    
380         }, {                                      
381                 .name = "da903x-regulator",       
382                 .id = DA9030_ID_LDO5,             
383                 .platform_data = &stargate2_ld    
384         }, {                                      
385                 .name = "da903x-regulator",       
386                 .id = DA9030_ID_LDO6,             
387                 .platform_data = &stargate2_ld    
388         }, {                                      
389                 .name = "da903x-regulator",       
390                 .id = DA9030_ID_LDO7,             
391                 .platform_data = &stargate2_ld    
392         }, {                                      
393                 .name = "da903x-regulator",       
394                 .id = DA9030_ID_LDO8,             
395                 .platform_data = &stargate2_ld    
396         }, {                                      
397                 .name = "da903x-regulator",       
398                 .id = DA9030_ID_LDO9,             
399                 .platform_data = &stargate2_ld    
400         }, {                                      
401                 .name = "da903x-regulator",       
402                 .id = DA9030_ID_LDO10,            
403                 .platform_data = &stargate2_ld    
404         }, {                                      
405                 .name = "da903x-regulator",       
406                 .id = DA9030_ID_LDO11,            
407                 .platform_data = &stargate2_ld    
408         }, {                                      
409                 .name = "da903x-regulator",       
410                 .id = DA9030_ID_LDO12,            
411                 .platform_data = &stargate2_ld    
412         }, {                                      
413                 .name = "da903x-regulator",       
414                 .id = DA9030_ID_LDO15,            
415                 .platform_data = &stargate2_ld    
416         }, {                                      
417                 .name = "da903x-regulator",       
418                 .id = DA9030_ID_LDO17,            
419                 .platform_data = &stargate2_ld    
420         }, {                                      
421                 .name = "da903x-regulator", /*    
422                 .id = DA9030_ID_LDO18,            
423                 .platform_data = &stargate2_ld    
424         }, {                                      
425                 .name = "da903x-regulator",       
426                 .id = DA9030_ID_LDO19,            
427                 .platform_data = &stargate2_ld    
428         },                                        
429 };                                                
430                                                   
431 static struct da903x_platform_data stargate2_d    
432         .num_subdevs = ARRAY_SIZE(stargate2_da    
433         .subdevs = stargate2_da9030_subdevs,      
434 };                                                
435                                                   
436 static struct resource smc91x_resources[] = {     
437         [0] = {                                   
438                 .name = "smc91x-regs",            
439                 .start = (PXA_CS4_PHYS + 0x300    
440                 .end = (PXA_CS4_PHYS + 0xfffff    
441                 .flags = IORESOURCE_MEM,          
442         },                                        
443         [1] = {                                   
444                 .start = IRQ_GPIO(40),            
445                 .end = IRQ_GPIO(40),              
446                 .flags = IORESOURCE_IRQ | IORE    
447         }                                         
448 };                                                
449                                                   
450 static struct smc91x_platdata stargate2_smc91x    
451         .flags = SMC91X_USE_8BIT | SMC91X_USE_    
452         | SMC91X_NOWAIT | SMC91X_USE_DMA,         
453 };                                                
454                                                   
455 static struct platform_device smc91x_device =     
456         .name = "smc91x",                         
457         .id = -1,                                 
458         .num_resources = ARRAY_SIZE(smc91x_res    
459         .resource = smc91x_resources,             
460         .dev = {                                  
461                 .platform_data = &stargate2_sm    
462         },                                        
463 };                                                
464                                                   
465                                                   
466                                                   
467 static struct pxamci_platform_data stargate2_m    
468                                                   
469 /*                                                
470  * The card detect interrupt isn't debounced s    
471  * to give the card a chance to fully insert /    
472  */                                               
473 static int stargate2_mci_init(struct device *d    
474                               irq_handler_t st    
475                               void *data)         
476 {                                                 
477         int err;                                  
478                                                   
479         err = gpio_request(SG2_SD_POWER_ENABLE    
480         if (err) {                                
481                 printk(KERN_ERR "Can't get the    
482                 goto return_err;                  
483         }                                         
484         gpio_direction_output(SG2_SD_POWER_ENA    
485                                                   
486         err = gpio_request(SG2_GPIO_nSD_DETECT    
487         if (err) {                                
488                 printk(KERN_ERR "Can't get the    
489                 goto free_power_en;               
490         }                                         
491         gpio_direction_input(SG2_GPIO_nSD_DETE    
492         /* Delay to allow for full insertion *    
493         stargate2_mci_platform_data.detect_del    
494                                                   
495         err = request_irq(IRQ_GPIO(SG2_GPIO_nS    
496                           stargate2_detect_int    
497                           IRQ_TYPE_EDGE_BOTH,     
498                           "MMC card detect",      
499                           data);                  
500         if (err) {                                
501                 printk(KERN_ERR "can't request    
502                 goto free_nsd_detect;             
503         }                                         
504         return 0;                                 
505                                                   
506  free_nsd_detect:                                 
507         gpio_free(SG2_GPIO_nSD_DETECT);           
508  free_power_en:                                   
509         gpio_free(SG2_SD_POWER_ENABLE);           
510  return_err:                                      
511         return err;                               
512 }                                                 
513                                                   
514 /**                                               
515  * stargate2_mci_setpower() - set state of mmc    
516  *                                                
517  * Very simple control. Either it is on or off    
518  * a gpio pin */                                  
519 static void stargate2_mci_setpower(struct devi    
520 {                                                 
521         gpio_set_value(SG2_SD_POWER_ENABLE, !!    
522 }                                                 
523                                                   
524 static void stargate2_mci_exit(struct device *    
525 {                                                 
526         free_irq(IRQ_GPIO(SG2_GPIO_nSD_DETECT)    
527         gpio_free(SG2_SD_POWER_ENABLE);           
528         gpio_free(SG2_GPIO_nSD_DETECT);           
529 }                                                 
530                                                   
531 static struct pxamci_platform_data stargate2_m    
532         .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33    
533         .init = stargate2_mci_init,               
534         .setpower = stargate2_mci_setpower,       
535         .exit = stargate2_mci_exit,               
536 };                                                
537                                                   
538 static struct mtd_partition stargate2flash_par    
539         {                                         
540                 .name = "Bootloader",             
541                 .size = 0x00040000,               
542                 .offset = 0,                      
543                 .mask_flags = 0,                  
544         }, {                                      
545                 .name = "Kernel",                 
546                 .size = 0x00200000,               
547                 .offset = 0x00040000,             
548                 .mask_flags = 0                   
549         }, {                                      
550                 .name = "Filesystem",             
551                 .size = 0x01DC0000,               
552                 .offset = 0x00240000,             
553                 .mask_flags = 0                   
554         },                                        
555 };                                                
556                                                   
557 static struct resource flash_resources = {        
558         .start = PXA_CS0_PHYS,                    
559         .end = PXA_CS0_PHYS + SZ_32M - 1,         
560         .flags = IORESOURCE_MEM,                  
561 };                                                
562                                                   
563 static struct flash_platform_data stargate2_fl    
564         .map_name = "cfi_probe",                  
565         .parts = stargate2flash_partitions,       
566         .nr_parts = ARRAY_SIZE(stargate2flash_    
567         .name = "PXA27xOnChipROM",                
568         .width = 2,                               
569 };                                                
570                                                   
571 static struct platform_device stargate2_flash_    
572         .name = "pxa2xx-flash",                   
573         .id = 0,                                  
574         .dev = {                                  
575                 .platform_data = &stargate2_fl    
576         },                                        
577         .resource = &flash_resources,             
578         .num_resources = 1,                       
579 };                                                
580                                                   
581 /*                                                
582  * SRAM - The Stargate 2 has 32MB of SRAM.        
583  *                                                
584  * Here it is made available as an MTD. This w    
585  * typically have a cifs filesystem created on    
586  * fast temporary storage.                        
587  */                                               
588 static struct resource sram_resources = {         
589         .start = PXA_CS1_PHYS,                    
590         .end = PXA_CS1_PHYS + SZ_32M-1,           
591         .flags = IORESOURCE_MEM,                  
592 };                                                
593                                                   
594 static struct platdata_mtd_ram stargate2_sram_    
595         .mapname = "Stargate2 SRAM",              
596         .bankwidth = 2,                           
597 };                                                
598                                                   
599 static struct platform_device stargate2_sram =    
600         .name = "mtd-ram",                        
601         .id = 0,                                  
602         .resource = &sram_resources,              
603         .num_resources = 1,                       
604         .dev = {                                  
605                 .platform_data = &stargate2_sr    
606         },                                        
607 };                                                
608                                                   
609 static struct pcf857x_platform_data platform_d    
610         .gpio_base = 128,                         
611         .n_latch = 0,                             
612         .setup = NULL,                            
613         .teardown = NULL,                         
614         .context = NULL,                          
615 };                                                
616                                                   
617 static struct at24_platform_data pca9500_eepro    
618         .byte_len = 256,                          
619         .page_size = 4,                           
620 };                                                
621                                                   
622                                                   
623 static struct i2c_board_info __initdata starga    
624         /* Techically this a pca9500 - but it'    
625          * for gpio expansion and the 24c02 fo    
626          */                                       
627         {                                         
628                 .type = "pcf8574",                
629                 .addr =  0x27,                    
630                 .platform_data = &platform_dat    
631         }, {                                      
632                 .type = "24c02",                  
633                 .addr = 0x57,                     
634                 .platform_data = &pca9500_eepr    
635         }, {                                      
636                 .type = "max1238",                
637                 .addr = 0x35,                     
638         }, { /* ITS400 Sensor board only */       
639                 .type = "max1363",                
640                 .addr = 0x34,                     
641                 /* Through a nand gate - Also     
642                  * pull up resistors are missi    
643                  */                               
644                 .irq = IRQ_GPIO(99),              
645         }, { /* ITS400 Sensor board only */       
646                 .type = "tsl2561",                
647                 .addr = 0x49,                     
648                 /* Through a nand gate - Also     
649                  * pull up resistors are missi    
650                  */                               
651                 .irq = IRQ_GPIO(99),              
652         }, { /* ITS400 Sensor board only */       
653                 .type = "tmp175",                 
654                 .addr = 0x4A,                     
655                 .irq = IRQ_GPIO(96),              
656         },                                        
657 };                                                
658                                                   
659 static struct i2c_board_info __initdata starga    
660         {                                         
661                 .type = "da9030",                 
662                 .addr = 0x49,                     
663                 .platform_data = &stargate2_da    
664                 .irq = gpio_to_irq(1),            
665         },                                        
666 };                                                
667                                                   
668 static struct pxa2xx_spi_master pxa_ssp_master    
669         .num_chipselect = 1,                      
670 };                                                
671                                                   
672 static struct pxa2xx_spi_master pxa_ssp_master    
673         .num_chipselect = 1,                      
674 };                                                
675                                                   
676 static struct pxa2xx_spi_master pxa_ssp_master    
677         .num_chipselect = 1,                      
678 };                                                
679                                                   
680 /* An upcoming kernel change will scrap SFRM u    
681  * drivers have been moved to use gpio's via c    
682 static struct pxa2xx_spi_chip staccel_chip_inf    
683         .tx_threshold = 8,                        
684         .rx_threshold = 8,                        
685         .dma_burst_size = 8,                      
686         .timeout = 235,                           
687         .gpio_cs = 24,                            
688 };                                                
689                                                   
690 static struct pxa2xx_spi_chip cc2420_info = {     
691         .tx_threshold = 8,                        
692         .rx_threshold = 8,                        
693         .dma_burst_size = 8,                      
694         .timeout = 235,                           
695         .gpio_cs = 39,                            
696 };                                                
697                                                   
698 static struct spi_board_info spi_board_info[]     
699         {                                         
700                 .modalias = "lis3l02dq",          
701                 .max_speed_hz = 8000000,/* 8MH    
702                 .bus_num = 1,                     
703                 .chip_select = 0,                 
704                 .controller_data = &staccel_ch    
705                 .irq = IRQ_GPIO(96),              
706         }, {                                      
707                 .modalias = "cc2420",             
708                 .max_speed_hz = 6500000,          
709                 .bus_num = 3,                     
710                 .chip_select = 0,                 
711                 .controller_data = &cc2420_inf    
712         },                                        
713 };                                                
714                                                   
715 static void sg2_udc_command(int cmd)              
716 {                                                 
717         switch (cmd) {                            
718         case PXA2XX_UDC_CMD_CONNECT:              
719                 UP2OCR |=  UP2OCR_HXOE  | UP2O    
720                 break;                            
721         case PXA2XX_UDC_CMD_DISCONNECT:           
722                 UP2OCR &= ~(UP2OCR_HXOE  | UP2    
723                 break;                            
724         }                                         
725 }                                                 
726                                                   
727 /* Board doesn't support cable detection - so     
728  * something is there.                            
729  */                                               
730 static int sg2_udc_detect(void)                   
731 {                                                 
732         return 1;                                 
733 }                                                 
734                                                   
735 static struct pxa2xx_udc_mach_info stargate2_u    
736         .udc_is_connected       = sg2_udc_dete    
737         .udc_command            = sg2_udc_comm    
738 };                                                
739                                                   
740 static struct platform_device *stargate2_devic    
741         &stargate2_flash_device,                  
742         &stargate2_sram,                          
743         &smc91x_device,                           
744         &sht15,                                   
745 };                                                
746                                                   
747 static struct i2c_pxa_platform_data i2c_pwr_pd    
748         .fast_mode = 1,                           
749 };                                                
750                                                   
751 static struct i2c_pxa_platform_data i2c_pdata     
752         .fast_mode = 1,                           
753 };                                                
754                                                   
755 static void __init stargate2_init(void)           
756 {                                                 
757         /* This is probably a board specific h    
758            prior to connecting the MFP stuff u    
759         MECR &= ~MECR_NOS;                        
760                                                   
761         pxa2xx_mfp_config(ARRAY_AND_SIZE(starg    
762                                                   
763         /* spi chip selects */                    
764         gpio_direction_output(37, 0);             
765         gpio_direction_output(24, 0);             
766         gpio_direction_output(39, 0);             
767                                                   
768         platform_add_devices(ARRAY_AND_SIZE(st    
769                                                   
770         pxa2xx_set_spi_info(1, &pxa_ssp_master    
771         pxa2xx_set_spi_info(2, &pxa_ssp_master    
772         pxa2xx_set_spi_info(3, &pxa_ssp_master    
773         spi_register_board_info(spi_board_info    
774                                                   
775         i2c_register_board_info(0, ARRAY_AND_S    
776         i2c_register_board_info(1,                
777                                 ARRAY_AND_SIZE    
778         pxa27x_set_i2c_power_info(&i2c_pwr_pda    
779         pxa_set_i2c_info(&i2c_pdata);             
780                                                   
781         pxa_set_mci_info(&stargate2_mci_platfo    
782                                                   
783         pxa_set_udc_info(&stargate2_udc_info);    
784                                                   
785         stargate2_reset_bluetooth();              
786 }                                                 
787                                                   
788 MACHINE_START(STARGATE2, "Stargate 2")            
789         .phys_io = 0x40000000,                    
790         .io_pg_offst = (io_p2v(0x40000000) >>     
791         .map_io = pxa_map_io,                     
792         .init_irq = pxa27x_init_irq,              
793         .timer = &pxa_timer,                      
794         .init_machine = stargate2_init,           
795         .boot_params = 0xA0000100,                
796 MACHINE_END                                       
797                                                   
  This page was automatically generated by the LXR engine.