Merge commit 'md/for-linus' into async-tx-next
Conflicts: drivers/md/raid5.c
This commit is contained in:
		
				commit
				
					
						9134d02bc0
					
				
			
		
					 2203 changed files with 56000 additions and 32067 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -27,6 +27,7 @@
 | 
				
			||||||
*.gz
 | 
					*.gz
 | 
				
			||||||
*.lzma
 | 
					*.lzma
 | 
				
			||||||
*.patch
 | 
					*.patch
 | 
				
			||||||
 | 
					*.gcno
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Top-level generic files
 | 
					# Top-level generic files
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								CREDITS
									
										
									
									
									
								
							
							
						
						
									
										8
									
								
								CREDITS
									
										
									
									
									
								
							| 
						 | 
					@ -1856,7 +1856,7 @@ E: rfkoenig@immd4.informatik.uni-erlangen.de
 | 
				
			||||||
D: The Linux Support Team Erlangen
 | 
					D: The Linux Support Team Erlangen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
N: Andreas Koensgen
 | 
					N: Andreas Koensgen
 | 
				
			||||||
E: ajk@iehk.rwth-aachen.de
 | 
					E: ajk@comnets.uni-bremen.de
 | 
				
			||||||
D: 6pack driver for AX.25
 | 
					D: 6pack driver for AX.25
 | 
				
			||||||
 | 
					
 | 
				
			||||||
N: Harald Koerfgen
 | 
					N: Harald Koerfgen
 | 
				
			||||||
| 
						 | 
					@ -2006,6 +2006,9 @@ E: paul@laufernet.com
 | 
				
			||||||
D: Soundblaster driver fixes, ISAPnP quirk
 | 
					D: Soundblaster driver fixes, ISAPnP quirk
 | 
				
			||||||
S: California, USA
 | 
					S: California, USA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					N: Jonathan Layes
 | 
				
			||||||
 | 
					D: ARPD support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
N: Tom Lees
 | 
					N: Tom Lees
 | 
				
			||||||
E: tom@lpsg.demon.co.uk
 | 
					E: tom@lpsg.demon.co.uk
 | 
				
			||||||
W: http://www.lpsg.demon.co.uk/
 | 
					W: http://www.lpsg.demon.co.uk/
 | 
				
			||||||
| 
						 | 
					@ -3802,6 +3805,9 @@ S: van Bronckhorststraat 12
 | 
				
			||||||
S: 2612 XV Delft
 | 
					S: 2612 XV Delft
 | 
				
			||||||
S: The Netherlands
 | 
					S: The Netherlands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					N: Thomas Woller
 | 
				
			||||||
 | 
					D: CS461x Cirrus Logic sound driver
 | 
				
			||||||
 | 
					
 | 
				
			||||||
N: David Woodhouse
 | 
					N: David Woodhouse
 | 
				
			||||||
E: dwmw2@infradead.org
 | 
					E: dwmw2@infradead.org
 | 
				
			||||||
D: JFFS2 file system, Memory Technology Device subsystem,
 | 
					D: JFFS2 file system, Memory Technology Device subsystem,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -94,28 +94,37 @@ What:		/sys/block/<disk>/queue/physical_block_size
 | 
				
			||||||
Date:		May 2009
 | 
					Date:		May 2009
 | 
				
			||||||
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
 | 
					Contact:	Martin K. Petersen <martin.petersen@oracle.com>
 | 
				
			||||||
Description:
 | 
					Description:
 | 
				
			||||||
		This is the smallest unit the storage device can write
 | 
							This is the smallest unit a physical storage device can
 | 
				
			||||||
		without resorting to read-modify-write operation.  It is
 | 
							write atomically.  It is usually the same as the logical
 | 
				
			||||||
		usually the same as the logical block size but may be
 | 
							block size but may be bigger.  One example is SATA
 | 
				
			||||||
		bigger.  One example is SATA drives with 4KB sectors
 | 
							drives with 4KB sectors that expose a 512-byte logical
 | 
				
			||||||
		that expose a 512-byte logical block size to the
 | 
							block size to the operating system.  For stacked block
 | 
				
			||||||
		operating system.
 | 
							devices the physical_block_size variable contains the
 | 
				
			||||||
 | 
							maximum physical_block_size of the component devices.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/block/<disk>/queue/minimum_io_size
 | 
					What:		/sys/block/<disk>/queue/minimum_io_size
 | 
				
			||||||
Date:		April 2009
 | 
					Date:		April 2009
 | 
				
			||||||
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
 | 
					Contact:	Martin K. Petersen <martin.petersen@oracle.com>
 | 
				
			||||||
Description:
 | 
					Description:
 | 
				
			||||||
		Storage devices may report a preferred minimum I/O size,
 | 
							Storage devices may report a granularity or preferred
 | 
				
			||||||
		which is the smallest request the device can perform
 | 
							minimum I/O size which is the smallest request the
 | 
				
			||||||
		without incurring a read-modify-write penalty.  For disk
 | 
							device can perform without incurring a performance
 | 
				
			||||||
		drives this is often the physical block size.  For RAID
 | 
							penalty.  For disk drives this is often the physical
 | 
				
			||||||
		arrays it is often the stripe chunk size.
 | 
							block size.  For RAID arrays it is often the stripe
 | 
				
			||||||
 | 
							chunk size.  A properly aligned multiple of
 | 
				
			||||||
 | 
							minimum_io_size is the preferred request size for
 | 
				
			||||||
 | 
							workloads where a high number of I/O operations is
 | 
				
			||||||
 | 
							desired.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/block/<disk>/queue/optimal_io_size
 | 
					What:		/sys/block/<disk>/queue/optimal_io_size
 | 
				
			||||||
Date:		April 2009
 | 
					Date:		April 2009
 | 
				
			||||||
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
 | 
					Contact:	Martin K. Petersen <martin.petersen@oracle.com>
 | 
				
			||||||
Description:
 | 
					Description:
 | 
				
			||||||
		Storage devices may report an optimal I/O size, which is
 | 
							Storage devices may report an optimal I/O size, which is
 | 
				
			||||||
		the device's preferred unit of receiving I/O.  This is
 | 
							the device's preferred unit for sustained I/O.  This is
 | 
				
			||||||
		rarely reported for disk drives.  For RAID devices it is
 | 
							rarely reported for disk drives.  For RAID arrays it is
 | 
				
			||||||
		usually the stripe width or the internal block size.
 | 
							usually the stripe width or the internal track size.  A
 | 
				
			||||||
 | 
							properly aligned multiple of optimal_io_size is the
 | 
				
			||||||
 | 
							preferred request size for workloads where sustained
 | 
				
			||||||
 | 
							throughput is desired.  If no optimal I/O size is
 | 
				
			||||||
 | 
							reported this file contains 0.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -449,8 +449,8 @@ printk(KERN_INFO "i = %u\n", i);
 | 
				
			||||||
   </para>
 | 
					   </para>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   <programlisting>
 | 
					   <programlisting>
 | 
				
			||||||
__u32 ipaddress;
 | 
					__be32 ipaddress;
 | 
				
			||||||
printk(KERN_INFO "my ip: %d.%d.%d.%d\n", NIPQUAD(ipaddress));
 | 
					printk(KERN_INFO "my ip: %pI4\n", &ipaddress);
 | 
				
			||||||
   </programlisting>
 | 
					   </programlisting>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   <para>
 | 
					   <para>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -184,8 +184,6 @@ usage should require reading the full document.
 | 
				
			||||||
!Finclude/net/mac80211.h ieee80211_ctstoself_get
 | 
					!Finclude/net/mac80211.h ieee80211_ctstoself_get
 | 
				
			||||||
!Finclude/net/mac80211.h ieee80211_ctstoself_duration
 | 
					!Finclude/net/mac80211.h ieee80211_ctstoself_duration
 | 
				
			||||||
!Finclude/net/mac80211.h ieee80211_generic_frame_duration
 | 
					!Finclude/net/mac80211.h ieee80211_generic_frame_duration
 | 
				
			||||||
!Finclude/net/mac80211.h ieee80211_get_hdrlen_from_skb
 | 
					 | 
				
			||||||
!Finclude/net/mac80211.h ieee80211_hdrlen
 | 
					 | 
				
			||||||
!Finclude/net/mac80211.h ieee80211_wake_queue
 | 
					!Finclude/net/mac80211.h ieee80211_wake_queue
 | 
				
			||||||
!Finclude/net/mac80211.h ieee80211_stop_queue
 | 
					!Finclude/net/mac80211.h ieee80211_stop_queue
 | 
				
			||||||
!Finclude/net/mac80211.h ieee80211_wake_queues
 | 
					!Finclude/net/mac80211.h ieee80211_wake_queues
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,11 +83,12 @@ not detect it missed following items in original chain.
 | 
				
			||||||
obj = kmem_cache_alloc(...);
 | 
					obj = kmem_cache_alloc(...);
 | 
				
			||||||
lock_chain(); // typically a spin_lock()
 | 
					lock_chain(); // typically a spin_lock()
 | 
				
			||||||
obj->key = key;
 | 
					obj->key = key;
 | 
				
			||||||
atomic_inc(&obj->refcnt);
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * we need to make sure obj->key is updated before obj->next
 | 
					 * we need to make sure obj->key is updated before obj->next
 | 
				
			||||||
 | 
					 * or obj->refcnt
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
smp_wmb();
 | 
					smp_wmb();
 | 
				
			||||||
 | 
					atomic_set(&obj->refcnt, 1);
 | 
				
			||||||
hlist_add_head_rcu(&obj->obj_node, list);
 | 
					hlist_add_head_rcu(&obj->obj_node, list);
 | 
				
			||||||
unlock_chain(); // typically a spin_unlock()
 | 
					unlock_chain(); // typically a spin_unlock()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -159,6 +160,10 @@ out:
 | 
				
			||||||
obj = kmem_cache_alloc(cachep);
 | 
					obj = kmem_cache_alloc(cachep);
 | 
				
			||||||
lock_chain(); // typically a spin_lock()
 | 
					lock_chain(); // typically a spin_lock()
 | 
				
			||||||
obj->key = key;
 | 
					obj->key = key;
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * changes to obj->key must be visible before refcnt one
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					smp_wmb();
 | 
				
			||||||
atomic_set(&obj->refcnt, 1);
 | 
					atomic_set(&obj->refcnt, 1);
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * insert obj in RCU way (readers might be traversing chain)
 | 
					 * insert obj in RCU way (readers might be traversing chain)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,6 +21,8 @@ ffff8000	ffffffff	copy_user_page / clear_user_page use.
 | 
				
			||||||
				For SA11xx and Xscale, this is used to
 | 
									For SA11xx and Xscale, this is used to
 | 
				
			||||||
				setup a minicache mapping.
 | 
									setup a minicache mapping.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ffff4000	ffffffff	cache aliasing on ARMv6 and later CPUs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ffff1000	ffff7fff	Reserved.
 | 
					ffff1000	ffff7fff	Reserved.
 | 
				
			||||||
				Platforms must not use this address range.
 | 
									Platforms must not use this address range.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,7 @@ encouraged them to allow separation of the data and integrity metadata
 | 
				
			||||||
scatter-gather lists.
 | 
					scatter-gather lists.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The controller will interleave the buffers on write and split them on
 | 
					The controller will interleave the buffers on write and split them on
 | 
				
			||||||
read.  This means that the Linux can DMA the data buffers to and from
 | 
					read.  This means that Linux can DMA the data buffers to and from
 | 
				
			||||||
host memory without changes to the page cache.
 | 
					host memory without changes to the page cache.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Also, the 16-bit CRC checksum mandated by both the SCSI and SATA specs
 | 
					Also, the 16-bit CRC checksum mandated by both the SCSI and SATA specs
 | 
				
			||||||
| 
						 | 
					@ -66,7 +66,7 @@ software RAID5).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The IP checksum is weaker than the CRC in terms of detecting bit
 | 
					The IP checksum is weaker than the CRC in terms of detecting bit
 | 
				
			||||||
errors.  However, the strength is really in the separation of the data
 | 
					errors.  However, the strength is really in the separation of the data
 | 
				
			||||||
buffers and the integrity metadata.  These two distinct buffers much
 | 
					buffers and the integrity metadata.  These two distinct buffers must
 | 
				
			||||||
match up for an I/O to complete.
 | 
					match up for an I/O to complete.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The separation of the data and integrity metadata buffers as well as
 | 
					The separation of the data and integrity metadata buffers as well as
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -777,6 +777,18 @@ in cpuset directories:
 | 
				
			||||||
# /bin/echo 1-4 > cpus		-> set cpus list to cpus 1,2,3,4
 | 
					# /bin/echo 1-4 > cpus		-> set cpus list to cpus 1,2,3,4
 | 
				
			||||||
# /bin/echo 1,2,3,4 > cpus	-> set cpus list to cpus 1,2,3,4
 | 
					# /bin/echo 1,2,3,4 > cpus	-> set cpus list to cpus 1,2,3,4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To add a CPU to a cpuset, write the new list of CPUs including the
 | 
				
			||||||
 | 
					CPU to be added. To add 6 to the above cpuset:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# /bin/echo 1-4,6 > cpus	-> set cpus list to cpus 1,2,3,4,6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Similarly to remove a CPU from a cpuset, write the new list of CPUs
 | 
				
			||||||
 | 
					without the CPU to be removed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To remove all the CPUs:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# /bin/echo "" > cpus		-> clear cpus list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2.3 Setting flags
 | 
					2.3 Setting flags
 | 
				
			||||||
-----------------
 | 
					-----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * 	cn_test.c
 | 
					 * 	cn_test.c
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * 2004-2005 Copyright (c) Evgeniy Polyakov <johnpol@2ka.mipt.ru>
 | 
					 * 2004+ Copyright (c) Evgeniy Polyakov <zbr@ioremap.net>
 | 
				
			||||||
 * All rights reserved.
 | 
					 * All rights reserved.
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify
 | 
					 * This program is free software; you can redistribute it and/or modify
 | 
				
			||||||
| 
						 | 
					@ -194,5 +194,5 @@ module_init(cn_test_init);
 | 
				
			||||||
module_exit(cn_test_fini);
 | 
					module_exit(cn_test_fini);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MODULE_LICENSE("GPL");
 | 
					MODULE_LICENSE("GPL");
 | 
				
			||||||
MODULE_AUTHOR("Evgeniy Polyakov <johnpol@2ka.mipt.ru>");
 | 
					MODULE_AUTHOR("Evgeniy Polyakov <zbr@ioremap.net>");
 | 
				
			||||||
MODULE_DESCRIPTION("Connector's test module");
 | 
					MODULE_DESCRIPTION("Connector's test module");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * 	ucon.c
 | 
					 * 	ucon.c
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright (c) 2004+ Evgeniy Polyakov <johnpol@2ka.mipt.ru>
 | 
					 * Copyright (c) 2004+ Evgeniy Polyakov <zbr@ioremap.net>
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify
 | 
					 * This program is free software; you can redistribute it and/or modify
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -207,8 +207,8 @@ Attributes
 | 
				
			||||||
~~~~~~~~~~
 | 
					~~~~~~~~~~
 | 
				
			||||||
struct driver_attribute {
 | 
					struct driver_attribute {
 | 
				
			||||||
        struct attribute        attr;
 | 
					        struct attribute        attr;
 | 
				
			||||||
        ssize_t (*show)(struct device_driver *, char * buf, size_t count, loff_t off);
 | 
					        ssize_t (*show)(struct device_driver *driver, char *buf);
 | 
				
			||||||
        ssize_t (*store)(struct device_driver *, const char * buf, size_t count, loff_t off);
 | 
					        ssize_t (*store)(struct device_driver *, const char * buf, size_t count);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Device drivers can export attributes via their sysfs directories. 
 | 
					Device drivers can export attributes via their sysfs directories. 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ use IO::Handle;
 | 
				
			||||||
		"tda10046lifeview", "av7110", "dec2000t", "dec2540t",
 | 
							"tda10046lifeview", "av7110", "dec2000t", "dec2540t",
 | 
				
			||||||
		"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
 | 
							"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
 | 
				
			||||||
		"or51211", "or51132_qam", "or51132_vsb", "bluebird",
 | 
							"or51211", "or51132_qam", "or51132_vsb", "bluebird",
 | 
				
			||||||
		"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2" );
 | 
							"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check args
 | 
					# Check args
 | 
				
			||||||
syntax() if (scalar(@ARGV) != 1);
 | 
					syntax() if (scalar(@ARGV) != 1);
 | 
				
			||||||
| 
						 | 
					@ -381,6 +381,57 @@ sub cx18 {
 | 
				
			||||||
    $allfiles;
 | 
					    $allfiles;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub mpc718 {
 | 
				
			||||||
 | 
					    my $archive = 'Yuan MPC718 TV Tuner Card 2.13.10.1016.zip';
 | 
				
			||||||
 | 
					    my $url = "ftp://ftp.work.acer-euro.com/desktop/aspire_idea510/vista/Drivers/$archive";
 | 
				
			||||||
 | 
					    my $fwfile = "dvb-cx18-mpc718-mt352.fw";
 | 
				
			||||||
 | 
					    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    checkstandard();
 | 
				
			||||||
 | 
					    wgetfile($archive, $url);
 | 
				
			||||||
 | 
					    unzip($archive, $tmpdir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    my $sourcefile = "$tmpdir/Yuan MPC718 TV Tuner Card 2.13.10.1016/mpc718_32bit/yuanrap.sys";
 | 
				
			||||||
 | 
					    my $found = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    open IN, '<', $sourcefile or die "Couldn't open $sourcefile to extract $fwfile data\n";
 | 
				
			||||||
 | 
					    binmode IN;
 | 
				
			||||||
 | 
					    open OUT, '>', $fwfile;
 | 
				
			||||||
 | 
					    binmode OUT;
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
						# Block scope because we change the line terminator variable $/
 | 
				
			||||||
 | 
						my $prevlen = 0;
 | 
				
			||||||
 | 
						my $currlen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Buried in the data segment are 3 runs of almost identical
 | 
				
			||||||
 | 
						# register-value pairs that end in 0x5d 0x01 which is a "TUNER GO"
 | 
				
			||||||
 | 
						# command for the MT352.
 | 
				
			||||||
 | 
						# Pull out the middle run (because it's easy) of register-value
 | 
				
			||||||
 | 
						# pairs to make the "firmware" file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local $/ = "\x5d\x01"; # MT352 "TUNER GO"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while (<IN>) {
 | 
				
			||||||
 | 
						    $currlen = length($_);
 | 
				
			||||||
 | 
						    if ($prevlen == $currlen && $currlen <= 64) {
 | 
				
			||||||
 | 
							chop; chop; # Get rid of "TUNER GO"
 | 
				
			||||||
 | 
							s/^\0\0//;  # get rid of leading 00 00 if it's there
 | 
				
			||||||
 | 
							printf OUT "$_";
 | 
				
			||||||
 | 
							$found = 1;
 | 
				
			||||||
 | 
							last;
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
						    $prevlen = $currlen;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    close OUT;
 | 
				
			||||||
 | 
					    close IN;
 | 
				
			||||||
 | 
					    if (!$found) {
 | 
				
			||||||
 | 
						unlink $fwfile;
 | 
				
			||||||
 | 
						die "Couldn't find valid register-value sequence in $sourcefile for $fwfile\n";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    $fwfile;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub cx23885 {
 | 
					sub cx23885 {
 | 
				
			||||||
    my $url = "http://linuxtv.org/downloads/firmware/";
 | 
					    my $url = "http://linuxtv.org/downloads/firmware/";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -458,3 +458,13 @@ Why:	Remove the old legacy 32bit machine check code. This has been
 | 
				
			||||||
	but the old version has been kept around for easier testing. Note this
 | 
						but the old version has been kept around for easier testing. Note this
 | 
				
			||||||
	doesn't impact the old P5 and WinChip machine check handlers.
 | 
						doesn't impact the old P5 and WinChip machine check handlers.
 | 
				
			||||||
Who:	Andi Kleen <andi@firstfloor.org>
 | 
					Who:	Andi Kleen <andi@firstfloor.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					----------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					What:	lock_policy_rwsem_* and unlock_policy_rwsem_* will not be
 | 
				
			||||||
 | 
						exported interface anymore.
 | 
				
			||||||
 | 
					When:	2.6.33
 | 
				
			||||||
 | 
					Why:	cpu_policy_rwsem has a new cleaner definition making it local to
 | 
				
			||||||
 | 
						cpufreq core and contained inside cpufreq.c. Other dependent
 | 
				
			||||||
 | 
						drivers should not use it in order to safely avoid lockdep issues.
 | 
				
			||||||
 | 
					Who:	Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,8 @@ interface.
 | 
				
			||||||
Using sysfs
 | 
					Using sysfs
 | 
				
			||||||
~~~~~~~~~~~
 | 
					~~~~~~~~~~~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sysfs is always compiled in. You can access it by doing:
 | 
					sysfs is always compiled in if CONFIG_SYSFS is defined. You can access
 | 
				
			||||||
 | 
					it by doing:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mount -t sysfs sysfs /sys 
 | 
					    mount -t sysfs sysfs /sys 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -188,13 +188,18 @@ Solution: Exclude affected source files from profiling by specifying
 | 
				
			||||||
          GCOV_PROFILE := n or GCOV_PROFILE_basename.o := n in the
 | 
					          GCOV_PROFILE := n or GCOV_PROFILE_basename.o := n in the
 | 
				
			||||||
          corresponding Makefile.
 | 
					          corresponding Makefile.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Problem:  Files copied from sysfs appear empty or incomplete.
 | 
				
			||||||
 | 
					Cause:    Due to the way seq_file works, some tools such as cp or tar
 | 
				
			||||||
 | 
					          may not correctly copy files from sysfs.
 | 
				
			||||||
 | 
					Solution: Use 'cat' to read .gcda files and 'cp -d' to copy links.
 | 
				
			||||||
 | 
					          Alternatively use the mechanism shown in Appendix B.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Appendix A: gather_on_build.sh
 | 
					Appendix A: gather_on_build.sh
 | 
				
			||||||
==============================
 | 
					==============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sample script to gather coverage meta files on the build machine
 | 
					Sample script to gather coverage meta files on the build machine
 | 
				
			||||||
(see 6a):
 | 
					(see 6a):
 | 
				
			||||||
 | 
					 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
KSRC=$1
 | 
					KSRC=$1
 | 
				
			||||||
| 
						 | 
					@ -226,7 +231,7 @@ Appendix B: gather_on_test.sh
 | 
				
			||||||
Sample script to gather coverage data files on the test machine
 | 
					Sample script to gather coverage data files on the test machine
 | 
				
			||||||
(see 6b):
 | 
					(see 6b):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DEST=$1
 | 
					DEST=$1
 | 
				
			||||||
GCDA=/sys/kernel/debug/gcov
 | 
					GCDA=/sys/kernel/debug/gcov
 | 
				
			||||||
| 
						 | 
					@ -236,11 +241,13 @@ if [ -z "$DEST" ] ; then
 | 
				
			||||||
  exit 1
 | 
					  exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
find $GCDA -name '*.gcno' -o -name '*.gcda' | tar cfz $DEST -T -
 | 
					TEMPDIR=$(mktemp -d)
 | 
				
			||||||
 | 
					echo Collecting data..
 | 
				
			||||||
 | 
					find $GCDA -type d -exec mkdir -p $TEMPDIR/\{\} \;
 | 
				
			||||||
 | 
					find $GCDA -name '*.gcda' -exec sh -c 'cat < $0 > '$TEMPDIR'/$0' {} \;
 | 
				
			||||||
 | 
					find $GCDA -name '*.gcno' -exec sh -c 'cp -d $0 '$TEMPDIR'/$0' {} \;
 | 
				
			||||||
 | 
					tar czf $DEST -C $TEMPDIR sys
 | 
				
			||||||
 | 
					rm -rf $TEMPDIR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ $? -eq 0 ] ; then
 | 
					 | 
				
			||||||
echo "$DEST successfully created, copy to build system and unpack with:"
 | 
					echo "$DEST successfully created, copy to build system and unpack with:"
 | 
				
			||||||
echo "  tar xfz $DEST"
 | 
					echo "  tar xfz $DEST"
 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  echo "Could not create file $DEST"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1720,8 +1720,8 @@ and is between 256 and 4096 characters. It is defined in the file
 | 
				
			||||||
	oprofile.cpu_type=	Force an oprofile cpu type
 | 
						oprofile.cpu_type=	Force an oprofile cpu type
 | 
				
			||||||
			This might be useful if you have an older oprofile
 | 
								This might be useful if you have an older oprofile
 | 
				
			||||||
			userland or if you want common events.
 | 
								userland or if you want common events.
 | 
				
			||||||
			Format: { archperfmon }
 | 
								Format: { arch_perfmon }
 | 
				
			||||||
			archperfmon: [X86] Force use of architectural
 | 
								arch_perfmon: [X86] Force use of architectural
 | 
				
			||||||
				perfmon on Intel CPUs instead of the
 | 
									perfmon on Intel CPUs instead of the
 | 
				
			||||||
				CPU specific event set.
 | 
									CPU specific event set.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1915,6 +1915,12 @@ and is between 256 and 4096 characters. It is defined in the file
 | 
				
			||||||
			Format: { 0 | 1 }
 | 
								Format: { 0 | 1 }
 | 
				
			||||||
			See arch/parisc/kernel/pdc_chassis.c
 | 
								See arch/parisc/kernel/pdc_chassis.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						percpu_alloc=	[X86] Select which percpu first chunk allocator to use.
 | 
				
			||||||
 | 
								Allowed values are one of "lpage", "embed" and "4k".
 | 
				
			||||||
 | 
								See comments in arch/x86/kernel/setup_percpu.c for
 | 
				
			||||||
 | 
								details on each allocator.  This parameter is primarily
 | 
				
			||||||
 | 
								for debugging and performance comparison.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pf.		[PARIDE]
 | 
						pf.		[PARIDE]
 | 
				
			||||||
			See Documentation/blockdev/paride.txt.
 | 
								See Documentation/blockdev/paride.txt.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2467,7 +2473,8 @@ and is between 256 and 4096 characters. It is defined in the file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tp720=		[HW,PS2]
 | 
						tp720=		[HW,PS2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	trace_buf_size=nn[KMG] [ftrace] will set tracing buffer size.
 | 
						trace_buf_size=nn[KMG]
 | 
				
			||||||
 | 
								[FTRACE] will set tracing buffer size.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	trix=		[HW,OSS] MediaTrix AudioTrix Pro
 | 
						trix=		[HW,OSS] MediaTrix AudioTrix Pro
 | 
				
			||||||
			Format:
 | 
								Format:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,13 +16,17 @@ Usage
 | 
				
			||||||
-----
 | 
					-----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CONFIG_DEBUG_KMEMLEAK in "Kernel hacking" has to be enabled. A kernel
 | 
					CONFIG_DEBUG_KMEMLEAK in "Kernel hacking" has to be enabled. A kernel
 | 
				
			||||||
thread scans the memory every 10 minutes (by default) and prints any new
 | 
					thread scans the memory every 10 minutes (by default) and prints the
 | 
				
			||||||
unreferenced objects found. To trigger an intermediate scan and display
 | 
					number of new unreferenced objects found. To display the details of all
 | 
				
			||||||
all the possible memory leaks:
 | 
					the possible memory leaks:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # mount -t debugfs nodev /sys/kernel/debug/
 | 
					  # mount -t debugfs nodev /sys/kernel/debug/
 | 
				
			||||||
  # cat /sys/kernel/debug/kmemleak
 | 
					  # cat /sys/kernel/debug/kmemleak
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To trigger an intermediate memory scan:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # echo scan > /sys/kernel/debug/kmemleak
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note that the orphan objects are listed in the order they were allocated
 | 
					Note that the orphan objects are listed in the order they were allocated
 | 
				
			||||||
and one object at the beginning of the list may cause other subsequent
 | 
					and one object at the beginning of the list may cause other subsequent
 | 
				
			||||||
objects to be reported as orphan.
 | 
					objects to be reported as orphan.
 | 
				
			||||||
| 
						 | 
					@ -31,16 +35,21 @@ Memory scanning parameters can be modified at run-time by writing to the
 | 
				
			||||||
/sys/kernel/debug/kmemleak file. The following parameters are supported:
 | 
					/sys/kernel/debug/kmemleak file. The following parameters are supported:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  off		- disable kmemleak (irreversible)
 | 
					  off		- disable kmemleak (irreversible)
 | 
				
			||||||
  stack=on	- enable the task stacks scanning
 | 
					  stack=on	- enable the task stacks scanning (default)
 | 
				
			||||||
  stack=off	- disable the tasks stacks scanning
 | 
					  stack=off	- disable the tasks stacks scanning
 | 
				
			||||||
  scan=on	- start the automatic memory scanning thread
 | 
					  scan=on	- start the automatic memory scanning thread (default)
 | 
				
			||||||
  scan=off	- stop the automatic memory scanning thread
 | 
					  scan=off	- stop the automatic memory scanning thread
 | 
				
			||||||
  scan=<secs>	- set the automatic memory scanning period in seconds (0
 | 
					  scan=<secs>	- set the automatic memory scanning period in seconds
 | 
				
			||||||
		  to disable it)
 | 
							  (default 600, 0 to stop the automatic scanning)
 | 
				
			||||||
 | 
					  scan		- trigger a memory scan
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Kmemleak can also be disabled at boot-time by passing "kmemleak=off" on
 | 
					Kmemleak can also be disabled at boot-time by passing "kmemleak=off" on
 | 
				
			||||||
the kernel command line.
 | 
					the kernel command line.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Memory may be allocated or freed before kmemleak is initialised and
 | 
				
			||||||
 | 
					these actions are stored in an early log buffer. The size of this buffer
 | 
				
			||||||
 | 
					is configured via the CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE option.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Basic Algorithm
 | 
					Basic Algorithm
 | 
				
			||||||
---------------
 | 
					---------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,8 +36,6 @@ detailed description):
 | 
				
			||||||
	- Bluetooth enable and disable
 | 
						- Bluetooth enable and disable
 | 
				
			||||||
	- video output switching, expansion control
 | 
						- video output switching, expansion control
 | 
				
			||||||
	- ThinkLight on and off
 | 
						- ThinkLight on and off
 | 
				
			||||||
	- limited docking and undocking
 | 
					 | 
				
			||||||
	- UltraBay eject
 | 
					 | 
				
			||||||
	- CMOS/UCMS control
 | 
						- CMOS/UCMS control
 | 
				
			||||||
	- LED control
 | 
						- LED control
 | 
				
			||||||
	- ACPI sounds
 | 
						- ACPI sounds
 | 
				
			||||||
| 
						 | 
					@ -729,131 +727,6 @@ cannot be read or if it is unknown, thinkpad-acpi will report it as "off".
 | 
				
			||||||
It is impossible to know if the status returned through sysfs is valid.
 | 
					It is impossible to know if the status returned through sysfs is valid.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Docking / undocking -- /proc/acpi/ibm/dock
 | 
					 | 
				
			||||||
------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Docking and undocking (e.g. with the X4 UltraBase) requires some
 | 
					 | 
				
			||||||
actions to be taken by the operating system to safely make or break
 | 
					 | 
				
			||||||
the electrical connections with the dock.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The docking feature of this driver generates the following ACPI events:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	ibm/dock GDCK 00000003 00000001 -- eject request
 | 
					 | 
				
			||||||
	ibm/dock GDCK 00000003 00000002 -- undocked
 | 
					 | 
				
			||||||
	ibm/dock GDCK 00000000 00000003 -- docked
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NOTE: These events will only be generated if the laptop was docked
 | 
					 | 
				
			||||||
when originally booted. This is due to the current lack of support for
 | 
					 | 
				
			||||||
hot plugging of devices in the Linux ACPI framework. If the laptop was
 | 
					 | 
				
			||||||
booted while not in the dock, the following message is shown in the
 | 
					 | 
				
			||||||
logs:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Mar 17 01:42:34 aero kernel: thinkpad_acpi: dock device not present
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
In this case, no dock-related events are generated but the dock and
 | 
					 | 
				
			||||||
undock commands described below still work. They can be executed
 | 
					 | 
				
			||||||
manually or triggered by Fn key combinations (see the example acpid
 | 
					 | 
				
			||||||
configuration files included in the driver tarball package available
 | 
					 | 
				
			||||||
on the web site).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When the eject request button on the dock is pressed, the first event
 | 
					 | 
				
			||||||
above is generated. The handler for this event should issue the
 | 
					 | 
				
			||||||
following command:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	echo undock > /proc/acpi/ibm/dock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
After the LED on the dock goes off, it is safe to eject the laptop.
 | 
					 | 
				
			||||||
Note: if you pressed this key by mistake, go ahead and eject the
 | 
					 | 
				
			||||||
laptop, then dock it back in. Otherwise, the dock may not function as
 | 
					 | 
				
			||||||
expected.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When the laptop is docked, the third event above is generated. The
 | 
					 | 
				
			||||||
handler for this event should issue the following command to fully
 | 
					 | 
				
			||||||
enable the dock:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	echo dock > /proc/acpi/ibm/dock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The contents of the /proc/acpi/ibm/dock file shows the current status
 | 
					 | 
				
			||||||
of the dock, as provided by the ACPI framework.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The docking support in this driver does not take care of enabling or
 | 
					 | 
				
			||||||
disabling any other devices you may have attached to the dock. For
 | 
					 | 
				
			||||||
example, a CD drive plugged into the UltraBase needs to be disabled or
 | 
					 | 
				
			||||||
enabled separately. See the provided example acpid configuration files
 | 
					 | 
				
			||||||
for how this can be accomplished.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
There is no support yet for PCI devices that may be attached to a
 | 
					 | 
				
			||||||
docking station, e.g. in the ThinkPad Dock II. The driver currently
 | 
					 | 
				
			||||||
does not recognize, enable or disable such devices. This means that
 | 
					 | 
				
			||||||
the only docking stations currently supported are the X-series
 | 
					 | 
				
			||||||
UltraBase docks and "dumb" port replicators like the Mini Dock (the
 | 
					 | 
				
			||||||
latter don't need any ACPI support, actually).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
UltraBay eject -- /proc/acpi/ibm/bay
 | 
					 | 
				
			||||||
------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Inserting or ejecting an UltraBay device requires some actions to be
 | 
					 | 
				
			||||||
taken by the operating system to safely make or break the electrical
 | 
					 | 
				
			||||||
connections with the device.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This feature generates the following ACPI events:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	ibm/bay MSTR 00000003 00000000 -- eject request
 | 
					 | 
				
			||||||
	ibm/bay MSTR 00000001 00000000 -- eject lever inserted
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NOTE: These events will only be generated if the UltraBay was present
 | 
					 | 
				
			||||||
when the laptop was originally booted (on the X series, the UltraBay
 | 
					 | 
				
			||||||
is in the dock, so it may not be present if the laptop was undocked).
 | 
					 | 
				
			||||||
This is due to the current lack of support for hot plugging of devices
 | 
					 | 
				
			||||||
in the Linux ACPI framework. If the laptop was booted without the
 | 
					 | 
				
			||||||
UltraBay, the following message is shown in the logs:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Mar 17 01:42:34 aero kernel: thinkpad_acpi: bay device not present
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
In this case, no bay-related events are generated but the eject
 | 
					 | 
				
			||||||
command described below still works. It can be executed manually or
 | 
					 | 
				
			||||||
triggered by a hot key combination.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sliding the eject lever generates the first event shown above. The
 | 
					 | 
				
			||||||
handler for this event should take whatever actions are necessary to
 | 
					 | 
				
			||||||
shut down the device in the UltraBay (e.g. call idectl), then issue
 | 
					 | 
				
			||||||
the following command:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	echo eject > /proc/acpi/ibm/bay
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
After the LED on the UltraBay goes off, it is safe to pull out the
 | 
					 | 
				
			||||||
device.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When the eject lever is inserted, the second event above is
 | 
					 | 
				
			||||||
generated. The handler for this event should take whatever actions are
 | 
					 | 
				
			||||||
necessary to enable the UltraBay device (e.g. call idectl).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The contents of the /proc/acpi/ibm/bay file shows the current status
 | 
					 | 
				
			||||||
of the UltraBay, as provided by the ACPI framework.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EXPERIMENTAL warm eject support on the 600e/x, A22p and A3x (To use
 | 
					 | 
				
			||||||
this feature, you need to supply the experimental=1 parameter when
 | 
					 | 
				
			||||||
loading the module):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
These models do not have a button near the UltraBay device to request
 | 
					 | 
				
			||||||
a hot eject but rather require the laptop to be put to sleep
 | 
					 | 
				
			||||||
(suspend-to-ram) before the bay device is ejected or inserted).
 | 
					 | 
				
			||||||
The sequence of steps to eject the device is as follows:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	echo eject > /proc/acpi/ibm/bay
 | 
					 | 
				
			||||||
	put the ThinkPad to sleep
 | 
					 | 
				
			||||||
	remove the drive
 | 
					 | 
				
			||||||
	resume from sleep
 | 
					 | 
				
			||||||
	cat /proc/acpi/ibm/bay should show that the drive was removed
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
On the A3x, both the UltraBay 2000 and UltraBay Plus devices are
 | 
					 | 
				
			||||||
supported. Use "eject2" instead of "eject" for the second bay.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: the UltraBay eject support on the 600e/x, A22p and A3x is
 | 
					 | 
				
			||||||
EXPERIMENTAL and may not work as expected. USE WITH CAUTION!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMOS/UCMS control
 | 
					CMOS/UCMS control
 | 
				
			||||||
-----------------
 | 
					-----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										50
									
								
								Documentation/leds-lp3944.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								Documentation/leds-lp3944.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					Kernel driver lp3944
 | 
				
			||||||
 | 
					====================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  * National Semiconductor LP3944 Fun-light Chip
 | 
				
			||||||
 | 
					    Prefix: 'lp3944'
 | 
				
			||||||
 | 
					    Addresses scanned: None (see the Notes section below)
 | 
				
			||||||
 | 
					    Datasheet: Publicly available at the National Semiconductor website
 | 
				
			||||||
 | 
					               http://www.national.com/pf/LP/LP3944.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Authors:
 | 
				
			||||||
 | 
					        Antonio Ospite <ospite@studenti.unina.it>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Description
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					The LP3944 is a helper chip that can drive up to 8 leds, with two programmable
 | 
				
			||||||
 | 
					DIM modes; it could even be used as a gpio expander but this driver assumes it
 | 
				
			||||||
 | 
					is used as a led controller.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The DIM modes are used to set _blink_ patterns for leds, the pattern is
 | 
				
			||||||
 | 
					specified supplying two parameters:
 | 
				
			||||||
 | 
					  - period: from 0s to 1.6s
 | 
				
			||||||
 | 
					  - duty cycle: percentage of the period the led is on, from 0 to 100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Setting a led in DIM0 or DIM1 mode makes it blink according to the pattern.
 | 
				
			||||||
 | 
					See the datasheet for details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LP3944 can be found on Motorola A910 smartphone, where it drives the rgb
 | 
				
			||||||
 | 
					leds, the camera flash light and the lcds power.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Notes
 | 
				
			||||||
 | 
					-----
 | 
				
			||||||
 | 
					The chip is used mainly in embedded contexts, so this driver expects it is
 | 
				
			||||||
 | 
					registered using the i2c_board_info mechanism.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To register the chip at address 0x60 on adapter 0, set the platform data
 | 
				
			||||||
 | 
					according to include/linux/leds-lp3944.h, set the i2c board info:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						static struct i2c_board_info __initdata a910_i2c_board_info[] = {
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								I2C_BOARD_INFO("lp3944", 0x60),
 | 
				
			||||||
 | 
								.platform_data = &a910_lp3944_leds,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					and register it in the platform init function
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_register_board_info(0, a910_i2c_board_info,
 | 
				
			||||||
 | 
								ARRAY_SIZE(a910_i2c_board_info));
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
This is the 6pack-mini-HOWTO, written by
 | 
					This is the 6pack-mini-HOWTO, written by
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Andreas Könsgen DG3KQ
 | 
					Andreas Könsgen DG3KQ
 | 
				
			||||||
Internet: ajk@iehk.rwth-aachen.de
 | 
					Internet: ajk@comnets.uni-bremen.de
 | 
				
			||||||
AMPR-net: dg3kq@db0pra.ampr.org
 | 
					AMPR-net: dg3kq@db0pra.ampr.org
 | 
				
			||||||
AX.25:    dg3kq@db0ach.#nrw.deu.eu
 | 
					AX.25:    dg3kq@db0ach.#nrw.deu.eu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										148
									
								
								Documentation/powerpc/dts-bindings/4xx/emac.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								Documentation/powerpc/dts-bindings/4xx/emac.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,148 @@
 | 
				
			||||||
 | 
					    4xx/Axon EMAC ethernet nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The EMAC ethernet controller in IBM and AMCC 4xx chips, and also
 | 
				
			||||||
 | 
					    the Axon bridge.  To operate this needs to interact with a ths
 | 
				
			||||||
 | 
					    special McMAL DMA controller, and sometimes an RGMII or ZMII
 | 
				
			||||||
 | 
					    interface.  In addition to the nodes and properties described
 | 
				
			||||||
 | 
					    below, the node for the OPB bus on which the EMAC sits must have a
 | 
				
			||||||
 | 
					    correct clock-frequency property.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      i) The EMAC node itself
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Required properties:
 | 
				
			||||||
 | 
					    - device_type       : "network"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - compatible        : compatible list, contains 2 entries, first is
 | 
				
			||||||
 | 
								  "ibm,emac-CHIP" where CHIP is the host ASIC (440gx,
 | 
				
			||||||
 | 
								  405gp, Axon) and second is either "ibm,emac" or
 | 
				
			||||||
 | 
								  "ibm,emac4".  For Axon, thus, we have: "ibm,emac-axon",
 | 
				
			||||||
 | 
								  "ibm,emac4"
 | 
				
			||||||
 | 
					    - interrupts        : <interrupt mapping for EMAC IRQ and WOL IRQ>
 | 
				
			||||||
 | 
					    - interrupt-parent  : optional, if needed for interrupt mapping
 | 
				
			||||||
 | 
					    - reg               : <registers mapping>
 | 
				
			||||||
 | 
					    - local-mac-address : 6 bytes, MAC address
 | 
				
			||||||
 | 
					    - mal-device        : phandle of the associated McMAL node
 | 
				
			||||||
 | 
					    - mal-tx-channel    : 1 cell, index of the tx channel on McMAL associated
 | 
				
			||||||
 | 
								  with this EMAC
 | 
				
			||||||
 | 
					    - mal-rx-channel    : 1 cell, index of the rx channel on McMAL associated
 | 
				
			||||||
 | 
								  with this EMAC
 | 
				
			||||||
 | 
					    - cell-index        : 1 cell, hardware index of the EMAC cell on a given
 | 
				
			||||||
 | 
								  ASIC (typically 0x0 and 0x1 for EMAC0 and EMAC1 on
 | 
				
			||||||
 | 
								  each Axon chip)
 | 
				
			||||||
 | 
					    - max-frame-size    : 1 cell, maximum frame size supported in bytes
 | 
				
			||||||
 | 
					    - rx-fifo-size      : 1 cell, Rx fifo size in bytes for 10 and 100 Mb/sec
 | 
				
			||||||
 | 
								  operations.
 | 
				
			||||||
 | 
								  For Axon, 2048
 | 
				
			||||||
 | 
					    - tx-fifo-size      : 1 cell, Tx fifo size in bytes for 10 and 100 Mb/sec
 | 
				
			||||||
 | 
								  operations.
 | 
				
			||||||
 | 
								  For Axon, 2048.
 | 
				
			||||||
 | 
					    - fifo-entry-size   : 1 cell, size of a fifo entry (used to calculate
 | 
				
			||||||
 | 
								  thresholds).
 | 
				
			||||||
 | 
								  For Axon, 0x00000010
 | 
				
			||||||
 | 
					    - mal-burst-size    : 1 cell, MAL burst size (used to calculate thresholds)
 | 
				
			||||||
 | 
								  in bytes.
 | 
				
			||||||
 | 
								  For Axon, 0x00000100 (I think ...)
 | 
				
			||||||
 | 
					    - phy-mode          : string, mode of operations of the PHY interface.
 | 
				
			||||||
 | 
								  Supported values are: "mii", "rmii", "smii", "rgmii",
 | 
				
			||||||
 | 
								  "tbi", "gmii", rtbi", "sgmii".
 | 
				
			||||||
 | 
								  For Axon on CAB, it is "rgmii"
 | 
				
			||||||
 | 
					    - mdio-device       : 1 cell, required iff using shared MDIO registers
 | 
				
			||||||
 | 
								  (440EP).  phandle of the EMAC to use to drive the
 | 
				
			||||||
 | 
								  MDIO lines for the PHY used by this EMAC.
 | 
				
			||||||
 | 
					    - zmii-device       : 1 cell, required iff connected to a ZMII.  phandle of
 | 
				
			||||||
 | 
								  the ZMII device node
 | 
				
			||||||
 | 
					    - zmii-channel      : 1 cell, required iff connected to a ZMII.  Which ZMII
 | 
				
			||||||
 | 
								  channel or 0xffffffff if ZMII is only used for MDIO.
 | 
				
			||||||
 | 
					    - rgmii-device      : 1 cell, required iff connected to an RGMII. phandle
 | 
				
			||||||
 | 
								  of the RGMII device node.
 | 
				
			||||||
 | 
								  For Axon: phandle of plb5/plb4/opb/rgmii
 | 
				
			||||||
 | 
					    - rgmii-channel     : 1 cell, required iff connected to an RGMII.  Which
 | 
				
			||||||
 | 
								  RGMII channel is used by this EMAC.
 | 
				
			||||||
 | 
								  Fox Axon: present, whatever value is appropriate for each
 | 
				
			||||||
 | 
								  EMAC, that is the content of the current (bogus) "phy-port"
 | 
				
			||||||
 | 
								  property.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Optional properties:
 | 
				
			||||||
 | 
					    - phy-address       : 1 cell, optional, MDIO address of the PHY. If absent,
 | 
				
			||||||
 | 
								  a search is performed.
 | 
				
			||||||
 | 
					    - phy-map           : 1 cell, optional, bitmap of addresses to probe the PHY
 | 
				
			||||||
 | 
								  for, used if phy-address is absent. bit 0x00000001 is
 | 
				
			||||||
 | 
								  MDIO address 0.
 | 
				
			||||||
 | 
								  For Axon it can be absent, though my current driver
 | 
				
			||||||
 | 
								  doesn't handle phy-address yet so for now, keep
 | 
				
			||||||
 | 
								  0x00ffffff in it.
 | 
				
			||||||
 | 
					    - rx-fifo-size-gige : 1 cell, Rx fifo size in bytes for 1000 Mb/sec
 | 
				
			||||||
 | 
								  operations (if absent the value is the same as
 | 
				
			||||||
 | 
								  rx-fifo-size).  For Axon, either absent or 2048.
 | 
				
			||||||
 | 
					    - tx-fifo-size-gige : 1 cell, Tx fifo size in bytes for 1000 Mb/sec
 | 
				
			||||||
 | 
								  operations (if absent the value is the same as
 | 
				
			||||||
 | 
								  tx-fifo-size). For Axon, either absent or 2048.
 | 
				
			||||||
 | 
					    - tah-device        : 1 cell, optional. If connected to a TAH engine for
 | 
				
			||||||
 | 
								  offload, phandle of the TAH device node.
 | 
				
			||||||
 | 
					    - tah-channel       : 1 cell, optional. If appropriate, channel used on the
 | 
				
			||||||
 | 
								  TAH engine.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						EMAC0: ethernet@40000800 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "ibm,emac-440gp", "ibm,emac";
 | 
				
			||||||
 | 
							interrupt-parent = <&UIC1>;
 | 
				
			||||||
 | 
							interrupts = <1c 4 1d 4>;
 | 
				
			||||||
 | 
							reg = <40000800 70>;
 | 
				
			||||||
 | 
							local-mac-address = [00 04 AC E3 1B 1E];
 | 
				
			||||||
 | 
							mal-device = <&MAL0>;
 | 
				
			||||||
 | 
							mal-tx-channel = <0 1>;
 | 
				
			||||||
 | 
							mal-rx-channel = <0>;
 | 
				
			||||||
 | 
							cell-index = <0>;
 | 
				
			||||||
 | 
							max-frame-size = <5dc>;
 | 
				
			||||||
 | 
							rx-fifo-size = <1000>;
 | 
				
			||||||
 | 
							tx-fifo-size = <800>;
 | 
				
			||||||
 | 
							phy-mode = "rmii";
 | 
				
			||||||
 | 
							phy-map = <00000001>;
 | 
				
			||||||
 | 
							zmii-device = <&ZMII0>;
 | 
				
			||||||
 | 
							zmii-channel = <0>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ii) McMAL node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Required properties:
 | 
				
			||||||
 | 
					    - device_type        : "dma-controller"
 | 
				
			||||||
 | 
					    - compatible         : compatible list, containing 2 entries, first is
 | 
				
			||||||
 | 
								   "ibm,mcmal-CHIP" where CHIP is the host ASIC (like
 | 
				
			||||||
 | 
								   emac) and the second is either "ibm,mcmal" or
 | 
				
			||||||
 | 
								   "ibm,mcmal2".
 | 
				
			||||||
 | 
								   For Axon, "ibm,mcmal-axon","ibm,mcmal2"
 | 
				
			||||||
 | 
					    - interrupts         : <interrupt mapping for the MAL interrupts sources:
 | 
				
			||||||
 | 
					                           5 sources: tx_eob, rx_eob, serr, txde, rxde>.
 | 
				
			||||||
 | 
					                           For Axon: This is _different_ from the current
 | 
				
			||||||
 | 
								   firmware.  We use the "delayed" interrupts for txeob
 | 
				
			||||||
 | 
								   and rxeob. Thus we end up with mapping those 5 MPIC
 | 
				
			||||||
 | 
								   interrupts, all level positive sensitive: 10, 11, 32,
 | 
				
			||||||
 | 
								   33, 34 (in decimal)
 | 
				
			||||||
 | 
					    - dcr-reg            : < DCR registers range >
 | 
				
			||||||
 | 
					    - dcr-parent         : if needed for dcr-reg
 | 
				
			||||||
 | 
					    - num-tx-chans       : 1 cell, number of Tx channels
 | 
				
			||||||
 | 
					    - num-rx-chans       : 1 cell, number of Rx channels
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      iii) ZMII node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Required properties:
 | 
				
			||||||
 | 
					    - compatible         : compatible list, containing 2 entries, first is
 | 
				
			||||||
 | 
								   "ibm,zmii-CHIP" where CHIP is the host ASIC (like
 | 
				
			||||||
 | 
								   EMAC) and the second is "ibm,zmii".
 | 
				
			||||||
 | 
								   For Axon, there is no ZMII node.
 | 
				
			||||||
 | 
					    - reg                : <registers mapping>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      iv) RGMII node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Required properties:
 | 
				
			||||||
 | 
					    - compatible         : compatible list, containing 2 entries, first is
 | 
				
			||||||
 | 
								   "ibm,rgmii-CHIP" where CHIP is the host ASIC (like
 | 
				
			||||||
 | 
								   EMAC) and the second is "ibm,rgmii".
 | 
				
			||||||
 | 
					                           For Axon, "ibm,rgmii-axon","ibm,rgmii"
 | 
				
			||||||
 | 
					    - reg                : <registers mapping>
 | 
				
			||||||
 | 
					    - revision           : as provided by the RGMII new version register if
 | 
				
			||||||
 | 
								   available.
 | 
				
			||||||
 | 
								   For Axon: 0x0000012a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										50
									
								
								Documentation/powerpc/dts-bindings/gpio/gpio.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								Documentation/powerpc/dts-bindings/gpio/gpio.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					Specifying GPIO information for devices
 | 
				
			||||||
 | 
					============================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1) gpios property
 | 
				
			||||||
 | 
					-----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Nodes that makes use of GPIOs should define them using `gpios' property,
 | 
				
			||||||
 | 
					format of which is: <&gpio-controller1-phandle gpio1-specifier
 | 
				
			||||||
 | 
							     &gpio-controller2-phandle gpio2-specifier
 | 
				
			||||||
 | 
							     0 /* holes are permitted, means no GPIO 3 */
 | 
				
			||||||
 | 
							     &gpio-controller4-phandle gpio4-specifier
 | 
				
			||||||
 | 
							     ...>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note that gpio-specifier length is controller dependent.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gpio-specifier may encode: bank, pin position inside the bank,
 | 
				
			||||||
 | 
					whether pin is open-drain and whether pin is logically inverted.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example of the node using GPIOs:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						node {
 | 
				
			||||||
 | 
							gpios = <&qe_pio_e 18 0>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In this example gpio-specifier is "18 0" and encodes GPIO pin number,
 | 
				
			||||||
 | 
					and empty GPIO flags as accepted by the "qe_pio_e" gpio-controller.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2) gpio-controller nodes
 | 
				
			||||||
 | 
					------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Every GPIO controller node must have #gpio-cells property defined,
 | 
				
			||||||
 | 
					this information will be used to translate gpio-specifiers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example of two SOC GPIO banks defined as gpio-controller nodes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qe_pio_a: gpio-controller@1400 {
 | 
				
			||||||
 | 
							#gpio-cells = <2>;
 | 
				
			||||||
 | 
							compatible = "fsl,qe-pario-bank-a", "fsl,qe-pario-bank";
 | 
				
			||||||
 | 
							reg = <0x1400 0x18>;
 | 
				
			||||||
 | 
							gpio-controller;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qe_pio_e: gpio-controller@1460 {
 | 
				
			||||||
 | 
							#gpio-cells = <2>;
 | 
				
			||||||
 | 
							compatible = "fsl,qe-pario-bank-e", "fsl,qe-pario-bank";
 | 
				
			||||||
 | 
							reg = <0x1460 0x18>;
 | 
				
			||||||
 | 
							gpio-controller;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,10 +16,17 @@ LED sub-node properties:
 | 
				
			||||||
  string defining the trigger assigned to the LED.  Current triggers are:
 | 
					  string defining the trigger assigned to the LED.  Current triggers are:
 | 
				
			||||||
    "backlight" - LED will act as a back-light, controlled by the framebuffer
 | 
					    "backlight" - LED will act as a back-light, controlled by the framebuffer
 | 
				
			||||||
		  system
 | 
							  system
 | 
				
			||||||
    "default-on" - LED will turn on
 | 
					    "default-on" - LED will turn on, but see "default-state" below
 | 
				
			||||||
    "heartbeat" - LED "double" flashes at a load average based rate
 | 
					    "heartbeat" - LED "double" flashes at a load average based rate
 | 
				
			||||||
    "ide-disk" - LED indicates disk activity
 | 
					    "ide-disk" - LED indicates disk activity
 | 
				
			||||||
    "timer" - LED flashes at a fixed, configurable rate
 | 
					    "timer" - LED flashes at a fixed, configurable rate
 | 
				
			||||||
 | 
					- default-state:  (optional) The initial state of the LED.  Valid
 | 
				
			||||||
 | 
					  values are "on", "off", and "keep".  If the LED is already on or off
 | 
				
			||||||
 | 
					  and the default-state property is set the to same value, then no
 | 
				
			||||||
 | 
					  glitch should be produced where the LED momentarily turns off (or
 | 
				
			||||||
 | 
					  on).  The "keep" setting will keep the LED at whatever its current
 | 
				
			||||||
 | 
					  state is, without producing a glitch.  The default is off if this
 | 
				
			||||||
 | 
					  property is not present.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Examples:
 | 
					Examples:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,14 +37,22 @@ leds {
 | 
				
			||||||
		gpios = <&mcu_pio 0 1>; /* Active low */
 | 
							gpios = <&mcu_pio 0 1>; /* Active low */
 | 
				
			||||||
		linux,default-trigger = "ide-disk";
 | 
							linux,default-trigger = "ide-disk";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fault {
 | 
				
			||||||
 | 
							gpios = <&mcu_pio 1 0>;
 | 
				
			||||||
 | 
							/* Keep LED on if BIOS detected hardware fault */
 | 
				
			||||||
 | 
							default-state = "keep";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
run-control {
 | 
					run-control {
 | 
				
			||||||
	compatible = "gpio-leds";
 | 
						compatible = "gpio-leds";
 | 
				
			||||||
	red {
 | 
						red {
 | 
				
			||||||
		gpios = <&mpc8572 6 0>;
 | 
							gpios = <&mpc8572 6 0>;
 | 
				
			||||||
 | 
							default-state = "off";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
	green {
 | 
						green {
 | 
				
			||||||
		gpios = <&mpc8572 7 0>;
 | 
							gpios = <&mpc8572 7 0>;
 | 
				
			||||||
 | 
							default-state = "on";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										19
									
								
								Documentation/powerpc/dts-bindings/gpio/mdio.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Documentation/powerpc/dts-bindings/gpio/mdio.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					MDIO on GPIOs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Currently defined compatibles:
 | 
				
			||||||
 | 
					- virtual,gpio-mdio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MDC and MDIO lines connected to GPIO controllers are listed in the
 | 
				
			||||||
 | 
					gpios property as described in section VIII.1 in the following order:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MDC, MDIO.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mdio {
 | 
				
			||||||
 | 
						compatible = "virtual,mdio-gpio";
 | 
				
			||||||
 | 
						#address-cells = <1>;
 | 
				
			||||||
 | 
						#size-cells = <0>;
 | 
				
			||||||
 | 
						gpios = <&qe_pio_a 11
 | 
				
			||||||
 | 
							 &qe_pio_c 6>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										521
									
								
								Documentation/powerpc/dts-bindings/marvell.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										521
									
								
								Documentation/powerpc/dts-bindings/marvell.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,521 @@
 | 
				
			||||||
 | 
					Marvell Discovery mv64[345]6x System Controller chips
 | 
				
			||||||
 | 
					===========================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The Marvell mv64[345]60 series of system controller chips contain
 | 
				
			||||||
 | 
					many of the peripherals needed to implement a complete computer
 | 
				
			||||||
 | 
					system.  In this section, we define device tree nodes to describe
 | 
				
			||||||
 | 
					the system controller chip itself and each of the peripherals
 | 
				
			||||||
 | 
					which it contains.  Compatible string values for each node are
 | 
				
			||||||
 | 
					prefixed with the string "marvell,", for Marvell Technology Group Ltd.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1) The /system-controller node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This node is used to represent the system-controller and must be
 | 
				
			||||||
 | 
					  present when the system uses a system controller chip. The top-level
 | 
				
			||||||
 | 
					  system-controller node contains information that is global to all
 | 
				
			||||||
 | 
					  devices within the system controller chip. The node name begins
 | 
				
			||||||
 | 
					  with "system-controller" followed by the unit address, which is
 | 
				
			||||||
 | 
					  the base address of the memory-mapped register set for the system
 | 
				
			||||||
 | 
					  controller chip.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Required properties:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - ranges : Describes the translation of system controller addresses
 | 
				
			||||||
 | 
					      for memory mapped registers.
 | 
				
			||||||
 | 
					    - clock-frequency: Contains the main clock frequency for the system
 | 
				
			||||||
 | 
					      controller chip.
 | 
				
			||||||
 | 
					    - reg : This property defines the address and size of the
 | 
				
			||||||
 | 
					      memory-mapped registers contained within the system controller
 | 
				
			||||||
 | 
					      chip.  The address specified in the "reg" property should match
 | 
				
			||||||
 | 
					      the unit address of the system-controller node.
 | 
				
			||||||
 | 
					    - #address-cells : Address representation for system controller
 | 
				
			||||||
 | 
					      devices.  This field represents the number of cells needed to
 | 
				
			||||||
 | 
					      represent the address of the memory-mapped registers of devices
 | 
				
			||||||
 | 
					      within the system controller chip.
 | 
				
			||||||
 | 
					    - #size-cells : Size representation for for the memory-mapped
 | 
				
			||||||
 | 
					      registers within the system controller chip.
 | 
				
			||||||
 | 
					    - #interrupt-cells : Defines the width of cells used to represent
 | 
				
			||||||
 | 
					      interrupts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Optional properties:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - model : The specific model of the system controller chip.  Such
 | 
				
			||||||
 | 
					      as, "mv64360", "mv64460", or "mv64560".
 | 
				
			||||||
 | 
					    - compatible : A string identifying the compatibility identifiers
 | 
				
			||||||
 | 
					      of the system controller chip.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The system-controller node contains child nodes for each system
 | 
				
			||||||
 | 
					  controller device that the platform uses.  Nodes should not be created
 | 
				
			||||||
 | 
					  for devices which exist on the system controller chip but are not used
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Example Marvell Discovery mv64360 system-controller node:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    system-controller@f1000000 { /* Marvell Discovery mv64360 */
 | 
				
			||||||
 | 
						    #address-cells = <1>;
 | 
				
			||||||
 | 
						    #size-cells = <1>;
 | 
				
			||||||
 | 
						    model = "mv64360";                      /* Default */
 | 
				
			||||||
 | 
						    compatible = "marvell,mv64360";
 | 
				
			||||||
 | 
						    clock-frequency = <133333333>;
 | 
				
			||||||
 | 
						    reg = <0xf1000000 0x10000>;
 | 
				
			||||||
 | 
						    virtual-reg = <0xf1000000>;
 | 
				
			||||||
 | 
						    ranges = <0x88000000 0x88000000 0x1000000 /* PCI 0 I/O Space */
 | 
				
			||||||
 | 
							    0x80000000 0x80000000 0x8000000 /* PCI 0 MEM Space */
 | 
				
			||||||
 | 
							    0xa0000000 0xa0000000 0x4000000 /* User FLASH */
 | 
				
			||||||
 | 
							    0x00000000 0xf1000000 0x0010000 /* Bridge's regs */
 | 
				
			||||||
 | 
							    0xf2000000 0xf2000000 0x0040000>;/* Integrated SRAM */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    [ child node definitions... ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2) Child nodes of /system-controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   a) Marvell Discovery MDIO bus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The MDIO is a bus to which the PHY devices are connected.  For each
 | 
				
			||||||
 | 
					   device that exists on this bus, a child node should be created.  See
 | 
				
			||||||
 | 
					   the definition of the PHY node below for an example of how to define
 | 
				
			||||||
 | 
					   a PHY.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - #address-cells : Should be <1>
 | 
				
			||||||
 | 
					     - #size-cells : Should be <0>
 | 
				
			||||||
 | 
					     - device_type : Should be "mdio"
 | 
				
			||||||
 | 
					     - compatible : Should be "marvell,mv64360-mdio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     mdio {
 | 
				
			||||||
 | 
						     #address-cells = <1>;
 | 
				
			||||||
 | 
						     #size-cells = <0>;
 | 
				
			||||||
 | 
						     device_type = "mdio";
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-mdio";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						     ethernet-phy@0 {
 | 
				
			||||||
 | 
							     ......
 | 
				
			||||||
 | 
						     };
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   b) Marvell Discovery ethernet controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The Discover ethernet controller is described with two levels
 | 
				
			||||||
 | 
					   of nodes.  The first level describes an ethernet silicon block
 | 
				
			||||||
 | 
					   and the second level describes up to 3 ethernet nodes within
 | 
				
			||||||
 | 
					   that block.  The reason for the multiple levels is that the
 | 
				
			||||||
 | 
					   registers for the node are interleaved within a single set
 | 
				
			||||||
 | 
					   of registers.  The "ethernet-block" level describes the
 | 
				
			||||||
 | 
					   shared register set, and the "ethernet" nodes describe ethernet
 | 
				
			||||||
 | 
					   port-specific properties.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Ethernet block node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - #address-cells : <1>
 | 
				
			||||||
 | 
					     - #size-cells : <0>
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-eth-block"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this block
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery Ethernet block node:
 | 
				
			||||||
 | 
					     ethernet-block@2000 {
 | 
				
			||||||
 | 
						     #address-cells = <1>;
 | 
				
			||||||
 | 
						     #size-cells = <0>;
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-eth-block";
 | 
				
			||||||
 | 
						     reg = <0x2000 0x2000>;
 | 
				
			||||||
 | 
						     ethernet@0 {
 | 
				
			||||||
 | 
							     .......
 | 
				
			||||||
 | 
						     };
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Ethernet port node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - device_type : Should be "network".
 | 
				
			||||||
 | 
					     - compatible : Should be "marvell,mv64360-eth".
 | 
				
			||||||
 | 
					     - reg : Should be <0>, <1>, or <2>, according to which registers
 | 
				
			||||||
 | 
					       within the silicon block the device uses.
 | 
				
			||||||
 | 
					     - interrupts : <a> where a is the interrupt number for the port.
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller
 | 
				
			||||||
 | 
					       that services interrupts for this device.
 | 
				
			||||||
 | 
					     - phy : the phandle for the PHY connected to this ethernet
 | 
				
			||||||
 | 
					       controller.
 | 
				
			||||||
 | 
					     - local-mac-address : 6 bytes, MAC address
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery Ethernet port node:
 | 
				
			||||||
 | 
					     ethernet@0 {
 | 
				
			||||||
 | 
						     device_type = "network";
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-eth";
 | 
				
			||||||
 | 
						     reg = <0>;
 | 
				
			||||||
 | 
						     interrupts = <32>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
						     phy = <&PHY0>;
 | 
				
			||||||
 | 
						     local-mac-address = [ 00 00 00 00 00 00 ];
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   c) Marvell Discovery PHY nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - device_type : Should be "ethernet-phy"
 | 
				
			||||||
 | 
					     - interrupts : <a> where a is the interrupt number for this phy.
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller that
 | 
				
			||||||
 | 
					       services interrupts for this device.
 | 
				
			||||||
 | 
					     - reg : The ID number for the phy, usually a small integer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery PHY node:
 | 
				
			||||||
 | 
					     ethernet-phy@1 {
 | 
				
			||||||
 | 
						     device_type = "ethernet-phy";
 | 
				
			||||||
 | 
						     compatible = "broadcom,bcm5421";
 | 
				
			||||||
 | 
						     interrupts = <76>;      /* GPP 12 */
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
						     reg = <1>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   d) Marvell Discovery SDMA nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent DMA hardware associated with the MPSC (multiprotocol
 | 
				
			||||||
 | 
					   serial controllers).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-sdma"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - interrupts : <a> where a is the interrupt number for the DMA
 | 
				
			||||||
 | 
					       device.
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller
 | 
				
			||||||
 | 
					       that services interrupts for this device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery SDMA node:
 | 
				
			||||||
 | 
					     sdma@4000 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-sdma";
 | 
				
			||||||
 | 
						     reg = <0x4000 0xc18>;
 | 
				
			||||||
 | 
						     virtual-reg = <0xf1004000>;
 | 
				
			||||||
 | 
						     interrupts = <36>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   e) Marvell Discovery BRG nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent baud rate generator hardware associated with the MPSC
 | 
				
			||||||
 | 
					   (multiprotocol serial controllers).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-brg"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - clock-src : A value from 0 to 15 which selects the clock
 | 
				
			||||||
 | 
					       source for the baud rate generator.  This value corresponds
 | 
				
			||||||
 | 
					       to the CLKS value in the BRGx configuration register.  See
 | 
				
			||||||
 | 
					       the mv64x60 User's Manual.
 | 
				
			||||||
 | 
					     - clock-frequence : The frequency (in Hz) of the baud rate
 | 
				
			||||||
 | 
					       generator's input clock.
 | 
				
			||||||
 | 
					     - current-speed : The current speed setting (presumably by
 | 
				
			||||||
 | 
					       firmware) of the baud rate generator.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery BRG node:
 | 
				
			||||||
 | 
					     brg@b200 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-brg";
 | 
				
			||||||
 | 
						     reg = <0xb200 0x8>;
 | 
				
			||||||
 | 
						     clock-src = <8>;
 | 
				
			||||||
 | 
						     clock-frequency = <133333333>;
 | 
				
			||||||
 | 
						     current-speed = <9600>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   f) Marvell Discovery CUNIT nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Serial Communications Unit device hardware.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery CUNIT node:
 | 
				
			||||||
 | 
					     cunit@f200 {
 | 
				
			||||||
 | 
						     reg = <0xf200 0x200>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   g) Marvell Discovery MPSCROUTING nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's MPSC routing hardware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery CUNIT node:
 | 
				
			||||||
 | 
					     mpscrouting@b500 {
 | 
				
			||||||
 | 
						     reg = <0xb400 0xc>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   h) Marvell Discovery MPSCINTR nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's MPSC DMA interrupt hardware registers
 | 
				
			||||||
 | 
					   (SDMA cause and mask registers).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery MPSCINTR node:
 | 
				
			||||||
 | 
					     mpsintr@b800 {
 | 
				
			||||||
 | 
						     reg = <0xb800 0x100>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   i) Marvell Discovery MPSC nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's MPSC (Multiprotocol Serial Controller)
 | 
				
			||||||
 | 
					   serial port.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - device_type : "serial"
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-mpsc"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - sdma : the phandle for the SDMA node used by this port
 | 
				
			||||||
 | 
					     - brg : the phandle for the BRG node used by this port
 | 
				
			||||||
 | 
					     - cunit : the phandle for the CUNIT node used by this port
 | 
				
			||||||
 | 
					     - mpscrouting : the phandle for the MPSCROUTING node used by this port
 | 
				
			||||||
 | 
					     - mpscintr : the phandle for the MPSCINTR node used by this port
 | 
				
			||||||
 | 
					     - cell-index : the hardware index of this cell in the MPSC core
 | 
				
			||||||
 | 
					     - max_idle : value needed for MPSC CHR3 (Maximum Frame Length)
 | 
				
			||||||
 | 
					       register
 | 
				
			||||||
 | 
					     - interrupts : <a> where a is the interrupt number for the MPSC.
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller
 | 
				
			||||||
 | 
					       that services interrupts for this device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery MPSCINTR node:
 | 
				
			||||||
 | 
					     mpsc@8000 {
 | 
				
			||||||
 | 
						     device_type = "serial";
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-mpsc";
 | 
				
			||||||
 | 
						     reg = <0x8000 0x38>;
 | 
				
			||||||
 | 
						     virtual-reg = <0xf1008000>;
 | 
				
			||||||
 | 
						     sdma = <&SDMA0>;
 | 
				
			||||||
 | 
						     brg = <&BRG0>;
 | 
				
			||||||
 | 
						     cunit = <&CUNIT>;
 | 
				
			||||||
 | 
						     mpscrouting = <&MPSCROUTING>;
 | 
				
			||||||
 | 
						     mpscintr = <&MPSCINTR>;
 | 
				
			||||||
 | 
						     cell-index = <0>;
 | 
				
			||||||
 | 
						     max_idle = <40>;
 | 
				
			||||||
 | 
						     interrupts = <40>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   j) Marvell Discovery Watch Dog Timer nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's watchdog timer hardware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-wdt"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery Watch Dog Timer node:
 | 
				
			||||||
 | 
					     wdt@b410 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-wdt";
 | 
				
			||||||
 | 
						     reg = <0xb410 0x8>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   k) Marvell Discovery I2C nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's I2C hardware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - device_type : "i2c"
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-i2c"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - interrupts : <a> where a is the interrupt number for the I2C.
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller
 | 
				
			||||||
 | 
					       that services interrupts for this device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery I2C node:
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-i2c";
 | 
				
			||||||
 | 
						     reg = <0xc000 0x20>;
 | 
				
			||||||
 | 
						     virtual-reg = <0xf100c000>;
 | 
				
			||||||
 | 
						     interrupts = <37>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   l) Marvell Discovery PIC (Programmable Interrupt Controller) nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's PIC hardware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - #interrupt-cells : <1>
 | 
				
			||||||
 | 
					     - #address-cells : <0>
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-pic"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - interrupt-controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery PIC node:
 | 
				
			||||||
 | 
					     pic {
 | 
				
			||||||
 | 
						     #interrupt-cells = <1>;
 | 
				
			||||||
 | 
						     #address-cells = <0>;
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-pic";
 | 
				
			||||||
 | 
						     reg = <0x0 0x88>;
 | 
				
			||||||
 | 
						     interrupt-controller;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   m) Marvell Discovery MPP (Multipurpose Pins) multiplexing nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's MPP hardware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-mpp"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery MPP node:
 | 
				
			||||||
 | 
					     mpp@f000 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-mpp";
 | 
				
			||||||
 | 
						     reg = <0xf000 0x10>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   n) Marvell Discovery GPP (General Purpose Pins) nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's GPP hardware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-gpp"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery GPP node:
 | 
				
			||||||
 | 
					     gpp@f000 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-gpp";
 | 
				
			||||||
 | 
						     reg = <0xf100 0x20>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   o) Marvell Discovery PCI host bridge node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represents the Discovery's PCI host bridge device.  The properties
 | 
				
			||||||
 | 
					   for this node conform to Rev 2.1 of the PCI Bus Binding to IEEE
 | 
				
			||||||
 | 
					   1275-1994.  A typical value for the compatible property is
 | 
				
			||||||
 | 
					   "marvell,mv64360-pci".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery PCI host bridge node
 | 
				
			||||||
 | 
					     pci@80000000 {
 | 
				
			||||||
 | 
						     #address-cells = <3>;
 | 
				
			||||||
 | 
						     #size-cells = <2>;
 | 
				
			||||||
 | 
						     #interrupt-cells = <1>;
 | 
				
			||||||
 | 
						     device_type = "pci";
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-pci";
 | 
				
			||||||
 | 
						     reg = <0xcf8 0x8>;
 | 
				
			||||||
 | 
						     ranges = <0x01000000 0x0        0x0
 | 
				
			||||||
 | 
								     0x88000000 0x0 0x01000000
 | 
				
			||||||
 | 
							       0x02000000 0x0 0x80000000
 | 
				
			||||||
 | 
								     0x80000000 0x0 0x08000000>;
 | 
				
			||||||
 | 
						     bus-range = <0 255>;
 | 
				
			||||||
 | 
						     clock-frequency = <66000000>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
						     interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
 | 
				
			||||||
 | 
						     interrupt-map = <
 | 
				
			||||||
 | 
							     /* IDSEL 0x0a */
 | 
				
			||||||
 | 
							     0x5000 0 0 1 &PIC 80
 | 
				
			||||||
 | 
							     0x5000 0 0 2 &PIC 81
 | 
				
			||||||
 | 
							     0x5000 0 0 3 &PIC 91
 | 
				
			||||||
 | 
							     0x5000 0 0 4 &PIC 93
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							     /* IDSEL 0x0b */
 | 
				
			||||||
 | 
							     0x5800 0 0 1 &PIC 91
 | 
				
			||||||
 | 
							     0x5800 0 0 2 &PIC 93
 | 
				
			||||||
 | 
							     0x5800 0 0 3 &PIC 80
 | 
				
			||||||
 | 
							     0x5800 0 0 4 &PIC 81
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							     /* IDSEL 0x0c */
 | 
				
			||||||
 | 
							     0x6000 0 0 1 &PIC 91
 | 
				
			||||||
 | 
							     0x6000 0 0 2 &PIC 93
 | 
				
			||||||
 | 
							     0x6000 0 0 3 &PIC 80
 | 
				
			||||||
 | 
							     0x6000 0 0 4 &PIC 81
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							     /* IDSEL 0x0d */
 | 
				
			||||||
 | 
							     0x6800 0 0 1 &PIC 93
 | 
				
			||||||
 | 
							     0x6800 0 0 2 &PIC 80
 | 
				
			||||||
 | 
							     0x6800 0 0 3 &PIC 81
 | 
				
			||||||
 | 
							     0x6800 0 0 4 &PIC 91
 | 
				
			||||||
 | 
						     >;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   p) Marvell Discovery CPU Error nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's CPU error handler device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-cpu-error"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - interrupts : the interrupt number for this device
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller
 | 
				
			||||||
 | 
					       that services interrupts for this device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery CPU Error node:
 | 
				
			||||||
 | 
					     cpu-error@0070 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-cpu-error";
 | 
				
			||||||
 | 
						     reg = <0x70 0x10 0x128 0x28>;
 | 
				
			||||||
 | 
						     interrupts = <3>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   q) Marvell Discovery SRAM Controller nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's SRAM controller device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-sram-ctrl"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - interrupts : the interrupt number for this device
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller
 | 
				
			||||||
 | 
					       that services interrupts for this device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery SRAM Controller node:
 | 
				
			||||||
 | 
					     sram-ctrl@0380 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-sram-ctrl";
 | 
				
			||||||
 | 
						     reg = <0x380 0x80>;
 | 
				
			||||||
 | 
						     interrupts = <13>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   r) Marvell Discovery PCI Error Handler nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's PCI error handler device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-pci-error"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - interrupts : the interrupt number for this device
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller
 | 
				
			||||||
 | 
					       that services interrupts for this device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery PCI Error Handler node:
 | 
				
			||||||
 | 
					     pci-error@1d40 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-pci-error";
 | 
				
			||||||
 | 
						     reg = <0x1d40 0x40 0xc28 0x4>;
 | 
				
			||||||
 | 
						     interrupts = <12>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   s) Marvell Discovery Memory Controller nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Represent the Discovery's memory controller device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Required properties:
 | 
				
			||||||
 | 
					     - compatible : "marvell,mv64360-mem-ctrl"
 | 
				
			||||||
 | 
					     - reg : Offset and length of the register set for this device
 | 
				
			||||||
 | 
					     - interrupts : the interrupt number for this device
 | 
				
			||||||
 | 
					     - interrupt-parent : the phandle for the interrupt controller
 | 
				
			||||||
 | 
					       that services interrupts for this device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Example Discovery Memory Controller node:
 | 
				
			||||||
 | 
					     mem-ctrl@1400 {
 | 
				
			||||||
 | 
						     compatible = "marvell,mv64360-mem-ctrl";
 | 
				
			||||||
 | 
						     reg = <0x1400 0x60>;
 | 
				
			||||||
 | 
						     interrupts = <17>;
 | 
				
			||||||
 | 
						     interrupt-parent = <&PIC>;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										25
									
								
								Documentation/powerpc/dts-bindings/phy.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Documentation/powerpc/dts-bindings/phy.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					PHY nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Required properties:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - device_type : Should be "ethernet-phy"
 | 
				
			||||||
 | 
					 - interrupts : <a b> where a is the interrupt number and b is a
 | 
				
			||||||
 | 
					   field that represents an encoding of the sense and level
 | 
				
			||||||
 | 
					   information for the interrupt.  This should be encoded based on
 | 
				
			||||||
 | 
					   the information in section 2) depending on the type of interrupt
 | 
				
			||||||
 | 
					   controller you have.
 | 
				
			||||||
 | 
					 - interrupt-parent : the phandle for the interrupt controller that
 | 
				
			||||||
 | 
					   services interrupts for this device.
 | 
				
			||||||
 | 
					 - reg : The ID number for the phy, usually a small integer
 | 
				
			||||||
 | 
					 - linux,phandle :  phandle for this node; likely referenced by an
 | 
				
			||||||
 | 
					   ethernet controller node.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ethernet-phy@0 {
 | 
				
			||||||
 | 
						linux,phandle = <2452000>
 | 
				
			||||||
 | 
						interrupt-parent = <40000>;
 | 
				
			||||||
 | 
						interrupts = <35 1>;
 | 
				
			||||||
 | 
						reg = <0>;
 | 
				
			||||||
 | 
						device_type = "ethernet-phy";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										57
									
								
								Documentation/powerpc/dts-bindings/spi-bus.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								Documentation/powerpc/dts-bindings/spi-bus.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,57 @@
 | 
				
			||||||
 | 
					SPI (Serial Peripheral Interface) busses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SPI busses can be described with a node for the SPI master device
 | 
				
			||||||
 | 
					and a set of child nodes for each SPI slave on the bus.  For this
 | 
				
			||||||
 | 
					discussion, it is assumed that the system's SPI controller is in
 | 
				
			||||||
 | 
					SPI master mode.  This binding does not describe SPI controllers
 | 
				
			||||||
 | 
					in slave mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The SPI master node requires the following properties:
 | 
				
			||||||
 | 
					- #address-cells  - number of cells required to define a chip select
 | 
				
			||||||
 | 
					    		address on the SPI bus.
 | 
				
			||||||
 | 
					- #size-cells     - should be zero.
 | 
				
			||||||
 | 
					- compatible      - name of SPI bus controller following generic names
 | 
				
			||||||
 | 
					    		recommended practice.
 | 
				
			||||||
 | 
					No other properties are required in the SPI bus node.  It is assumed
 | 
				
			||||||
 | 
					that a driver for an SPI bus device will understand that it is an SPI bus.
 | 
				
			||||||
 | 
					However, the binding does not attempt to define the specific method for
 | 
				
			||||||
 | 
					assigning chip select numbers.  Since SPI chip select configuration is
 | 
				
			||||||
 | 
					flexible and non-standardized, it is left out of this binding with the
 | 
				
			||||||
 | 
					assumption that board specific platform code will be used to manage
 | 
				
			||||||
 | 
					chip selects.  Individual drivers can define additional properties to
 | 
				
			||||||
 | 
					support describing the chip select layout.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SPI slave nodes must be children of the SPI master node and can
 | 
				
			||||||
 | 
					contain the following properties.
 | 
				
			||||||
 | 
					- reg             - (required) chip select address of device.
 | 
				
			||||||
 | 
					- compatible      - (required) name of SPI device following generic names
 | 
				
			||||||
 | 
					    		recommended practice
 | 
				
			||||||
 | 
					- spi-max-frequency - (required) Maximum SPI clocking speed of device in Hz
 | 
				
			||||||
 | 
					- spi-cpol        - (optional) Empty property indicating device requires
 | 
				
			||||||
 | 
					    		inverse clock polarity (CPOL) mode
 | 
				
			||||||
 | 
					- spi-cpha        - (optional) Empty property indicating device requires
 | 
				
			||||||
 | 
					    		shifted clock phase (CPHA) mode
 | 
				
			||||||
 | 
					- spi-cs-high     - (optional) Empty property indicating device requires
 | 
				
			||||||
 | 
					    		chip select active high
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SPI example for an MPC5200 SPI bus:
 | 
				
			||||||
 | 
						spi@f00 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <0>;
 | 
				
			||||||
 | 
							compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi";
 | 
				
			||||||
 | 
							reg = <0xf00 0x20>;
 | 
				
			||||||
 | 
							interrupts = <2 13 0 2 14 0>;
 | 
				
			||||||
 | 
							interrupt-parent = <&mpc5200_pic>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ethernet-switch@0 {
 | 
				
			||||||
 | 
								compatible = "micrel,ks8995m";
 | 
				
			||||||
 | 
								spi-max-frequency = <1000000>;
 | 
				
			||||||
 | 
								reg = <0>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							codec@1 {
 | 
				
			||||||
 | 
								compatible = "ti,tlv320aic26";
 | 
				
			||||||
 | 
								spi-max-frequency = <100000>;
 | 
				
			||||||
 | 
								reg = <1>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
							
								
								
									
										25
									
								
								Documentation/powerpc/dts-bindings/usb-ehci.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Documentation/powerpc/dts-bindings/usb-ehci.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					USB EHCI controllers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Required properties:
 | 
				
			||||||
 | 
					  - compatible : should be "usb-ehci".
 | 
				
			||||||
 | 
					  - reg : should contain at least address and length of the standard EHCI
 | 
				
			||||||
 | 
					    register set for the device. Optional platform-dependent registers
 | 
				
			||||||
 | 
					    (debug-port or other) can be also specified here, but only after
 | 
				
			||||||
 | 
					    definition of standard EHCI registers.
 | 
				
			||||||
 | 
					  - interrupts : one EHCI interrupt should be described here.
 | 
				
			||||||
 | 
					If device registers are implemented in big endian mode, the device
 | 
				
			||||||
 | 
					node should have "big-endian-regs" property.
 | 
				
			||||||
 | 
					If controller implementation operates with big endian descriptors,
 | 
				
			||||||
 | 
					"big-endian-desc" property should be specified.
 | 
				
			||||||
 | 
					If both big endian registers and descriptors are used by the controller
 | 
				
			||||||
 | 
					implementation, "big-endian" property can be specified instead of having
 | 
				
			||||||
 | 
					both "big-endian-regs" and "big-endian-desc".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example (Sequoia 440EPx):
 | 
				
			||||||
 | 
					    ehci@e0000300 {
 | 
				
			||||||
 | 
						   compatible = "ibm,usb-ehci-440epx", "usb-ehci";
 | 
				
			||||||
 | 
						   interrupt-parent = <&UIC0>;
 | 
				
			||||||
 | 
						   interrupts = <1a 4>;
 | 
				
			||||||
 | 
						   reg = <0 e0000300 90 0 e0000390 70>;
 | 
				
			||||||
 | 
						   big-endian;
 | 
				
			||||||
 | 
					   };
 | 
				
			||||||
							
								
								
									
										295
									
								
								Documentation/powerpc/dts-bindings/xilinx.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										295
									
								
								Documentation/powerpc/dts-bindings/xilinx.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,295 @@
 | 
				
			||||||
 | 
					   d) Xilinx IP cores
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The Xilinx EDK toolchain ships with a set of IP cores (devices) for use
 | 
				
			||||||
 | 
					   in Xilinx Spartan and Virtex FPGAs.  The devices cover the whole range
 | 
				
			||||||
 | 
					   of standard device types (network, serial, etc.) and miscellaneous
 | 
				
			||||||
 | 
					   devices (gpio, LCD, spi, etc).  Also, since these devices are
 | 
				
			||||||
 | 
					   implemented within the fpga fabric every instance of the device can be
 | 
				
			||||||
 | 
					   synthesised with different options that change the behaviour.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Each IP-core has a set of parameters which the FPGA designer can use to
 | 
				
			||||||
 | 
					   control how the core is synthesized.  Historically, the EDK tool would
 | 
				
			||||||
 | 
					   extract the device parameters relevant to device drivers and copy them
 | 
				
			||||||
 | 
					   into an 'xparameters.h' in the form of #define symbols.  This tells the
 | 
				
			||||||
 | 
					   device drivers how the IP cores are configured, but it requres the kernel
 | 
				
			||||||
 | 
					   to be recompiled every time the FPGA bitstream is resynthesized.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The new approach is to export the parameters into the device tree and
 | 
				
			||||||
 | 
					   generate a new device tree each time the FPGA bitstream changes.  The
 | 
				
			||||||
 | 
					   parameters which used to be exported as #defines will now become
 | 
				
			||||||
 | 
					   properties of the device node.  In general, device nodes for IP-cores
 | 
				
			||||||
 | 
					   will take the following form:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(name): (generic-name)@(base-address) {
 | 
				
			||||||
 | 
							compatible = "xlnx,(ip-core-name)-(HW_VER)"
 | 
				
			||||||
 | 
								     [, (list of compatible devices), ...];
 | 
				
			||||||
 | 
							reg = <(baseaddr) (size)>;
 | 
				
			||||||
 | 
							interrupt-parent = <&interrupt-controller-phandle>;
 | 
				
			||||||
 | 
							interrupts = < ... >;
 | 
				
			||||||
 | 
							xlnx,(parameter1) = "(string-value)";
 | 
				
			||||||
 | 
							xlnx,(parameter2) = <(int-value)>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(generic-name):   an open firmware-style name that describes the
 | 
				
			||||||
 | 
								generic class of device.  Preferably, this is one word, such
 | 
				
			||||||
 | 
								as 'serial' or 'ethernet'.
 | 
				
			||||||
 | 
						(ip-core-name):	the name of the ip block (given after the BEGIN
 | 
				
			||||||
 | 
								directive in system.mhs).  Should be in lowercase
 | 
				
			||||||
 | 
								and all underscores '_' converted to dashes '-'.
 | 
				
			||||||
 | 
						(name):		is derived from the "PARAMETER INSTANCE" value.
 | 
				
			||||||
 | 
						(parameter#):	C_* parameters from system.mhs.  The C_ prefix is
 | 
				
			||||||
 | 
								dropped from the parameter name, the name is converted
 | 
				
			||||||
 | 
								to lowercase and all underscore '_' characters are
 | 
				
			||||||
 | 
								converted to dashes '-'.
 | 
				
			||||||
 | 
						(baseaddr):	the baseaddr parameter value (often named C_BASEADDR).
 | 
				
			||||||
 | 
						(HW_VER):	from the HW_VER parameter.
 | 
				
			||||||
 | 
						(size):		the address range size (often C_HIGHADDR - C_BASEADDR + 1).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Typically, the compatible list will include the exact IP core version
 | 
				
			||||||
 | 
					   followed by an older IP core version which implements the same
 | 
				
			||||||
 | 
					   interface or any other device with the same interface.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   'reg', 'interrupt-parent' and 'interrupts' are all optional properties.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   For example, the following block from system.mhs:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BEGIN opb_uartlite
 | 
				
			||||||
 | 
							PARAMETER INSTANCE = opb_uartlite_0
 | 
				
			||||||
 | 
							PARAMETER HW_VER = 1.00.b
 | 
				
			||||||
 | 
							PARAMETER C_BAUDRATE = 115200
 | 
				
			||||||
 | 
							PARAMETER C_DATA_BITS = 8
 | 
				
			||||||
 | 
							PARAMETER C_ODD_PARITY = 0
 | 
				
			||||||
 | 
							PARAMETER C_USE_PARITY = 0
 | 
				
			||||||
 | 
							PARAMETER C_CLK_FREQ = 50000000
 | 
				
			||||||
 | 
							PARAMETER C_BASEADDR = 0xEC100000
 | 
				
			||||||
 | 
							PARAMETER C_HIGHADDR = 0xEC10FFFF
 | 
				
			||||||
 | 
							BUS_INTERFACE SOPB = opb_7
 | 
				
			||||||
 | 
							PORT OPB_Clk = CLK_50MHz
 | 
				
			||||||
 | 
							PORT Interrupt = opb_uartlite_0_Interrupt
 | 
				
			||||||
 | 
							PORT RX = opb_uartlite_0_RX
 | 
				
			||||||
 | 
							PORT TX = opb_uartlite_0_TX
 | 
				
			||||||
 | 
							PORT OPB_Rst = sys_bus_reset_0
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   becomes the following device tree node:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						opb_uartlite_0: serial@ec100000 {
 | 
				
			||||||
 | 
							device_type = "serial";
 | 
				
			||||||
 | 
							compatible = "xlnx,opb-uartlite-1.00.b";
 | 
				
			||||||
 | 
							reg = <ec100000 10000>;
 | 
				
			||||||
 | 
							interrupt-parent = <&opb_intc_0>;
 | 
				
			||||||
 | 
							interrupts = <1 0>; // got this from the opb_intc parameters
 | 
				
			||||||
 | 
							current-speed = <d#115200>;	// standard serial device prop
 | 
				
			||||||
 | 
							clock-frequency = <d#50000000>;	// standard serial device prop
 | 
				
			||||||
 | 
							xlnx,data-bits = <8>;
 | 
				
			||||||
 | 
							xlnx,odd-parity = <0>;
 | 
				
			||||||
 | 
							xlnx,use-parity = <0>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Some IP cores actually implement 2 or more logical devices.  In
 | 
				
			||||||
 | 
					   this case, the device should still describe the whole IP core with
 | 
				
			||||||
 | 
					   a single node and add a child node for each logical device.  The
 | 
				
			||||||
 | 
					   ranges property can be used to translate from parent IP-core to the
 | 
				
			||||||
 | 
					   registers of each device.  In addition, the parent node should be
 | 
				
			||||||
 | 
					   compatible with the bus type 'xlnx,compound', and should contain
 | 
				
			||||||
 | 
					   #address-cells and #size-cells, as with any other bus.  (Note: this
 | 
				
			||||||
 | 
					   makes the assumption that both logical devices have the same bus
 | 
				
			||||||
 | 
					   binding.  If this is not true, then separate nodes should be used
 | 
				
			||||||
 | 
					   for each logical device).  The 'cell-index' property can be used to
 | 
				
			||||||
 | 
					   enumerate logical devices within an IP core.  For example, the
 | 
				
			||||||
 | 
					   following is the system.mhs entry for the dual ps2 controller found
 | 
				
			||||||
 | 
					   on the ml403 reference design.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BEGIN opb_ps2_dual_ref
 | 
				
			||||||
 | 
							PARAMETER INSTANCE = opb_ps2_dual_ref_0
 | 
				
			||||||
 | 
							PARAMETER HW_VER = 1.00.a
 | 
				
			||||||
 | 
							PARAMETER C_BASEADDR = 0xA9000000
 | 
				
			||||||
 | 
							PARAMETER C_HIGHADDR = 0xA9001FFF
 | 
				
			||||||
 | 
							BUS_INTERFACE SOPB = opb_v20_0
 | 
				
			||||||
 | 
							PORT Sys_Intr1 = ps2_1_intr
 | 
				
			||||||
 | 
							PORT Sys_Intr2 = ps2_2_intr
 | 
				
			||||||
 | 
							PORT Clkin1 = ps2_clk_rx_1
 | 
				
			||||||
 | 
							PORT Clkin2 = ps2_clk_rx_2
 | 
				
			||||||
 | 
							PORT Clkpd1 = ps2_clk_tx_1
 | 
				
			||||||
 | 
							PORT Clkpd2 = ps2_clk_tx_2
 | 
				
			||||||
 | 
							PORT Rx1 = ps2_d_rx_1
 | 
				
			||||||
 | 
							PORT Rx2 = ps2_d_rx_2
 | 
				
			||||||
 | 
							PORT Txpd1 = ps2_d_tx_1
 | 
				
			||||||
 | 
							PORT Txpd2 = ps2_d_tx_2
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   It would result in the following device tree nodes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						opb_ps2_dual_ref_0: opb-ps2-dual-ref@a9000000 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							compatible = "xlnx,compound";
 | 
				
			||||||
 | 
							ranges = <0 a9000000 2000>;
 | 
				
			||||||
 | 
							// If this device had extra parameters, then they would
 | 
				
			||||||
 | 
							// go here.
 | 
				
			||||||
 | 
							ps2@0 {
 | 
				
			||||||
 | 
								compatible = "xlnx,opb-ps2-dual-ref-1.00.a";
 | 
				
			||||||
 | 
								reg = <0 40>;
 | 
				
			||||||
 | 
								interrupt-parent = <&opb_intc_0>;
 | 
				
			||||||
 | 
								interrupts = <3 0>;
 | 
				
			||||||
 | 
								cell-index = <0>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							ps2@1000 {
 | 
				
			||||||
 | 
								compatible = "xlnx,opb-ps2-dual-ref-1.00.a";
 | 
				
			||||||
 | 
								reg = <1000 40>;
 | 
				
			||||||
 | 
								interrupt-parent = <&opb_intc_0>;
 | 
				
			||||||
 | 
								interrupts = <3 0>;
 | 
				
			||||||
 | 
								cell-index = <0>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Also, the system.mhs file defines bus attachments from the processor
 | 
				
			||||||
 | 
					   to the devices.  The device tree structure should reflect the bus
 | 
				
			||||||
 | 
					   attachments.  Again an example; this system.mhs fragment:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BEGIN ppc405_virtex4
 | 
				
			||||||
 | 
							PARAMETER INSTANCE = ppc405_0
 | 
				
			||||||
 | 
							PARAMETER HW_VER = 1.01.a
 | 
				
			||||||
 | 
							BUS_INTERFACE DPLB = plb_v34_0
 | 
				
			||||||
 | 
							BUS_INTERFACE IPLB = plb_v34_0
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BEGIN opb_intc
 | 
				
			||||||
 | 
							PARAMETER INSTANCE = opb_intc_0
 | 
				
			||||||
 | 
							PARAMETER HW_VER = 1.00.c
 | 
				
			||||||
 | 
							PARAMETER C_BASEADDR = 0xD1000FC0
 | 
				
			||||||
 | 
							PARAMETER C_HIGHADDR = 0xD1000FDF
 | 
				
			||||||
 | 
							BUS_INTERFACE SOPB = opb_v20_0
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BEGIN opb_uart16550
 | 
				
			||||||
 | 
							PARAMETER INSTANCE = opb_uart16550_0
 | 
				
			||||||
 | 
							PARAMETER HW_VER = 1.00.d
 | 
				
			||||||
 | 
							PARAMETER C_BASEADDR = 0xa0000000
 | 
				
			||||||
 | 
							PARAMETER C_HIGHADDR = 0xa0001FFF
 | 
				
			||||||
 | 
							BUS_INTERFACE SOPB = opb_v20_0
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BEGIN plb_v34
 | 
				
			||||||
 | 
							PARAMETER INSTANCE = plb_v34_0
 | 
				
			||||||
 | 
							PARAMETER HW_VER = 1.02.a
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BEGIN plb_bram_if_cntlr
 | 
				
			||||||
 | 
							PARAMETER INSTANCE = plb_bram_if_cntlr_0
 | 
				
			||||||
 | 
							PARAMETER HW_VER = 1.00.b
 | 
				
			||||||
 | 
							PARAMETER C_BASEADDR = 0xFFFF0000
 | 
				
			||||||
 | 
							PARAMETER C_HIGHADDR = 0xFFFFFFFF
 | 
				
			||||||
 | 
							BUS_INTERFACE SPLB = plb_v34_0
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BEGIN plb2opb_bridge
 | 
				
			||||||
 | 
							PARAMETER INSTANCE = plb2opb_bridge_0
 | 
				
			||||||
 | 
							PARAMETER HW_VER = 1.01.a
 | 
				
			||||||
 | 
							PARAMETER C_RNG0_BASEADDR = 0x20000000
 | 
				
			||||||
 | 
							PARAMETER C_RNG0_HIGHADDR = 0x3FFFFFFF
 | 
				
			||||||
 | 
							PARAMETER C_RNG1_BASEADDR = 0x60000000
 | 
				
			||||||
 | 
							PARAMETER C_RNG1_HIGHADDR = 0x7FFFFFFF
 | 
				
			||||||
 | 
							PARAMETER C_RNG2_BASEADDR = 0x80000000
 | 
				
			||||||
 | 
							PARAMETER C_RNG2_HIGHADDR = 0xBFFFFFFF
 | 
				
			||||||
 | 
							PARAMETER C_RNG3_BASEADDR = 0xC0000000
 | 
				
			||||||
 | 
							PARAMETER C_RNG3_HIGHADDR = 0xDFFFFFFF
 | 
				
			||||||
 | 
							BUS_INTERFACE SPLB = plb_v34_0
 | 
				
			||||||
 | 
							BUS_INTERFACE MOPB = opb_v20_0
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Gives this device tree (some properties removed for clarity):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						plb@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							compatible = "xlnx,plb-v34-1.02.a";
 | 
				
			||||||
 | 
							device_type = "ibm,plb";
 | 
				
			||||||
 | 
							ranges; // 1:1 translation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							plb_bram_if_cntrl_0: bram@ffff0000 {
 | 
				
			||||||
 | 
								reg = <ffff0000 10000>;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							opb@20000000 {
 | 
				
			||||||
 | 
								#address-cells = <1>;
 | 
				
			||||||
 | 
								#size-cells = <1>;
 | 
				
			||||||
 | 
								ranges = <20000000 20000000 20000000
 | 
				
			||||||
 | 
									  60000000 60000000 20000000
 | 
				
			||||||
 | 
									  80000000 80000000 40000000
 | 
				
			||||||
 | 
									  c0000000 c0000000 20000000>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								opb_uart16550_0: serial@a0000000 {
 | 
				
			||||||
 | 
									reg = <a00000000 2000>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								opb_intc_0: interrupt-controller@d1000fc0 {
 | 
				
			||||||
 | 
									reg = <d1000fc0 20>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   That covers the general approach to binding xilinx IP cores into the
 | 
				
			||||||
 | 
					   device tree.  The following are bindings for specific devices:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      i) Xilinx ML300 Framebuffer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Simple framebuffer device from the ML300 reference design (also on the
 | 
				
			||||||
 | 
					      ML403 reference design as well as others).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Optional properties:
 | 
				
			||||||
 | 
					       - resolution = <xres yres> : pixel resolution of framebuffer.  Some
 | 
				
			||||||
 | 
					                                    implementations use a different resolution.
 | 
				
			||||||
 | 
					                                    Default is <d#640 d#480>
 | 
				
			||||||
 | 
					       - virt-resolution = <xvirt yvirt> : Size of framebuffer in memory.
 | 
				
			||||||
 | 
					                                           Default is <d#1024 d#480>.
 | 
				
			||||||
 | 
					       - rotate-display (empty) : rotate display 180 degrees.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ii) Xilinx SystemACE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      The Xilinx SystemACE device is used to program FPGAs from an FPGA
 | 
				
			||||||
 | 
					      bitstream stored on a CF card.  It can also be used as a generic CF
 | 
				
			||||||
 | 
					      interface device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Optional properties:
 | 
				
			||||||
 | 
					       - 8-bit (empty) : Set this property for SystemACE in 8 bit mode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      iii) Xilinx EMAC and Xilinx TEMAC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Xilinx Ethernet devices.  In addition to general xilinx properties
 | 
				
			||||||
 | 
					      listed above, nodes for these devices should include a phy-handle
 | 
				
			||||||
 | 
					      property, and may include other common network device properties
 | 
				
			||||||
 | 
					      like local-mac-address.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      iv) Xilinx Uartlite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Xilinx uartlite devices are simple fixed speed serial ports.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Required properties:
 | 
				
			||||||
 | 
					       - current-speed : Baud rate of uartlite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      v) Xilinx hwicap
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Xilinx hwicap devices provide access to the configuration logic
 | 
				
			||||||
 | 
							of the FPGA through the Internal Configuration Access Port
 | 
				
			||||||
 | 
							(ICAP).  The ICAP enables partial reconfiguration of the FPGA,
 | 
				
			||||||
 | 
							readback of the configuration information, and some control over
 | 
				
			||||||
 | 
							'warm boots' of the FPGA fabric.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Required properties:
 | 
				
			||||||
 | 
							- xlnx,family : The family of the FPGA, necessary since the
 | 
				
			||||||
 | 
					                      capabilities of the underlying ICAP hardware
 | 
				
			||||||
 | 
					                      differ between different families.  May be
 | 
				
			||||||
 | 
					                      'virtex2p', 'virtex4', or 'virtex5'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      vi) Xilinx Uart 16550
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Xilinx UART 16550 devices are very similar to the NS16550 but with
 | 
				
			||||||
 | 
					      different register spacing and an offset from the base address.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Required properties:
 | 
				
			||||||
 | 
					       - clock-frequency : Frequency of the clock input
 | 
				
			||||||
 | 
					       - reg-offset : A value of 3 is required
 | 
				
			||||||
 | 
					       - reg-shift : A value of 2 is required
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@ The remaining CPU time will be used for user input and other tasks. Because
 | 
				
			||||||
realtime tasks have explicitly allocated the CPU time they need to perform
 | 
					realtime tasks have explicitly allocated the CPU time they need to perform
 | 
				
			||||||
their tasks, buffer underruns in the graphics or audio can be eliminated.
 | 
					their tasks, buffer underruns in the graphics or audio can be eliminated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NOTE: the above example is not fully implemented as of yet (2.6.25). We still
 | 
					NOTE: the above example is not fully implemented yet. We still
 | 
				
			||||||
lack an EDF scheduler to make non-uniform periods usable.
 | 
					lack an EDF scheduler to make non-uniform periods usable.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -140,14 +140,15 @@ The other option is:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.o CONFIG_CGROUP_SCHED (aka "Basis for grouping tasks" = "Control groups")
 | 
					.o CONFIG_CGROUP_SCHED (aka "Basis for grouping tasks" = "Control groups")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This uses the /cgroup virtual file system and "/cgroup/<cgroup>/cpu.rt_runtime_us"
 | 
					This uses the /cgroup virtual file system and
 | 
				
			||||||
to control the CPU time reserved for each control group instead.
 | 
					"/cgroup/<cgroup>/cpu.rt_runtime_us" to control the CPU time reserved for each
 | 
				
			||||||
 | 
					control group instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For more information on working with control groups, you should read
 | 
					For more information on working with control groups, you should read
 | 
				
			||||||
Documentation/cgroups/cgroups.txt as well.
 | 
					Documentation/cgroups/cgroups.txt as well.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group settings are checked against the following limits in order to keep the configuration
 | 
					Group settings are checked against the following limits in order to keep the
 | 
				
			||||||
schedulable:
 | 
					configuration schedulable:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   \Sum_{i} runtime_{i} / global_period <= global_runtime / global_period
 | 
					   \Sum_{i} runtime_{i} / global_period <= global_runtime / global_period
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -189,7 +190,7 @@ Implementing SCHED_EDF might take a while to complete. Priority Inheritance is
 | 
				
			||||||
the biggest challenge as the current linux PI infrastructure is geared towards
 | 
					the biggest challenge as the current linux PI infrastructure is geared towards
 | 
				
			||||||
the limited static priority levels 0-99. With deadline scheduling you need to
 | 
					the limited static priority levels 0-99. With deadline scheduling you need to
 | 
				
			||||||
do deadline inheritance (since priority is inversely proportional to the
 | 
					do deadline inheritance (since priority is inversely proportional to the
 | 
				
			||||||
deadline delta (deadline - now).
 | 
					deadline delta (deadline - now)).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This means the whole PI machinery will have to be reworked - and that is one of
 | 
					This means the whole PI machinery will have to be reworked - and that is one of
 | 
				
			||||||
the most complex pieces of code we have.
 | 
					the most complex pieces of code we have.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -240,6 +240,7 @@ AD1986A
 | 
				
			||||||
  laptop-automute 2-channel with EAPD and HP-automute (Lenovo N100)
 | 
					  laptop-automute 2-channel with EAPD and HP-automute (Lenovo N100)
 | 
				
			||||||
  ultra		2-channel with EAPD (Samsung Ultra tablet PC)
 | 
					  ultra		2-channel with EAPD (Samsung Ultra tablet PC)
 | 
				
			||||||
  samsung	2-channel with EAPD (Samsung R65)
 | 
					  samsung	2-channel with EAPD (Samsung R65)
 | 
				
			||||||
 | 
					  samsung-p50	2-channel with HP-automute (Samsung P50)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AD1988/AD1988B/AD1989A/AD1989B
 | 
					AD1988/AD1988B/AD1989A/AD1989B
 | 
				
			||||||
==============================
 | 
					==============================
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,6 +101,8 @@ card*/pcm*/xrun_debug
 | 
				
			||||||
	  bit 0 = Enable XRUN/jiffies debug messages
 | 
						  bit 0 = Enable XRUN/jiffies debug messages
 | 
				
			||||||
	  bit 1 = Show stack trace at XRUN / jiffies check
 | 
						  bit 1 = Show stack trace at XRUN / jiffies check
 | 
				
			||||||
	  bit 2 = Enable additional jiffies check
 | 
						  bit 2 = Enable additional jiffies check
 | 
				
			||||||
 | 
						  bit 3 = Log hwptr update at each period interrupt
 | 
				
			||||||
 | 
						  bit 4 = Log hwptr update at each snd_pcm_update_hw_ptr()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	When the bit 0 is set, the driver will show the messages to
 | 
						When the bit 0 is set, the driver will show the messages to
 | 
				
			||||||
	kernel log when an xrun is detected.  The debug message is
 | 
						kernel log when an xrun is detected.  The debug message is
 | 
				
			||||||
| 
						 | 
					@ -117,6 +119,9 @@ card*/pcm*/xrun_debug
 | 
				
			||||||
	buggy) hardware that doesn't give smooth pointer updates.
 | 
						buggy) hardware that doesn't give smooth pointer updates.
 | 
				
			||||||
	This feature is enabled via the bit 2.
 | 
						This feature is enabled via the bit 2.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Bits 3 and 4 are for logging the hwptr records.  Note that
 | 
				
			||||||
 | 
						these will give flood of kernel messages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
card*/pcm*/sub*/info
 | 
					card*/pcm*/sub*/info
 | 
				
			||||||
	The general information of this PCM sub-stream.
 | 
						The general information of this PCM sub-stream.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,11 +99,13 @@ void parse_opts(int argc, char *argv[])
 | 
				
			||||||
			{ "lsb",     0, 0, 'L' },
 | 
								{ "lsb",     0, 0, 'L' },
 | 
				
			||||||
			{ "cs-high", 0, 0, 'C' },
 | 
								{ "cs-high", 0, 0, 'C' },
 | 
				
			||||||
			{ "3wire",   0, 0, '3' },
 | 
								{ "3wire",   0, 0, '3' },
 | 
				
			||||||
 | 
								{ "no-cs",   0, 0, 'N' },
 | 
				
			||||||
 | 
								{ "ready",   0, 0, 'R' },
 | 
				
			||||||
			{ NULL, 0, 0, 0 },
 | 
								{ NULL, 0, 0, 0 },
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		int c;
 | 
							int c;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		c = getopt_long(argc, argv, "D:s:d:b:lHOLC3", lopts, NULL);
 | 
							c = getopt_long(argc, argv, "D:s:d:b:lHOLC3NR", lopts, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (c == -1)
 | 
							if (c == -1)
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
| 
						 | 
					@ -139,6 +141,12 @@ void parse_opts(int argc, char *argv[])
 | 
				
			||||||
		case '3':
 | 
							case '3':
 | 
				
			||||||
			mode |= SPI_3WIRE;
 | 
								mode |= SPI_3WIRE;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
 | 
							case 'N':
 | 
				
			||||||
 | 
								mode |= SPI_NO_CS;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case 'R':
 | 
				
			||||||
 | 
								mode |= SPI_READY;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			print_usage(argv[0]);
 | 
								print_usage(argv[0]);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -66,7 +66,8 @@ On all -  write a character to /proc/sysrq-trigger.  e.g.:
 | 
				
			||||||
'b'     - Will immediately reboot the system without syncing or unmounting
 | 
					'b'     - Will immediately reboot the system without syncing or unmounting
 | 
				
			||||||
          your disks.
 | 
					          your disks.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
'c'	- Will perform a kexec reboot in order to take a crashdump.
 | 
					'c'	- Will perform a system crash by a NULL pointer dereference.
 | 
				
			||||||
 | 
					          A crashdump will be taken if configured.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
'd'	- Shows all locks that are held.
 | 
					'd'	- Shows all locks that are held.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -141,8 +142,8 @@ useful when you want to exit a program that will not let you switch consoles.
 | 
				
			||||||
re'B'oot is good when you're unable to shut down. But you should also 'S'ync
 | 
					re'B'oot is good when you're unable to shut down. But you should also 'S'ync
 | 
				
			||||||
and 'U'mount first.
 | 
					and 'U'mount first.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
'C'rashdump can be used to manually trigger a crashdump when the system is hung.
 | 
					'C'rash can be used to manually trigger a crashdump when the system is hung.
 | 
				
			||||||
The kernel needs to have been built with CONFIG_KEXEC enabled.
 | 
					Note that this just triggers a crash if there is no dump mechanism available.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
'S'ync is great when your system is locked up, it allows you to sync your
 | 
					'S'ync is great when your system is locked up, it allows you to sync your
 | 
				
			||||||
disks and will certainly lessen the chance of data loss and fscking. Note
 | 
					disks and will certainly lessen the chance of data loss and fscking. Note
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@
 | 
				
			||||||
 19 -> EM2860/SAA711X Reference Design          (em2860)
 | 
					 19 -> EM2860/SAA711X Reference Design          (em2860)
 | 
				
			||||||
 20 -> AMD ATI TV Wonder HD 600                 (em2880)        [0438:b002]
 | 
					 20 -> AMD ATI TV Wonder HD 600                 (em2880)        [0438:b002]
 | 
				
			||||||
 21 -> eMPIA Technology, Inc. GrabBeeX+ Video Encoder (em2800)        [eb1a:2801]
 | 
					 21 -> eMPIA Technology, Inc. GrabBeeX+ Video Encoder (em2800)        [eb1a:2801]
 | 
				
			||||||
 22 -> Unknown EM2750/EM2751 webcam grabber     (em2750)        [eb1a:2750,eb1a:2751]
 | 
					 22 -> EM2710/EM2750/EM2751 webcam grabber      (em2750)        [eb1a:2750,eb1a:2751]
 | 
				
			||||||
 23 -> Huaqi DLCW-130                           (em2750)
 | 
					 23 -> Huaqi DLCW-130                           (em2750)
 | 
				
			||||||
 24 -> D-Link DUB-T210 TV Tuner                 (em2820/em2840) [2001:f112]
 | 
					 24 -> D-Link DUB-T210 TV Tuner                 (em2820/em2840) [2001:f112]
 | 
				
			||||||
 25 -> Gadmei UTV310                            (em2820/em2840)
 | 
					 25 -> Gadmei UTV310                            (em2820/em2840)
 | 
				
			||||||
| 
						 | 
					@ -66,3 +66,4 @@
 | 
				
			||||||
 68 -> Terratec AV350                           (em2860)        [0ccd:0084]
 | 
					 68 -> Terratec AV350                           (em2860)        [0ccd:0084]
 | 
				
			||||||
 69 -> KWorld ATSC 315U HDTV TV Box             (em2882)        [eb1a:a313]
 | 
					 69 -> KWorld ATSC 315U HDTV TV Box             (em2882)        [eb1a:a313]
 | 
				
			||||||
 70 -> Evga inDtube                             (em2882)
 | 
					 70 -> Evga inDtube                             (em2882)
 | 
				
			||||||
 | 
					 71 -> Silvercrest Webcam 1.3mpix               (em2820/em2840)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,7 +44,9 @@ zc3xx		0458:7007	Genius VideoCam V2
 | 
				
			||||||
zc3xx		0458:700c	Genius VideoCam V3
 | 
					zc3xx		0458:700c	Genius VideoCam V3
 | 
				
			||||||
zc3xx		0458:700f	Genius VideoCam Web V2
 | 
					zc3xx		0458:700f	Genius VideoCam Web V2
 | 
				
			||||||
sonixj		0458:7025	Genius Eye 311Q
 | 
					sonixj		0458:7025	Genius Eye 311Q
 | 
				
			||||||
 | 
					sn9c20x		0458:7029	Genius Look 320s
 | 
				
			||||||
sonixj		0458:702e	Genius Slim 310 NB
 | 
					sonixj		0458:702e	Genius Slim 310 NB
 | 
				
			||||||
 | 
					sn9c20x		045e:00f4	LifeCam VX-6000 (SN9C20x + OV9650)
 | 
				
			||||||
sonixj		045e:00f5	MicroSoft VX3000
 | 
					sonixj		045e:00f5	MicroSoft VX3000
 | 
				
			||||||
sonixj		045e:00f7	MicroSoft VX1000
 | 
					sonixj		045e:00f7	MicroSoft VX1000
 | 
				
			||||||
ov519		045e:028c	Micro$oft xbox cam
 | 
					ov519		045e:028c	Micro$oft xbox cam
 | 
				
			||||||
| 
						 | 
					@ -282,6 +284,28 @@ sonixj		0c45:613a	Microdia Sonix PC Camera
 | 
				
			||||||
sonixj		0c45:613b	Surfer SN-206
 | 
					sonixj		0c45:613b	Surfer SN-206
 | 
				
			||||||
sonixj		0c45:613c	Sonix Pccam168
 | 
					sonixj		0c45:613c	Sonix Pccam168
 | 
				
			||||||
sonixj		0c45:6143	Sonix Pccam168
 | 
					sonixj		0c45:6143	Sonix Pccam168
 | 
				
			||||||
 | 
					sn9c20x		0c45:6240	PC Camera (SN9C201 + MT9M001)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6242	PC Camera (SN9C201 + MT9M111)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6248	PC Camera (SN9C201 + OV9655)
 | 
				
			||||||
 | 
					sn9c20x		0c45:624e	PC Camera (SN9C201 + SOI968)
 | 
				
			||||||
 | 
					sn9c20x		0c45:624f	PC Camera (SN9C201 + OV9650)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6251	PC Camera (SN9C201 + OV9650)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6253	PC Camera (SN9C201 + OV9650)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6260	PC Camera (SN9C201 + OV7670)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6270	PC Camera (SN9C201 + MT9V011/MT9V111/MT9V112)
 | 
				
			||||||
 | 
					sn9c20x		0c45:627b	PC Camera (SN9C201 + OV7660)
 | 
				
			||||||
 | 
					sn9c20x		0c45:627c	PC Camera (SN9C201 + HV7131R)
 | 
				
			||||||
 | 
					sn9c20x		0c45:627f	PC Camera (SN9C201 + OV9650)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6280	PC Camera (SN9C202 + MT9M001)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6282	PC Camera (SN9C202 + MT9M111)
 | 
				
			||||||
 | 
					sn9c20x		0c45:6288	PC Camera (SN9C202 + OV9655)
 | 
				
			||||||
 | 
					sn9c20x		0c45:628e	PC Camera (SN9C202 + SOI968)
 | 
				
			||||||
 | 
					sn9c20x		0c45:628f	PC Camera (SN9C202 + OV9650)
 | 
				
			||||||
 | 
					sn9c20x		0c45:62a0	PC Camera (SN9C202 + OV7670)
 | 
				
			||||||
 | 
					sn9c20x		0c45:62b0	PC Camera (SN9C202 + MT9V011/MT9V111/MT9V112)
 | 
				
			||||||
 | 
					sn9c20x		0c45:62b3	PC Camera (SN9C202 + OV9655)
 | 
				
			||||||
 | 
					sn9c20x		0c45:62bb	PC Camera (SN9C202 + OV7660)
 | 
				
			||||||
 | 
					sn9c20x		0c45:62bc	PC Camera (SN9C202 + HV7131R)
 | 
				
			||||||
sunplus		0d64:0303	Sunplus FashionCam DXG
 | 
					sunplus		0d64:0303	Sunplus FashionCam DXG
 | 
				
			||||||
etoms		102c:6151	Qcam Sangha CIF
 | 
					etoms		102c:6151	Qcam Sangha CIF
 | 
				
			||||||
etoms		102c:6251	Qcam xxxxxx VGA
 | 
					etoms		102c:6251	Qcam xxxxxx VGA
 | 
				
			||||||
| 
						 | 
					@ -290,6 +314,7 @@ spca561		10fd:7e50	FlyCam Usb 100
 | 
				
			||||||
zc3xx		10fd:8050	Typhoon Webshot II USB 300k
 | 
					zc3xx		10fd:8050	Typhoon Webshot II USB 300k
 | 
				
			||||||
ov534		1415:2000	Sony HD Eye for PS3 (SLEH 00201)
 | 
					ov534		1415:2000	Sony HD Eye for PS3 (SLEH 00201)
 | 
				
			||||||
pac207		145f:013a	Trust WB-1300N
 | 
					pac207		145f:013a	Trust WB-1300N
 | 
				
			||||||
 | 
					sn9c20x		145f:013d	Trust WB-3600R
 | 
				
			||||||
vc032x		15b8:6001	HP 2.0 Megapixel
 | 
					vc032x		15b8:6001	HP 2.0 Megapixel
 | 
				
			||||||
vc032x		15b8:6002	HP 2.0 Megapixel rz406aa
 | 
					vc032x		15b8:6002	HP 2.0 Megapixel rz406aa
 | 
				
			||||||
spca501		1776:501c	Arowana 300K CMOS Camera
 | 
					spca501		1776:501c	Arowana 300K CMOS Camera
 | 
				
			||||||
| 
						 | 
					@ -300,4 +325,11 @@ spca500		2899:012c	Toptro Industrial
 | 
				
			||||||
spca508		8086:0110	Intel Easy PC Camera
 | 
					spca508		8086:0110	Intel Easy PC Camera
 | 
				
			||||||
spca500		8086:0630	Intel Pocket PC Camera
 | 
					spca500		8086:0630	Intel Pocket PC Camera
 | 
				
			||||||
spca506		99fa:8988	Grandtec V.cap
 | 
					spca506		99fa:8988	Grandtec V.cap
 | 
				
			||||||
 | 
					sn9c20x		a168:0610	Dino-Lite Digital Microscope (SN9C201 + HV7131R)
 | 
				
			||||||
 | 
					sn9c20x		a168:0611	Dino-Lite Digital Microscope (SN9C201 + HV7131R)
 | 
				
			||||||
 | 
					sn9c20x		a168:0613	Dino-Lite Digital Microscope (SN9C201 + HV7131R)
 | 
				
			||||||
 | 
					sn9c20x		a168:0618	Dino-Lite Digital Microscope (SN9C201 + HV7131R)
 | 
				
			||||||
 | 
					sn9c20x		a168:0614	Dino-Lite Digital Microscope (SN9C201 + MT9M111)
 | 
				
			||||||
 | 
					sn9c20x		a168:0615	Dino-Lite Digital Microscope (SN9C201 + MT9M111)
 | 
				
			||||||
 | 
					sn9c20x		a168:0617	Dino-Lite Digital Microscope (SN9C201 + MT9M111)
 | 
				
			||||||
spca561		abcd:cdee	Petcam
 | 
					spca561		abcd:cdee	Petcam
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,3 +2,5 @@
 | 
				
			||||||
	- this file
 | 
						- this file
 | 
				
			||||||
mtrr.txt
 | 
					mtrr.txt
 | 
				
			||||||
	- how to use x86 Memory Type Range Registers to increase performance
 | 
						- how to use x86 Memory Type Range Registers to increase performance
 | 
				
			||||||
 | 
					exception-tables.txt
 | 
				
			||||||
 | 
						- why and how Linux kernel uses exception tables on x86
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
     Kernel level exception handling in Linux 2.1.8
 | 
					     Kernel level exception handling in Linux
 | 
				
			||||||
  Commentary by Joerg Pommnitz <joerg@raleigh.ibm.com>
 | 
					  Commentary by Joerg Pommnitz <joerg@raleigh.ibm.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When a process runs in kernel mode, it often has to access user
 | 
					When a process runs in kernel mode, it often has to access user
 | 
				
			||||||
| 
						 | 
					@ -29,8 +29,8 @@ page fault handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void do_page_fault(struct pt_regs *regs, unsigned long error_code)
 | 
					void do_page_fault(struct pt_regs *regs, unsigned long error_code)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
in arch/i386/mm/fault.c. The parameters on the stack are set up by 
 | 
					in arch/x86/mm/fault.c. The parameters on the stack are set up by
 | 
				
			||||||
the low level assembly glue in arch/i386/kernel/entry.S. The parameter
 | 
					the low level assembly glue in arch/x86/kernel/entry_32.S. The parameter
 | 
				
			||||||
regs is a pointer to the saved registers on the stack, error_code
 | 
					regs is a pointer to the saved registers on the stack, error_code
 | 
				
			||||||
contains a reason code for the exception.
 | 
					contains a reason code for the exception.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,12 +52,12 @@ Where does fixup point to?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Since we jump to the contents of fixup, fixup obviously points
 | 
					Since we jump to the contents of fixup, fixup obviously points
 | 
				
			||||||
to executable code. This code is hidden inside the user access macros.
 | 
					to executable code. This code is hidden inside the user access macros.
 | 
				
			||||||
I have picked the get_user macro defined in include/asm/uaccess.h as an
 | 
					I have picked the get_user macro defined in arch/x86/include/asm/uaccess.h
 | 
				
			||||||
example. The definition is somewhat hard to follow, so let's peek at 
 | 
					as an example. The definition is somewhat hard to follow, so let's peek at
 | 
				
			||||||
the code generated by the preprocessor and the compiler. I selected
 | 
					the code generated by the preprocessor and the compiler. I selected
 | 
				
			||||||
the get_user call in drivers/char/console.c for a detailed examination.
 | 
					the get_user call in drivers/char/sysrq.c for a detailed examination.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The original code in console.c line 1405:
 | 
					The original code in sysrq.c line 587:
 | 
				
			||||||
        get_user(c, buf);
 | 
					        get_user(c, buf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The preprocessor output (edited to become somewhat readable):
 | 
					The preprocessor output (edited to become somewhat readable):
 | 
				
			||||||
							
								
								
									
										2815
									
								
								MAINTAINERS
									
										
									
									
									
								
							
							
						
						
									
										2815
									
								
								MAINTAINERS
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										12
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
VERSION = 2
 | 
					VERSION = 2
 | 
				
			||||||
PATCHLEVEL = 6
 | 
					PATCHLEVEL = 6
 | 
				
			||||||
SUBLEVEL = 31
 | 
					SUBLEVEL = 31
 | 
				
			||||||
EXTRAVERSION = -rc1
 | 
					EXTRAVERSION = -rc5
 | 
				
			||||||
NAME = Man-Eating Seals of Antiquity
 | 
					NAME = Man-Eating Seals of Antiquity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# *DOCUMENTATION*
 | 
					# *DOCUMENTATION*
 | 
				
			||||||
| 
						 | 
					@ -140,15 +140,13 @@ _all: modules
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
srctree		:= $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
 | 
					srctree		:= $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
 | 
				
			||||||
TOPDIR		:= $(srctree)
 | 
					 | 
				
			||||||
# FIXME - TOPDIR is obsolete, use srctree/objtree
 | 
					 | 
				
			||||||
objtree		:= $(CURDIR)
 | 
					objtree		:= $(CURDIR)
 | 
				
			||||||
src		:= $(srctree)
 | 
					src		:= $(srctree)
 | 
				
			||||||
obj		:= $(objtree)
 | 
					obj		:= $(objtree)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VPATH		:= $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))
 | 
					VPATH		:= $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export srctree objtree VPATH TOPDIR
 | 
					export srctree objtree VPATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# SUBARCH tells the usermode build what the underlying arch is.  That is set
 | 
					# SUBARCH tells the usermode build what the underlying arch is.  That is set
 | 
				
			||||||
| 
						 | 
					@ -344,7 +342,9 @@ KBUILD_CPPFLAGS := -D__KERNEL__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
 | 
					KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
 | 
				
			||||||
		   -fno-strict-aliasing -fno-common \
 | 
							   -fno-strict-aliasing -fno-common \
 | 
				
			||||||
		   -Werror-implicit-function-declaration
 | 
							   -Werror-implicit-function-declaration \
 | 
				
			||||||
 | 
							   -Wno-format-security \
 | 
				
			||||||
 | 
							   -fno-delete-null-pointer-checks
 | 
				
			||||||
KBUILD_AFLAGS   := -D__ASSEMBLY__
 | 
					KBUILD_AFLAGS   := -D__ASSEMBLY__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
 | 
					# Read KERNELRELEASE from include/config/kernel.release (if it exists)
 | 
				
			||||||
| 
						 | 
					@ -566,7 +566,7 @@ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
 | 
				
			||||||
KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
 | 
					KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# disable invalid "can't wrap" optimizations for signed / pointers
 | 
					# disable invalid "can't wrap" optimizations for signed / pointers
 | 
				
			||||||
KBUILD_CFLAGS	+= $(call cc-option,-fwrapv)
 | 
					KBUILD_CFLAGS	+= $(call cc-option,-fno-strict-overflow)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# revert to pre-gcc-4.4 behaviour of .eh_frame
 | 
					# revert to pre-gcc-4.4 behaviour of .eh_frame
 | 
				
			||||||
KBUILD_CFLAGS	+= $(call cc-option,-fno-dwarf2-cfi-asm)
 | 
					KBUILD_CFLAGS	+= $(call cc-option,-fno-dwarf2-cfi-asm)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef MODULE
 | 
					#ifndef MODULE
 | 
				
			||||||
#define SHIFT_PERCPU_PTR(var, offset) RELOC_HIDE(&per_cpu_var(var), (offset))
 | 
					#define SHIFT_PERCPU_PTR(var, offset) RELOC_HIDE(&per_cpu_var(var), (offset))
 | 
				
			||||||
#define PER_CPU_ATTRIBUTES
 | 
					#define PER_CPU_DEF_ATTRIBUTES
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * To calculate addresses of locally defined variables, GCC uses 32-bit
 | 
					 * To calculate addresses of locally defined variables, GCC uses 32-bit
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
 | 
				
			||||||
		: "=&r"(__ptr), "=&r"(tmp_gp));		\
 | 
							: "=&r"(__ptr), "=&r"(tmp_gp));		\
 | 
				
			||||||
	(typeof(&per_cpu_var(var)))(__ptr + (offset)); })
 | 
						(typeof(&per_cpu_var(var)))(__ptr + (offset)); })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PER_CPU_ATTRIBUTES	__used
 | 
					#define PER_CPU_DEF_ATTRIBUTES	__used
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* MODULE */
 | 
					#endif /* MODULE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -71,7 +71,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
 | 
				
			||||||
#define __get_cpu_var(var)		per_cpu_var(var)
 | 
					#define __get_cpu_var(var)		per_cpu_var(var)
 | 
				
			||||||
#define __raw_get_cpu_var(var)		per_cpu_var(var)
 | 
					#define __raw_get_cpu_var(var)		per_cpu_var(var)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PER_CPU_ATTRIBUTES
 | 
					#define PER_CPU_DEF_ATTRIBUTES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* SMP */
 | 
					#endif /* SMP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,7 @@ struct thread_info {
 | 
				
			||||||
	.task		= &tsk,			\
 | 
						.task		= &tsk,			\
 | 
				
			||||||
	.exec_domain	= &default_exec_domain,	\
 | 
						.exec_domain	= &default_exec_domain,	\
 | 
				
			||||||
	.addr_limit	= KERNEL_DS,		\
 | 
						.addr_limit	= KERNEL_DS,		\
 | 
				
			||||||
 | 
						.preempt_count	= INIT_PREEMPT_COUNT,	\
 | 
				
			||||||
	.restart_block = {			\
 | 
						.restart_block = {			\
 | 
				
			||||||
		.fn = do_no_restart_syscall,	\
 | 
							.fn = do_no_restart_syscall,	\
 | 
				
			||||||
	},					\
 | 
						},					\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <asm-generic/tlb.h>
 | 
					#include <asm-generic/tlb.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define __pte_free_tlb(tlb, pte)			pte_free((tlb)->mm, pte)
 | 
					#define __pte_free_tlb(tlb, pte, address)		pte_free((tlb)->mm, pte)
 | 
				
			||||||
#define __pmd_free_tlb(tlb, pmd)			pmd_free((tlb)->mm, pmd)
 | 
					#define __pmd_free_tlb(tlb, pmd, address)		pmd_free((tlb)->mm, pmd)
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,6 @@
 | 
				
			||||||
#include <linux/sched.h>
 | 
					#include <linux/sched.h>
 | 
				
			||||||
#include <linux/mm.h>
 | 
					#include <linux/mm.h>
 | 
				
			||||||
#include <linux/smp.h>
 | 
					#include <linux/smp.h>
 | 
				
			||||||
#include <linux/smp_lock.h>
 | 
					 | 
				
			||||||
#include <linux/errno.h>
 | 
					#include <linux/errno.h>
 | 
				
			||||||
#include <linux/ptrace.h>
 | 
					#include <linux/ptrace.h>
 | 
				
			||||||
#include <linux/user.h>
 | 
					#include <linux/user.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,14 +99,6 @@ config DEBUG_CLPS711X_UART2
 | 
				
			||||||
	  output to the second serial port on these devices.  Saying N will
 | 
						  output to the second serial port on these devices.  Saying N will
 | 
				
			||||||
	  cause the debug messages to appear on the first serial port.
 | 
						  cause the debug messages to appear on the first serial port.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config DEBUG_S3C_PORT
 | 
					 | 
				
			||||||
	depends on DEBUG_LL && PLAT_S3C
 | 
					 | 
				
			||||||
	bool "Kernel low-level debugging messages via S3C UART"
 | 
					 | 
				
			||||||
	help
 | 
					 | 
				
			||||||
	  Say Y here if you want debug print routines to go to one of the
 | 
					 | 
				
			||||||
	  S3C internal UARTs. The chosen UART must have been configured
 | 
					 | 
				
			||||||
	  before it is used.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
config DEBUG_S3C_UART
 | 
					config DEBUG_S3C_UART
 | 
				
			||||||
	depends on PLAT_S3C
 | 
						depends on PLAT_S3C
 | 
				
			||||||
	int "S3C UART to use for low-level debug"
 | 
						int "S3C UART to use for low-level debug"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,6 @@ unsigned int __machine_arch_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void putstr(const char *ptr);
 | 
					static void putstr(const char *ptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <linux/compiler.h>
 | 
					 | 
				
			||||||
#include <mach/uncompress.h>
 | 
					#include <mach/uncompress.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_DEBUG_ICEDCC
 | 
					#ifdef CONFIG_DEBUG_ICEDCC
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,6 +17,7 @@
 | 
				
			||||||
#include <linux/err.h>
 | 
					#include <linux/err.h>
 | 
				
			||||||
#include <linux/string.h>
 | 
					#include <linux/string.h>
 | 
				
			||||||
#include <linux/mutex.h>
 | 
					#include <linux/mutex.h>
 | 
				
			||||||
 | 
					#include <linux/clk.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <asm/clkdev.h>
 | 
					#include <asm/clkdev.h>
 | 
				
			||||||
#include <mach/clkdev.h>
 | 
					#include <mach/clkdev.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -1,15 +1,15 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Automatically generated make config: don't edit
 | 
					# Automatically generated make config: don't edit
 | 
				
			||||||
# Linux kernel version: 2.6.30-rc1
 | 
					# Linux kernel version: 2.6.31-rc4
 | 
				
			||||||
# Wed Apr  8 10:18:06 2009
 | 
					# Fri Jul 24 16:08:06 2009
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_ARM=y
 | 
					CONFIG_ARM=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_PWM=y
 | 
				
			||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 | 
					CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 | 
				
			||||||
CONFIG_GENERIC_GPIO=y
 | 
					CONFIG_GENERIC_GPIO=y
 | 
				
			||||||
CONFIG_GENERIC_TIME=y
 | 
					CONFIG_GENERIC_TIME=y
 | 
				
			||||||
CONFIG_GENERIC_CLOCKEVENTS=y
 | 
					CONFIG_GENERIC_CLOCKEVENTS=y
 | 
				
			||||||
CONFIG_MMU=y
 | 
					CONFIG_MMU=y
 | 
				
			||||||
# CONFIG_NO_IOPORT is not set
 | 
					 | 
				
			||||||
CONFIG_GENERIC_HARDIRQS=y
 | 
					CONFIG_GENERIC_HARDIRQS=y
 | 
				
			||||||
CONFIG_STACKTRACE_SUPPORT=y
 | 
					CONFIG_STACKTRACE_SUPPORT=y
 | 
				
			||||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 | 
					CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 | 
				
			||||||
| 
						 | 
					@ -18,14 +18,13 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 | 
				
			||||||
CONFIG_HARDIRQS_SW_RESEND=y
 | 
					CONFIG_HARDIRQS_SW_RESEND=y
 | 
				
			||||||
CONFIG_GENERIC_IRQ_PROBE=y
 | 
					CONFIG_GENERIC_IRQ_PROBE=y
 | 
				
			||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
 | 
					CONFIG_RWSEM_GENERIC_SPINLOCK=y
 | 
				
			||||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
 | 
					 | 
				
			||||||
CONFIG_GENERIC_HWEIGHT=y
 | 
					CONFIG_GENERIC_HWEIGHT=y
 | 
				
			||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
 | 
					CONFIG_GENERIC_CALIBRATE_DELAY=y
 | 
				
			||||||
CONFIG_ARCH_MTD_XIP=y
 | 
					CONFIG_ARCH_MTD_XIP=y
 | 
				
			||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 | 
					CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 | 
				
			||||||
CONFIG_VECTORS_BASE=0xffff0000
 | 
					CONFIG_VECTORS_BASE=0xffff0000
 | 
				
			||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 | 
					CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 | 
				
			||||||
 | 
					CONFIG_CONSTRUCTORS=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# General setup
 | 
					# General setup
 | 
				
			||||||
| 
						 | 
					@ -85,7 +84,12 @@ CONFIG_TIMERFD=y
 | 
				
			||||||
CONFIG_EVENTFD=y
 | 
					CONFIG_EVENTFD=y
 | 
				
			||||||
CONFIG_SHMEM=y
 | 
					CONFIG_SHMEM=y
 | 
				
			||||||
CONFIG_AIO=y
 | 
					CONFIG_AIO=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Performance Counters
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
CONFIG_VM_EVENT_COUNTERS=y
 | 
					CONFIG_VM_EVENT_COUNTERS=y
 | 
				
			||||||
 | 
					# CONFIG_STRIP_ASM_SYMS is not set
 | 
				
			||||||
# CONFIG_COMPAT_BRK is not set
 | 
					# CONFIG_COMPAT_BRK is not set
 | 
				
			||||||
CONFIG_SLAB=y
 | 
					CONFIG_SLAB=y
 | 
				
			||||||
# CONFIG_SLUB is not set
 | 
					# CONFIG_SLUB is not set
 | 
				
			||||||
| 
						 | 
					@ -99,6 +103,12 @@ CONFIG_KPROBES=y
 | 
				
			||||||
CONFIG_KRETPROBES=y
 | 
					CONFIG_KRETPROBES=y
 | 
				
			||||||
CONFIG_HAVE_KPROBES=y
 | 
					CONFIG_HAVE_KPROBES=y
 | 
				
			||||||
CONFIG_HAVE_KRETPROBES=y
 | 
					CONFIG_HAVE_KRETPROBES=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_CLK=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# GCOV-based kernel profiling
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_GCOV_KERNEL is not set
 | 
				
			||||||
# CONFIG_SLOW_WORK is not set
 | 
					# CONFIG_SLOW_WORK is not set
 | 
				
			||||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 | 
					CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 | 
				
			||||||
CONFIG_SLABINFO=y
 | 
					CONFIG_SLABINFO=y
 | 
				
			||||||
| 
						 | 
					@ -111,7 +121,7 @@ CONFIG_MODULE_UNLOAD=y
 | 
				
			||||||
# CONFIG_MODVERSIONS is not set
 | 
					# CONFIG_MODVERSIONS is not set
 | 
				
			||||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
 | 
					# CONFIG_MODULE_SRCVERSION_ALL is not set
 | 
				
			||||||
CONFIG_BLOCK=y
 | 
					CONFIG_BLOCK=y
 | 
				
			||||||
# CONFIG_LBD is not set
 | 
					CONFIG_LBDAF=y
 | 
				
			||||||
# CONFIG_BLK_DEV_BSG is not set
 | 
					# CONFIG_BLK_DEV_BSG is not set
 | 
				
			||||||
# CONFIG_BLK_DEV_INTEGRITY is not set
 | 
					# CONFIG_BLK_DEV_INTEGRITY is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -138,13 +148,14 @@ CONFIG_FREEZER=y
 | 
				
			||||||
# CONFIG_ARCH_VERSATILE is not set
 | 
					# CONFIG_ARCH_VERSATILE is not set
 | 
				
			||||||
# CONFIG_ARCH_AT91 is not set
 | 
					# CONFIG_ARCH_AT91 is not set
 | 
				
			||||||
# CONFIG_ARCH_CLPS711X is not set
 | 
					# CONFIG_ARCH_CLPS711X is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_GEMINI is not set
 | 
				
			||||||
# CONFIG_ARCH_EBSA110 is not set
 | 
					# CONFIG_ARCH_EBSA110 is not set
 | 
				
			||||||
# CONFIG_ARCH_EP93XX is not set
 | 
					# CONFIG_ARCH_EP93XX is not set
 | 
				
			||||||
# CONFIG_ARCH_GEMINI is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_FOOTBRIDGE is not set
 | 
					# CONFIG_ARCH_FOOTBRIDGE is not set
 | 
				
			||||||
 | 
					CONFIG_ARCH_MXC=y
 | 
				
			||||||
 | 
					# CONFIG_ARCH_STMP3XXX is not set
 | 
				
			||||||
# CONFIG_ARCH_NETX is not set
 | 
					# CONFIG_ARCH_NETX is not set
 | 
				
			||||||
# CONFIG_ARCH_H720X is not set
 | 
					# CONFIG_ARCH_H720X is not set
 | 
				
			||||||
# CONFIG_ARCH_IMX is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_IOP13XX is not set
 | 
					# CONFIG_ARCH_IOP13XX is not set
 | 
				
			||||||
# CONFIG_ARCH_IOP32X is not set
 | 
					# CONFIG_ARCH_IOP32X is not set
 | 
				
			||||||
# CONFIG_ARCH_IOP33X is not set
 | 
					# CONFIG_ARCH_IOP33X is not set
 | 
				
			||||||
| 
						 | 
					@ -153,25 +164,25 @@ CONFIG_FREEZER=y
 | 
				
			||||||
# CONFIG_ARCH_IXP4XX is not set
 | 
					# CONFIG_ARCH_IXP4XX is not set
 | 
				
			||||||
# CONFIG_ARCH_L7200 is not set
 | 
					# CONFIG_ARCH_L7200 is not set
 | 
				
			||||||
# CONFIG_ARCH_KIRKWOOD is not set
 | 
					# CONFIG_ARCH_KIRKWOOD is not set
 | 
				
			||||||
# CONFIG_ARCH_KS8695 is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_NS9XXX is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_LOKI is not set
 | 
					# CONFIG_ARCH_LOKI is not set
 | 
				
			||||||
# CONFIG_ARCH_MV78XX0 is not set
 | 
					# CONFIG_ARCH_MV78XX0 is not set
 | 
				
			||||||
CONFIG_ARCH_MXC=y
 | 
					 | 
				
			||||||
# CONFIG_ARCH_ORION5X is not set
 | 
					# CONFIG_ARCH_ORION5X is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_MMP is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_KS8695 is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_NS9XXX is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_W90X900 is not set
 | 
				
			||||||
# CONFIG_ARCH_PNX4008 is not set
 | 
					# CONFIG_ARCH_PNX4008 is not set
 | 
				
			||||||
# CONFIG_ARCH_PXA is not set
 | 
					# CONFIG_ARCH_PXA is not set
 | 
				
			||||||
# CONFIG_ARCH_MMP is not set
 | 
					# CONFIG_ARCH_MSM is not set
 | 
				
			||||||
# CONFIG_ARCH_RPC is not set
 | 
					# CONFIG_ARCH_RPC is not set
 | 
				
			||||||
# CONFIG_ARCH_SA1100 is not set
 | 
					# CONFIG_ARCH_SA1100 is not set
 | 
				
			||||||
# CONFIG_ARCH_S3C2410 is not set
 | 
					# CONFIG_ARCH_S3C2410 is not set
 | 
				
			||||||
# CONFIG_ARCH_S3C64XX is not set
 | 
					# CONFIG_ARCH_S3C64XX is not set
 | 
				
			||||||
# CONFIG_ARCH_SHARK is not set
 | 
					# CONFIG_ARCH_SHARK is not set
 | 
				
			||||||
# CONFIG_ARCH_LH7A40X is not set
 | 
					# CONFIG_ARCH_LH7A40X is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_U300 is not set
 | 
				
			||||||
# CONFIG_ARCH_DAVINCI is not set
 | 
					# CONFIG_ARCH_DAVINCI is not set
 | 
				
			||||||
# CONFIG_ARCH_OMAP is not set
 | 
					# CONFIG_ARCH_OMAP is not set
 | 
				
			||||||
# CONFIG_ARCH_MSM is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_W90X900 is not set
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Freescale MXC Implementations
 | 
					# Freescale MXC Implementations
 | 
				
			||||||
| 
						 | 
					@ -188,6 +199,8 @@ CONFIG_MACH_MX27=y
 | 
				
			||||||
CONFIG_MACH_MX27ADS=y
 | 
					CONFIG_MACH_MX27ADS=y
 | 
				
			||||||
CONFIG_MACH_PCM038=y
 | 
					CONFIG_MACH_PCM038=y
 | 
				
			||||||
CONFIG_MACH_PCM970_BASEBOARD=y
 | 
					CONFIG_MACH_PCM970_BASEBOARD=y
 | 
				
			||||||
 | 
					CONFIG_MACH_MX27_3DS=y
 | 
				
			||||||
 | 
					CONFIG_MACH_MX27LITE=y
 | 
				
			||||||
CONFIG_MXC_IRQ_PRIOR=y
 | 
					CONFIG_MXC_IRQ_PRIOR=y
 | 
				
			||||||
CONFIG_MXC_PWM=y
 | 
					CONFIG_MXC_PWM=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -213,7 +226,6 @@ CONFIG_ARM_THUMB=y
 | 
				
			||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
 | 
					# CONFIG_CPU_DCACHE_DISABLE is not set
 | 
				
			||||||
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
 | 
					# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
 | 
				
			||||||
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
 | 
					# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
 | 
				
			||||||
# CONFIG_OUTER_CACHE is not set
 | 
					 | 
				
			||||||
CONFIG_COMMON_CLKDEV=y
 | 
					CONFIG_COMMON_CLKDEV=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -238,7 +250,6 @@ CONFIG_PREEMPT=y
 | 
				
			||||||
CONFIG_HZ=100
 | 
					CONFIG_HZ=100
 | 
				
			||||||
CONFIG_AEABI=y
 | 
					CONFIG_AEABI=y
 | 
				
			||||||
CONFIG_OABI_COMPAT=y
 | 
					CONFIG_OABI_COMPAT=y
 | 
				
			||||||
CONFIG_ARCH_FLATMEM_HAS_HOLES=y
 | 
					 | 
				
			||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 | 
					# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 | 
				
			||||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 | 
					# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 | 
				
			||||||
# CONFIG_HIGHMEM is not set
 | 
					# CONFIG_HIGHMEM is not set
 | 
				
			||||||
| 
						 | 
					@ -253,10 +264,11 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
 | 
				
			||||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
 | 
					# CONFIG_PHYS_ADDR_T_64BIT is not set
 | 
				
			||||||
CONFIG_ZONE_DMA_FLAG=0
 | 
					CONFIG_ZONE_DMA_FLAG=0
 | 
				
			||||||
CONFIG_VIRT_TO_BUS=y
 | 
					CONFIG_VIRT_TO_BUS=y
 | 
				
			||||||
CONFIG_UNEVICTABLE_LRU=y
 | 
					 | 
				
			||||||
CONFIG_HAVE_MLOCK=y
 | 
					CONFIG_HAVE_MLOCK=y
 | 
				
			||||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 | 
					CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 | 
				
			||||||
CONFIG_ALIGNMENT_TRAP=y
 | 
					CONFIG_ALIGNMENT_TRAP=y
 | 
				
			||||||
 | 
					# CONFIG_UACCESS_WITH_MEMCPY is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Boot options
 | 
					# Boot options
 | 
				
			||||||
| 
						 | 
					@ -361,6 +373,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 | 
				
			||||||
# CONFIG_ECONET is not set
 | 
					# CONFIG_ECONET is not set
 | 
				
			||||||
# CONFIG_WAN_ROUTER is not set
 | 
					# CONFIG_WAN_ROUTER is not set
 | 
				
			||||||
# CONFIG_PHONET is not set
 | 
					# CONFIG_PHONET is not set
 | 
				
			||||||
 | 
					# CONFIG_IEEE802154 is not set
 | 
				
			||||||
# CONFIG_NET_SCHED is not set
 | 
					# CONFIG_NET_SCHED is not set
 | 
				
			||||||
# CONFIG_DCB is not set
 | 
					# CONFIG_DCB is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -474,7 +487,16 @@ CONFIG_MTD_PHYSMAP=y
 | 
				
			||||||
# CONFIG_MTD_DOC2000 is not set
 | 
					# CONFIG_MTD_DOC2000 is not set
 | 
				
			||||||
# CONFIG_MTD_DOC2001 is not set
 | 
					# CONFIG_MTD_DOC2001 is not set
 | 
				
			||||||
# CONFIG_MTD_DOC2001PLUS is not set
 | 
					# CONFIG_MTD_DOC2001PLUS is not set
 | 
				
			||||||
# CONFIG_MTD_NAND is not set
 | 
					CONFIG_MTD_NAND=y
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_VERIFY_WRITE is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_ECC_SMC is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_MUSEUM_IDS is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_GPIO is not set
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND_IDS=y
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_DISKONCHIP is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_NANDSIM is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_PLATFORM is not set
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND_MXC=y
 | 
				
			||||||
# CONFIG_MTD_ONENAND is not set
 | 
					# CONFIG_MTD_ONENAND is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -485,7 +507,15 @@ CONFIG_MTD_PHYSMAP=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# UBI - Unsorted block images
 | 
					# UBI - Unsorted block images
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_MTD_UBI is not set
 | 
					CONFIG_MTD_UBI=y
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI_WL_THRESHOLD=4096
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI_BEB_RESERVE=1
 | 
				
			||||||
 | 
					# CONFIG_MTD_UBI_GLUEBI is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# UBI debugging options
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_MTD_UBI_DEBUG is not set
 | 
				
			||||||
# CONFIG_PARPORT is not set
 | 
					# CONFIG_PARPORT is not set
 | 
				
			||||||
CONFIG_BLK_DEV=y
 | 
					CONFIG_BLK_DEV=y
 | 
				
			||||||
# CONFIG_BLK_DEV_COW_COMMON is not set
 | 
					# CONFIG_BLK_DEV_COW_COMMON is not set
 | 
				
			||||||
| 
						 | 
					@ -494,7 +524,21 @@ CONFIG_BLK_DEV=y
 | 
				
			||||||
# CONFIG_BLK_DEV_RAM is not set
 | 
					# CONFIG_BLK_DEV_RAM is not set
 | 
				
			||||||
# CONFIG_CDROM_PKTCDVD is not set
 | 
					# CONFIG_CDROM_PKTCDVD is not set
 | 
				
			||||||
# CONFIG_ATA_OVER_ETH is not set
 | 
					# CONFIG_ATA_OVER_ETH is not set
 | 
				
			||||||
# CONFIG_MISC_DEVICES is not set
 | 
					# CONFIG_MG_DISK is not set
 | 
				
			||||||
 | 
					CONFIG_MISC_DEVICES=y
 | 
				
			||||||
 | 
					# CONFIG_ICS932S401 is not set
 | 
				
			||||||
 | 
					# CONFIG_ENCLOSURE_SERVICES is not set
 | 
				
			||||||
 | 
					# CONFIG_ISL29003 is not set
 | 
				
			||||||
 | 
					# CONFIG_C2PORT is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# EEPROM support
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					CONFIG_EEPROM_AT24=y
 | 
				
			||||||
 | 
					# CONFIG_EEPROM_AT25 is not set
 | 
				
			||||||
 | 
					# CONFIG_EEPROM_LEGACY is not set
 | 
				
			||||||
 | 
					# CONFIG_EEPROM_MAX6875 is not set
 | 
				
			||||||
 | 
					# CONFIG_EEPROM_93CX6 is not set
 | 
				
			||||||
CONFIG_HAVE_IDE=y
 | 
					CONFIG_HAVE_IDE=y
 | 
				
			||||||
# CONFIG_IDE is not set
 | 
					# CONFIG_IDE is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -508,7 +552,6 @@ CONFIG_HAVE_IDE=y
 | 
				
			||||||
# CONFIG_ATA is not set
 | 
					# CONFIG_ATA is not set
 | 
				
			||||||
# CONFIG_MD is not set
 | 
					# CONFIG_MD is not set
 | 
				
			||||||
CONFIG_NETDEVICES=y
 | 
					CONFIG_NETDEVICES=y
 | 
				
			||||||
CONFIG_COMPAT_NET_DEV_OPS=y
 | 
					 | 
				
			||||||
# CONFIG_DUMMY is not set
 | 
					# CONFIG_DUMMY is not set
 | 
				
			||||||
# CONFIG_BONDING is not set
 | 
					# CONFIG_BONDING is not set
 | 
				
			||||||
# CONFIG_MACVLAN is not set
 | 
					# CONFIG_MACVLAN is not set
 | 
				
			||||||
| 
						 | 
					@ -534,6 +577,8 @@ CONFIG_NET_ETHERNET=y
 | 
				
			||||||
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
 | 
					# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
 | 
				
			||||||
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
 | 
					# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
 | 
				
			||||||
# CONFIG_B44 is not set
 | 
					# CONFIG_B44 is not set
 | 
				
			||||||
 | 
					# CONFIG_KS8842 is not set
 | 
				
			||||||
 | 
					# CONFIG_KS8851 is not set
 | 
				
			||||||
CONFIG_FEC=y
 | 
					CONFIG_FEC=y
 | 
				
			||||||
# CONFIG_FEC2 is not set
 | 
					# CONFIG_FEC2 is not set
 | 
				
			||||||
# CONFIG_NETDEV_1000 is not set
 | 
					# CONFIG_NETDEV_1000 is not set
 | 
				
			||||||
| 
						 | 
					@ -580,6 +625,11 @@ CONFIG_INPUT_EVDEV=y
 | 
				
			||||||
# CONFIG_INPUT_TABLET is not set
 | 
					# CONFIG_INPUT_TABLET is not set
 | 
				
			||||||
CONFIG_INPUT_TOUCHSCREEN=y
 | 
					CONFIG_INPUT_TOUCHSCREEN=y
 | 
				
			||||||
# CONFIG_TOUCHSCREEN_ADS7846 is not set
 | 
					# CONFIG_TOUCHSCREEN_ADS7846 is not set
 | 
				
			||||||
 | 
					# CONFIG_TOUCHSCREEN_AD7877 is not set
 | 
				
			||||||
 | 
					# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
 | 
				
			||||||
 | 
					# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
 | 
				
			||||||
 | 
					# CONFIG_TOUCHSCREEN_AD7879 is not set
 | 
				
			||||||
 | 
					# CONFIG_TOUCHSCREEN_EETI is not set
 | 
				
			||||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
 | 
					# CONFIG_TOUCHSCREEN_FUJITSU is not set
 | 
				
			||||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
 | 
					# CONFIG_TOUCHSCREEN_GUNZE is not set
 | 
				
			||||||
# CONFIG_TOUCHSCREEN_ELO is not set
 | 
					# CONFIG_TOUCHSCREEN_ELO is not set
 | 
				
			||||||
| 
						 | 
					@ -592,6 +642,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
 | 
				
			||||||
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
 | 
					# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
 | 
				
			||||||
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
 | 
					# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
 | 
				
			||||||
# CONFIG_TOUCHSCREEN_TSC2007 is not set
 | 
					# CONFIG_TOUCHSCREEN_TSC2007 is not set
 | 
				
			||||||
 | 
					# CONFIG_TOUCHSCREEN_W90X900 is not set
 | 
				
			||||||
# CONFIG_INPUT_MISC is not set
 | 
					# CONFIG_INPUT_MISC is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -644,6 +695,7 @@ CONFIG_I2C_HELPER_AUTO=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# I2C system bus drivers (mostly embedded / system-on-chip)
 | 
					# I2C system bus drivers (mostly embedded / system-on-chip)
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_I2C_DESIGNWARE is not set
 | 
				
			||||||
# CONFIG_I2C_GPIO is not set
 | 
					# CONFIG_I2C_GPIO is not set
 | 
				
			||||||
CONFIG_I2C_IMX=y
 | 
					CONFIG_I2C_IMX=y
 | 
				
			||||||
# CONFIG_I2C_OCORES is not set
 | 
					# CONFIG_I2C_OCORES is not set
 | 
				
			||||||
| 
						 | 
					@ -668,7 +720,6 @@ CONFIG_I2C_IMX=y
 | 
				
			||||||
# CONFIG_SENSORS_PCF8574 is not set
 | 
					# CONFIG_SENSORS_PCF8574 is not set
 | 
				
			||||||
# CONFIG_PCF8575 is not set
 | 
					# CONFIG_PCF8575 is not set
 | 
				
			||||||
# CONFIG_SENSORS_PCA9539 is not set
 | 
					# CONFIG_SENSORS_PCA9539 is not set
 | 
				
			||||||
# CONFIG_SENSORS_MAX6875 is not set
 | 
					 | 
				
			||||||
# CONFIG_SENSORS_TSL2550 is not set
 | 
					# CONFIG_SENSORS_TSL2550 is not set
 | 
				
			||||||
# CONFIG_I2C_DEBUG_CORE is not set
 | 
					# CONFIG_I2C_DEBUG_CORE is not set
 | 
				
			||||||
# CONFIG_I2C_DEBUG_ALGO is not set
 | 
					# CONFIG_I2C_DEBUG_ALGO is not set
 | 
				
			||||||
| 
						 | 
					@ -719,6 +770,7 @@ CONFIG_W1=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_W1_MASTER_DS2482 is not set
 | 
					# CONFIG_W1_MASTER_DS2482 is not set
 | 
				
			||||||
CONFIG_W1_MASTER_MXC=y
 | 
					CONFIG_W1_MASTER_MXC=y
 | 
				
			||||||
 | 
					# CONFIG_W1_MASTER_DS1WM is not set
 | 
				
			||||||
# CONFIG_W1_MASTER_GPIO is not set
 | 
					# CONFIG_W1_MASTER_GPIO is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -753,54 +805,16 @@ CONFIG_SSB_POSSIBLE=y
 | 
				
			||||||
# CONFIG_TPS65010 is not set
 | 
					# CONFIG_TPS65010 is not set
 | 
				
			||||||
# CONFIG_TWL4030_CORE is not set
 | 
					# CONFIG_TWL4030_CORE is not set
 | 
				
			||||||
# CONFIG_MFD_TMIO is not set
 | 
					# CONFIG_MFD_TMIO is not set
 | 
				
			||||||
 | 
					# CONFIG_MFD_T7L66XB is not set
 | 
				
			||||||
 | 
					# CONFIG_MFD_TC6387XB is not set
 | 
				
			||||||
# CONFIG_MFD_TC6393XB is not set
 | 
					# CONFIG_MFD_TC6393XB is not set
 | 
				
			||||||
# CONFIG_PMIC_DA903X is not set
 | 
					# CONFIG_PMIC_DA903X is not set
 | 
				
			||||||
# CONFIG_MFD_WM8400 is not set
 | 
					# CONFIG_MFD_WM8400 is not set
 | 
				
			||||||
# CONFIG_MFD_WM8350_I2C is not set
 | 
					# CONFIG_MFD_WM8350_I2C is not set
 | 
				
			||||||
# CONFIG_MFD_PCF50633 is not set
 | 
					# CONFIG_MFD_PCF50633 is not set
 | 
				
			||||||
 | 
					# CONFIG_AB3100_CORE is not set
 | 
				
			||||||
#
 | 
					# CONFIG_EZX_PCAP is not set
 | 
				
			||||||
# Multimedia devices
 | 
					# CONFIG_MEDIA_SUPPORT is not set
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Multimedia core support
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
CONFIG_VIDEO_DEV=y
 | 
					 | 
				
			||||||
CONFIG_VIDEO_V4L2_COMMON=y
 | 
					 | 
				
			||||||
CONFIG_VIDEO_ALLOW_V4L1=y
 | 
					 | 
				
			||||||
CONFIG_VIDEO_V4L1_COMPAT=y
 | 
					 | 
				
			||||||
# CONFIG_DVB_CORE is not set
 | 
					 | 
				
			||||||
CONFIG_VIDEO_MEDIA=y
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Multimedia drivers
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# CONFIG_MEDIA_ATTACH is not set
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER=y
 | 
					 | 
				
			||||||
# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_SIMPLE=y
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_TDA8290=y
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_TDA9887=y
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_TEA5761=y
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_TEA5767=y
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_MT20XX=y
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_XC2028=y
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_XC5000=y
 | 
					 | 
				
			||||||
CONFIG_MEDIA_TUNER_MC44S803=y
 | 
					 | 
				
			||||||
CONFIG_VIDEO_V4L2=y
 | 
					 | 
				
			||||||
CONFIG_VIDEO_V4L1=y
 | 
					 | 
				
			||||||
CONFIG_VIDEO_CAPTURE_DRIVERS=y
 | 
					 | 
				
			||||||
# CONFIG_VIDEO_ADV_DEBUG is not set
 | 
					 | 
				
			||||||
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 | 
					 | 
				
			||||||
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
 | 
					 | 
				
			||||||
# CONFIG_VIDEO_VIVI is not set
 | 
					 | 
				
			||||||
# CONFIG_VIDEO_CPIA is not set
 | 
					 | 
				
			||||||
# CONFIG_VIDEO_SAA5246A is not set
 | 
					 | 
				
			||||||
# CONFIG_VIDEO_SAA5249 is not set
 | 
					 | 
				
			||||||
# CONFIG_SOC_CAMERA is not set
 | 
					 | 
				
			||||||
# CONFIG_RADIO_ADAPTERS is not set
 | 
					 | 
				
			||||||
# CONFIG_DAB is not set
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Graphics support
 | 
					# Graphics support
 | 
				
			||||||
| 
						 | 
					@ -917,6 +931,7 @@ CONFIG_RTC_DRV_PCF8563=y
 | 
				
			||||||
# CONFIG_RTC_DRV_S35390A is not set
 | 
					# CONFIG_RTC_DRV_S35390A is not set
 | 
				
			||||||
# CONFIG_RTC_DRV_FM3130 is not set
 | 
					# CONFIG_RTC_DRV_FM3130 is not set
 | 
				
			||||||
# CONFIG_RTC_DRV_RX8581 is not set
 | 
					# CONFIG_RTC_DRV_RX8581 is not set
 | 
				
			||||||
 | 
					# CONFIG_RTC_DRV_RX8025 is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# SPI RTC drivers
 | 
					# SPI RTC drivers
 | 
				
			||||||
| 
						 | 
					@ -962,12 +977,15 @@ CONFIG_RTC_DRV_PCF8563=y
 | 
				
			||||||
# CONFIG_REISERFS_FS is not set
 | 
					# CONFIG_REISERFS_FS is not set
 | 
				
			||||||
# CONFIG_JFS_FS is not set
 | 
					# CONFIG_JFS_FS is not set
 | 
				
			||||||
# CONFIG_FS_POSIX_ACL is not set
 | 
					# CONFIG_FS_POSIX_ACL is not set
 | 
				
			||||||
CONFIG_FILE_LOCKING=y
 | 
					 | 
				
			||||||
# CONFIG_XFS_FS is not set
 | 
					# CONFIG_XFS_FS is not set
 | 
				
			||||||
 | 
					# CONFIG_GFS2_FS is not set
 | 
				
			||||||
# CONFIG_OCFS2_FS is not set
 | 
					# CONFIG_OCFS2_FS is not set
 | 
				
			||||||
# CONFIG_BTRFS_FS is not set
 | 
					# CONFIG_BTRFS_FS is not set
 | 
				
			||||||
 | 
					CONFIG_FILE_LOCKING=y
 | 
				
			||||||
 | 
					CONFIG_FSNOTIFY=y
 | 
				
			||||||
# CONFIG_DNOTIFY is not set
 | 
					# CONFIG_DNOTIFY is not set
 | 
				
			||||||
# CONFIG_INOTIFY is not set
 | 
					# CONFIG_INOTIFY is not set
 | 
				
			||||||
 | 
					CONFIG_INOTIFY_USER=y
 | 
				
			||||||
# CONFIG_QUOTA is not set
 | 
					# CONFIG_QUOTA is not set
 | 
				
			||||||
# CONFIG_AUTOFS_FS is not set
 | 
					# CONFIG_AUTOFS_FS is not set
 | 
				
			||||||
# CONFIG_AUTOFS4_FS is not set
 | 
					# CONFIG_AUTOFS4_FS is not set
 | 
				
			||||||
| 
						 | 
					@ -1021,6 +1039,12 @@ CONFIG_JFFS2_ZLIB=y
 | 
				
			||||||
# CONFIG_JFFS2_LZO is not set
 | 
					# CONFIG_JFFS2_LZO is not set
 | 
				
			||||||
CONFIG_JFFS2_RTIME=y
 | 
					CONFIG_JFFS2_RTIME=y
 | 
				
			||||||
# CONFIG_JFFS2_RUBIN is not set
 | 
					# CONFIG_JFFS2_RUBIN is not set
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS=y
 | 
				
			||||||
 | 
					# CONFIG_UBIFS_FS_XATTR is not set
 | 
				
			||||||
 | 
					# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS_LZO=y
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS_ZLIB=y
 | 
				
			||||||
 | 
					# CONFIG_UBIFS_FS_DEBUG is not set
 | 
				
			||||||
# CONFIG_CRAMFS is not set
 | 
					# CONFIG_CRAMFS is not set
 | 
				
			||||||
# CONFIG_SQUASHFS is not set
 | 
					# CONFIG_SQUASHFS is not set
 | 
				
			||||||
# CONFIG_VXFS_FS is not set
 | 
					# CONFIG_VXFS_FS is not set
 | 
				
			||||||
| 
						 | 
					@ -1119,25 +1143,11 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
 | 
				
			||||||
CONFIG_NOP_TRACER=y
 | 
					CONFIG_NOP_TRACER=y
 | 
				
			||||||
CONFIG_HAVE_FUNCTION_TRACER=y
 | 
					CONFIG_HAVE_FUNCTION_TRACER=y
 | 
				
			||||||
CONFIG_RING_BUFFER=y
 | 
					CONFIG_RING_BUFFER=y
 | 
				
			||||||
 | 
					CONFIG_EVENT_TRACING=y
 | 
				
			||||||
 | 
					CONFIG_CONTEXT_SWITCH_TRACER=y
 | 
				
			||||||
CONFIG_TRACING=y
 | 
					CONFIG_TRACING=y
 | 
				
			||||||
CONFIG_TRACING_SUPPORT=y
 | 
					CONFIG_TRACING_SUPPORT=y
 | 
				
			||||||
 | 
					# CONFIG_FTRACE is not set
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Tracers
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# CONFIG_FUNCTION_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_IRQSOFF_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_PREEMPT_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_SCHED_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_EVENT_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_BOOT_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
 | 
					 | 
				
			||||||
# CONFIG_STACK_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_KMEMTRACE is not set
 | 
					 | 
				
			||||||
# CONFIG_WORKQUEUE_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
 | 
					 | 
				
			||||||
# CONFIG_FTRACE_STARTUP_TEST is not set
 | 
					 | 
				
			||||||
# CONFIG_DYNAMIC_DEBUG is not set
 | 
					# CONFIG_DYNAMIC_DEBUG is not set
 | 
				
			||||||
# CONFIG_SAMPLES is not set
 | 
					# CONFIG_SAMPLES is not set
 | 
				
			||||||
CONFIG_HAVE_ARCH_KGDB=y
 | 
					CONFIG_HAVE_ARCH_KGDB=y
 | 
				
			||||||
| 
						 | 
					@ -1151,16 +1161,104 @@ CONFIG_ARM_UNWIND=y
 | 
				
			||||||
# CONFIG_SECURITY is not set
 | 
					# CONFIG_SECURITY is not set
 | 
				
			||||||
# CONFIG_SECURITYFS is not set
 | 
					# CONFIG_SECURITYFS is not set
 | 
				
			||||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
 | 
					# CONFIG_SECURITY_FILE_CAPABILITIES is not set
 | 
				
			||||||
# CONFIG_CRYPTO is not set
 | 
					CONFIG_CRYPTO=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Crypto core or helper
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_FIPS is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_ALGAPI=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_ALGAPI2=y
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_MANAGER is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_MANAGER2 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_GF128MUL is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_NULL is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CRYPTD is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_AUTHENC is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_TEST is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Authenticated Encryption with Associated Data
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CCM is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_GCM is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_SEQIV is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Block modes
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CBC is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CTR is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CTS is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_ECB is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_LRW is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_PCBC is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_XTS is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Hash modes
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_HMAC is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_XCBC is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Digest
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CRC32C is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_MD4 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_MD5 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_MICHAEL_MIC is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_RMD128 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_RMD160 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_RMD256 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_RMD320 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_SHA1 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_SHA256 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_SHA512 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_TGR192 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_WP512 is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Ciphers
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_AES is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_ANUBIS is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_ARC4 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_BLOWFISH is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CAMELLIA is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CAST5 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_CAST6 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DES is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_FCRYPT is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_KHAZAD is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_SALSA20 is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_SEED is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_SERPENT is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_TEA is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_TWOFISH is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Compression
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_DEFLATE=y
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_ZLIB is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_LZO=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Random Number Generation
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_ANSI_CPRNG is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_HW=y
 | 
				
			||||||
CONFIG_BINARY_PRINTF=y
 | 
					CONFIG_BINARY_PRINTF=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Library routines
 | 
					# Library routines
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_BITREVERSE=y
 | 
					CONFIG_BITREVERSE=y
 | 
				
			||||||
 | 
					CONFIG_RATIONAL=y
 | 
				
			||||||
CONFIG_GENERIC_FIND_LAST_BIT=y
 | 
					CONFIG_GENERIC_FIND_LAST_BIT=y
 | 
				
			||||||
# CONFIG_CRC_CCITT is not set
 | 
					# CONFIG_CRC_CCITT is not set
 | 
				
			||||||
# CONFIG_CRC16 is not set
 | 
					CONFIG_CRC16=y
 | 
				
			||||||
# CONFIG_CRC_T10DIF is not set
 | 
					# CONFIG_CRC_T10DIF is not set
 | 
				
			||||||
# CONFIG_CRC_ITU_T is not set
 | 
					# CONFIG_CRC_ITU_T is not set
 | 
				
			||||||
CONFIG_CRC32=y
 | 
					CONFIG_CRC32=y
 | 
				
			||||||
| 
						 | 
					@ -1168,6 +1266,8 @@ CONFIG_CRC32=y
 | 
				
			||||||
# CONFIG_LIBCRC32C is not set
 | 
					# CONFIG_LIBCRC32C is not set
 | 
				
			||||||
CONFIG_ZLIB_INFLATE=y
 | 
					CONFIG_ZLIB_INFLATE=y
 | 
				
			||||||
CONFIG_ZLIB_DEFLATE=y
 | 
					CONFIG_ZLIB_DEFLATE=y
 | 
				
			||||||
 | 
					CONFIG_LZO_COMPRESS=y
 | 
				
			||||||
 | 
					CONFIG_LZO_DECOMPRESS=y
 | 
				
			||||||
CONFIG_HAS_IOMEM=y
 | 
					CONFIG_HAS_IOMEM=y
 | 
				
			||||||
CONFIG_HAS_IOPORT=y
 | 
					CONFIG_HAS_IOPORT=y
 | 
				
			||||||
CONFIG_HAS_DMA=y
 | 
					CONFIG_HAS_DMA=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,15 +1,15 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Automatically generated make config: don't edit
 | 
					# Automatically generated make config: don't edit
 | 
				
			||||||
# Linux kernel version: 2.6.30-rc1
 | 
					# Linux kernel version: 2.6.31-rc4
 | 
				
			||||||
# Wed Apr  8 11:06:37 2009
 | 
					# Tue Jul 28 14:11:34 2009
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_ARM=y
 | 
					CONFIG_ARM=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_PWM=y
 | 
				
			||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 | 
					CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 | 
				
			||||||
CONFIG_GENERIC_GPIO=y
 | 
					CONFIG_GENERIC_GPIO=y
 | 
				
			||||||
CONFIG_GENERIC_TIME=y
 | 
					CONFIG_GENERIC_TIME=y
 | 
				
			||||||
CONFIG_GENERIC_CLOCKEVENTS=y
 | 
					CONFIG_GENERIC_CLOCKEVENTS=y
 | 
				
			||||||
CONFIG_MMU=y
 | 
					CONFIG_MMU=y
 | 
				
			||||||
# CONFIG_NO_IOPORT is not set
 | 
					 | 
				
			||||||
CONFIG_GENERIC_HARDIRQS=y
 | 
					CONFIG_GENERIC_HARDIRQS=y
 | 
				
			||||||
CONFIG_STACKTRACE_SUPPORT=y
 | 
					CONFIG_STACKTRACE_SUPPORT=y
 | 
				
			||||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 | 
					CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 | 
				
			||||||
| 
						 | 
					@ -18,14 +18,13 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 | 
				
			||||||
CONFIG_HARDIRQS_SW_RESEND=y
 | 
					CONFIG_HARDIRQS_SW_RESEND=y
 | 
				
			||||||
CONFIG_GENERIC_IRQ_PROBE=y
 | 
					CONFIG_GENERIC_IRQ_PROBE=y
 | 
				
			||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
 | 
					CONFIG_RWSEM_GENERIC_SPINLOCK=y
 | 
				
			||||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
 | 
					 | 
				
			||||||
CONFIG_GENERIC_HWEIGHT=y
 | 
					CONFIG_GENERIC_HWEIGHT=y
 | 
				
			||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
 | 
					CONFIG_GENERIC_CALIBRATE_DELAY=y
 | 
				
			||||||
CONFIG_ARCH_MTD_XIP=y
 | 
					CONFIG_ARCH_MTD_XIP=y
 | 
				
			||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 | 
					CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 | 
				
			||||||
CONFIG_VECTORS_BASE=0xffff0000
 | 
					CONFIG_VECTORS_BASE=0xffff0000
 | 
				
			||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 | 
					CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 | 
				
			||||||
 | 
					CONFIG_CONSTRUCTORS=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# General setup
 | 
					# General setup
 | 
				
			||||||
| 
						 | 
					@ -86,7 +85,12 @@ CONFIG_TIMERFD=y
 | 
				
			||||||
CONFIG_EVENTFD=y
 | 
					CONFIG_EVENTFD=y
 | 
				
			||||||
CONFIG_SHMEM=y
 | 
					CONFIG_SHMEM=y
 | 
				
			||||||
CONFIG_AIO=y
 | 
					CONFIG_AIO=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Performance Counters
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
CONFIG_VM_EVENT_COUNTERS=y
 | 
					CONFIG_VM_EVENT_COUNTERS=y
 | 
				
			||||||
 | 
					# CONFIG_STRIP_ASM_SYMS is not set
 | 
				
			||||||
CONFIG_COMPAT_BRK=y
 | 
					CONFIG_COMPAT_BRK=y
 | 
				
			||||||
CONFIG_SLAB=y
 | 
					CONFIG_SLAB=y
 | 
				
			||||||
# CONFIG_SLUB is not set
 | 
					# CONFIG_SLUB is not set
 | 
				
			||||||
| 
						 | 
					@ -97,6 +101,11 @@ CONFIG_HAVE_OPROFILE=y
 | 
				
			||||||
# CONFIG_KPROBES is not set
 | 
					# CONFIG_KPROBES is not set
 | 
				
			||||||
CONFIG_HAVE_KPROBES=y
 | 
					CONFIG_HAVE_KPROBES=y
 | 
				
			||||||
CONFIG_HAVE_KRETPROBES=y
 | 
					CONFIG_HAVE_KRETPROBES=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_CLK=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# GCOV-based kernel profiling
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
# CONFIG_SLOW_WORK is not set
 | 
					# CONFIG_SLOW_WORK is not set
 | 
				
			||||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 | 
					CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 | 
				
			||||||
CONFIG_SLABINFO=y
 | 
					CONFIG_SLABINFO=y
 | 
				
			||||||
| 
						 | 
					@ -109,7 +118,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 | 
				
			||||||
CONFIG_MODVERSIONS=y
 | 
					CONFIG_MODVERSIONS=y
 | 
				
			||||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
 | 
					# CONFIG_MODULE_SRCVERSION_ALL is not set
 | 
				
			||||||
CONFIG_BLOCK=y
 | 
					CONFIG_BLOCK=y
 | 
				
			||||||
# CONFIG_LBD is not set
 | 
					CONFIG_LBDAF=y
 | 
				
			||||||
# CONFIG_BLK_DEV_BSG is not set
 | 
					# CONFIG_BLK_DEV_BSG is not set
 | 
				
			||||||
# CONFIG_BLK_DEV_INTEGRITY is not set
 | 
					# CONFIG_BLK_DEV_INTEGRITY is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -136,13 +145,14 @@ CONFIG_FREEZER=y
 | 
				
			||||||
# CONFIG_ARCH_VERSATILE is not set
 | 
					# CONFIG_ARCH_VERSATILE is not set
 | 
				
			||||||
# CONFIG_ARCH_AT91 is not set
 | 
					# CONFIG_ARCH_AT91 is not set
 | 
				
			||||||
# CONFIG_ARCH_CLPS711X is not set
 | 
					# CONFIG_ARCH_CLPS711X is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_GEMINI is not set
 | 
				
			||||||
# CONFIG_ARCH_EBSA110 is not set
 | 
					# CONFIG_ARCH_EBSA110 is not set
 | 
				
			||||||
# CONFIG_ARCH_EP93XX is not set
 | 
					# CONFIG_ARCH_EP93XX is not set
 | 
				
			||||||
# CONFIG_ARCH_GEMINI is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_FOOTBRIDGE is not set
 | 
					# CONFIG_ARCH_FOOTBRIDGE is not set
 | 
				
			||||||
 | 
					CONFIG_ARCH_MXC=y
 | 
				
			||||||
 | 
					# CONFIG_ARCH_STMP3XXX is not set
 | 
				
			||||||
# CONFIG_ARCH_NETX is not set
 | 
					# CONFIG_ARCH_NETX is not set
 | 
				
			||||||
# CONFIG_ARCH_H720X is not set
 | 
					# CONFIG_ARCH_H720X is not set
 | 
				
			||||||
# CONFIG_ARCH_IMX is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_IOP13XX is not set
 | 
					# CONFIG_ARCH_IOP13XX is not set
 | 
				
			||||||
# CONFIG_ARCH_IOP32X is not set
 | 
					# CONFIG_ARCH_IOP32X is not set
 | 
				
			||||||
# CONFIG_ARCH_IOP33X is not set
 | 
					# CONFIG_ARCH_IOP33X is not set
 | 
				
			||||||
| 
						 | 
					@ -151,25 +161,25 @@ CONFIG_FREEZER=y
 | 
				
			||||||
# CONFIG_ARCH_IXP4XX is not set
 | 
					# CONFIG_ARCH_IXP4XX is not set
 | 
				
			||||||
# CONFIG_ARCH_L7200 is not set
 | 
					# CONFIG_ARCH_L7200 is not set
 | 
				
			||||||
# CONFIG_ARCH_KIRKWOOD is not set
 | 
					# CONFIG_ARCH_KIRKWOOD is not set
 | 
				
			||||||
# CONFIG_ARCH_KS8695 is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_NS9XXX is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_LOKI is not set
 | 
					# CONFIG_ARCH_LOKI is not set
 | 
				
			||||||
# CONFIG_ARCH_MV78XX0 is not set
 | 
					# CONFIG_ARCH_MV78XX0 is not set
 | 
				
			||||||
CONFIG_ARCH_MXC=y
 | 
					 | 
				
			||||||
# CONFIG_ARCH_ORION5X is not set
 | 
					# CONFIG_ARCH_ORION5X is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_MMP is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_KS8695 is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_NS9XXX is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_W90X900 is not set
 | 
				
			||||||
# CONFIG_ARCH_PNX4008 is not set
 | 
					# CONFIG_ARCH_PNX4008 is not set
 | 
				
			||||||
# CONFIG_ARCH_PXA is not set
 | 
					# CONFIG_ARCH_PXA is not set
 | 
				
			||||||
# CONFIG_ARCH_MMP is not set
 | 
					# CONFIG_ARCH_MSM is not set
 | 
				
			||||||
# CONFIG_ARCH_RPC is not set
 | 
					# CONFIG_ARCH_RPC is not set
 | 
				
			||||||
# CONFIG_ARCH_SA1100 is not set
 | 
					# CONFIG_ARCH_SA1100 is not set
 | 
				
			||||||
# CONFIG_ARCH_S3C2410 is not set
 | 
					# CONFIG_ARCH_S3C2410 is not set
 | 
				
			||||||
# CONFIG_ARCH_S3C64XX is not set
 | 
					# CONFIG_ARCH_S3C64XX is not set
 | 
				
			||||||
# CONFIG_ARCH_SHARK is not set
 | 
					# CONFIG_ARCH_SHARK is not set
 | 
				
			||||||
# CONFIG_ARCH_LH7A40X is not set
 | 
					# CONFIG_ARCH_LH7A40X is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_U300 is not set
 | 
				
			||||||
# CONFIG_ARCH_DAVINCI is not set
 | 
					# CONFIG_ARCH_DAVINCI is not set
 | 
				
			||||||
# CONFIG_ARCH_OMAP is not set
 | 
					# CONFIG_ARCH_OMAP is not set
 | 
				
			||||||
# CONFIG_ARCH_MSM is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_W90X900 is not set
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Freescale MXC Implementations
 | 
					# Freescale MXC Implementations
 | 
				
			||||||
| 
						 | 
					@ -178,6 +188,7 @@ CONFIG_ARCH_MXC=y
 | 
				
			||||||
# CONFIG_ARCH_MX2 is not set
 | 
					# CONFIG_ARCH_MX2 is not set
 | 
				
			||||||
CONFIG_ARCH_MX3=y
 | 
					CONFIG_ARCH_MX3=y
 | 
				
			||||||
CONFIG_ARCH_MX31=y
 | 
					CONFIG_ARCH_MX31=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_MX35=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# MX3 platforms:
 | 
					# MX3 platforms:
 | 
				
			||||||
| 
						 | 
					@ -185,12 +196,19 @@ CONFIG_ARCH_MX31=y
 | 
				
			||||||
CONFIG_MACH_MX31ADS=y
 | 
					CONFIG_MACH_MX31ADS=y
 | 
				
			||||||
CONFIG_MACH_MX31ADS_WM1133_EV1=y
 | 
					CONFIG_MACH_MX31ADS_WM1133_EV1=y
 | 
				
			||||||
CONFIG_MACH_PCM037=y
 | 
					CONFIG_MACH_PCM037=y
 | 
				
			||||||
 | 
					CONFIG_MACH_PCM037_EET=y
 | 
				
			||||||
CONFIG_MACH_MX31LITE=y
 | 
					CONFIG_MACH_MX31LITE=y
 | 
				
			||||||
CONFIG_MACH_MX31_3DS=y
 | 
					CONFIG_MACH_MX31_3DS=y
 | 
				
			||||||
CONFIG_MACH_MX31MOBOARD=y
 | 
					CONFIG_MACH_MX31MOBOARD=y
 | 
				
			||||||
 | 
					CONFIG_MACH_MX31LILLY=y
 | 
				
			||||||
CONFIG_MACH_QONG=y
 | 
					CONFIG_MACH_QONG=y
 | 
				
			||||||
 | 
					CONFIG_MACH_PCM043=y
 | 
				
			||||||
 | 
					CONFIG_MACH_ARMADILLO5X0=y
 | 
				
			||||||
 | 
					CONFIG_MACH_MX35_3DS=y
 | 
				
			||||||
CONFIG_MXC_IRQ_PRIOR=y
 | 
					CONFIG_MXC_IRQ_PRIOR=y
 | 
				
			||||||
CONFIG_MXC_PWM=y
 | 
					CONFIG_MXC_PWM=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_HAS_RNGA=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_MXC_IOMUX_V3=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Processor Type
 | 
					# Processor Type
 | 
				
			||||||
| 
						 | 
					@ -218,6 +236,7 @@ CONFIG_ARM_THUMB=y
 | 
				
			||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
 | 
					# CONFIG_CPU_BPREDICT_DISABLE is not set
 | 
				
			||||||
CONFIG_OUTER_CACHE=y
 | 
					CONFIG_OUTER_CACHE=y
 | 
				
			||||||
CONFIG_CACHE_L2X0=y
 | 
					CONFIG_CACHE_L2X0=y
 | 
				
			||||||
 | 
					# CONFIG_ARM_ERRATA_411920 is not set
 | 
				
			||||||
CONFIG_COMMON_CLKDEV=y
 | 
					CONFIG_COMMON_CLKDEV=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -242,7 +261,6 @@ CONFIG_PREEMPT=y
 | 
				
			||||||
CONFIG_HZ=100
 | 
					CONFIG_HZ=100
 | 
				
			||||||
CONFIG_AEABI=y
 | 
					CONFIG_AEABI=y
 | 
				
			||||||
CONFIG_OABI_COMPAT=y
 | 
					CONFIG_OABI_COMPAT=y
 | 
				
			||||||
CONFIG_ARCH_FLATMEM_HAS_HOLES=y
 | 
					 | 
				
			||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 | 
					# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 | 
				
			||||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 | 
					# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 | 
				
			||||||
# CONFIG_HIGHMEM is not set
 | 
					# CONFIG_HIGHMEM is not set
 | 
				
			||||||
| 
						 | 
					@ -257,10 +275,11 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
 | 
				
			||||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
 | 
					# CONFIG_PHYS_ADDR_T_64BIT is not set
 | 
				
			||||||
CONFIG_ZONE_DMA_FLAG=0
 | 
					CONFIG_ZONE_DMA_FLAG=0
 | 
				
			||||||
CONFIG_VIRT_TO_BUS=y
 | 
					CONFIG_VIRT_TO_BUS=y
 | 
				
			||||||
CONFIG_UNEVICTABLE_LRU=y
 | 
					 | 
				
			||||||
CONFIG_HAVE_MLOCK=y
 | 
					CONFIG_HAVE_MLOCK=y
 | 
				
			||||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 | 
					CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 | 
				
			||||||
CONFIG_ALIGNMENT_TRAP=y
 | 
					CONFIG_ALIGNMENT_TRAP=y
 | 
				
			||||||
 | 
					# CONFIG_UACCESS_WITH_MEMCPY is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Boot options
 | 
					# Boot options
 | 
				
			||||||
| 
						 | 
					@ -362,6 +381,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 | 
				
			||||||
# CONFIG_ECONET is not set
 | 
					# CONFIG_ECONET is not set
 | 
				
			||||||
# CONFIG_WAN_ROUTER is not set
 | 
					# CONFIG_WAN_ROUTER is not set
 | 
				
			||||||
# CONFIG_PHONET is not set
 | 
					# CONFIG_PHONET is not set
 | 
				
			||||||
 | 
					# CONFIG_IEEE802154 is not set
 | 
				
			||||||
# CONFIG_NET_SCHED is not set
 | 
					# CONFIG_NET_SCHED is not set
 | 
				
			||||||
# CONFIG_DCB is not set
 | 
					# CONFIG_DCB is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -465,7 +485,16 @@ CONFIG_MTD_PHYSMAP=y
 | 
				
			||||||
# CONFIG_MTD_DOC2000 is not set
 | 
					# CONFIG_MTD_DOC2000 is not set
 | 
				
			||||||
# CONFIG_MTD_DOC2001 is not set
 | 
					# CONFIG_MTD_DOC2001 is not set
 | 
				
			||||||
# CONFIG_MTD_DOC2001PLUS is not set
 | 
					# CONFIG_MTD_DOC2001PLUS is not set
 | 
				
			||||||
# CONFIG_MTD_NAND is not set
 | 
					CONFIG_MTD_NAND=y
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_VERIFY_WRITE is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_ECC_SMC is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_MUSEUM_IDS is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_GPIO is not set
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND_IDS=y
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_DISKONCHIP is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_NANDSIM is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_PLATFORM is not set
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND_MXC=y
 | 
				
			||||||
# CONFIG_MTD_ONENAND is not set
 | 
					# CONFIG_MTD_ONENAND is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -476,10 +505,30 @@ CONFIG_MTD_PHYSMAP=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# UBI - Unsorted block images
 | 
					# UBI - Unsorted block images
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_MTD_UBI is not set
 | 
					CONFIG_MTD_UBI=y
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI_WL_THRESHOLD=4096
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI_BEB_RESERVE=1
 | 
				
			||||||
 | 
					# CONFIG_MTD_UBI_GLUEBI is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# UBI debugging options
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_MTD_UBI_DEBUG is not set
 | 
				
			||||||
# CONFIG_PARPORT is not set
 | 
					# CONFIG_PARPORT is not set
 | 
				
			||||||
# CONFIG_BLK_DEV is not set
 | 
					# CONFIG_BLK_DEV is not set
 | 
				
			||||||
# CONFIG_MISC_DEVICES is not set
 | 
					CONFIG_MISC_DEVICES=y
 | 
				
			||||||
 | 
					# CONFIG_ICS932S401 is not set
 | 
				
			||||||
 | 
					# CONFIG_ENCLOSURE_SERVICES is not set
 | 
				
			||||||
 | 
					# CONFIG_ISL29003 is not set
 | 
				
			||||||
 | 
					# CONFIG_C2PORT is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# EEPROM support
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					CONFIG_EEPROM_AT24=y
 | 
				
			||||||
 | 
					# CONFIG_EEPROM_LEGACY is not set
 | 
				
			||||||
 | 
					# CONFIG_EEPROM_MAX6875 is not set
 | 
				
			||||||
 | 
					# CONFIG_EEPROM_93CX6 is not set
 | 
				
			||||||
CONFIG_HAVE_IDE=y
 | 
					CONFIG_HAVE_IDE=y
 | 
				
			||||||
# CONFIG_IDE is not set
 | 
					# CONFIG_IDE is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -493,7 +542,6 @@ CONFIG_HAVE_IDE=y
 | 
				
			||||||
# CONFIG_ATA is not set
 | 
					# CONFIG_ATA is not set
 | 
				
			||||||
# CONFIG_MD is not set
 | 
					# CONFIG_MD is not set
 | 
				
			||||||
CONFIG_NETDEVICES=y
 | 
					CONFIG_NETDEVICES=y
 | 
				
			||||||
CONFIG_COMPAT_NET_DEV_OPS=y
 | 
					 | 
				
			||||||
# CONFIG_DUMMY is not set
 | 
					# CONFIG_DUMMY is not set
 | 
				
			||||||
# CONFIG_BONDING is not set
 | 
					# CONFIG_BONDING is not set
 | 
				
			||||||
# CONFIG_MACVLAN is not set
 | 
					# CONFIG_MACVLAN is not set
 | 
				
			||||||
| 
						 | 
					@ -528,7 +576,7 @@ CONFIG_MII=y
 | 
				
			||||||
# CONFIG_ETHOC is not set
 | 
					# CONFIG_ETHOC is not set
 | 
				
			||||||
# CONFIG_SMC911X is not set
 | 
					# CONFIG_SMC911X is not set
 | 
				
			||||||
CONFIG_SMSC911X=y
 | 
					CONFIG_SMSC911X=y
 | 
				
			||||||
# CONFIG_DNET is not set
 | 
					CONFIG_DNET=y
 | 
				
			||||||
# CONFIG_IBM_NEW_EMAC_ZMII is not set
 | 
					# CONFIG_IBM_NEW_EMAC_ZMII is not set
 | 
				
			||||||
# CONFIG_IBM_NEW_EMAC_RGMII is not set
 | 
					# CONFIG_IBM_NEW_EMAC_RGMII is not set
 | 
				
			||||||
# CONFIG_IBM_NEW_EMAC_TAH is not set
 | 
					# CONFIG_IBM_NEW_EMAC_TAH is not set
 | 
				
			||||||
| 
						 | 
					@ -537,8 +585,10 @@ CONFIG_SMSC911X=y
 | 
				
			||||||
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
 | 
					# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
 | 
				
			||||||
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
 | 
					# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
 | 
				
			||||||
# CONFIG_B44 is not set
 | 
					# CONFIG_B44 is not set
 | 
				
			||||||
CONFIG_CS89x0=y
 | 
					# CONFIG_CS89x0 is not set
 | 
				
			||||||
CONFIG_CS89x0_NONISA_IRQ=y
 | 
					# CONFIG_KS8842 is not set
 | 
				
			||||||
 | 
					CONFIG_FEC=y
 | 
				
			||||||
 | 
					# CONFIG_FEC2 is not set
 | 
				
			||||||
# CONFIG_NETDEV_1000 is not set
 | 
					# CONFIG_NETDEV_1000 is not set
 | 
				
			||||||
# CONFIG_NETDEV_10000 is not set
 | 
					# CONFIG_NETDEV_10000 is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -609,6 +659,7 @@ CONFIG_I2C_HELPER_AUTO=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# I2C system bus drivers (mostly embedded / system-on-chip)
 | 
					# I2C system bus drivers (mostly embedded / system-on-chip)
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_I2C_DESIGNWARE is not set
 | 
				
			||||||
# CONFIG_I2C_GPIO is not set
 | 
					# CONFIG_I2C_GPIO is not set
 | 
				
			||||||
CONFIG_I2C_IMX=y
 | 
					CONFIG_I2C_IMX=y
 | 
				
			||||||
# CONFIG_I2C_OCORES is not set
 | 
					# CONFIG_I2C_OCORES is not set
 | 
				
			||||||
| 
						 | 
					@ -633,7 +684,6 @@ CONFIG_I2C_IMX=y
 | 
				
			||||||
# CONFIG_SENSORS_PCF8574 is not set
 | 
					# CONFIG_SENSORS_PCF8574 is not set
 | 
				
			||||||
# CONFIG_PCF8575 is not set
 | 
					# CONFIG_PCF8575 is not set
 | 
				
			||||||
# CONFIG_SENSORS_PCA9539 is not set
 | 
					# CONFIG_SENSORS_PCA9539 is not set
 | 
				
			||||||
# CONFIG_SENSORS_MAX6875 is not set
 | 
					 | 
				
			||||||
# CONFIG_SENSORS_TSL2550 is not set
 | 
					# CONFIG_SENSORS_TSL2550 is not set
 | 
				
			||||||
# CONFIG_I2C_DEBUG_CORE is not set
 | 
					# CONFIG_I2C_DEBUG_CORE is not set
 | 
				
			||||||
# CONFIG_I2C_DEBUG_ALGO is not set
 | 
					# CONFIG_I2C_DEBUG_ALGO is not set
 | 
				
			||||||
| 
						 | 
					@ -669,6 +719,7 @@ CONFIG_W1=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_W1_MASTER_DS2482 is not set
 | 
					# CONFIG_W1_MASTER_DS2482 is not set
 | 
				
			||||||
CONFIG_W1_MASTER_MXC=y
 | 
					CONFIG_W1_MASTER_MXC=y
 | 
				
			||||||
 | 
					# CONFIG_W1_MASTER_DS1WM is not set
 | 
				
			||||||
# CONFIG_W1_MASTER_GPIO is not set
 | 
					# CONFIG_W1_MASTER_GPIO is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -703,6 +754,8 @@ CONFIG_SSB_POSSIBLE=y
 | 
				
			||||||
# CONFIG_TPS65010 is not set
 | 
					# CONFIG_TPS65010 is not set
 | 
				
			||||||
# CONFIG_TWL4030_CORE is not set
 | 
					# CONFIG_TWL4030_CORE is not set
 | 
				
			||||||
# CONFIG_MFD_TMIO is not set
 | 
					# CONFIG_MFD_TMIO is not set
 | 
				
			||||||
 | 
					# CONFIG_MFD_T7L66XB is not set
 | 
				
			||||||
 | 
					# CONFIG_MFD_TC6387XB is not set
 | 
				
			||||||
# CONFIG_MFD_TC6393XB is not set
 | 
					# CONFIG_MFD_TC6393XB is not set
 | 
				
			||||||
# CONFIG_PMIC_DA903X is not set
 | 
					# CONFIG_PMIC_DA903X is not set
 | 
				
			||||||
# CONFIG_MFD_WM8400 is not set
 | 
					# CONFIG_MFD_WM8400 is not set
 | 
				
			||||||
| 
						 | 
					@ -711,10 +764,8 @@ CONFIG_MFD_WM8350_CONFIG_MODE_0=y
 | 
				
			||||||
CONFIG_MFD_WM8352_CONFIG_MODE_0=y
 | 
					CONFIG_MFD_WM8352_CONFIG_MODE_0=y
 | 
				
			||||||
CONFIG_MFD_WM8350_I2C=y
 | 
					CONFIG_MFD_WM8350_I2C=y
 | 
				
			||||||
# CONFIG_MFD_PCF50633 is not set
 | 
					# CONFIG_MFD_PCF50633 is not set
 | 
				
			||||||
 | 
					# CONFIG_AB3100_CORE is not set
 | 
				
			||||||
#
 | 
					CONFIG_MEDIA_SUPPORT=y
 | 
				
			||||||
# Multimedia devices
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Multimedia core support
 | 
					# Multimedia core support
 | 
				
			||||||
| 
						 | 
					@ -758,8 +809,10 @@ CONFIG_SOC_CAMERA_MT9T031=y
 | 
				
			||||||
CONFIG_SOC_CAMERA_MT9V022=y
 | 
					CONFIG_SOC_CAMERA_MT9V022=y
 | 
				
			||||||
CONFIG_SOC_CAMERA_TW9910=y
 | 
					CONFIG_SOC_CAMERA_TW9910=y
 | 
				
			||||||
# CONFIG_SOC_CAMERA_PLATFORM is not set
 | 
					# CONFIG_SOC_CAMERA_PLATFORM is not set
 | 
				
			||||||
# CONFIG_SOC_CAMERA_OV772X is not set
 | 
					CONFIG_SOC_CAMERA_OV772X=y
 | 
				
			||||||
 | 
					CONFIG_MX3_VIDEO=y
 | 
				
			||||||
CONFIG_VIDEO_MX3=y
 | 
					CONFIG_VIDEO_MX3=y
 | 
				
			||||||
 | 
					# CONFIG_VIDEO_SH_MOBILE_CEU is not set
 | 
				
			||||||
# CONFIG_RADIO_ADAPTERS is not set
 | 
					# CONFIG_RADIO_ADAPTERS is not set
 | 
				
			||||||
# CONFIG_DAB is not set
 | 
					# CONFIG_DAB is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -847,8 +900,11 @@ CONFIG_REGULATOR=y
 | 
				
			||||||
# CONFIG_REGULATOR_DEBUG is not set
 | 
					# CONFIG_REGULATOR_DEBUG is not set
 | 
				
			||||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
 | 
					# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
 | 
				
			||||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
 | 
					# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
 | 
				
			||||||
# CONFIG_REGULATOR_BQ24022 is not set
 | 
					# CONFIG_REGULATOR_BQ24022 is not set
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_MAX1586 is not set
 | 
				
			||||||
CONFIG_REGULATOR_WM8350=y
 | 
					CONFIG_REGULATOR_WM8350=y
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_LP3971 is not set
 | 
				
			||||||
# CONFIG_UIO is not set
 | 
					# CONFIG_UIO is not set
 | 
				
			||||||
# CONFIG_STAGING is not set
 | 
					# CONFIG_STAGING is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -861,10 +917,12 @@ CONFIG_REGULATOR_WM8350=y
 | 
				
			||||||
# CONFIG_REISERFS_FS is not set
 | 
					# CONFIG_REISERFS_FS is not set
 | 
				
			||||||
# CONFIG_JFS_FS is not set
 | 
					# CONFIG_JFS_FS is not set
 | 
				
			||||||
# CONFIG_FS_POSIX_ACL is not set
 | 
					# CONFIG_FS_POSIX_ACL is not set
 | 
				
			||||||
CONFIG_FILE_LOCKING=y
 | 
					 | 
				
			||||||
# CONFIG_XFS_FS is not set
 | 
					# CONFIG_XFS_FS is not set
 | 
				
			||||||
 | 
					# CONFIG_GFS2_FS is not set
 | 
				
			||||||
# CONFIG_OCFS2_FS is not set
 | 
					# CONFIG_OCFS2_FS is not set
 | 
				
			||||||
# CONFIG_BTRFS_FS is not set
 | 
					# CONFIG_BTRFS_FS is not set
 | 
				
			||||||
 | 
					CONFIG_FILE_LOCKING=y
 | 
				
			||||||
 | 
					CONFIG_FSNOTIFY=y
 | 
				
			||||||
# CONFIG_DNOTIFY is not set
 | 
					# CONFIG_DNOTIFY is not set
 | 
				
			||||||
CONFIG_INOTIFY=y
 | 
					CONFIG_INOTIFY=y
 | 
				
			||||||
CONFIG_INOTIFY_USER=y
 | 
					CONFIG_INOTIFY_USER=y
 | 
				
			||||||
| 
						 | 
					@ -921,6 +979,12 @@ CONFIG_JFFS2_ZLIB=y
 | 
				
			||||||
# CONFIG_JFFS2_LZO is not set
 | 
					# CONFIG_JFFS2_LZO is not set
 | 
				
			||||||
CONFIG_JFFS2_RTIME=y
 | 
					CONFIG_JFFS2_RTIME=y
 | 
				
			||||||
# CONFIG_JFFS2_RUBIN is not set
 | 
					# CONFIG_JFFS2_RUBIN is not set
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS=y
 | 
				
			||||||
 | 
					# CONFIG_UBIFS_FS_XATTR is not set
 | 
				
			||||||
 | 
					# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS_LZO=y
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS_ZLIB=y
 | 
				
			||||||
 | 
					# CONFIG_UBIFS_FS_DEBUG is not set
 | 
				
			||||||
# CONFIG_CRAMFS is not set
 | 
					# CONFIG_CRAMFS is not set
 | 
				
			||||||
# CONFIG_SQUASHFS is not set
 | 
					# CONFIG_SQUASHFS is not set
 | 
				
			||||||
# CONFIG_VXFS_FS is not set
 | 
					# CONFIG_VXFS_FS is not set
 | 
				
			||||||
| 
						 | 
					@ -937,6 +1001,7 @@ CONFIG_NFS_FS=y
 | 
				
			||||||
CONFIG_NFS_V3=y
 | 
					CONFIG_NFS_V3=y
 | 
				
			||||||
# CONFIG_NFS_V3_ACL is not set
 | 
					# CONFIG_NFS_V3_ACL is not set
 | 
				
			||||||
CONFIG_NFS_V4=y
 | 
					CONFIG_NFS_V4=y
 | 
				
			||||||
 | 
					# CONFIG_NFS_V4_1 is not set
 | 
				
			||||||
CONFIG_ROOT_NFS=y
 | 
					CONFIG_ROOT_NFS=y
 | 
				
			||||||
# CONFIG_NFSD is not set
 | 
					# CONFIG_NFSD is not set
 | 
				
			||||||
CONFIG_LOCKD=y
 | 
					CONFIG_LOCKD=y
 | 
				
			||||||
| 
						 | 
					@ -979,22 +1044,7 @@ CONFIG_FRAME_WARN=1024
 | 
				
			||||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
 | 
					CONFIG_SYSCTL_SYSCALL_CHECK=y
 | 
				
			||||||
CONFIG_HAVE_FUNCTION_TRACER=y
 | 
					CONFIG_HAVE_FUNCTION_TRACER=y
 | 
				
			||||||
CONFIG_TRACING_SUPPORT=y
 | 
					CONFIG_TRACING_SUPPORT=y
 | 
				
			||||||
 | 
					# CONFIG_FTRACE is not set
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Tracers
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# CONFIG_FUNCTION_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_IRQSOFF_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_PREEMPT_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_SCHED_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_EVENT_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_BOOT_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
 | 
					 | 
				
			||||||
# CONFIG_STACK_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_KMEMTRACE is not set
 | 
					 | 
				
			||||||
# CONFIG_WORKQUEUE_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
 | 
					 | 
				
			||||||
# CONFIG_SAMPLES is not set
 | 
					# CONFIG_SAMPLES is not set
 | 
				
			||||||
CONFIG_HAVE_ARCH_KGDB=y
 | 
					CONFIG_HAVE_ARCH_KGDB=y
 | 
				
			||||||
CONFIG_ARM_UNWIND=y
 | 
					CONFIG_ARM_UNWIND=y
 | 
				
			||||||
| 
						 | 
					@ -1094,9 +1144,9 @@ CONFIG_CRYPTO_DES=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Compression
 | 
					# Compression
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_CRYPTO_DEFLATE is not set
 | 
					CONFIG_CRYPTO_DEFLATE=y
 | 
				
			||||||
# CONFIG_CRYPTO_ZLIB is not set
 | 
					# CONFIG_CRYPTO_ZLIB is not set
 | 
				
			||||||
# CONFIG_CRYPTO_LZO is not set
 | 
					CONFIG_CRYPTO_LZO=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Random Number Generation
 | 
					# Random Number Generation
 | 
				
			||||||
| 
						 | 
					@ -1109,9 +1159,10 @@ CONFIG_CRYPTO_HW=y
 | 
				
			||||||
# Library routines
 | 
					# Library routines
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_BITREVERSE=y
 | 
					CONFIG_BITREVERSE=y
 | 
				
			||||||
 | 
					CONFIG_RATIONAL=y
 | 
				
			||||||
CONFIG_GENERIC_FIND_LAST_BIT=y
 | 
					CONFIG_GENERIC_FIND_LAST_BIT=y
 | 
				
			||||||
# CONFIG_CRC_CCITT is not set
 | 
					# CONFIG_CRC_CCITT is not set
 | 
				
			||||||
# CONFIG_CRC16 is not set
 | 
					CONFIG_CRC16=y
 | 
				
			||||||
# CONFIG_CRC_T10DIF is not set
 | 
					# CONFIG_CRC_T10DIF is not set
 | 
				
			||||||
# CONFIG_CRC_ITU_T is not set
 | 
					# CONFIG_CRC_ITU_T is not set
 | 
				
			||||||
CONFIG_CRC32=y
 | 
					CONFIG_CRC32=y
 | 
				
			||||||
| 
						 | 
					@ -1119,6 +1170,8 @@ CONFIG_CRC32=y
 | 
				
			||||||
# CONFIG_LIBCRC32C is not set
 | 
					# CONFIG_LIBCRC32C is not set
 | 
				
			||||||
CONFIG_ZLIB_INFLATE=y
 | 
					CONFIG_ZLIB_INFLATE=y
 | 
				
			||||||
CONFIG_ZLIB_DEFLATE=y
 | 
					CONFIG_ZLIB_DEFLATE=y
 | 
				
			||||||
 | 
					CONFIG_LZO_COMPRESS=y
 | 
				
			||||||
 | 
					CONFIG_LZO_DECOMPRESS=y
 | 
				
			||||||
CONFIG_HAS_IOMEM=y
 | 
					CONFIG_HAS_IOMEM=y
 | 
				
			||||||
CONFIG_HAS_IOPORT=y
 | 
					CONFIG_HAS_IOPORT=y
 | 
				
			||||||
CONFIG_HAS_DMA=y
 | 
					CONFIG_HAS_DMA=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1107,7 +1107,7 @@ CONFIG_USB_ZERO=m
 | 
				
			||||||
CONFIG_USB_OTG_UTILS=y
 | 
					CONFIG_USB_OTG_UTILS=y
 | 
				
			||||||
# CONFIG_USB_GPIO_VBUS is not set
 | 
					# CONFIG_USB_GPIO_VBUS is not set
 | 
				
			||||||
# CONFIG_ISP1301_OMAP is not set
 | 
					# CONFIG_ISP1301_OMAP is not set
 | 
				
			||||||
CONFIG_TWL4030_USB=y
 | 
					# CONFIG_TWL4030_USB is not set
 | 
				
			||||||
# CONFIG_NOP_USB_XCEIV is not set
 | 
					# CONFIG_NOP_USB_XCEIV is not set
 | 
				
			||||||
CONFIG_MMC=y
 | 
					CONFIG_MMC=y
 | 
				
			||||||
# CONFIG_MMC_DEBUG is not set
 | 
					# CONFIG_MMC_DEBUG is not set
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -260,6 +260,7 @@ CONFIG_MACH_NEXCODER_2440=y
 | 
				
			||||||
CONFIG_SMDK2440_CPU2440=y
 | 
					CONFIG_SMDK2440_CPU2440=y
 | 
				
			||||||
CONFIG_MACH_AT2440EVB=y
 | 
					CONFIG_MACH_AT2440EVB=y
 | 
				
			||||||
CONFIG_CPU_S3C2442=y
 | 
					CONFIG_CPU_S3C2442=y
 | 
				
			||||||
 | 
					CONFIG_MACH_MINI2440=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# S3C2442 Machines
 | 
					# S3C2442 Machines
 | 
				
			||||||
| 
						 | 
					@ -2298,7 +2299,6 @@ CONFIG_DEBUG_ERRORS=y
 | 
				
			||||||
# CONFIG_DEBUG_STACK_USAGE is not set
 | 
					# CONFIG_DEBUG_STACK_USAGE is not set
 | 
				
			||||||
CONFIG_DEBUG_LL=y
 | 
					CONFIG_DEBUG_LL=y
 | 
				
			||||||
# CONFIG_DEBUG_ICEDCC is not set
 | 
					# CONFIG_DEBUG_ICEDCC is not set
 | 
				
			||||||
CONFIG_DEBUG_S3C_PORT=y
 | 
					 | 
				
			||||||
CONFIG_DEBUG_S3C_UART=0
 | 
					CONFIG_DEBUG_S3C_UART=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -816,7 +816,6 @@ CONFIG_DEBUG_ERRORS=y
 | 
				
			||||||
# CONFIG_DEBUG_STACK_USAGE is not set
 | 
					# CONFIG_DEBUG_STACK_USAGE is not set
 | 
				
			||||||
CONFIG_DEBUG_LL=y
 | 
					CONFIG_DEBUG_LL=y
 | 
				
			||||||
# CONFIG_DEBUG_ICEDCC is not set
 | 
					# CONFIG_DEBUG_ICEDCC is not set
 | 
				
			||||||
CONFIG_DEBUG_S3C_PORT=y
 | 
					 | 
				
			||||||
CONFIG_DEBUG_S3C_UART=0
 | 
					CONFIG_DEBUG_S3C_UART=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -857,7 +857,6 @@ CONFIG_DEBUG_ERRORS=y
 | 
				
			||||||
# CONFIG_DEBUG_STACK_USAGE is not set
 | 
					# CONFIG_DEBUG_STACK_USAGE is not set
 | 
				
			||||||
CONFIG_DEBUG_LL=y
 | 
					CONFIG_DEBUG_LL=y
 | 
				
			||||||
# CONFIG_DEBUG_ICEDCC is not set
 | 
					# CONFIG_DEBUG_ICEDCC is not set
 | 
				
			||||||
# CONFIG_DEBUG_S3C_PORT is not set
 | 
					 | 
				
			||||||
CONFIG_DEBUG_S3C_UART=0
 | 
					CONFIG_DEBUG_S3C_UART=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Automatically generated make config: don't edit
 | 
					# Automatically generated make config: don't edit
 | 
				
			||||||
# Linux kernel version: 2.6.30-rc6
 | 
					# Linux kernel version: 2.6.31-rc3
 | 
				
			||||||
# Mon Jun  1 09:18:22 2009
 | 
					# Thu Jul 16 23:36:10 2009
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_ARM=y
 | 
					CONFIG_ARM=y
 | 
				
			||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 | 
					CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,6 @@ CONFIG_GENERIC_GPIO=y
 | 
				
			||||||
CONFIG_GENERIC_TIME=y
 | 
					CONFIG_GENERIC_TIME=y
 | 
				
			||||||
CONFIG_GENERIC_CLOCKEVENTS=y
 | 
					CONFIG_GENERIC_CLOCKEVENTS=y
 | 
				
			||||||
CONFIG_MMU=y
 | 
					CONFIG_MMU=y
 | 
				
			||||||
# CONFIG_NO_IOPORT is not set
 | 
					 | 
				
			||||||
CONFIG_GENERIC_HARDIRQS=y
 | 
					CONFIG_GENERIC_HARDIRQS=y
 | 
				
			||||||
CONFIG_STACKTRACE_SUPPORT=y
 | 
					CONFIG_STACKTRACE_SUPPORT=y
 | 
				
			||||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 | 
					CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 | 
				
			||||||
| 
						 | 
					@ -18,13 +17,12 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 | 
				
			||||||
CONFIG_HARDIRQS_SW_RESEND=y
 | 
					CONFIG_HARDIRQS_SW_RESEND=y
 | 
				
			||||||
CONFIG_GENERIC_IRQ_PROBE=y
 | 
					CONFIG_GENERIC_IRQ_PROBE=y
 | 
				
			||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
 | 
					CONFIG_RWSEM_GENERIC_SPINLOCK=y
 | 
				
			||||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
 | 
					 | 
				
			||||||
CONFIG_GENERIC_HWEIGHT=y
 | 
					CONFIG_GENERIC_HWEIGHT=y
 | 
				
			||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
 | 
					CONFIG_GENERIC_CALIBRATE_DELAY=y
 | 
				
			||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 | 
					CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
 | 
				
			||||||
CONFIG_VECTORS_BASE=0xffff0000
 | 
					CONFIG_VECTORS_BASE=0xffff0000
 | 
				
			||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 | 
					CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 | 
				
			||||||
 | 
					CONFIG_CONSTRUCTORS=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# General setup
 | 
					# General setup
 | 
				
			||||||
| 
						 | 
					@ -68,7 +66,6 @@ CONFIG_SYSCTL_SYSCALL=y
 | 
				
			||||||
CONFIG_KALLSYMS=y
 | 
					CONFIG_KALLSYMS=y
 | 
				
			||||||
# CONFIG_KALLSYMS_ALL is not set
 | 
					# CONFIG_KALLSYMS_ALL is not set
 | 
				
			||||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
 | 
					# CONFIG_KALLSYMS_EXTRA_PASS is not set
 | 
				
			||||||
# CONFIG_STRIP_ASM_SYMS is not set
 | 
					 | 
				
			||||||
CONFIG_HOTPLUG=y
 | 
					CONFIG_HOTPLUG=y
 | 
				
			||||||
CONFIG_PRINTK=y
 | 
					CONFIG_PRINTK=y
 | 
				
			||||||
CONFIG_BUG=y
 | 
					CONFIG_BUG=y
 | 
				
			||||||
| 
						 | 
					@ -81,8 +78,13 @@ CONFIG_TIMERFD=y
 | 
				
			||||||
CONFIG_EVENTFD=y
 | 
					CONFIG_EVENTFD=y
 | 
				
			||||||
CONFIG_SHMEM=y
 | 
					CONFIG_SHMEM=y
 | 
				
			||||||
# CONFIG_AIO is not set
 | 
					# CONFIG_AIO is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Performance Counters
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
# CONFIG_VM_EVENT_COUNTERS is not set
 | 
					# CONFIG_VM_EVENT_COUNTERS is not set
 | 
				
			||||||
CONFIG_SLUB_DEBUG=y
 | 
					CONFIG_SLUB_DEBUG=y
 | 
				
			||||||
 | 
					# CONFIG_STRIP_ASM_SYMS is not set
 | 
				
			||||||
CONFIG_COMPAT_BRK=y
 | 
					CONFIG_COMPAT_BRK=y
 | 
				
			||||||
# CONFIG_SLAB is not set
 | 
					# CONFIG_SLAB is not set
 | 
				
			||||||
CONFIG_SLUB=y
 | 
					CONFIG_SLUB=y
 | 
				
			||||||
| 
						 | 
					@ -94,6 +96,10 @@ CONFIG_HAVE_OPROFILE=y
 | 
				
			||||||
CONFIG_HAVE_KPROBES=y
 | 
					CONFIG_HAVE_KPROBES=y
 | 
				
			||||||
CONFIG_HAVE_KRETPROBES=y
 | 
					CONFIG_HAVE_KRETPROBES=y
 | 
				
			||||||
CONFIG_HAVE_CLK=y
 | 
					CONFIG_HAVE_CLK=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# GCOV-based kernel profiling
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
# CONFIG_SLOW_WORK is not set
 | 
					# CONFIG_SLOW_WORK is not set
 | 
				
			||||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 | 
					CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 | 
				
			||||||
CONFIG_SLABINFO=y
 | 
					CONFIG_SLABINFO=y
 | 
				
			||||||
| 
						 | 
					@ -106,7 +112,7 @@ CONFIG_MODULE_UNLOAD=y
 | 
				
			||||||
# CONFIG_MODVERSIONS is not set
 | 
					# CONFIG_MODVERSIONS is not set
 | 
				
			||||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
 | 
					# CONFIG_MODULE_SRCVERSION_ALL is not set
 | 
				
			||||||
CONFIG_BLOCK=y
 | 
					CONFIG_BLOCK=y
 | 
				
			||||||
# CONFIG_LBD is not set
 | 
					# CONFIG_LBDAF is not set
 | 
				
			||||||
# CONFIG_BLK_DEV_BSG is not set
 | 
					# CONFIG_BLK_DEV_BSG is not set
 | 
				
			||||||
# CONFIG_BLK_DEV_INTEGRITY is not set
 | 
					# CONFIG_BLK_DEV_INTEGRITY is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -138,9 +144,9 @@ CONFIG_DEFAULT_IOSCHED="deadline"
 | 
				
			||||||
# CONFIG_ARCH_EP93XX is not set
 | 
					# CONFIG_ARCH_EP93XX is not set
 | 
				
			||||||
# CONFIG_ARCH_FOOTBRIDGE is not set
 | 
					# CONFIG_ARCH_FOOTBRIDGE is not set
 | 
				
			||||||
# CONFIG_ARCH_MXC is not set
 | 
					# CONFIG_ARCH_MXC is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_STMP3XXX is not set
 | 
				
			||||||
# CONFIG_ARCH_NETX is not set
 | 
					# CONFIG_ARCH_NETX is not set
 | 
				
			||||||
# CONFIG_ARCH_H720X is not set
 | 
					# CONFIG_ARCH_H720X is not set
 | 
				
			||||||
# CONFIG_ARCH_IMX is not set
 | 
					 | 
				
			||||||
# CONFIG_ARCH_IOP13XX is not set
 | 
					# CONFIG_ARCH_IOP13XX is not set
 | 
				
			||||||
# CONFIG_ARCH_IOP32X is not set
 | 
					# CONFIG_ARCH_IOP32X is not set
 | 
				
			||||||
# CONFIG_ARCH_IOP33X is not set
 | 
					# CONFIG_ARCH_IOP33X is not set
 | 
				
			||||||
| 
						 | 
					@ -216,8 +222,8 @@ CONFIG_ARM_THUMB=y
 | 
				
			||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
 | 
					# CONFIG_CPU_DCACHE_DISABLE is not set
 | 
				
			||||||
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
 | 
					# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
 | 
				
			||||||
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
 | 
					# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
 | 
				
			||||||
# CONFIG_OUTER_CACHE is not set
 | 
					 | 
				
			||||||
CONFIG_ARM_VIC=y
 | 
					CONFIG_ARM_VIC=y
 | 
				
			||||||
 | 
					CONFIG_ARM_VIC_NR=2
 | 
				
			||||||
CONFIG_COMMON_CLKDEV=y
 | 
					CONFIG_COMMON_CLKDEV=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -243,7 +249,6 @@ CONFIG_PREEMPT=y
 | 
				
			||||||
CONFIG_HZ=100
 | 
					CONFIG_HZ=100
 | 
				
			||||||
CONFIG_AEABI=y
 | 
					CONFIG_AEABI=y
 | 
				
			||||||
CONFIG_OABI_COMPAT=y
 | 
					CONFIG_OABI_COMPAT=y
 | 
				
			||||||
CONFIG_ARCH_FLATMEM_HAS_HOLES=y
 | 
					 | 
				
			||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 | 
					# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 | 
				
			||||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 | 
					# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 | 
				
			||||||
# CONFIG_HIGHMEM is not set
 | 
					# CONFIG_HIGHMEM is not set
 | 
				
			||||||
| 
						 | 
					@ -258,17 +263,18 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
 | 
				
			||||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
 | 
					# CONFIG_PHYS_ADDR_T_64BIT is not set
 | 
				
			||||||
CONFIG_ZONE_DMA_FLAG=0
 | 
					CONFIG_ZONE_DMA_FLAG=0
 | 
				
			||||||
CONFIG_VIRT_TO_BUS=y
 | 
					CONFIG_VIRT_TO_BUS=y
 | 
				
			||||||
CONFIG_UNEVICTABLE_LRU=y
 | 
					 | 
				
			||||||
CONFIG_HAVE_MLOCK=y
 | 
					CONFIG_HAVE_MLOCK=y
 | 
				
			||||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 | 
					CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 | 
				
			||||||
CONFIG_ALIGNMENT_TRAP=y
 | 
					CONFIG_ALIGNMENT_TRAP=y
 | 
				
			||||||
 | 
					# CONFIG_UACCESS_WITH_MEMCPY is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Boot options
 | 
					# Boot options
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_ZBOOT_ROM_TEXT=0x0
 | 
					CONFIG_ZBOOT_ROM_TEXT=0x0
 | 
				
			||||||
CONFIG_ZBOOT_ROM_BSS=0x0
 | 
					CONFIG_ZBOOT_ROM_BSS=0x0
 | 
				
			||||||
CONFIG_CMDLINE="root=/dev/mtdblock2 rw rootfstype=yaffs2 console=ttyAMA0,115200n8 ab3100.force=0,0x48 mtdparts=u300nand:128k@0x0(bootrecords)ro,8064k@128k(free)ro,253952k@8192k(platform) lpj=515072"
 | 
					CONFIG_CMDLINE="root=/dev/ram0 rw rootfstype=rootfs console=ttyAMA0,115200n8 lpj=515072"
 | 
				
			||||||
# CONFIG_XIP_KERNEL is not set
 | 
					# CONFIG_XIP_KERNEL is not set
 | 
				
			||||||
# CONFIG_KEXEC is not set
 | 
					# CONFIG_KEXEC is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -359,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 | 
				
			||||||
# CONFIG_ECONET is not set
 | 
					# CONFIG_ECONET is not set
 | 
				
			||||||
# CONFIG_WAN_ROUTER is not set
 | 
					# CONFIG_WAN_ROUTER is not set
 | 
				
			||||||
# CONFIG_PHONET is not set
 | 
					# CONFIG_PHONET is not set
 | 
				
			||||||
 | 
					# CONFIG_IEEE802154 is not set
 | 
				
			||||||
# CONFIG_NET_SCHED is not set
 | 
					# CONFIG_NET_SCHED is not set
 | 
				
			||||||
# CONFIG_DCB is not set
 | 
					# CONFIG_DCB is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -497,6 +504,7 @@ CONFIG_MISC_DEVICES=y
 | 
				
			||||||
# CONFIG_EEPROM_AT24 is not set
 | 
					# CONFIG_EEPROM_AT24 is not set
 | 
				
			||||||
# CONFIG_EEPROM_AT25 is not set
 | 
					# CONFIG_EEPROM_AT25 is not set
 | 
				
			||||||
# CONFIG_EEPROM_LEGACY is not set
 | 
					# CONFIG_EEPROM_LEGACY is not set
 | 
				
			||||||
 | 
					# CONFIG_EEPROM_MAX6875 is not set
 | 
				
			||||||
# CONFIG_EEPROM_93CX6 is not set
 | 
					# CONFIG_EEPROM_93CX6 is not set
 | 
				
			||||||
CONFIG_HAVE_IDE=y
 | 
					CONFIG_HAVE_IDE=y
 | 
				
			||||||
# CONFIG_IDE is not set
 | 
					# CONFIG_IDE is not set
 | 
				
			||||||
| 
						 | 
					@ -533,12 +541,14 @@ CONFIG_INPUT_EVDEV=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_INPUT_KEYBOARD=y
 | 
					CONFIG_INPUT_KEYBOARD=y
 | 
				
			||||||
# CONFIG_KEYBOARD_ATKBD is not set
 | 
					# CONFIG_KEYBOARD_ATKBD is not set
 | 
				
			||||||
# CONFIG_KEYBOARD_SUNKBD is not set
 | 
					 | 
				
			||||||
# CONFIG_KEYBOARD_LKKBD is not set
 | 
					# CONFIG_KEYBOARD_LKKBD is not set
 | 
				
			||||||
# CONFIG_KEYBOARD_XTKBD is not set
 | 
					# CONFIG_KEYBOARD_GPIO is not set
 | 
				
			||||||
 | 
					# CONFIG_KEYBOARD_MATRIX is not set
 | 
				
			||||||
 | 
					# CONFIG_KEYBOARD_LM8323 is not set
 | 
				
			||||||
# CONFIG_KEYBOARD_NEWTON is not set
 | 
					# CONFIG_KEYBOARD_NEWTON is not set
 | 
				
			||||||
# CONFIG_KEYBOARD_STOWAWAY is not set
 | 
					# CONFIG_KEYBOARD_STOWAWAY is not set
 | 
				
			||||||
# CONFIG_KEYBOARD_GPIO is not set
 | 
					# CONFIG_KEYBOARD_SUNKBD is not set
 | 
				
			||||||
 | 
					# CONFIG_KEYBOARD_XTKBD is not set
 | 
				
			||||||
# CONFIG_INPUT_MOUSE is not set
 | 
					# CONFIG_INPUT_MOUSE is not set
 | 
				
			||||||
# CONFIG_INPUT_JOYSTICK is not set
 | 
					# CONFIG_INPUT_JOYSTICK is not set
 | 
				
			||||||
# CONFIG_INPUT_TABLET is not set
 | 
					# CONFIG_INPUT_TABLET is not set
 | 
				
			||||||
| 
						 | 
					@ -597,9 +607,11 @@ CONFIG_I2C_HELPER_AUTO=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# I2C system bus drivers (mostly embedded / system-on-chip)
 | 
					# I2C system bus drivers (mostly embedded / system-on-chip)
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_I2C_DESIGNWARE is not set
 | 
				
			||||||
# CONFIG_I2C_GPIO is not set
 | 
					# CONFIG_I2C_GPIO is not set
 | 
				
			||||||
# CONFIG_I2C_OCORES is not set
 | 
					# CONFIG_I2C_OCORES is not set
 | 
				
			||||||
# CONFIG_I2C_SIMTEC is not set
 | 
					# CONFIG_I2C_SIMTEC is not set
 | 
				
			||||||
 | 
					CONFIG_I2C_STU300=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# External I2C/SMBus adapter drivers
 | 
					# External I2C/SMBus adapter drivers
 | 
				
			||||||
| 
						 | 
					@ -620,7 +632,6 @@ CONFIG_I2C_HELPER_AUTO=y
 | 
				
			||||||
# CONFIG_SENSORS_PCF8574 is not set
 | 
					# CONFIG_SENSORS_PCF8574 is not set
 | 
				
			||||||
# CONFIG_PCF8575 is not set
 | 
					# CONFIG_PCF8575 is not set
 | 
				
			||||||
# CONFIG_SENSORS_PCA9539 is not set
 | 
					# CONFIG_SENSORS_PCA9539 is not set
 | 
				
			||||||
# CONFIG_SENSORS_MAX6875 is not set
 | 
					 | 
				
			||||||
# CONFIG_SENSORS_TSL2550 is not set
 | 
					# CONFIG_SENSORS_TSL2550 is not set
 | 
				
			||||||
# CONFIG_I2C_DEBUG_CORE is not set
 | 
					# CONFIG_I2C_DEBUG_CORE is not set
 | 
				
			||||||
# CONFIG_I2C_DEBUG_ALGO is not set
 | 
					# CONFIG_I2C_DEBUG_ALGO is not set
 | 
				
			||||||
| 
						 | 
					@ -635,6 +646,7 @@ CONFIG_SPI_MASTER=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_SPI_BITBANG is not set
 | 
					# CONFIG_SPI_BITBANG is not set
 | 
				
			||||||
# CONFIG_SPI_GPIO is not set
 | 
					# CONFIG_SPI_GPIO is not set
 | 
				
			||||||
 | 
					CONFIG_SPI_PL022=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# SPI Protocol Masters
 | 
					# SPI Protocol Masters
 | 
				
			||||||
| 
						 | 
					@ -647,6 +659,7 @@ CONFIG_POWER_SUPPLY=y
 | 
				
			||||||
# CONFIG_PDA_POWER is not set
 | 
					# CONFIG_PDA_POWER is not set
 | 
				
			||||||
# CONFIG_BATTERY_DS2760 is not set
 | 
					# CONFIG_BATTERY_DS2760 is not set
 | 
				
			||||||
# CONFIG_BATTERY_BQ27x00 is not set
 | 
					# CONFIG_BATTERY_BQ27x00 is not set
 | 
				
			||||||
 | 
					# CONFIG_BATTERY_MAX17040 is not set
 | 
				
			||||||
# CONFIG_HWMON is not set
 | 
					# CONFIG_HWMON is not set
 | 
				
			||||||
# CONFIG_THERMAL is not set
 | 
					# CONFIG_THERMAL is not set
 | 
				
			||||||
# CONFIG_THERMAL_HWMON is not set
 | 
					# CONFIG_THERMAL_HWMON is not set
 | 
				
			||||||
| 
						 | 
					@ -657,6 +670,7 @@ CONFIG_WATCHDOG=y
 | 
				
			||||||
# Watchdog Device Drivers
 | 
					# Watchdog Device Drivers
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_SOFT_WATCHDOG is not set
 | 
					# CONFIG_SOFT_WATCHDOG is not set
 | 
				
			||||||
 | 
					CONFIG_COH901327_WATCHDOG=y
 | 
				
			||||||
CONFIG_SSB_POSSIBLE=y
 | 
					CONFIG_SSB_POSSIBLE=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -678,22 +692,9 @@ CONFIG_SSB_POSSIBLE=y
 | 
				
			||||||
# CONFIG_MFD_WM8400 is not set
 | 
					# CONFIG_MFD_WM8400 is not set
 | 
				
			||||||
# CONFIG_MFD_WM8350_I2C is not set
 | 
					# CONFIG_MFD_WM8350_I2C is not set
 | 
				
			||||||
# CONFIG_MFD_PCF50633 is not set
 | 
					# CONFIG_MFD_PCF50633 is not set
 | 
				
			||||||
 | 
					CONFIG_AB3100_CORE=y
 | 
				
			||||||
#
 | 
					# CONFIG_EZX_PCAP is not set
 | 
				
			||||||
# Multimedia devices
 | 
					# CONFIG_MEDIA_SUPPORT is not set
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Multimedia core support
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# CONFIG_VIDEO_DEV is not set
 | 
					 | 
				
			||||||
# CONFIG_DVB_CORE is not set
 | 
					 | 
				
			||||||
# CONFIG_VIDEO_MEDIA is not set
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Multimedia drivers
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# CONFIG_DAB is not set
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Graphics support
 | 
					# Graphics support
 | 
				
			||||||
| 
						 | 
					@ -760,6 +761,11 @@ CONFIG_SND_JACK=y
 | 
				
			||||||
# CONFIG_SND_VERBOSE_PROCFS is not set
 | 
					# CONFIG_SND_VERBOSE_PROCFS is not set
 | 
				
			||||||
# CONFIG_SND_VERBOSE_PRINTK is not set
 | 
					# CONFIG_SND_VERBOSE_PRINTK is not set
 | 
				
			||||||
# CONFIG_SND_DEBUG is not set
 | 
					# CONFIG_SND_DEBUG is not set
 | 
				
			||||||
 | 
					# CONFIG_SND_RAWMIDI_SEQ is not set
 | 
				
			||||||
 | 
					# CONFIG_SND_OPL3_LIB_SEQ is not set
 | 
				
			||||||
 | 
					# CONFIG_SND_OPL4_LIB_SEQ is not set
 | 
				
			||||||
 | 
					# CONFIG_SND_SBAWE_SEQ is not set
 | 
				
			||||||
 | 
					# CONFIG_SND_EMU10K1_SEQ is not set
 | 
				
			||||||
# CONFIG_SND_DRIVERS is not set
 | 
					# CONFIG_SND_DRIVERS is not set
 | 
				
			||||||
# CONFIG_SND_ARM is not set
 | 
					# CONFIG_SND_ARM is not set
 | 
				
			||||||
# CONFIG_SND_SPI is not set
 | 
					# CONFIG_SND_SPI is not set
 | 
				
			||||||
| 
						 | 
					@ -770,7 +776,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
 | 
				
			||||||
# CONFIG_HID_SUPPORT is not set
 | 
					# CONFIG_HID_SUPPORT is not set
 | 
				
			||||||
# CONFIG_USB_SUPPORT is not set
 | 
					# CONFIG_USB_SUPPORT is not set
 | 
				
			||||||
CONFIG_MMC=y
 | 
					CONFIG_MMC=y
 | 
				
			||||||
# CONFIG_MMC_DEBUG is not set
 | 
					CONFIG_MMC_DEBUG=y
 | 
				
			||||||
# CONFIG_MMC_UNSAFE_RESUME is not set
 | 
					# CONFIG_MMC_UNSAFE_RESUME is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -797,7 +803,7 @@ CONFIG_LEDS_CLASS=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_LEDS_PCA9532 is not set
 | 
					# CONFIG_LEDS_PCA9532 is not set
 | 
				
			||||||
# CONFIG_LEDS_GPIO is not set
 | 
					# CONFIG_LEDS_GPIO is not set
 | 
				
			||||||
# CONFIG_LEDS_LP5521 is not set
 | 
					# CONFIG_LEDS_LP3944 is not set
 | 
				
			||||||
# CONFIG_LEDS_PCA955X is not set
 | 
					# CONFIG_LEDS_PCA955X is not set
 | 
				
			||||||
# CONFIG_LEDS_DAC124S085 is not set
 | 
					# CONFIG_LEDS_DAC124S085 is not set
 | 
				
			||||||
# CONFIG_LEDS_BD2802 is not set
 | 
					# CONFIG_LEDS_BD2802 is not set
 | 
				
			||||||
| 
						 | 
					@ -845,6 +851,7 @@ CONFIG_RTC_INTF_DEV=y
 | 
				
			||||||
# CONFIG_RTC_DRV_S35390A is not set
 | 
					# CONFIG_RTC_DRV_S35390A is not set
 | 
				
			||||||
# CONFIG_RTC_DRV_FM3130 is not set
 | 
					# CONFIG_RTC_DRV_FM3130 is not set
 | 
				
			||||||
# CONFIG_RTC_DRV_RX8581 is not set
 | 
					# CONFIG_RTC_DRV_RX8581 is not set
 | 
				
			||||||
 | 
					# CONFIG_RTC_DRV_RX8025 is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# SPI RTC drivers
 | 
					# SPI RTC drivers
 | 
				
			||||||
| 
						 | 
					@ -887,7 +894,10 @@ CONFIG_REGULATOR=y
 | 
				
			||||||
# CONFIG_REGULATOR_DEBUG is not set
 | 
					# CONFIG_REGULATOR_DEBUG is not set
 | 
				
			||||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
 | 
					# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
 | 
				
			||||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
 | 
					# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
 | 
				
			||||||
# CONFIG_REGULATOR_BQ24022 is not set
 | 
					# CONFIG_REGULATOR_BQ24022 is not set
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_MAX1586 is not set
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_LP3971 is not set
 | 
				
			||||||
# CONFIG_UIO is not set
 | 
					# CONFIG_UIO is not set
 | 
				
			||||||
# CONFIG_STAGING is not set
 | 
					# CONFIG_STAGING is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -900,16 +910,19 @@ CONFIG_REGULATOR=y
 | 
				
			||||||
# CONFIG_REISERFS_FS is not set
 | 
					# CONFIG_REISERFS_FS is not set
 | 
				
			||||||
# CONFIG_JFS_FS is not set
 | 
					# CONFIG_JFS_FS is not set
 | 
				
			||||||
# CONFIG_FS_POSIX_ACL is not set
 | 
					# CONFIG_FS_POSIX_ACL is not set
 | 
				
			||||||
CONFIG_FILE_LOCKING=y
 | 
					 | 
				
			||||||
# CONFIG_XFS_FS is not set
 | 
					# CONFIG_XFS_FS is not set
 | 
				
			||||||
# CONFIG_OCFS2_FS is not set
 | 
					# CONFIG_OCFS2_FS is not set
 | 
				
			||||||
# CONFIG_BTRFS_FS is not set
 | 
					# CONFIG_BTRFS_FS is not set
 | 
				
			||||||
 | 
					CONFIG_FILE_LOCKING=y
 | 
				
			||||||
 | 
					CONFIG_FSNOTIFY=y
 | 
				
			||||||
# CONFIG_DNOTIFY is not set
 | 
					# CONFIG_DNOTIFY is not set
 | 
				
			||||||
# CONFIG_INOTIFY is not set
 | 
					# CONFIG_INOTIFY is not set
 | 
				
			||||||
 | 
					CONFIG_INOTIFY_USER=y
 | 
				
			||||||
# CONFIG_QUOTA is not set
 | 
					# CONFIG_QUOTA is not set
 | 
				
			||||||
# CONFIG_AUTOFS_FS is not set
 | 
					# CONFIG_AUTOFS_FS is not set
 | 
				
			||||||
# CONFIG_AUTOFS4_FS is not set
 | 
					# CONFIG_AUTOFS4_FS is not set
 | 
				
			||||||
CONFIG_FUSE_FS=y
 | 
					CONFIG_FUSE_FS=y
 | 
				
			||||||
 | 
					# CONFIG_CUSE is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Caches
 | 
					# Caches
 | 
				
			||||||
| 
						 | 
					@ -1033,6 +1046,7 @@ CONFIG_TIMER_STATS=y
 | 
				
			||||||
# CONFIG_DEBUG_OBJECTS is not set
 | 
					# CONFIG_DEBUG_OBJECTS is not set
 | 
				
			||||||
# CONFIG_SLUB_DEBUG_ON is not set
 | 
					# CONFIG_SLUB_DEBUG_ON is not set
 | 
				
			||||||
# CONFIG_SLUB_STATS is not set
 | 
					# CONFIG_SLUB_STATS is not set
 | 
				
			||||||
 | 
					# CONFIG_DEBUG_KMEMLEAK is not set
 | 
				
			||||||
# CONFIG_DEBUG_PREEMPT is not set
 | 
					# CONFIG_DEBUG_PREEMPT is not set
 | 
				
			||||||
# CONFIG_DEBUG_RT_MUTEXES is not set
 | 
					# CONFIG_DEBUG_RT_MUTEXES is not set
 | 
				
			||||||
# CONFIG_RT_MUTEX_TESTER is not set
 | 
					# CONFIG_RT_MUTEX_TESTER is not set
 | 
				
			||||||
| 
						 | 
					@ -1063,18 +1077,16 @@ CONFIG_DEBUG_INFO=y
 | 
				
			||||||
# CONFIG_PAGE_POISONING is not set
 | 
					# CONFIG_PAGE_POISONING is not set
 | 
				
			||||||
CONFIG_HAVE_FUNCTION_TRACER=y
 | 
					CONFIG_HAVE_FUNCTION_TRACER=y
 | 
				
			||||||
CONFIG_TRACING_SUPPORT=y
 | 
					CONFIG_TRACING_SUPPORT=y
 | 
				
			||||||
 | 
					CONFIG_FTRACE=y
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Tracers
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# CONFIG_FUNCTION_TRACER is not set
 | 
					# CONFIG_FUNCTION_TRACER is not set
 | 
				
			||||||
# CONFIG_IRQSOFF_TRACER is not set
 | 
					# CONFIG_IRQSOFF_TRACER is not set
 | 
				
			||||||
# CONFIG_PREEMPT_TRACER is not set
 | 
					# CONFIG_PREEMPT_TRACER is not set
 | 
				
			||||||
# CONFIG_SCHED_TRACER is not set
 | 
					# CONFIG_SCHED_TRACER is not set
 | 
				
			||||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
 | 
					# CONFIG_ENABLE_DEFAULT_TRACERS is not set
 | 
				
			||||||
# CONFIG_EVENT_TRACER is not set
 | 
					 | 
				
			||||||
# CONFIG_BOOT_TRACER is not set
 | 
					# CONFIG_BOOT_TRACER is not set
 | 
				
			||||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
 | 
					CONFIG_BRANCH_PROFILE_NONE=y
 | 
				
			||||||
 | 
					# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
 | 
				
			||||||
 | 
					# CONFIG_PROFILE_ALL_BRANCHES is not set
 | 
				
			||||||
# CONFIG_STACK_TRACER is not set
 | 
					# CONFIG_STACK_TRACER is not set
 | 
				
			||||||
# CONFIG_KMEMTRACE is not set
 | 
					# CONFIG_KMEMTRACE is not set
 | 
				
			||||||
# CONFIG_WORKQUEUE_TRACER is not set
 | 
					# CONFIG_WORKQUEUE_TRACER is not set
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -159,8 +159,6 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else /* ARM_ARCH_6 */
 | 
					#else /* ARM_ARCH_6 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <asm/system.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef CONFIG_SMP
 | 
					#ifdef CONFIG_SMP
 | 
				
			||||||
#error SMP not supported on pre-ARMv6 CPUs
 | 
					#error SMP not supported on pre-ARMv6 CPUs
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* PAGE_SHIFT determines the page size */
 | 
					/* PAGE_SHIFT determines the page size */
 | 
				
			||||||
#define PAGE_SHIFT		12
 | 
					#define PAGE_SHIFT		12
 | 
				
			||||||
#define PAGE_SIZE		(1UL << PAGE_SHIFT)
 | 
					#define PAGE_SIZE		(_AC(1,UL) << PAGE_SHIFT)
 | 
				
			||||||
#define PAGE_MASK		(~(PAGE_SIZE-1))
 | 
					#define PAGE_MASK		(~(PAGE_SIZE-1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __ASSEMBLY__
 | 
					#ifndef __ASSEMBLY__
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -285,15 +285,6 @@ extern struct page *empty_zero_page;
 | 
				
			||||||
#define pte_young(pte)		(pte_val(pte) & L_PTE_YOUNG)
 | 
					#define pte_young(pte)		(pte_val(pte) & L_PTE_YOUNG)
 | 
				
			||||||
#define pte_special(pte)	(0)
 | 
					#define pte_special(pte)	(0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * The following only works if pte_present() is not true.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
#define pte_file(pte)		(pte_val(pte) & L_PTE_FILE)
 | 
					 | 
				
			||||||
#define pte_to_pgoff(x)		(pte_val(x) >> 2)
 | 
					 | 
				
			||||||
#define pgoff_to_pte(x)		__pte(((x) << 2) | L_PTE_FILE)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PTE_FILE_MAX_BITS	30
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PTE_BIT_FUNC(fn,op) \
 | 
					#define PTE_BIT_FUNC(fn,op) \
 | 
				
			||||||
static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
 | 
					static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -384,16 +375,50 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
 | 
					extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Encode and decode a swap entry.
 | 
					/*
 | 
				
			||||||
 | 
					 * Encode and decode a swap entry.  Swap entries are stored in the Linux
 | 
				
			||||||
 | 
					 * page tables as follows:
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * We support up to 32GB of swap on 4k machines
 | 
					 *   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
 | 
				
			||||||
 | 
					 *   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
 | 
				
			||||||
 | 
					 *   <--------------- offset --------------------> <--- type --> 0 0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This gives us up to 127 swap files and 32GB per swap file.  Note that
 | 
				
			||||||
 | 
					 * the offset field is always non-zero.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#define __swp_type(x)		(((x).val >> 2) & 0x7f)
 | 
					#define __SWP_TYPE_SHIFT	2
 | 
				
			||||||
#define __swp_offset(x)		((x).val >> 9)
 | 
					#define __SWP_TYPE_BITS		7
 | 
				
			||||||
#define __swp_entry(type,offset) ((swp_entry_t) { ((type) << 2) | ((offset) << 9) })
 | 
					#define __SWP_TYPE_MASK		((1 << __SWP_TYPE_BITS) - 1)
 | 
				
			||||||
 | 
					#define __SWP_OFFSET_SHIFT	(__SWP_TYPE_BITS + __SWP_TYPE_SHIFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __swp_type(x)		(((x).val >> __SWP_TYPE_SHIFT) & __SWP_TYPE_MASK)
 | 
				
			||||||
 | 
					#define __swp_offset(x)		((x).val >> __SWP_OFFSET_SHIFT)
 | 
				
			||||||
 | 
					#define __swp_entry(type,offset) ((swp_entry_t) { ((type) << __SWP_TYPE_SHIFT) | ((offset) << __SWP_OFFSET_SHIFT) })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define __pte_to_swp_entry(pte)	((swp_entry_t) { pte_val(pte) })
 | 
					#define __pte_to_swp_entry(pte)	((swp_entry_t) { pte_val(pte) })
 | 
				
			||||||
#define __swp_entry_to_pte(swp)	((pte_t) { (swp).val })
 | 
					#define __swp_entry_to_pte(swp)	((pte_t) { (swp).val })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * It is an error for the kernel to have more swap files than we can
 | 
				
			||||||
 | 
					 * encode in the PTEs.  This ensures that we know when MAX_SWAPFILES
 | 
				
			||||||
 | 
					 * is increased beyond what we presently support.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define MAX_SWAPFILES_CHECK() BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Encode and decode a file entry.  File entries are stored in the Linux
 | 
				
			||||||
 | 
					 * page tables as follows:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
 | 
				
			||||||
 | 
					 *   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
 | 
				
			||||||
 | 
					 *   <------------------------ offset -------------------------> 1 0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define pte_file(pte)		(pte_val(pte) & L_PTE_FILE)
 | 
				
			||||||
 | 
					#define pte_to_pgoff(x)		(pte_val(x) >> 2)
 | 
				
			||||||
 | 
					#define pgoff_to_pte(x)		__pte(((x) << 2) | L_PTE_FILE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTE_FILE_MAX_BITS	30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
 | 
					/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
 | 
				
			||||||
/* FIXME: this is not correct */
 | 
					/* FIXME: this is not correct */
 | 
				
			||||||
#define kern_addr_valid(addr)	(1)
 | 
					#define kern_addr_valid(addr)	(1)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@ struct thread_info {
 | 
				
			||||||
	.task		= &tsk,						\
 | 
						.task		= &tsk,						\
 | 
				
			||||||
	.exec_domain	= &default_exec_domain,				\
 | 
						.exec_domain	= &default_exec_domain,				\
 | 
				
			||||||
	.flags		= 0,						\
 | 
						.flags		= 0,						\
 | 
				
			||||||
	.preempt_count	= 1,						\
 | 
						.preempt_count	= INIT_PREEMPT_COUNT,				\
 | 
				
			||||||
	.addr_limit	= KERNEL_DS,					\
 | 
						.addr_limit	= KERNEL_DS,					\
 | 
				
			||||||
	.cpu_domain	= domain_val(DOMAIN_USER, DOMAIN_MANAGER) |	\
 | 
						.cpu_domain	= domain_val(DOMAIN_USER, DOMAIN_MANAGER) |	\
 | 
				
			||||||
			  domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) |	\
 | 
								  domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) |	\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -102,8 +102,8 @@ tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define tlb_remove_page(tlb,page)	free_page_and_swap_cache(page)
 | 
					#define tlb_remove_page(tlb,page)	free_page_and_swap_cache(page)
 | 
				
			||||||
#define pte_free_tlb(tlb, ptep)		pte_free((tlb)->mm, ptep)
 | 
					#define pte_free_tlb(tlb, ptep, addr)	pte_free((tlb)->mm, ptep)
 | 
				
			||||||
#define pmd_free_tlb(tlb, pmdp)		pmd_free((tlb)->mm, pmdp)
 | 
					#define pmd_free_tlb(tlb, pmdp, addr)	pmd_free((tlb)->mm, pmdp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define tlb_migrate_finish(mm)		do { } while (0)
 | 
					#define tlb_migrate_finish(mm)		do { } while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -148,7 +148,7 @@ trace:
 | 
				
			||||||
	sub r0, r0, #MCOUNT_INSN_SIZE
 | 
						sub r0, r0, #MCOUNT_INSN_SIZE
 | 
				
			||||||
	mov lr, pc
 | 
						mov lr, pc
 | 
				
			||||||
	mov pc, r2
 | 
						mov pc, r2
 | 
				
			||||||
	mov lr, r1				@ restore lr
 | 
						ldr lr, [fp, #-4]			@ restore lr
 | 
				
			||||||
	ldmia sp!, {r0-r3, pc}
 | 
						ldmia sp!, {r0-r3, pc}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* CONFIG_DYNAMIC_FTRACE */
 | 
					#endif /* CONFIG_DYNAMIC_FTRACE */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,17 +98,6 @@ unlock:
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Handle bad interrupts */
 | 
					 | 
				
			||||||
static struct irq_desc bad_irq_desc = {
 | 
					 | 
				
			||||||
	.handle_irq = handle_bad_irq,
 | 
					 | 
				
			||||||
	.lock = __SPIN_LOCK_UNLOCKED(bad_irq_desc.lock),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef CONFIG_CPUMASK_OFFSTACK
 | 
					 | 
				
			||||||
/* We are not allocating bad_irq_desc.affinity or .pending_mask */
 | 
					 | 
				
			||||||
#error "ARM architecture does not support CONFIG_CPUMASK_OFFSTACK."
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * do_IRQ handles all hardware IRQ's.  Decoded IRQs should not
 | 
					 * do_IRQ handles all hardware IRQ's.  Decoded IRQs should not
 | 
				
			||||||
 * come via this function.  Instead, they should provide their
 | 
					 * come via this function.  Instead, they should provide their
 | 
				
			||||||
| 
						 | 
					@ -124,10 +113,13 @@ asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
 | 
				
			||||||
	 * Some hardware gives randomly wrong interrupts.  Rather
 | 
						 * Some hardware gives randomly wrong interrupts.  Rather
 | 
				
			||||||
	 * than crashing, do something sensible.
 | 
						 * than crashing, do something sensible.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	if (irq >= NR_IRQS)
 | 
						if (unlikely(irq >= NR_IRQS)) {
 | 
				
			||||||
		handle_bad_irq(irq, &bad_irq_desc);
 | 
							if (printk_ratelimit())
 | 
				
			||||||
	else
 | 
								printk(KERN_WARNING "Bad IRQ%u\n", irq);
 | 
				
			||||||
 | 
							ack_bad_irq(irq);
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
		generic_handle_irq(irq);
 | 
							generic_handle_irq(irq);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* AT91 specific workaround */
 | 
						/* AT91 specific workaround */
 | 
				
			||||||
	irq_finish(irq);
 | 
						irq_finish(irq);
 | 
				
			||||||
| 
						 | 
					@ -165,10 +157,6 @@ void __init init_IRQ(void)
 | 
				
			||||||
	for (irq = 0; irq < NR_IRQS; irq++)
 | 
						for (irq = 0; irq < NR_IRQS; irq++)
 | 
				
			||||||
		irq_desc[irq].status |= IRQ_NOREQUEST | IRQ_NOPROBE;
 | 
							irq_desc[irq].status |= IRQ_NOREQUEST | IRQ_NOPROBE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_SMP
 | 
					 | 
				
			||||||
	cpumask_setall(bad_irq_desc.affinity);
 | 
					 | 
				
			||||||
	bad_irq_desc.node = smp_processor_id();
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	init_arch_irq();
 | 
						init_arch_irq();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -133,7 +133,7 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_CRUNCH
 | 
					#ifdef CONFIG_CRUNCH
 | 
				
			||||||
static int preserve_crunch_context(struct crunch_sigframe *frame)
 | 
					static int preserve_crunch_context(struct crunch_sigframe __user *frame)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	char kbuf[sizeof(*frame) + 8];
 | 
						char kbuf[sizeof(*frame) + 8];
 | 
				
			||||||
	struct crunch_sigframe *kframe;
 | 
						struct crunch_sigframe *kframe;
 | 
				
			||||||
| 
						 | 
					@ -146,7 +146,7 @@ static int preserve_crunch_context(struct crunch_sigframe *frame)
 | 
				
			||||||
	return __copy_to_user(frame, kframe, sizeof(*frame));
 | 
						return __copy_to_user(frame, kframe, sizeof(*frame));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int restore_crunch_context(struct crunch_sigframe *frame)
 | 
					static int restore_crunch_context(struct crunch_sigframe __user *frame)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	char kbuf[sizeof(*frame) + 8];
 | 
						char kbuf[sizeof(*frame) + 8];
 | 
				
			||||||
	struct crunch_sigframe *kframe;
 | 
						struct crunch_sigframe *kframe;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@
 | 
				
			||||||
#include <asm-generic/vmlinux.lds.h>
 | 
					#include <asm-generic/vmlinux.lds.h>
 | 
				
			||||||
#include <asm/thread_info.h>
 | 
					#include <asm/thread_info.h>
 | 
				
			||||||
#include <asm/memory.h>
 | 
					#include <asm/memory.h>
 | 
				
			||||||
 | 
					#include <asm/page.h>
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
OUTPUT_ARCH(arm)
 | 
					OUTPUT_ARCH(arm)
 | 
				
			||||||
ENTRY(stext)
 | 
					ENTRY(stext)
 | 
				
			||||||
| 
						 | 
					@ -63,7 +64,7 @@ SECTIONS
 | 
				
			||||||
			usr/built-in.o(.init.ramfs)
 | 
								usr/built-in.o(.init.ramfs)
 | 
				
			||||||
		__initramfs_end = .;
 | 
							__initramfs_end = .;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
		. = ALIGN(4096);
 | 
							. = ALIGN(PAGE_SIZE);
 | 
				
			||||||
		__per_cpu_load = .;
 | 
							__per_cpu_load = .;
 | 
				
			||||||
		__per_cpu_start = .;
 | 
							__per_cpu_start = .;
 | 
				
			||||||
			*(.data.percpu.page_aligned)
 | 
								*(.data.percpu.page_aligned)
 | 
				
			||||||
| 
						 | 
					@ -73,7 +74,7 @@ SECTIONS
 | 
				
			||||||
#ifndef CONFIG_XIP_KERNEL
 | 
					#ifndef CONFIG_XIP_KERNEL
 | 
				
			||||||
		__init_begin = _stext;
 | 
							__init_begin = _stext;
 | 
				
			||||||
		INIT_DATA
 | 
							INIT_DATA
 | 
				
			||||||
		. = ALIGN(4096);
 | 
							. = ALIGN(PAGE_SIZE);
 | 
				
			||||||
		__init_end = .;
 | 
							__init_end = .;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -118,7 +119,7 @@ SECTIONS
 | 
				
			||||||
		*(.got)			/* Global offset table		*/
 | 
							*(.got)			/* Global offset table		*/
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RODATA
 | 
						RO_DATA(PAGE_SIZE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_etext = .;			/* End of text and rodata section */
 | 
						_etext = .;			/* End of text and rodata section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -158,17 +159,17 @@ SECTIONS
 | 
				
			||||||
		*(.data.init_task)
 | 
							*(.data.init_task)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_XIP_KERNEL
 | 
					#ifdef CONFIG_XIP_KERNEL
 | 
				
			||||||
		. = ALIGN(4096);
 | 
							. = ALIGN(PAGE_SIZE);
 | 
				
			||||||
		__init_begin = .;
 | 
							__init_begin = .;
 | 
				
			||||||
		INIT_DATA
 | 
							INIT_DATA
 | 
				
			||||||
		. = ALIGN(4096);
 | 
							. = ALIGN(PAGE_SIZE);
 | 
				
			||||||
		__init_end = .;
 | 
							__init_end = .;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		. = ALIGN(4096);
 | 
							. = ALIGN(PAGE_SIZE);
 | 
				
			||||||
		__nosave_begin = .;
 | 
							__nosave_begin = .;
 | 
				
			||||||
		*(.data.nosave)
 | 
							*(.data.nosave)
 | 
				
			||||||
		. = ALIGN(4096);
 | 
							. = ALIGN(PAGE_SIZE);
 | 
				
			||||||
		__nosave_end = .;
 | 
							__nosave_end = .;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,8 @@
 | 
				
			||||||
#include <linux/platform_device.h>
 | 
					#include <linux/platform_device.h>
 | 
				
			||||||
#include <linux/spi/spi.h>
 | 
					#include <linux/spi/spi.h>
 | 
				
			||||||
#include <linux/spi/at73c213.h>
 | 
					#include <linux/spi/at73c213.h>
 | 
				
			||||||
 | 
					#include <linux/gpio_keys.h>
 | 
				
			||||||
 | 
					#include <linux/input.h>
 | 
				
			||||||
#include <linux/clk.h>
 | 
					#include <linux/clk.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <mach/hardware.h>
 | 
					#include <mach/hardware.h>
 | 
				
			||||||
| 
						 | 
					@ -218,6 +220,56 @@ static struct gpio_led ek_leds[] = {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * GPIO Buttons
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
 | 
				
			||||||
 | 
					static struct gpio_keys_button ek_buttons[] = {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							.gpio		= AT91_PIN_PA30,
 | 
				
			||||||
 | 
							.code		= BTN_3,
 | 
				
			||||||
 | 
							.desc		= "Button 3",
 | 
				
			||||||
 | 
							.active_low	= 1,
 | 
				
			||||||
 | 
							.wakeup		= 1,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							.gpio		= AT91_PIN_PA31,
 | 
				
			||||||
 | 
							.code		= BTN_4,
 | 
				
			||||||
 | 
							.desc		= "Button 4",
 | 
				
			||||||
 | 
							.active_low	= 1,
 | 
				
			||||||
 | 
							.wakeup		= 1,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct gpio_keys_platform_data ek_button_data = {
 | 
				
			||||||
 | 
						.buttons	= ek_buttons,
 | 
				
			||||||
 | 
						.nbuttons	= ARRAY_SIZE(ek_buttons),
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct platform_device ek_button_device = {
 | 
				
			||||||
 | 
						.name		= "gpio-keys",
 | 
				
			||||||
 | 
						.id		= -1,
 | 
				
			||||||
 | 
						.num_resources	= 0,
 | 
				
			||||||
 | 
						.dev		= {
 | 
				
			||||||
 | 
							.platform_data	= &ek_button_data,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void __init ek_add_device_buttons(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						at91_set_gpio_input(AT91_PIN_PA30, 1);	/* btn3 */
 | 
				
			||||||
 | 
						at91_set_deglitch(AT91_PIN_PA30, 1);
 | 
				
			||||||
 | 
						at91_set_gpio_input(AT91_PIN_PA31, 1);	/* btn4 */
 | 
				
			||||||
 | 
						at91_set_deglitch(AT91_PIN_PA31, 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						platform_device_register(&ek_button_device);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					static void __init ek_add_device_buttons(void) {}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct i2c_board_info __initdata ek_i2c_devices[] = {
 | 
					static struct i2c_board_info __initdata ek_i2c_devices[] = {
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		I2C_BOARD_INFO("24c512", 0x50),
 | 
							I2C_BOARD_INFO("24c512", 0x50),
 | 
				
			||||||
| 
						 | 
					@ -245,6 +297,8 @@ static void __init ek_board_init(void)
 | 
				
			||||||
	at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
 | 
						at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
 | 
				
			||||||
	/* LEDs */
 | 
						/* LEDs */
 | 
				
			||||||
	at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
 | 
						at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
 | 
				
			||||||
 | 
						/* Push Buttons */
 | 
				
			||||||
 | 
						ek_add_device_buttons();
 | 
				
			||||||
	/* PCK0 provides MCLK to the WM8731 */
 | 
						/* PCK0 provides MCLK to the WM8731 */
 | 
				
			||||||
	at91_set_B_periph(AT91_PIN_PC1, 0);
 | 
						at91_set_B_periph(AT91_PIN_PC1, 0);
 | 
				
			||||||
	/* SSC (for WM8731) */
 | 
						/* SSC (for WM8731) */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -186,19 +186,21 @@ static struct fb_monspecs at91fb_default_monspecs = {
 | 
				
			||||||
static void at91_lcdc_power_control(int on)
 | 
					static void at91_lcdc_power_control(int on)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (on)
 | 
						if (on)
 | 
				
			||||||
		at91_set_gpio_value(AT91_PIN_PA30, 0);	/* power up */
 | 
							at91_set_gpio_value(AT91_PIN_PC1, 0);	/* power up */
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		at91_set_gpio_value(AT91_PIN_PA30, 1);	/* power down */
 | 
							at91_set_gpio_value(AT91_PIN_PC1, 1);	/* power down */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Driver datas */
 | 
					/* Driver datas */
 | 
				
			||||||
static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
 | 
					static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
 | 
				
			||||||
 | 
						.lcdcon_is_backlight            = true,
 | 
				
			||||||
	.default_bpp			= 16,
 | 
						.default_bpp			= 16,
 | 
				
			||||||
	.default_dmacon			= ATMEL_LCDC_DMAEN,
 | 
						.default_dmacon			= ATMEL_LCDC_DMAEN,
 | 
				
			||||||
	.default_lcdcon2		= AT91SAM9RL_DEFAULT_LCDCON2,
 | 
						.default_lcdcon2		= AT91SAM9RL_DEFAULT_LCDCON2,
 | 
				
			||||||
	.default_monspecs		= &at91fb_default_monspecs,
 | 
						.default_monspecs		= &at91fb_default_monspecs,
 | 
				
			||||||
	.atmel_lcdfb_power_control	= at91_lcdc_power_control,
 | 
						.atmel_lcdfb_power_control	= at91_lcdc_power_control,
 | 
				
			||||||
	.guard_time			= 1,
 | 
						.guard_time			= 1,
 | 
				
			||||||
 | 
						.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,6 @@
 | 
				
			||||||
#include <mach/serial.h>
 | 
					#include <mach/serial.h>
 | 
				
			||||||
#include <mach/nand.h>
 | 
					#include <mach/nand.h>
 | 
				
			||||||
#include <mach/mmc.h>
 | 
					#include <mach/mmc.h>
 | 
				
			||||||
#include <mach/common.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DAVINCI_ASYNC_EMIF_CONTROL_BASE		0x01e10000
 | 
					#define DAVINCI_ASYNC_EMIF_CONTROL_BASE		0x01e10000
 | 
				
			||||||
#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE	0x02000000
 | 
					#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE	0x02000000
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,6 @@
 | 
				
			||||||
#include <mach/serial.h>
 | 
					#include <mach/serial.h>
 | 
				
			||||||
#include <mach/nand.h>
 | 
					#include <mach/nand.h>
 | 
				
			||||||
#include <mach/mmc.h>
 | 
					#include <mach/mmc.h>
 | 
				
			||||||
#include <mach/common.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DAVINCI_ASYNC_EMIF_CONTROL_BASE		0x01e10000
 | 
					#define DAVINCI_ASYNC_EMIF_CONTROL_BASE		0x01e10000
 | 
				
			||||||
#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE	0x02000000
 | 
					#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE	0x02000000
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +45,6 @@
 | 
				
			||||||
#include <mach/nand.h>
 | 
					#include <mach/nand.h>
 | 
				
			||||||
#include <mach/mmc.h>
 | 
					#include <mach/mmc.h>
 | 
				
			||||||
#include <mach/emac.h>
 | 
					#include <mach/emac.h>
 | 
				
			||||||
#include <mach/common.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DM644X_EVM_PHY_MASK		(0x2)
 | 
					#define DM644X_EVM_PHY_MASK		(0x2)
 | 
				
			||||||
#define DM644X_EVM_MDIO_FREQUENCY	(2200000) /* PHY bus frequency */
 | 
					#define DM644X_EVM_MDIO_FREQUENCY	(2200000) /* PHY bus frequency */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,7 +47,6 @@
 | 
				
			||||||
#include <mach/i2c.h>
 | 
					#include <mach/i2c.h>
 | 
				
			||||||
#include <mach/mmc.h>
 | 
					#include <mach/mmc.h>
 | 
				
			||||||
#include <mach/emac.h>
 | 
					#include <mach/emac.h>
 | 
				
			||||||
#include <mach/common.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DM646X_EVM_PHY_MASK		(0x2)
 | 
					#define DM646X_EVM_PHY_MASK		(0x2)
 | 
				
			||||||
#define DM646X_EVM_MDIO_FREQUENCY	(2200000) /* PHY bus frequency */
 | 
					#define DM646X_EVM_MDIO_FREQUENCY	(2200000) /* PHY bus frequency */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,6 @@
 | 
				
			||||||
#include <mach/serial.h>
 | 
					#include <mach/serial.h>
 | 
				
			||||||
#include <mach/psc.h>
 | 
					#include <mach/psc.h>
 | 
				
			||||||
#include <mach/mux.h>
 | 
					#include <mach/mux.h>
 | 
				
			||||||
#include <mach/common.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SFFSDR_PHY_MASK		(0x2)
 | 
					#define SFFSDR_PHY_MASK		(0x2)
 | 
				
			||||||
#define SFFSDR_MDIO_FREQUENCY	(2200000) /* PHY bus frequency */
 | 
					#define SFFSDR_MDIO_FREQUENCY	(2200000) /* PHY bus frequency */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,7 @@
 | 
				
			||||||
#include <linux/err.h>
 | 
					#include <linux/err.h>
 | 
				
			||||||
#include <linux/interrupt.h>
 | 
					#include <linux/interrupt.h>
 | 
				
			||||||
#include <linux/module.h>
 | 
					#include <linux/module.h>
 | 
				
			||||||
 | 
					#include <linux/io.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <mach/dma.h>
 | 
					#include <mach/dma.h>
 | 
				
			||||||
#include <mach/hardware.h>
 | 
					#include <mach/hardware.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,9 +41,6 @@
 | 
				
			||||||
#define TS72XX_OPTIONS2_TS9420_BOOT	0x02
 | 
					#define TS72XX_OPTIONS2_TS9420_BOOT	0x02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define TS72XX_NOR_PHYS_BASE		0x60000000
 | 
					 | 
				
			||||||
#define TS72XX_NOR2_PHYS_BASE		0x62000000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define TS72XX_NAND1_DATA_PHYS_BASE	0x60000000
 | 
					#define TS72XX_NAND1_DATA_PHYS_BASE	0x60000000
 | 
				
			||||||
#define TS72XX_NAND2_DATA_PHYS_BASE	0x70000000
 | 
					#define TS72XX_NAND2_DATA_PHYS_BASE	0x70000000
 | 
				
			||||||
#define TS72XX_NAND_DATA_VIRT_BASE	0xfebfc000
 | 
					#define TS72XX_NAND_DATA_VIRT_BASE	0xfebfc000
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -112,13 +112,16 @@ static void __init ts72xx_map_io(void)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*************************************************************************
 | 
				
			||||||
 | 
					 * NOR flash (TS-7200 only)
 | 
				
			||||||
 | 
					 *************************************************************************/
 | 
				
			||||||
static struct physmap_flash_data ts72xx_flash_data = {
 | 
					static struct physmap_flash_data ts72xx_flash_data = {
 | 
				
			||||||
	.width		= 1,
 | 
						.width		= 2,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct resource ts72xx_flash_resource = {
 | 
					static struct resource ts72xx_flash_resource = {
 | 
				
			||||||
	.start		= TS72XX_NOR_PHYS_BASE,
 | 
						.start		= EP93XX_CS6_PHYS_BASE,
 | 
				
			||||||
	.end		= TS72XX_NOR_PHYS_BASE + SZ_16M - 1,
 | 
						.end		= EP93XX_CS6_PHYS_BASE + SZ_16M - 1,
 | 
				
			||||||
	.flags		= IORESOURCE_MEM,
 | 
						.flags		= IORESOURCE_MEM,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,6 +135,12 @@ static struct platform_device ts72xx_flash = {
 | 
				
			||||||
	.resource	= &ts72xx_flash_resource,
 | 
						.resource	= &ts72xx_flash_resource,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void __init ts72xx_register_flash(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (board_is_ts7200())
 | 
				
			||||||
 | 
							platform_device_register(&ts72xx_flash);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static unsigned char ts72xx_rtc_readbyte(unsigned long addr)
 | 
					static unsigned char ts72xx_rtc_readbyte(unsigned long addr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
 | 
						__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
 | 
				
			||||||
| 
						 | 
					@ -165,8 +174,7 @@ static struct ep93xx_eth_data ts72xx_eth_data = {
 | 
				
			||||||
static void __init ts72xx_init_machine(void)
 | 
					static void __init ts72xx_init_machine(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	ep93xx_init_devices();
 | 
						ep93xx_init_devices();
 | 
				
			||||||
	if (board_is_ts7200())
 | 
						ts72xx_register_flash();
 | 
				
			||||||
		platform_device_register(&ts72xx_flash);
 | 
					 | 
				
			||||||
	platform_device_register(&ts72xx_rtc_device);
 | 
						platform_device_register(&ts72xx_rtc_device);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ep93xx_register_eth(&ts72xx_eth_data, 1);
 | 
						ep93xx_register_eth(&ts72xx_eth_data, 1);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -289,7 +289,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MPP48_GPIO		MPP( 48, 0x0, 1, 1, 0,   0,   0,   1    )
 | 
					#define MPP48_GPIO		MPP( 48, 0x0, 1, 1, 0,   0,   0,   1    )
 | 
				
			||||||
#define MPP48_TSMP12		MPP( 48, 0x1, 1, 1, 0,   0,   0,   1    )
 | 
					#define MPP48_TSMP12		MPP( 48, 0x1, 1, 1, 0,   0,   0,   1    )
 | 
				
			||||||
#define MPP48_TDM_DTX		MPP( 48. 0x2, 0, 1, 0,   0,   0,   1    )
 | 
					#define MPP48_TDM_DTX		MPP( 48, 0x2, 0, 1, 0,   0,   0,   1    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MPP49_GPIO		MPP( 49, 0x0, 1, 1, 0,   0,   0,   1    )
 | 
					#define MPP49_GPIO		MPP( 49, 0x0, 1, 1, 0,   0,   0,   1    )
 | 
				
			||||||
#define MPP49_TSMP9		MPP( 49, 0x1, 1, 1, 0,   0,   0,   1    )
 | 
					#define MPP49_TSMP9		MPP( 49, 0x1, 1, 1, 0,   0,   0,   1    )
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,6 +16,11 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <asm/sizes.h>
 | 
					#include <asm/sizes.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Clocks are derived from MCLK, which is 25Mhz
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define KS8695_CLOCK_RATE	25000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Physical RAM address.
 | 
					 * Physical RAM address.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,8 @@
 | 
				
			||||||
#ifndef __ASM_ARCH_TIMEX_H
 | 
					#ifndef __ASM_ARCH_TIMEX_H
 | 
				
			||||||
#define __ASM_ARCH_TIMEX_H
 | 
					#define __ASM_ARCH_TIMEX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* timers are derived from MCLK, which is 25MHz */
 | 
					#include <mach/hardware.h>
 | 
				
			||||||
#define CLOCK_TICK_RATE 25000000
 | 
					
 | 
				
			||||||
 | 
					#define CLOCK_TICK_RATE 	KS8695_CLOCK_RATE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -245,6 +245,9 @@ static int ks8695_pci_fault(unsigned long addr, unsigned int fsr, struct pt_regs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void __init ks8695_pci_preinit(void)
 | 
					static void __init ks8695_pci_preinit(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						/* make software reset to avoid freeze if PCI bus was messed up */
 | 
				
			||||||
 | 
						__raw_writel(0x80000000, KS8695_PCI_VA + KS8695_PBCS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* stage 1 initialization, subid, subdevice = 0x0001 */
 | 
						/* stage 1 initialization, subid, subdevice = 0x0001 */
 | 
				
			||||||
	__raw_writel(0x00010001, KS8695_PCI_VA + KS8695_CRCSID);
 | 
						__raw_writel(0x00010001, KS8695_PCI_VA + KS8695_CRCSID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,6 +36,14 @@ config MACH_PCM037
 | 
				
			||||||
	  Include support for Phytec pcm037 platform. This includes
 | 
						  Include support for Phytec pcm037 platform. This includes
 | 
				
			||||||
	  specific configurations for the board and its peripherals.
 | 
						  specific configurations for the board and its peripherals.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config MACH_PCM037_EET
 | 
				
			||||||
 | 
						bool "Support pcm037 EET board extensions"
 | 
				
			||||||
 | 
						depends on MACH_PCM037
 | 
				
			||||||
 | 
						help
 | 
				
			||||||
 | 
						  Add support for PCM037 EET baseboard extensions. If you are using the
 | 
				
			||||||
 | 
						  OLED display with EET, use "video=mx3fb:CMEL-OLED" kernel
 | 
				
			||||||
 | 
						  command-line parameter.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config MACH_MX31LITE
 | 
					config MACH_MX31LITE
 | 
				
			||||||
	bool "Support MX31 LITEKIT (LogicPD)"
 | 
						bool "Support MX31 LITEKIT (LogicPD)"
 | 
				
			||||||
	select ARCH_MX31
 | 
						select ARCH_MX31
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,6 +11,7 @@ obj-$(CONFIG_MACH_MX31ADS)	+= mx31ads.o
 | 
				
			||||||
obj-$(CONFIG_MACH_MX31LILLY)	+= mx31lilly.o mx31lilly-db.o
 | 
					obj-$(CONFIG_MACH_MX31LILLY)	+= mx31lilly.o mx31lilly-db.o
 | 
				
			||||||
obj-$(CONFIG_MACH_MX31LITE)	+= mx31lite.o
 | 
					obj-$(CONFIG_MACH_MX31LITE)	+= mx31lite.o
 | 
				
			||||||
obj-$(CONFIG_MACH_PCM037)	+= pcm037.o
 | 
					obj-$(CONFIG_MACH_PCM037)	+= pcm037.o
 | 
				
			||||||
 | 
					obj-$(CONFIG_MACH_PCM037_EET)	+= pcm037_eet.o
 | 
				
			||||||
obj-$(CONFIG_MACH_MX31_3DS)	+= mx31pdk.o
 | 
					obj-$(CONFIG_MACH_MX31_3DS)	+= mx31pdk.o
 | 
				
			||||||
obj-$(CONFIG_MACH_MX31MOBOARD)	+= mx31moboard.o mx31moboard-devboard.o \
 | 
					obj-$(CONFIG_MACH_MX31MOBOARD)	+= mx31moboard.o mx31moboard-devboard.o \
 | 
				
			||||||
				   mx31moboard-marxbot.o
 | 
									   mx31moboard-marxbot.o
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,8 @@
 | 
				
			||||||
#include <linux/smsc911x.h>
 | 
					#include <linux/smsc911x.h>
 | 
				
			||||||
#include <linux/interrupt.h>
 | 
					#include <linux/interrupt.h>
 | 
				
			||||||
#include <linux/irq.h>
 | 
					#include <linux/irq.h>
 | 
				
			||||||
 | 
					#include <linux/mtd/physmap.h>
 | 
				
			||||||
 | 
					#include <linux/io.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <mach/hardware.h>
 | 
					#include <mach/hardware.h>
 | 
				
			||||||
#include <asm/mach-types.h>
 | 
					#include <asm/mach-types.h>
 | 
				
			||||||
| 
						 | 
					@ -46,8 +48,10 @@
 | 
				
			||||||
#include <mach/mmc.h>
 | 
					#include <mach/mmc.h>
 | 
				
			||||||
#include <mach/ipu.h>
 | 
					#include <mach/ipu.h>
 | 
				
			||||||
#include <mach/mx3fb.h>
 | 
					#include <mach/mx3fb.h>
 | 
				
			||||||
 | 
					#include <mach/mxc_nand.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "devices.h"
 | 
					#include "devices.h"
 | 
				
			||||||
 | 
					#include "crm_regs.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int armadillo5x0_pins[] = {
 | 
					static int armadillo5x0_pins[] = {
 | 
				
			||||||
	/* UART1 */
 | 
						/* UART1 */
 | 
				
			||||||
| 
						 | 
					@ -93,7 +97,56 @@ static int armadillo5x0_pins[] = {
 | 
				
			||||||
	MX31_PIN_FPSHIFT__FPSHIFT,
 | 
						MX31_PIN_FPSHIFT__FPSHIFT,
 | 
				
			||||||
	MX31_PIN_DRDY0__DRDY0,
 | 
						MX31_PIN_DRDY0__DRDY0,
 | 
				
			||||||
	IOMUX_MODE(MX31_PIN_LCS1, IOMUX_CONFIG_GPIO), /*ADV7125_PSAVE*/
 | 
						IOMUX_MODE(MX31_PIN_LCS1, IOMUX_CONFIG_GPIO), /*ADV7125_PSAVE*/
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * NAND Flash
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static struct mxc_nand_platform_data armadillo5x0_nand_flash_pdata = {
 | 
				
			||||||
 | 
						.width		= 1,
 | 
				
			||||||
 | 
						.hw_ecc		= 1,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * MTD NOR Flash
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static struct mtd_partition armadillo5x0_nor_flash_partitions[] = {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							.name		= "nor.bootloader",
 | 
				
			||||||
 | 
							.offset		= 0x00000000,
 | 
				
			||||||
 | 
							.size		= 4*32*1024,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.name		= "nor.kernel",
 | 
				
			||||||
 | 
							.offset		= MTDPART_OFS_APPEND,
 | 
				
			||||||
 | 
							.size		= 16*128*1024,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.name		= "nor.userland",
 | 
				
			||||||
 | 
							.offset		= MTDPART_OFS_APPEND,
 | 
				
			||||||
 | 
							.size		= 110*128*1024,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.name		= "nor.config",
 | 
				
			||||||
 | 
							.offset		= MTDPART_OFS_APPEND,
 | 
				
			||||||
 | 
							.size		= 1*128*1024,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct physmap_flash_data armadillo5x0_nor_flash_pdata = {
 | 
				
			||||||
 | 
						.width		= 2,
 | 
				
			||||||
 | 
						.parts		= armadillo5x0_nor_flash_partitions,
 | 
				
			||||||
 | 
						.nr_parts	= ARRAY_SIZE(armadillo5x0_nor_flash_partitions),
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct resource armadillo5x0_nor_flash_resource = {
 | 
				
			||||||
 | 
						.flags		= IORESOURCE_MEM,
 | 
				
			||||||
 | 
						.start		= CS0_BASE_ADDR,
 | 
				
			||||||
 | 
						.end		= CS0_BASE_ADDR + SZ_64M - 1,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct platform_device armadillo5x0_nor_flash = {
 | 
				
			||||||
 | 
						.name			= "physmap-flash",
 | 
				
			||||||
 | 
						.id			= -1,
 | 
				
			||||||
 | 
						.num_resources		= 1,
 | 
				
			||||||
 | 
						.resource		= &armadillo5x0_nor_flash_resource,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					@ -272,6 +325,16 @@ static void __init armadillo5x0_init(void)
 | 
				
			||||||
	/* Register FB */
 | 
						/* Register FB */
 | 
				
			||||||
	mxc_register_device(&mx3_ipu, &mx3_ipu_data);
 | 
						mxc_register_device(&mx3_ipu, &mx3_ipu_data);
 | 
				
			||||||
	mxc_register_device(&mx3_fb, &mx3fb_pdata);
 | 
						mxc_register_device(&mx3_fb, &mx3fb_pdata);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Register NOR Flash */
 | 
				
			||||||
 | 
						mxc_register_device(&armadillo5x0_nor_flash,
 | 
				
			||||||
 | 
								    &armadillo5x0_nor_flash_pdata);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Register NAND Flash */
 | 
				
			||||||
 | 
						mxc_register_device(&mxc_nand_device, &armadillo5x0_nand_flash_pdata);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* set NAND page size to 2k if not configured via boot mode pins */
 | 
				
			||||||
 | 
						__raw_writel(__raw_readl(MXC_CCM_RCSR) | (1 << 30), MXC_CCM_RCSR);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void __init armadillo5x0_timer_init(void)
 | 
					static void __init armadillo5x0_timer_init(void)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,6 @@
 | 
				
			||||||
#include <linux/platform_device.h>
 | 
					#include <linux/platform_device.h>
 | 
				
			||||||
#include <linux/serial.h>
 | 
					#include <linux/serial.h>
 | 
				
			||||||
#include <linux/gpio.h>
 | 
					#include <linux/gpio.h>
 | 
				
			||||||
#include <linux/dma-mapping.h>
 | 
					 | 
				
			||||||
#include <mach/hardware.h>
 | 
					#include <mach/hardware.h>
 | 
				
			||||||
#include <mach/irqs.h>
 | 
					#include <mach/irqs.h>
 | 
				
			||||||
#include <mach/common.h>
 | 
					#include <mach/common.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <linux/types.h>
 | 
					#include <linux/types.h>
 | 
				
			||||||
#include <linux/init.h>
 | 
					#include <linux/init.h>
 | 
				
			||||||
 | 
					#include <linux/dma-mapping.h>
 | 
				
			||||||
#include <linux/platform_device.h>
 | 
					#include <linux/platform_device.h>
 | 
				
			||||||
#include <linux/mtd/physmap.h>
 | 
					#include <linux/mtd/physmap.h>
 | 
				
			||||||
#include <linux/mtd/plat-ram.h>
 | 
					#include <linux/mtd/plat-ram.h>
 | 
				
			||||||
| 
						 | 
					@ -33,29 +33,67 @@
 | 
				
			||||||
#include <linux/irq.h>
 | 
					#include <linux/irq.h>
 | 
				
			||||||
#include <linux/fsl_devices.h>
 | 
					#include <linux/fsl_devices.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <mach/hardware.h>
 | 
					#include <media/soc_camera.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <asm/mach-types.h>
 | 
					#include <asm/mach-types.h>
 | 
				
			||||||
#include <asm/mach/arch.h>
 | 
					#include <asm/mach/arch.h>
 | 
				
			||||||
#include <asm/mach/time.h>
 | 
					#include <asm/mach/time.h>
 | 
				
			||||||
#include <asm/mach/map.h>
 | 
					#include <asm/mach/map.h>
 | 
				
			||||||
 | 
					#include <mach/board-pcm037.h>
 | 
				
			||||||
#include <mach/common.h>
 | 
					#include <mach/common.h>
 | 
				
			||||||
 | 
					#include <mach/hardware.h>
 | 
				
			||||||
 | 
					#include <mach/i2c.h>
 | 
				
			||||||
#include <mach/imx-uart.h>
 | 
					#include <mach/imx-uart.h>
 | 
				
			||||||
#include <mach/iomux-mx3.h>
 | 
					#include <mach/iomux-mx3.h>
 | 
				
			||||||
#include <mach/ipu.h>
 | 
					#include <mach/ipu.h>
 | 
				
			||||||
#include <mach/board-pcm037.h>
 | 
					#include <mach/mmc.h>
 | 
				
			||||||
 | 
					#include <mach/mx3_camera.h>
 | 
				
			||||||
#include <mach/mx3fb.h>
 | 
					#include <mach/mx3fb.h>
 | 
				
			||||||
#include <mach/mxc_nand.h>
 | 
					#include <mach/mxc_nand.h>
 | 
				
			||||||
#include <mach/mmc.h>
 | 
					 | 
				
			||||||
#ifdef CONFIG_I2C_IMX
 | 
					 | 
				
			||||||
#include <mach/i2c.h>
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "devices.h"
 | 
					#include "devices.h"
 | 
				
			||||||
 | 
					#include "pcm037.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static enum pcm037_board_variant pcm037_instance = PCM037_PCM970;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int __init pcm037_variant_setup(char *str)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (!strcmp("eet", str))
 | 
				
			||||||
 | 
							pcm037_instance = PCM037_EET;
 | 
				
			||||||
 | 
						else if (strcmp("pcm970", str))
 | 
				
			||||||
 | 
							pr_warning("Unknown pcm037 baseboard variant %s\n", str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Supported values: "pcm970" (default) and "eet" */
 | 
				
			||||||
 | 
					__setup("pcm037_variant=", pcm037_variant_setup);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum pcm037_board_variant pcm037_variant(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return pcm037_instance;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* UART1 with RTS/CTS handshake signals */
 | 
				
			||||||
 | 
					static unsigned int pcm037_uart1_handshake_pins[] = {
 | 
				
			||||||
 | 
						MX31_PIN_CTS1__CTS1,
 | 
				
			||||||
 | 
						MX31_PIN_RTS1__RTS1,
 | 
				
			||||||
 | 
						MX31_PIN_TXD1__TXD1,
 | 
				
			||||||
 | 
						MX31_PIN_RXD1__RXD1,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* UART1 without RTS/CTS handshake signals */
 | 
				
			||||||
 | 
					static unsigned int pcm037_uart1_pins[] = {
 | 
				
			||||||
 | 
						MX31_PIN_TXD1__TXD1,
 | 
				
			||||||
 | 
						MX31_PIN_RXD1__RXD1,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static unsigned int pcm037_pins[] = {
 | 
					static unsigned int pcm037_pins[] = {
 | 
				
			||||||
	/* I2C */
 | 
						/* I2C */
 | 
				
			||||||
	MX31_PIN_CSPI2_MOSI__SCL,
 | 
						MX31_PIN_CSPI2_MOSI__SCL,
 | 
				
			||||||
	MX31_PIN_CSPI2_MISO__SDA,
 | 
						MX31_PIN_CSPI2_MISO__SDA,
 | 
				
			||||||
 | 
						MX31_PIN_CSPI2_SS2__I2C3_SDA,
 | 
				
			||||||
 | 
						MX31_PIN_CSPI2_SCLK__I2C3_SCL,
 | 
				
			||||||
	/* SDHC1 */
 | 
						/* SDHC1 */
 | 
				
			||||||
	MX31_PIN_SD1_DATA3__SD1_DATA3,
 | 
						MX31_PIN_SD1_DATA3__SD1_DATA3,
 | 
				
			||||||
	MX31_PIN_SD1_DATA2__SD1_DATA2,
 | 
						MX31_PIN_SD1_DATA2__SD1_DATA2,
 | 
				
			||||||
| 
						 | 
					@ -73,11 +111,6 @@ static unsigned int pcm037_pins[] = {
 | 
				
			||||||
	MX31_PIN_CSPI1_SS0__SS0,
 | 
						MX31_PIN_CSPI1_SS0__SS0,
 | 
				
			||||||
	MX31_PIN_CSPI1_SS1__SS1,
 | 
						MX31_PIN_CSPI1_SS1__SS1,
 | 
				
			||||||
	MX31_PIN_CSPI1_SS2__SS2,
 | 
						MX31_PIN_CSPI1_SS2__SS2,
 | 
				
			||||||
	/* UART1 */
 | 
					 | 
				
			||||||
	MX31_PIN_CTS1__CTS1,
 | 
					 | 
				
			||||||
	MX31_PIN_RTS1__RTS1,
 | 
					 | 
				
			||||||
	MX31_PIN_TXD1__TXD1,
 | 
					 | 
				
			||||||
	MX31_PIN_RXD1__RXD1,
 | 
					 | 
				
			||||||
	/* UART2 */
 | 
						/* UART2 */
 | 
				
			||||||
	MX31_PIN_TXD2__TXD2,
 | 
						MX31_PIN_TXD2__TXD2,
 | 
				
			||||||
	MX31_PIN_RXD2__RXD2,
 | 
						MX31_PIN_RXD2__RXD2,
 | 
				
			||||||
| 
						 | 
					@ -120,6 +153,22 @@ static unsigned int pcm037_pins[] = {
 | 
				
			||||||
	MX31_PIN_D3_SPL__D3_SPL,
 | 
						MX31_PIN_D3_SPL__D3_SPL,
 | 
				
			||||||
	MX31_PIN_D3_CLS__D3_CLS,
 | 
						MX31_PIN_D3_CLS__D3_CLS,
 | 
				
			||||||
	MX31_PIN_LCS0__GPI03_23,
 | 
						MX31_PIN_LCS0__GPI03_23,
 | 
				
			||||||
 | 
						/* CSI */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_CSI_D5, IOMUX_CONFIG_GPIO),
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D6__CSI_D6,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D7__CSI_D7,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D8__CSI_D8,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D9__CSI_D9,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D10__CSI_D10,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D11__CSI_D11,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D12__CSI_D12,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D13__CSI_D13,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D14__CSI_D14,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_D15__CSI_D15,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_HSYNC__CSI_HSYNC,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_MCLK__CSI_MCLK,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_PIXCLK__CSI_PIXCLK,
 | 
				
			||||||
 | 
						MX31_PIN_CSI_VSYNC__CSI_VSYNC,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct physmap_flash_data pcm037_flash_data = {
 | 
					static struct physmap_flash_data pcm037_flash_data = {
 | 
				
			||||||
| 
						 | 
					@ -250,17 +299,41 @@ static struct mxc_nand_platform_data pcm037_nand_board_info = {
 | 
				
			||||||
	.hw_ecc = 1,
 | 
						.hw_ecc = 1,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_I2C_IMX
 | 
					 | 
				
			||||||
static struct imxi2c_platform_data pcm037_i2c_1_data = {
 | 
					static struct imxi2c_platform_data pcm037_i2c_1_data = {
 | 
				
			||||||
	.bitrate = 100000,
 | 
						.bitrate = 100000,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct imxi2c_platform_data pcm037_i2c_2_data = {
 | 
				
			||||||
 | 
						.bitrate = 20000,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct at24_platform_data board_eeprom = {
 | 
					static struct at24_platform_data board_eeprom = {
 | 
				
			||||||
	.byte_len = 4096,
 | 
						.byte_len = 4096,
 | 
				
			||||||
	.page_size = 32,
 | 
						.page_size = 32,
 | 
				
			||||||
	.flags = AT24_FLAG_ADDR16,
 | 
						.flags = AT24_FLAG_ADDR16,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int pcm037_camera_power(struct device *dev, int on)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/* disable or enable the camera in X7 or X8 PCM970 connector */
 | 
				
			||||||
 | 
						gpio_set_value(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), !on);
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct i2c_board_info pcm037_i2c_2_devices[] = {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							I2C_BOARD_INFO("mt9t031", 0x5d),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct soc_camera_link iclink = {
 | 
				
			||||||
 | 
						.bus_id		= 0,		/* Must match with the camera ID */
 | 
				
			||||||
 | 
						.power		= pcm037_camera_power,
 | 
				
			||||||
 | 
						.board_info	= &pcm037_i2c_2_devices[0],
 | 
				
			||||||
 | 
						.i2c_adapter_id	= 2,
 | 
				
			||||||
 | 
						.module_name	= "mt9t031",
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct i2c_board_info pcm037_i2c_devices[] = {
 | 
					static struct i2c_board_info pcm037_i2c_devices[] = {
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		I2C_BOARD_INFO("at24", 0x52), /* E0=0, E1=1, E2=0 */
 | 
							I2C_BOARD_INFO("at24", 0x52), /* E0=0, E1=1, E2=0 */
 | 
				
			||||||
| 
						 | 
					@ -270,7 +343,14 @@ static struct i2c_board_info pcm037_i2c_devices[] = {
 | 
				
			||||||
		.type = "pcf8563",
 | 
							.type = "pcf8563",
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
#endif
 | 
					
 | 
				
			||||||
 | 
					static struct platform_device pcm037_camera = {
 | 
				
			||||||
 | 
						.name	= "soc-camera-pdrv",
 | 
				
			||||||
 | 
						.id	= 0,
 | 
				
			||||||
 | 
						.dev	= {
 | 
				
			||||||
 | 
							.platform_data = &iclink,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Not connected by default */
 | 
					/* Not connected by default */
 | 
				
			||||||
#ifdef PCM970_SDHC_RW_SWITCH
 | 
					#ifdef PCM970_SDHC_RW_SWITCH
 | 
				
			||||||
| 
						 | 
					@ -334,9 +414,41 @@ static struct imxmmc_platform_data sdhc_pdata = {
 | 
				
			||||||
	.exit = pcm970_sdhc1_exit,
 | 
						.exit = pcm970_sdhc1_exit,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct mx3_camera_pdata camera_pdata = {
 | 
				
			||||||
 | 
						.dma_dev	= &mx3_ipu.dev,
 | 
				
			||||||
 | 
						.flags		= MX3_CAMERA_DATAWIDTH_8 | MX3_CAMERA_DATAWIDTH_10,
 | 
				
			||||||
 | 
						.mclk_10khz	= 2000,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int __init pcm037_camera_alloc_dma(const size_t buf_size)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						dma_addr_t dma_handle;
 | 
				
			||||||
 | 
						void *buf;
 | 
				
			||||||
 | 
						int dma;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (buf_size < 2 * 1024 * 1024)
 | 
				
			||||||
 | 
							return -EINVAL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						buf = dma_alloc_coherent(NULL, buf_size, &dma_handle, GFP_KERNEL);
 | 
				
			||||||
 | 
						if (!buf) {
 | 
				
			||||||
 | 
							pr_err("%s: cannot allocate camera buffer-memory\n", __func__);
 | 
				
			||||||
 | 
							return -ENOMEM;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						memset(buf, 0, buf_size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dma = dma_declare_coherent_memory(&mx3_camera.dev,
 | 
				
			||||||
 | 
										dma_handle, dma_handle, buf_size,
 | 
				
			||||||
 | 
										DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* The way we call dma_declare_coherent_memory only a malloc can fail */
 | 
				
			||||||
 | 
						return dma & DMA_MEMORY_MAP ? 0 : -ENOMEM;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct platform_device *devices[] __initdata = {
 | 
					static struct platform_device *devices[] __initdata = {
 | 
				
			||||||
	&pcm037_flash,
 | 
						&pcm037_flash,
 | 
				
			||||||
	&pcm037_sram_device,
 | 
						&pcm037_sram_device,
 | 
				
			||||||
 | 
						&pcm037_camera,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct ipu_platform_data mx3_ipu_data = {
 | 
					static struct ipu_platform_data mx3_ipu_data = {
 | 
				
			||||||
| 
						 | 
					@ -377,6 +489,22 @@ static const struct fb_videomode fb_modedb[] = {
 | 
				
			||||||
		.sync		= FB_SYNC_VERT_HIGH_ACT | FB_SYNC_OE_ACT_HIGH,
 | 
							.sync		= FB_SYNC_VERT_HIGH_ACT | FB_SYNC_OE_ACT_HIGH,
 | 
				
			||||||
		.vmode		= FB_VMODE_NONINTERLACED,
 | 
							.vmode		= FB_VMODE_NONINTERLACED,
 | 
				
			||||||
		.flag		= 0,
 | 
							.flag		= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							/* 240x320 @ 60 Hz */
 | 
				
			||||||
 | 
							.name		= "CMEL-OLED",
 | 
				
			||||||
 | 
							.refresh	= 60,
 | 
				
			||||||
 | 
							.xres		= 240,
 | 
				
			||||||
 | 
							.yres		= 320,
 | 
				
			||||||
 | 
							.pixclock	= 185925,
 | 
				
			||||||
 | 
							.left_margin	= 9,
 | 
				
			||||||
 | 
							.right_margin	= 16,
 | 
				
			||||||
 | 
							.upper_margin	= 7,
 | 
				
			||||||
 | 
							.lower_margin	= 9,
 | 
				
			||||||
 | 
							.hsync_len	= 1,
 | 
				
			||||||
 | 
							.vsync_len	= 1,
 | 
				
			||||||
 | 
							.sync		= FB_SYNC_OE_ACT_HIGH | FB_SYNC_CLK_INVERT,
 | 
				
			||||||
 | 
							.vmode		= FB_VMODE_NONINTERLACED,
 | 
				
			||||||
 | 
							.flag		= 0,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -397,6 +525,14 @@ static void __init mxc_board_init(void)
 | 
				
			||||||
	mxc_iomux_setup_multiple_pins(pcm037_pins, ARRAY_SIZE(pcm037_pins),
 | 
						mxc_iomux_setup_multiple_pins(pcm037_pins, ARRAY_SIZE(pcm037_pins),
 | 
				
			||||||
			"pcm037");
 | 
								"pcm037");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (pcm037_variant() == PCM037_EET)
 | 
				
			||||||
 | 
							mxc_iomux_setup_multiple_pins(pcm037_uart1_pins,
 | 
				
			||||||
 | 
								ARRAY_SIZE(pcm037_uart1_pins), "pcm037_uart1");
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							mxc_iomux_setup_multiple_pins(pcm037_uart1_handshake_pins,
 | 
				
			||||||
 | 
								ARRAY_SIZE(pcm037_uart1_handshake_pins),
 | 
				
			||||||
 | 
								"pcm037_uart1");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	platform_add_devices(devices, ARRAY_SIZE(devices));
 | 
						platform_add_devices(devices, ARRAY_SIZE(devices));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mxc_register_device(&mxc_uart_device0, &uart_pdata);
 | 
						mxc_register_device(&mxc_uart_device0, &uart_pdata);
 | 
				
			||||||
| 
						 | 
					@ -415,18 +551,30 @@ static void __init mxc_board_init(void)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_I2C_IMX
 | 
						/* I2C adapters and devices */
 | 
				
			||||||
	i2c_register_board_info(1, pcm037_i2c_devices,
 | 
						i2c_register_board_info(1, pcm037_i2c_devices,
 | 
				
			||||||
			ARRAY_SIZE(pcm037_i2c_devices));
 | 
								ARRAY_SIZE(pcm037_i2c_devices));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mxc_register_device(&mxc_i2c_device1, &pcm037_i2c_1_data);
 | 
						mxc_register_device(&mxc_i2c_device1, &pcm037_i2c_1_data);
 | 
				
			||||||
#endif
 | 
						mxc_register_device(&mxc_i2c_device2, &pcm037_i2c_2_data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mxc_register_device(&mxc_nand_device, &pcm037_nand_board_info);
 | 
						mxc_register_device(&mxc_nand_device, &pcm037_nand_board_info);
 | 
				
			||||||
	mxc_register_device(&mxcsdhc_device0, &sdhc_pdata);
 | 
						mxc_register_device(&mxcsdhc_device0, &sdhc_pdata);
 | 
				
			||||||
	mxc_register_device(&mx3_ipu, &mx3_ipu_data);
 | 
						mxc_register_device(&mx3_ipu, &mx3_ipu_data);
 | 
				
			||||||
	mxc_register_device(&mx3_fb, &mx3fb_pdata);
 | 
						mxc_register_device(&mx3_fb, &mx3fb_pdata);
 | 
				
			||||||
	if (!gpio_usbotg_hs_activate())
 | 
						if (!gpio_usbotg_hs_activate())
 | 
				
			||||||
		mxc_register_device(&mxc_otg_udc_device, &usb_pdata);
 | 
							mxc_register_device(&mxc_otg_udc_device, &usb_pdata);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* CSI */
 | 
				
			||||||
 | 
						/* Camera power: default - off */
 | 
				
			||||||
 | 
						ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), "mt9t031-power");
 | 
				
			||||||
 | 
						if (!ret)
 | 
				
			||||||
 | 
							gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), 1);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							iclink.power = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!pcm037_camera_alloc_dma(4 * 1024 * 1024))
 | 
				
			||||||
 | 
							mxc_register_device(&mx3_camera, &camera_pdata);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void __init pcm037_timer_init(void)
 | 
					static void __init pcm037_timer_init(void)
 | 
				
			||||||
| 
						 | 
					@ -448,4 +596,3 @@ MACHINE_START(PCM037, "Phytec Phycore pcm037")
 | 
				
			||||||
	.init_machine   = mxc_board_init,
 | 
						.init_machine   = mxc_board_init,
 | 
				
			||||||
	.timer          = &pcm037_timer,
 | 
						.timer          = &pcm037_timer,
 | 
				
			||||||
MACHINE_END
 | 
					MACHINE_END
 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								arch/arm/mach-mx3/pcm037.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								arch/arm/mach-mx3/pcm037.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					#ifndef __PCM037_H__
 | 
				
			||||||
 | 
					#define __PCM037_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum pcm037_board_variant {
 | 
				
			||||||
 | 
						PCM037_PCM970,
 | 
				
			||||||
 | 
						PCM037_EET,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern enum pcm037_board_variant pcm037_variant(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										204
									
								
								arch/arm/mach-mx3/pcm037_eet.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										204
									
								
								arch/arm/mach-mx3/pcm037_eet.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,204 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (C) 2009
 | 
				
			||||||
 | 
					 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include <linux/gpio.h>
 | 
				
			||||||
 | 
					#include <linux/gpio_keys.h>
 | 
				
			||||||
 | 
					#include <linux/input.h>
 | 
				
			||||||
 | 
					#include <linux/platform_device.h>
 | 
				
			||||||
 | 
					#include <linux/spi/spi.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <mach/common.h>
 | 
				
			||||||
 | 
					#if defined(CONFIG_SPI_IMX) || defined(CONFIG_SPI_IMX_MODULE)
 | 
				
			||||||
 | 
					#include <mach/spi.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#include <mach/iomux-mx3.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <asm/mach-types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "pcm037.h"
 | 
				
			||||||
 | 
					#include "devices.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static unsigned int pcm037_eet_pins[] = {
 | 
				
			||||||
 | 
						/* SPI #1 */
 | 
				
			||||||
 | 
						MX31_PIN_CSPI1_MISO__MISO,
 | 
				
			||||||
 | 
						MX31_PIN_CSPI1_MOSI__MOSI,
 | 
				
			||||||
 | 
						MX31_PIN_CSPI1_SCLK__SCLK,
 | 
				
			||||||
 | 
						MX31_PIN_CSPI1_SPI_RDY__SPI_RDY,
 | 
				
			||||||
 | 
						MX31_PIN_CSPI1_SS0__SS0,
 | 
				
			||||||
 | 
						MX31_PIN_CSPI1_SS1__SS1,
 | 
				
			||||||
 | 
						MX31_PIN_CSPI1_SS2__SS2,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Reserve and hardwire GPIO 57 high - S6E63D6 chipselect */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_KEY_COL7, IOMUX_CONFIG_GPIO),
 | 
				
			||||||
 | 
						/* GPIO keys */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_GPIO1_0,	IOMUX_CONFIG_GPIO), /* 0 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_GPIO1_1,	IOMUX_CONFIG_GPIO), /* 1 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_GPIO1_2,	IOMUX_CONFIG_GPIO), /* 2 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_GPIO1_3,	IOMUX_CONFIG_GPIO), /* 3 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_SVEN0,	IOMUX_CONFIG_GPIO), /* 32 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_STX0,	IOMUX_CONFIG_GPIO), /* 33 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_SRX0,	IOMUX_CONFIG_GPIO), /* 34 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_SIMPD0,	IOMUX_CONFIG_GPIO), /* 35 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_RTS1,	IOMUX_CONFIG_GPIO), /* 38 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_CTS1,	IOMUX_CONFIG_GPIO), /* 39 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_KEY_ROW4,	IOMUX_CONFIG_GPIO), /* 50 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_KEY_ROW5,	IOMUX_CONFIG_GPIO), /* 51 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_KEY_ROW6,	IOMUX_CONFIG_GPIO), /* 52 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_KEY_ROW7,	IOMUX_CONFIG_GPIO), /* 53 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* LEDs */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_DTR_DTE1,	IOMUX_CONFIG_GPIO), /* 44 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_DSR_DTE1,	IOMUX_CONFIG_GPIO), /* 45 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_KEY_COL5,	IOMUX_CONFIG_GPIO), /* 55 */
 | 
				
			||||||
 | 
						IOMUX_MODE(MX31_PIN_KEY_COL6,	IOMUX_CONFIG_GPIO), /* 56 */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SPI */
 | 
				
			||||||
 | 
					static struct spi_board_info pcm037_spi_dev[] = {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							.modalias	= "dac124s085",
 | 
				
			||||||
 | 
							.max_speed_hz	= 400000,
 | 
				
			||||||
 | 
							.bus_num	= 0,
 | 
				
			||||||
 | 
							.chip_select	= 0,		/* Index in pcm037_spi1_cs[] */
 | 
				
			||||||
 | 
							.mode		= SPI_CPHA,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Platform Data for MXC CSPI */
 | 
				
			||||||
 | 
					#if defined(CONFIG_SPI_IMX) || defined(CONFIG_SPI_IMX_MODULE)
 | 
				
			||||||
 | 
					static int pcm037_spi1_cs[] = {MXC_SPI_CS(1), IOMUX_TO_GPIO(MX31_PIN_KEY_COL7)};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct spi_imx_master pcm037_spi1_master = {
 | 
				
			||||||
 | 
						.chipselect = pcm037_spi1_cs,
 | 
				
			||||||
 | 
						.num_chipselect = ARRAY_SIZE(pcm037_spi1_cs),
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* GPIO-keys input device */
 | 
				
			||||||
 | 
					static struct gpio_keys_button pcm037_gpio_keys[] = {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_L,
 | 
				
			||||||
 | 
							.gpio	= 0,
 | 
				
			||||||
 | 
							.desc	= "Wheel Manual",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_A,
 | 
				
			||||||
 | 
							.gpio	= 1,
 | 
				
			||||||
 | 
							.desc	= "Wheel AF",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_V,
 | 
				
			||||||
 | 
							.gpio	= 2,
 | 
				
			||||||
 | 
							.desc	= "Wheel View",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_M,
 | 
				
			||||||
 | 
							.gpio	= 3,
 | 
				
			||||||
 | 
							.desc	= "Wheel Menu",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_UP,
 | 
				
			||||||
 | 
							.gpio	= 32,
 | 
				
			||||||
 | 
							.desc	= "Nav Pad Up",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_RIGHT,
 | 
				
			||||||
 | 
							.gpio	= 33,
 | 
				
			||||||
 | 
							.desc	= "Nav Pad Right",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_DOWN,
 | 
				
			||||||
 | 
							.gpio	= 34,
 | 
				
			||||||
 | 
							.desc	= "Nav Pad Down",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_LEFT,
 | 
				
			||||||
 | 
							.gpio	= 35,
 | 
				
			||||||
 | 
							.desc	= "Nav Pad Left",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_ENTER,
 | 
				
			||||||
 | 
							.gpio	= 38,
 | 
				
			||||||
 | 
							.desc	= "Nav Pad Ok",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= KEY_O,
 | 
				
			||||||
 | 
							.gpio	= 39,
 | 
				
			||||||
 | 
							.desc	= "Wheel Off",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= BTN_FORWARD,
 | 
				
			||||||
 | 
							.gpio	= 50,
 | 
				
			||||||
 | 
							.desc	= "Focus Forward",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= BTN_BACK,
 | 
				
			||||||
 | 
							.gpio	= 51,
 | 
				
			||||||
 | 
							.desc	= "Focus Backward",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= BTN_MIDDLE,
 | 
				
			||||||
 | 
							.gpio	= 52,
 | 
				
			||||||
 | 
							.desc	= "Release Half",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							.type	= EV_KEY,
 | 
				
			||||||
 | 
							.code	= BTN_EXTRA,
 | 
				
			||||||
 | 
							.gpio	= 53,
 | 
				
			||||||
 | 
							.desc	= "Release Full",
 | 
				
			||||||
 | 
							.wakeup	= 0,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct gpio_keys_platform_data pcm037_gpio_keys_platform_data = {
 | 
				
			||||||
 | 
						.buttons	= pcm037_gpio_keys,
 | 
				
			||||||
 | 
						.nbuttons	= ARRAY_SIZE(pcm037_gpio_keys),
 | 
				
			||||||
 | 
						.rep		= 0, /* No auto-repeat */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct platform_device pcm037_gpio_keys_device = {
 | 
				
			||||||
 | 
						.name	= "gpio-keys",
 | 
				
			||||||
 | 
						.id	= -1,
 | 
				
			||||||
 | 
						.dev	= {
 | 
				
			||||||
 | 
							.platform_data	= &pcm037_gpio_keys_platform_data,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int eet_init_devices(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (!machine_is_pcm037() || pcm037_variant() != PCM037_EET)
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mxc_iomux_setup_multiple_pins(pcm037_eet_pins,
 | 
				
			||||||
 | 
									ARRAY_SIZE(pcm037_eet_pins), "pcm037_eet");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* SPI */
 | 
				
			||||||
 | 
						spi_register_board_info(pcm037_spi_dev, ARRAY_SIZE(pcm037_spi_dev));
 | 
				
			||||||
 | 
					#if defined(CONFIG_SPI_IMX) || defined(CONFIG_SPI_IMX_MODULE)
 | 
				
			||||||
 | 
						mxc_register_device(&mxc_spi_device0, &pcm037_spi1_master);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						platform_device_register(&pcm037_gpio_keys_device);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					late_initcall(eet_init_devices);
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,6 @@
 | 
				
			||||||
#include <mach/hwa742.h>
 | 
					#include <mach/hwa742.h>
 | 
				
			||||||
#include <mach/lcd_mipid.h>
 | 
					#include <mach/lcd_mipid.h>
 | 
				
			||||||
#include <mach/mmc.h>
 | 
					#include <mach/mmc.h>
 | 
				
			||||||
#include <mach/usb.h>
 | 
					 | 
				
			||||||
#include <mach/clock.h>
 | 
					#include <mach/clock.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ADS7846_PENDOWN_GPIO	15
 | 
					#define ADS7846_PENDOWN_GPIO	15
 | 
				
			||||||
| 
						 | 
					@ -205,9 +204,11 @@ static int nokia770_mmc_get_cover_state(struct device *dev, int slot)
 | 
				
			||||||
static struct omap_mmc_platform_data nokia770_mmc2_data = {
 | 
					static struct omap_mmc_platform_data nokia770_mmc2_data = {
 | 
				
			||||||
	.nr_slots                       = 1,
 | 
						.nr_slots                       = 1,
 | 
				
			||||||
	.dma_mask			= 0xffffffff,
 | 
						.dma_mask			= 0xffffffff,
 | 
				
			||||||
 | 
						.max_freq                       = 12000000,
 | 
				
			||||||
	.slots[0]       = {
 | 
						.slots[0]       = {
 | 
				
			||||||
		.set_power		= nokia770_mmc_set_power,
 | 
							.set_power		= nokia770_mmc_set_power,
 | 
				
			||||||
		.get_cover_state	= nokia770_mmc_get_cover_state,
 | 
							.get_cover_state	= nokia770_mmc_get_cover_state,
 | 
				
			||||||
 | 
							.ocr_mask               = MMC_VDD_32_33|MMC_VDD_33_34,
 | 
				
			||||||
		.name                   = "mmcblk",
 | 
							.name                   = "mmcblk",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -203,5 +203,5 @@ module_exit(omap1_mbox_exit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MODULE_LICENSE("GPL v2");
 | 
					MODULE_LICENSE("GPL v2");
 | 
				
			||||||
MODULE_DESCRIPTION("omap mailbox: omap1 architecture specific functions");
 | 
					MODULE_DESCRIPTION("omap mailbox: omap1 architecture specific functions");
 | 
				
			||||||
MODULE_AUTHOR("Hiroshi DOYU" <Hiroshi.DOYU@nokia.com>);
 | 
					MODULE_AUTHOR("Hiroshi DOYU <Hiroshi.DOYU@nokia.com>");
 | 
				
			||||||
MODULE_ALIAS("platform:omap1-mailbox");
 | 
					MODULE_ALIAS("platform:omap1-mailbox");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <mach/irqs.h>
 | 
					#include <mach/irqs.h>
 | 
				
			||||||
#include <mach/dma.h>
 | 
					#include <mach/dma.h>
 | 
				
			||||||
#include <mach/irqs.h>
 | 
					 | 
				
			||||||
#include <mach/mux.h>
 | 
					#include <mach/mux.h>
 | 
				
			||||||
#include <mach/cpu.h>
 | 
					#include <mach/cpu.h>
 | 
				
			||||||
#include <mach/mcbsp.h>
 | 
					#include <mach/mcbsp.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,6 +25,7 @@
 | 
				
			||||||
#include <linux/spi/spi.h>
 | 
					#include <linux/spi/spi.h>
 | 
				
			||||||
#include <linux/spi/ads7846.h>
 | 
					#include <linux/spi/ads7846.h>
 | 
				
			||||||
#include <linux/i2c/twl4030.h>
 | 
					#include <linux/i2c/twl4030.h>
 | 
				
			||||||
 | 
					#include <linux/usb/otg.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <mach/hardware.h>
 | 
					#include <mach/hardware.h>
 | 
				
			||||||
#include <asm/mach-types.h>
 | 
					#include <asm/mach-types.h>
 | 
				
			||||||
| 
						 | 
					@ -307,6 +308,10 @@ static void __init omap3_evm_init(void)
 | 
				
			||||||
				ARRAY_SIZE(omap3evm_spi_board_info));
 | 
									ARRAY_SIZE(omap3evm_spi_board_info));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	omap_serial_init();
 | 
						omap_serial_init();
 | 
				
			||||||
 | 
					#ifdef CONFIG_NOP_USB_XCEIV
 | 
				
			||||||
 | 
						/* OMAP3EVM uses ISP1504 phy and so register nop transceiver */
 | 
				
			||||||
 | 
						usb_nop_xceiv_register();
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
	usb_musb_init();
 | 
						usb_musb_init();
 | 
				
			||||||
	ads7846_dev_init();
 | 
						ads7846_dev_init();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -362,6 +362,7 @@ static struct omap_onenand_platform_data board_onenand_data = {
 | 
				
			||||||
	.gpio_irq	= 65,
 | 
						.gpio_irq	= 65,
 | 
				
			||||||
	.parts		= onenand_partitions,
 | 
						.parts		= onenand_partitions,
 | 
				
			||||||
	.nr_parts	= ARRAY_SIZE(onenand_partitions),
 | 
						.nr_parts	= ARRAY_SIZE(onenand_partitions),
 | 
				
			||||||
 | 
						.flags		= ONENAND_SYNC_READWRITE,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void __init board_onenand_init(void)
 | 
					static void __init board_onenand_init(void)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,8 @@ static struct platform_device gpmc_onenand_device = {
 | 
				
			||||||
static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base)
 | 
					static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct gpmc_timings t;
 | 
						struct gpmc_timings t;
 | 
				
			||||||
 | 
						u32 reg;
 | 
				
			||||||
 | 
						int err;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const int t_cer = 15;
 | 
						const int t_cer = 15;
 | 
				
			||||||
	const int t_avdp = 12;
 | 
						const int t_avdp = 12;
 | 
				
			||||||
| 
						 | 
					@ -43,6 +45,11 @@ static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base)
 | 
				
			||||||
	const int t_wpl = 40;
 | 
						const int t_wpl = 40;
 | 
				
			||||||
	const int t_wph = 30;
 | 
						const int t_wph = 30;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Ensure sync read and sync write are disabled */
 | 
				
			||||||
 | 
						reg = readw(onenand_base + ONENAND_REG_SYS_CFG1);
 | 
				
			||||||
 | 
						reg &= ~ONENAND_SYS_CFG1_SYNC_READ & ~ONENAND_SYS_CFG1_SYNC_WRITE;
 | 
				
			||||||
 | 
						writew(reg, onenand_base + ONENAND_REG_SYS_CFG1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memset(&t, 0, sizeof(t));
 | 
						memset(&t, 0, sizeof(t));
 | 
				
			||||||
	t.sync_clk = 0;
 | 
						t.sync_clk = 0;
 | 
				
			||||||
	t.cs_on = 0;
 | 
						t.cs_on = 0;
 | 
				
			||||||
| 
						 | 
					@ -74,7 +81,16 @@ static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base)
 | 
				
			||||||
			  GPMC_CONFIG1_DEVICESIZE_16 |
 | 
								  GPMC_CONFIG1_DEVICESIZE_16 |
 | 
				
			||||||
			  GPMC_CONFIG1_MUXADDDATA);
 | 
								  GPMC_CONFIG1_MUXADDDATA);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return gpmc_cs_set_timings(cs, &t);
 | 
						err = gpmc_cs_set_timings(cs, &t);
 | 
				
			||||||
 | 
						if (err)
 | 
				
			||||||
 | 
							return err;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Ensure sync read and sync write are disabled */
 | 
				
			||||||
 | 
						reg = readw(onenand_base + ONENAND_REG_SYS_CFG1);
 | 
				
			||||||
 | 
						reg &= ~ONENAND_SYS_CFG1_SYNC_READ & ~ONENAND_SYS_CFG1_SYNC_WRITE;
 | 
				
			||||||
 | 
						writew(reg, onenand_base + ONENAND_REG_SYS_CFG1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void set_onenand_cfg(void __iomem *onenand_base, int latency,
 | 
					static void set_onenand_cfg(void __iomem *onenand_base, int latency,
 | 
				
			||||||
| 
						 | 
					@ -124,7 +140,8 @@ static int omap2_onenand_set_sync_mode(struct omap_onenand_platform_data *cfg,
 | 
				
			||||||
	} else if (cfg->flags & ONENAND_SYNC_READWRITE) {
 | 
						} else if (cfg->flags & ONENAND_SYNC_READWRITE) {
 | 
				
			||||||
		sync_read = 1;
 | 
							sync_read = 1;
 | 
				
			||||||
		sync_write = 1;
 | 
							sync_write = 1;
 | 
				
			||||||
	}
 | 
						} else
 | 
				
			||||||
 | 
							return omap2_onenand_set_async_mode(cs, onenand_base);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!freq) {
 | 
						if (!freq) {
 | 
				
			||||||
		/* Very first call freq is not known */
 | 
							/* Very first call freq is not known */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,6 +48,28 @@ int omap_chip_is(struct omap_chip_id oci)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
EXPORT_SYMBOL(omap_chip_is);
 | 
					EXPORT_SYMBOL(omap_chip_is);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int omap_type(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						u32 val = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (cpu_is_omap24xx())
 | 
				
			||||||
 | 
							val = omap_ctrl_readl(OMAP24XX_CONTROL_STATUS);
 | 
				
			||||||
 | 
						else if (cpu_is_omap34xx())
 | 
				
			||||||
 | 
							val = omap_ctrl_readl(OMAP343X_CONTROL_STATUS);
 | 
				
			||||||
 | 
						else {
 | 
				
			||||||
 | 
							pr_err("Cannot detect omap type!\n");
 | 
				
			||||||
 | 
							goto out;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						val &= OMAP2_DEVICETYPE_MASK;
 | 
				
			||||||
 | 
						val >>= 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					out:
 | 
				
			||||||
 | 
						return val;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					EXPORT_SYMBOL(omap_type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*----------------------------------------------------------------------------*/
 | 
					/*----------------------------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define OMAP_TAP_IDCODE		0x0204
 | 
					#define OMAP_TAP_IDCODE		0x0204
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -282,12 +282,12 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev)
 | 
				
			||||||
		return -ENOMEM;
 | 
							return -ENOMEM;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* DSP or IVA2 IRQ */
 | 
						/* DSP or IVA2 IRQ */
 | 
				
			||||||
	mbox_dsp_info.irq = platform_get_irq(pdev, 0);
 | 
						ret = platform_get_irq(pdev, 0);
 | 
				
			||||||
	if (mbox_dsp_info.irq < 0) {
 | 
						if (ret < 0) {
 | 
				
			||||||
		dev_err(&pdev->dev, "invalid irq resource\n");
 | 
							dev_err(&pdev->dev, "invalid irq resource\n");
 | 
				
			||||||
		ret = -ENODEV;
 | 
					 | 
				
			||||||
		goto err_dsp;
 | 
							goto err_dsp;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						mbox_dsp_info.irq = ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ret = omap_mbox_register(&pdev->dev, &mbox_dsp_info);
 | 
						ret = omap_mbox_register(&pdev->dev, &mbox_dsp_info);
 | 
				
			||||||
	if (ret)
 | 
						if (ret)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <mach/irqs.h>
 | 
					#include <mach/irqs.h>
 | 
				
			||||||
#include <mach/dma.h>
 | 
					#include <mach/dma.h>
 | 
				
			||||||
#include <mach/irqs.h>
 | 
					 | 
				
			||||||
#include <mach/mux.h>
 | 
					#include <mach/mux.h>
 | 
				
			||||||
#include <mach/cpu.h>
 | 
					#include <mach/cpu.h>
 | 
				
			||||||
#include <mach/mcbsp.h>
 | 
					#include <mach/mcbsp.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -263,8 +263,19 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on,
 | 
				
			||||||
static int twl_mmc23_set_power(struct device *dev, int slot, int power_on, int vdd)
 | 
					static int twl_mmc23_set_power(struct device *dev, int slot, int power_on, int vdd)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int ret = 0;
 | 
						int ret = 0;
 | 
				
			||||||
	struct twl_mmc_controller *c = &hsmmc[1];
 | 
						struct twl_mmc_controller *c = NULL;
 | 
				
			||||||
	struct omap_mmc_platform_data *mmc = dev->platform_data;
 | 
						struct omap_mmc_platform_data *mmc = dev->platform_data;
 | 
				
			||||||
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for (i = 1; i < ARRAY_SIZE(hsmmc); i++) {
 | 
				
			||||||
 | 
							if (mmc == hsmmc[i].mmc) {
 | 
				
			||||||
 | 
								c = &hsmmc[i];
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (c == NULL)
 | 
				
			||||||
 | 
							return -ENODEV;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* If we don't see a Vcc regulator, assume it's a fixed
 | 
						/* If we don't see a Vcc regulator, assume it's a fixed
 | 
				
			||||||
	 * voltage always-on regulator.
 | 
						 * voltage always-on regulator.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -155,20 +155,6 @@ static struct platform_device musb_device = {
 | 
				
			||||||
	.resource	= musb_resources,
 | 
						.resource	= musb_resources,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_NOP_USB_XCEIV
 | 
					 | 
				
			||||||
static u64 nop_xceiv_dmamask = DMA_BIT_MASK(32);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct platform_device nop_xceiv_device = {
 | 
					 | 
				
			||||||
	.name		= "nop_usb_xceiv",
 | 
					 | 
				
			||||||
	.id		= -1,
 | 
					 | 
				
			||||||
	.dev = {
 | 
					 | 
				
			||||||
		.dma_mask		= &nop_xceiv_dmamask,
 | 
					 | 
				
			||||||
		.coherent_dma_mask	= DMA_BIT_MASK(32),
 | 
					 | 
				
			||||||
		.platform_data		= NULL,
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void __init usb_musb_init(void)
 | 
					void __init usb_musb_init(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (cpu_is_omap243x())
 | 
						if (cpu_is_omap243x())
 | 
				
			||||||
| 
						 | 
					@ -183,13 +169,6 @@ void __init usb_musb_init(void)
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	musb_plat.clock = "ick";
 | 
						musb_plat.clock = "ick";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_NOP_USB_XCEIV
 | 
					 | 
				
			||||||
	if (platform_device_register(&nop_xceiv_device) < 0) {
 | 
					 | 
				
			||||||
		printk(KERN_ERR "Unable to register NOP-XCEIV device\n");
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (platform_device_register(&musb_device) < 0) {
 | 
						if (platform_device_register(&musb_device) < 0) {
 | 
				
			||||||
		printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n");
 | 
							printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n");
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1141,12 +1141,16 @@ struct power_supply_info em_x270_psy_info = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void em_x270_battery_low(void)
 | 
					static void em_x270_battery_low(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					#if defined(CONFIG_APM_EMULATION)
 | 
				
			||||||
	apm_queue_event(APM_LOW_BATTERY);
 | 
						apm_queue_event(APM_LOW_BATTERY);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void em_x270_battery_critical(void)
 | 
					static void em_x270_battery_critical(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					#if defined(CONFIG_APM_EMULATION)
 | 
				
			||||||
	apm_queue_event(APM_CRITICAL_SUSPEND);
 | 
						apm_queue_event(APM_CRITICAL_SUSPEND);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct da9030_battery_info em_x270_batterty_info = {
 | 
					struct da9030_battery_info em_x270_batterty_info = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue