-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJPBUxHAAoJEEFnBt12D9kBfB8QAIj/sGqC4WYpQBU9PyGiSAfq Xz5mBqAoILAjLD5SK1eR/N6+CHFt2scsyRkOubfg/4bn0I9Kr37oSXPcVqY24EKw zn2tEcDDJdCMzW/CFBEcOfcKfcNl1dgEXodhoOrSAeyaZeL24V5O1SvrwKGINQIp NPO/nHeEf7tRncscfeCFSK6h98dIhRZt+xpthIIZxYym5jd9vzRjk21dG6egcHOo RTfW2CwA0cu3h2EtR1DCCMwfL+Ze1na4iYcXcTT/5xEUjmkJrM/I44djb9blfWLR X0gPuj7q6t+eBKDZqnJufDbY79oOpQN8mgAeCrBwF5I27zAzn6FIRQ7Wobmv0DXr NrqsduI+nImAyVR1jeWBGAnowNPXfxd9YboATkph5LTpelQ1cZ/tikxVDteBtDSb voH68FKFmFZl3QlpFjJnIsodn57ETmUuezA4Xq+iJTHBMpLpcLCZ4RyAoiJRHca6 lGwBArLo+wpuRdd/BB+rI+CV6ACbJqwb8Yd6ZTw5lW0eaMPTT93ffteChfEQPMq0 mGVTYY6kVM9ReFPEkcxnQ3RyPF0XqP2TTp37gXC4/Y2LVMqg0UrrWxtwaU2har/Z bUF1JOKiZ6+CWJJwMw7coP7rBCPUz6FDApuDmQo9+I7MjxjFkzYzPtisUs9y7wjx /XA9z93mB/O+wcbuvqCo =CI17 -----END PGP SIGNATURE----- Merge tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6 devicetree/next changes queued for v3.3 merge window * tag 'devicetree-for-linus-20120104' of git://git.secretlab.ca/git/linux-2.6: ARM: prom.h: Fix build error by removing unneeded header file irq: check domain hwirq range for DT translate dt: add empty of_get_node/of_put_node functions of/pdt: fix section mismatch warning i2c-designware: add OF binding support dt/i2c: Enumerate some of the known trivial i2c devices dt: reform for_each_property to for_each_property_of_node ARM/of: allow *machine_desc.dt_compat to be const of/base: Take NULL string into account for property with multiple strings OF/device-tree: Add some entries to vendor-prefixes.txt Fix up trivial add-add conflicts in include/linux/of.h
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			2.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			2.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 *  arch/arm/include/asm/mach/arch.h
 | 
						|
 *
 | 
						|
 *  Copyright (C) 2000 Russell King
 | 
						|
 *
 | 
						|
 * This program is free software; you can redistribute it and/or modify
 | 
						|
 * it under the terms of the GNU General Public License version 2 as
 | 
						|
 * published by the Free Software Foundation.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __ASSEMBLY__
 | 
						|
 | 
						|
struct tag;
 | 
						|
struct meminfo;
 | 
						|
struct sys_timer;
 | 
						|
struct pt_regs;
 | 
						|
 | 
						|
struct machine_desc {
 | 
						|
	unsigned int		nr;		/* architecture number	*/
 | 
						|
	const char		*name;		/* architecture name	*/
 | 
						|
	unsigned long		atag_offset;	/* tagged list (relative) */
 | 
						|
	const char *const 	*dt_compat;	/* array of device tree
 | 
						|
						 * 'compatible' strings	*/
 | 
						|
 | 
						|
	unsigned int		nr_irqs;	/* number of IRQs */
 | 
						|
 | 
						|
#ifdef CONFIG_ZONE_DMA
 | 
						|
	unsigned long		dma_zone_size;	/* size of DMA-able area */
 | 
						|
#endif
 | 
						|
 | 
						|
	unsigned int		video_start;	/* start of video RAM	*/
 | 
						|
	unsigned int		video_end;	/* end of video RAM	*/
 | 
						|
 | 
						|
	unsigned char		reserve_lp0 :1;	/* never has lp0	*/
 | 
						|
	unsigned char		reserve_lp1 :1;	/* never has lp1	*/
 | 
						|
	unsigned char		reserve_lp2 :1;	/* never has lp2	*/
 | 
						|
	char			restart_mode;	/* default restart mode	*/
 | 
						|
	void			(*fixup)(struct tag *, char **,
 | 
						|
					 struct meminfo *);
 | 
						|
	void			(*reserve)(void);/* reserve mem blocks	*/
 | 
						|
	void			(*map_io)(void);/* IO mapping function	*/
 | 
						|
	void			(*init_early)(void);
 | 
						|
	void			(*init_irq)(void);
 | 
						|
	struct sys_timer	*timer;		/* system tick timer	*/
 | 
						|
	void			(*init_machine)(void);
 | 
						|
#ifdef CONFIG_MULTI_IRQ_HANDLER
 | 
						|
	void			(*handle_irq)(struct pt_regs *);
 | 
						|
#endif
 | 
						|
	void			(*restart)(char, const char *);
 | 
						|
};
 | 
						|
 | 
						|
/*
 | 
						|
 * Current machine - only accessible during boot.
 | 
						|
 */
 | 
						|
extern struct machine_desc *machine_desc;
 | 
						|
 | 
						|
/*
 | 
						|
 * Machine type table - also only accessible during boot
 | 
						|
 */
 | 
						|
extern struct machine_desc __arch_info_begin[], __arch_info_end[];
 | 
						|
#define for_each_machine_desc(p)			\
 | 
						|
	for (p = __arch_info_begin; p < __arch_info_end; p++)
 | 
						|
 | 
						|
/*
 | 
						|
 * Set of macros to define architecture features.  This is built into
 | 
						|
 * a table by the linker.
 | 
						|
 */
 | 
						|
#define MACHINE_START(_type,_name)			\
 | 
						|
static const struct machine_desc __mach_desc_##_type	\
 | 
						|
 __used							\
 | 
						|
 __attribute__((__section__(".arch.info.init"))) = {	\
 | 
						|
	.nr		= MACH_TYPE_##_type,		\
 | 
						|
	.name		= _name,
 | 
						|
 | 
						|
#define MACHINE_END				\
 | 
						|
};
 | 
						|
 | 
						|
#define DT_MACHINE_START(_name, _namestr)		\
 | 
						|
static const struct machine_desc __mach_desc_##_name	\
 | 
						|
 __used							\
 | 
						|
 __attribute__((__section__(".arch.info.init"))) = {	\
 | 
						|
	.nr		= ~0,				\
 | 
						|
	.name		= _namestr,
 | 
						|
 | 
						|
#endif
 |