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-sa1100/hackkit.c (Version 2.6.31.13) and /linux/arch/i386/mach-sa1100/hackkit.c (Version 2.6.11.8)


  1 /*                                                  1 
  2  * linux/arch/arm/mach-sa1100/hackkit.c           
  3  *                                                
  4  * Copyright (C) 2002 Stefan Eletzhofer <stefa    
  5  *                                                
  6  * This file contains all HackKit tweaks. Base    
  7  * Nicolas Pitre's assabet fixes                  
  8  *                                                
  9  * This program is free software; you can redi    
 10  * it under the terms of the GNU General Publi    
 11  * published by the Free Software Foundation.     
 12  *                                                
 13  */                                               
 14 #include <linux/init.h>                           
 15 #include <linux/kernel.h>                         
 16 #include <linux/sched.h>                          
 17 #include <linux/tty.h>                            
 18 #include <linux/module.h>                         
 19 #include <linux/errno.h>                          
 20 #include <linux/cpufreq.h>                        
 21 #include <linux/serial_core.h>                    
 22 #include <linux/mtd/mtd.h>                        
 23 #include <linux/mtd/partitions.h>                 
 24                                                   
 25 #include <mach/hardware.h>                        
 26 #include <asm/mach-types.h>                       
 27 #include <asm/setup.h>                            
 28 #include <asm/page.h>                             
 29 #include <asm/pgtable.h>                          
 30 #include <asm/irq.h>                              
 31                                                   
 32 #include <asm/mach/arch.h>                        
 33 #include <asm/mach/flash.h>                       
 34 #include <asm/mach/map.h>                         
 35 #include <asm/mach/irq.h>                         
 36 #include <asm/mach/serial_sa1100.h>               
 37                                                   
 38 #include "generic.h"                              
 39                                                   
 40 /*********************************************    
 41  *  prototypes                                    
 42  */                                               
 43                                                   
 44 /* init funcs */                                  
 45 static void __init hackkit_map_io(void);          
 46                                                   
 47 static u_int hackkit_get_mctrl(struct uart_por    
 48 static void hackkit_set_mctrl(struct uart_port    
 49 static void hackkit_uart_pm(struct uart_port *    
 50                                                   
 51 /*********************************************    
 52  *  global data                                   
 53  */                                               
 54                                                   
 55 /*********************************************    
 56  *  static data                                   
 57  */                                               
 58                                                   
 59 static struct map_desc hackkit_io_desc[] __ini    
 60         {       /* Flash bank 0 */                
 61                 .virtual        =  0xe8000000,    
 62                 .pfn            = __phys_to_pf    
 63                 .length         = 0x01000000,     
 64                 .type           = MT_DEVICE       
 65         },                                        
 66 };                                                
 67                                                   
 68 static struct sa1100_port_fns hackkit_port_fns    
 69         .set_mctrl      = hackkit_set_mctrl,      
 70         .get_mctrl      = hackkit_get_mctrl,      
 71         .pm             = hackkit_uart_pm,        
 72 };                                                
 73                                                   
 74 /*********************************************    
 75  *  Static functions                              
 76  */                                               
 77                                                   
 78 static void __init hackkit_map_io(void)           
 79 {                                                 
 80         sa1100_map_io();                          
 81         iotable_init(hackkit_io_desc, ARRAY_SI    
 82                                                   
 83         sa1100_register_uart_fns(&hackkit_port    
 84         sa1100_register_uart(0, 1);     /* com    
 85         sa1100_register_uart(1, 2);               
 86         sa1100_register_uart(2, 3);     /* rad    
 87                                                   
 88         Ser1SDCR0 |= SDCR0_SUS;                   
 89 }                                                 
 90                                                   
 91 /**                                               
 92  *      hackkit_uart_pm - powermgmt callback f    
 93  *      @port: uart port structure                
 94  *      @state: pm state                          
 95  *      @oldstate: old pm state                   
 96  *                                                
 97  */                                               
 98 static void hackkit_uart_pm(struct uart_port *    
 99 {                                                 
100         /* TODO: switch on/off uart in powersa    
101 }                                                 
102                                                   
103 /*                                                
104  * Note! this can be called from IRQ context.     
105  * FIXME: No modem ctrl lines yet.                
106  */                                               
107 static void hackkit_set_mctrl(struct uart_port    
108 {                                                 
109 #if 0                                             
110         if (port->mapbase == _Ser1UTCR0) {        
111                 u_int set = 0, clear = 0;         
112                                                   
113                 if (mctrl & TIOCM_RTS)            
114                         set |= PT_CTRL2_RS1_RT    
115                 else                              
116                         clear |= PT_CTRL2_RS1_    
117                                                   
118                 if (mctrl & TIOCM_DTR)            
119                         set |= PT_CTRL2_RS1_DT    
120                 else                              
121                         clear |= PT_CTRL2_RS1_    
122                                                   
123                 PTCTRL2_clear(clear);             
124                 PTCTRL2_set(set);                 
125         }                                         
126 #endif                                            
127 }                                                 
128                                                   
129 static u_int hackkit_get_mctrl(struct uart_por    
130 {                                                 
131         u_int ret = 0;                            
132 #if 0                                             
133         u_int irqsr = PT_IRQSR;                   
134                                                   
135         /* need 2 reads to read current value     
136         irqsr = PT_IRQSR;                         
137                                                   
138         /* TODO: check IRQ source register for    
139          status lines and set them correctly.     
140 #endif                                            
141                                                   
142         ret = TIOCM_CD | TIOCM_CTS | TIOCM_DSR    
143                                                   
144         return ret;                               
145 }                                                 
146                                                   
147 static struct mtd_partition hackkit_partitions    
148         {                                         
149                 .name           = "BLOB",         
150                 .size           = 0x00040000,     
151                 .offset         = 0x00000000,     
152                 .mask_flags     = MTD_WRITEABL    
153         }, {                                      
154                 .name           = "config",       
155                 .size           = 0x00040000,     
156                 .offset         = MTDPART_OFS_    
157         }, {                                      
158                 .name           = "kernel",       
159                 .size           = 0x00100000,     
160                 .offset         = MTDPART_OFS_    
161         }, {                                      
162                 .name           = "initrd",       
163                 .size           = 0x00180000,     
164                 .offset         = MTDPART_OFS_    
165         }, {                                      
166                 .name           = "rootfs",       
167                 .size           = 0x700000,       
168                 .offset         = MTDPART_OFS_    
169         }, {                                      
170                 .name           = "data",         
171                 .size           = MTDPART_SIZ_    
172                 .offset         = MTDPART_OFS_    
173         }                                         
174 };                                                
175                                                   
176 static struct flash_platform_data hackkit_flas    
177         .map_name       = "cfi_probe",            
178         .parts          = hackkit_partitions,     
179         .nr_parts       = ARRAY_SIZE(hackkit_p    
180 };                                                
181                                                   
182 static struct resource hackkit_flash_resource     
183         .start          = SA1100_CS0_PHYS,        
184         .end            = SA1100_CS0_PHYS + SZ    
185         .flags          = IORESOURCE_MEM,         
186 };                                                
187                                                   
188 static void __init hackkit_init(void)             
189 {                                                 
190         sa11x0_set_flash_data(&hackkit_flash_d    
191 }                                                 
192                                                   
193 /*********************************************    
194  *  Exported Functions                            
195  */                                               
196                                                   
197 MACHINE_START(HACKKIT, "HackKit Cpu Board")       
198         .phys_io        = 0x80000000,             
199         .io_pg_offst    = ((0xf8000000) >> 18)    
200         .boot_params    = 0xc0000100,             
201         .map_io         = hackkit_map_io,         
202         .init_irq       = sa1100_init_irq,        
203         .timer          = &sa1100_timer,          
204         .init_machine   = hackkit_init,           
205 MACHINE_END                                       
206                                                   
  This page was automatically generated by the LXR engine.