| 
									
										
										
										
											2008-07-11 00:33:08 +09:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * linux/include/asm-mips/txx9/generic.h | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This file is subject to the terms and conditions of the GNU General Public | 
					
						
							|  |  |  |  * License.  See the file "COPYING" in the main directory of this archive | 
					
						
							|  |  |  |  * for more details. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef __ASM_TXX9_GENERIC_H
 | 
					
						
							|  |  |  | #define __ASM_TXX9_GENERIC_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/init.h>
 | 
					
						
							|  |  |  | #include <linux/ioport.h>	/* for struct resource */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern struct resource txx9_ce_res[]; | 
					
						
							| 
									
										
										
										
											2008-07-19 01:51:47 +09:00
										 |  |  | #define TXX9_CE(n)	(unsigned long)(txx9_ce_res[(n)].start)
 | 
					
						
							|  |  |  | extern unsigned int txx9_pcode; | 
					
						
							| 
									
										
										
										
											2008-07-11 00:33:08 +09:00
										 |  |  | extern char txx9_pcode_str[8]; | 
					
						
							|  |  |  | void txx9_reg_res_init(unsigned int pcode, unsigned long base, | 
					
						
							|  |  |  | 		       unsigned long size); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern unsigned int txx9_master_clock; | 
					
						
							|  |  |  | extern unsigned int txx9_cpu_clock; | 
					
						
							|  |  |  | extern unsigned int txx9_gbus_clock; | 
					
						
							| 
									
										
										
										
											2008-07-19 01:51:47 +09:00
										 |  |  | #define TXX9_IMCLK	(txx9_gbus_clock / 2)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern int txx9_ccfg_toeon; | 
					
						
							|  |  |  | struct uart_port; | 
					
						
							|  |  |  | int early_serial_txx9_setup(struct uart_port *port); | 
					
						
							| 
									
										
										
										
											2008-07-11 00:33:08 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-11 23:27:54 +09:00
										 |  |  | struct pci_dev; | 
					
						
							|  |  |  | struct txx9_board_vec { | 
					
						
							|  |  |  | 	const char *system; | 
					
						
							|  |  |  | 	void (*prom_init)(void); | 
					
						
							|  |  |  | 	void (*mem_setup)(void); | 
					
						
							|  |  |  | 	void (*irq_setup)(void); | 
					
						
							|  |  |  | 	void (*time_init)(void); | 
					
						
							|  |  |  | 	void (*arch_init)(void); | 
					
						
							|  |  |  | 	void (*device_init)(void); | 
					
						
							|  |  |  | #ifdef CONFIG_PCI
 | 
					
						
							|  |  |  | 	int (*pci_map_irq)(const struct pci_dev *dev, u8 slot, u8 pin); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | extern struct txx9_board_vec *txx9_board_vec; | 
					
						
							|  |  |  | extern int (*txx9_irq_dispatch)(int pending); | 
					
						
							| 
									
										
										
										
											2008-07-14 00:15:04 +09:00
										 |  |  | char *prom_getcmdline(void); | 
					
						
							| 
									
										
										
										
											2008-08-19 22:55:07 +09:00
										 |  |  | const char *prom_getenv(const char *name); | 
					
						
							| 
									
										
										
										
											2008-07-24 00:25:18 +09:00
										 |  |  | void txx9_wdt_init(unsigned long base); | 
					
						
							| 
									
										
										
										
											2008-08-19 22:55:15 +09:00
										 |  |  | void txx9_wdt_now(unsigned long base); | 
					
						
							| 
									
										
										
										
											2008-07-24 00:25:20 +09:00
										 |  |  | void txx9_spi_init(int busid, unsigned long base, int irq); | 
					
						
							|  |  |  | void txx9_ethaddr_init(unsigned int id, unsigned char *ethaddr); | 
					
						
							| 
									
										
										
										
											2008-07-25 23:08:06 +09:00
										 |  |  | void txx9_sio_init(unsigned long baseaddr, int irq, | 
					
						
							|  |  |  | 		   unsigned int line, unsigned int sclk, int nocts); | 
					
						
							| 
									
										
										
										
											2008-07-29 22:10:08 +09:00
										 |  |  | void prom_putchar(char c); | 
					
						
							|  |  |  | #ifdef CONFIG_EARLY_PRINTK
 | 
					
						
							|  |  |  | extern void (*txx9_prom_putchar)(char c); | 
					
						
							|  |  |  | void txx9_sio_putchar_init(unsigned long baseaddr); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline void txx9_sio_putchar_init(unsigned long baseaddr) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-07-11 23:27:54 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-19 22:55:11 +09:00
										 |  |  | struct physmap_flash_data; | 
					
						
							|  |  |  | void txx9_physmap_flash_init(int no, unsigned long addr, unsigned long size, | 
					
						
							|  |  |  | 			     const struct physmap_flash_data *pdata); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-01 22:22:37 +09:00
										 |  |  | /* 8 bit version of __fls(): find first bit set (returns 0..7) */ | 
					
						
							|  |  |  | static inline unsigned int __fls8(unsigned char x) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	int r = 7; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (!(x & 0xf0)) { | 
					
						
							|  |  |  | 		r -= 4; | 
					
						
							|  |  |  | 		x <<= 4; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	if (!(x & 0xc0)) { | 
					
						
							|  |  |  | 		r -= 2; | 
					
						
							|  |  |  | 		x <<= 2; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	if (!(x & 0x80)) | 
					
						
							|  |  |  | 		r -= 1; | 
					
						
							|  |  |  | 	return r; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-01 22:22:38 +09:00
										 |  |  | void txx9_iocled_init(unsigned long baseaddr, | 
					
						
							|  |  |  | 		      int basenum, unsigned int num, int lowactive, | 
					
						
							|  |  |  | 		      const char *color, char **deftriggers); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-20 23:28:50 +09:00
										 |  |  | /* 7SEG LED */ | 
					
						
							|  |  |  | void txx9_7segled_init(unsigned int num, | 
					
						
							|  |  |  | 		       void (*putc)(unsigned int pos, unsigned char val)); | 
					
						
							|  |  |  | int txx9_7segled_putc(unsigned int pos, char c); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-19 22:12:22 +09:00
										 |  |  | void __init txx9_aclc_init(unsigned long baseaddr, int irq, | 
					
						
							|  |  |  | 			   unsigned int dmac_id, | 
					
						
							|  |  |  | 			   unsigned int dma_chan_out, | 
					
						
							|  |  |  | 			   unsigned int dma_chan_in); | 
					
						
							| 
									
										
										
										
											2009-05-25 22:04:02 +09:00
										 |  |  | void __init txx9_sramc_init(struct resource *r); | 
					
						
							| 
									
										
										
										
											2009-05-19 22:12:22 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-11 00:33:08 +09:00
										 |  |  | #endif /* __ASM_TXX9_GENERIC_H */
 |