Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into mips-for-linux-next
Conflicts:
    include/linux/ssb/ssb_driver_gige.h
Also resolves a logical merge conflict in drivers/net/ethernet/broadcom/-
bgmac.c due to change of an API.
	
	
This commit is contained in:
		
				commit
				
					
						edb15d83a8
					
				
			
		
					 2761 changed files with 162944 additions and 85692 deletions
				
			
		|  | @ -0,0 +1,62 @@ | ||||||
|  | What:		/sys/devices/cpu/events/ | ||||||
|  | 		/sys/devices/cpu/events/branch-misses | ||||||
|  | 		/sys/devices/cpu/events/cache-references | ||||||
|  | 		/sys/devices/cpu/events/cache-misses | ||||||
|  | 		/sys/devices/cpu/events/stalled-cycles-frontend | ||||||
|  | 		/sys/devices/cpu/events/branch-instructions | ||||||
|  | 		/sys/devices/cpu/events/stalled-cycles-backend | ||||||
|  | 		/sys/devices/cpu/events/instructions | ||||||
|  | 		/sys/devices/cpu/events/cpu-cycles | ||||||
|  | 
 | ||||||
|  | Date:		2013/01/08 | ||||||
|  | 
 | ||||||
|  | Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org> | ||||||
|  | 
 | ||||||
|  | Description:	Generic performance monitoring events | ||||||
|  | 
 | ||||||
|  | 		A collection of performance monitoring events that may be | ||||||
|  | 		supported by many/most CPUs. These events can be monitored | ||||||
|  | 		using the 'perf(1)' tool. | ||||||
|  | 
 | ||||||
|  | 		The contents of each file would look like: | ||||||
|  | 
 | ||||||
|  | 			event=0xNNNN | ||||||
|  | 
 | ||||||
|  | 		where 'N' is a hex digit and the number '0xNNNN' shows the | ||||||
|  | 		"raw code" for the perf event identified by the file's | ||||||
|  | 		"basename". | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | What: 		/sys/devices/cpu/events/PM_LD_MISS_L1 | ||||||
|  | 		/sys/devices/cpu/events/PM_LD_REF_L1 | ||||||
|  | 		/sys/devices/cpu/events/PM_CYC | ||||||
|  | 		/sys/devices/cpu/events/PM_BRU_FIN | ||||||
|  | 		/sys/devices/cpu/events/PM_GCT_NOSLOT_CYC | ||||||
|  | 		/sys/devices/cpu/events/PM_BRU_MPRED | ||||||
|  | 		/sys/devices/cpu/events/PM_INST_CMPL | ||||||
|  | 		/sys/devices/cpu/events/PM_CMPLU_STALL | ||||||
|  | 
 | ||||||
|  | Date:		2013/01/08 | ||||||
|  | 
 | ||||||
|  | Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org> | ||||||
|  | 		Linux Powerpc mailing list <linuxppc-dev@ozlabs.org> | ||||||
|  | 
 | ||||||
|  | Description:	POWER-systems specific performance monitoring events | ||||||
|  | 
 | ||||||
|  | 		A collection of performance monitoring events that may be | ||||||
|  | 		supported by the POWER CPU. These events can be monitored | ||||||
|  | 		using the 'perf(1)' tool. | ||||||
|  | 
 | ||||||
|  | 		These events may not be supported by other CPUs. | ||||||
|  | 
 | ||||||
|  | 		The contents of each file would look like: | ||||||
|  | 
 | ||||||
|  | 			event=0xNNNN | ||||||
|  | 
 | ||||||
|  | 		where 'N' is a hex digit and the number '0xNNNN' shows the | ||||||
|  | 		"raw code" for the perf event identified by the file's | ||||||
|  | 		"basename". | ||||||
|  | 
 | ||||||
|  | 		Further, multiple terms like 'event=0xNNNN' can be specified | ||||||
|  | 		and separated with comma. All available terms are defined in | ||||||
|  | 		the /sys/bus/event_source/devices/<dev>/format file. | ||||||
							
								
								
									
										13
									
								
								Documentation/ABI/testing/sysfs-devices-power_resources_D0
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Documentation/ABI/testing/sysfs-devices-power_resources_D0
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | What:		/sys/devices/.../power_resources_D0/ | ||||||
|  | Date:		January 2013 | ||||||
|  | Contact:	Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||||||
|  | Description: | ||||||
|  | 		The /sys/devices/.../power_resources_D0/ directory is only | ||||||
|  | 		present for device objects representing ACPI device nodes that | ||||||
|  | 		use ACPI power resources for power management. | ||||||
|  | 
 | ||||||
|  | 		If present, it contains symbolic links to device directories | ||||||
|  | 		representing ACPI power resources that need to be turned on for | ||||||
|  | 		the given device node to be in ACPI power state D0.  The names | ||||||
|  | 		of the links are the same as the names of the directories they | ||||||
|  | 		point to. | ||||||
							
								
								
									
										14
									
								
								Documentation/ABI/testing/sysfs-devices-power_resources_D1
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Documentation/ABI/testing/sysfs-devices-power_resources_D1
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | What:		/sys/devices/.../power_resources_D1/ | ||||||
|  | Date:		January 2013 | ||||||
|  | Contact:	Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||||||
|  | Description: | ||||||
|  | 		The /sys/devices/.../power_resources_D1/ directory is only | ||||||
|  | 		present for device objects representing ACPI device nodes that | ||||||
|  | 		use ACPI power resources for power management and support ACPI | ||||||
|  | 		power state D1. | ||||||
|  | 
 | ||||||
|  | 		If present, it contains symbolic links to device directories | ||||||
|  | 		representing ACPI power resources that need to be turned on for | ||||||
|  | 		the given device node to be in ACPI power state D1.  The names | ||||||
|  | 		of the links are the same as the names of the directories they | ||||||
|  | 		point to. | ||||||
							
								
								
									
										14
									
								
								Documentation/ABI/testing/sysfs-devices-power_resources_D2
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Documentation/ABI/testing/sysfs-devices-power_resources_D2
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | What:		/sys/devices/.../power_resources_D2/ | ||||||
|  | Date:		January 2013 | ||||||
|  | Contact:	Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||||||
|  | Description: | ||||||
|  | 		The /sys/devices/.../power_resources_D2/ directory is only | ||||||
|  | 		present for device objects representing ACPI device nodes that | ||||||
|  | 		use ACPI power resources for power management and support ACPI | ||||||
|  | 		power state D2. | ||||||
|  | 
 | ||||||
|  | 		If present, it contains symbolic links to device directories | ||||||
|  | 		representing ACPI power resources that need to be turned on for | ||||||
|  | 		the given device node to be in ACPI power state D2.  The names | ||||||
|  | 		of the links are the same as the names of the directories they | ||||||
|  | 		point to. | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | What:		/sys/devices/.../power_resources_D3hot/ | ||||||
|  | Date:		January 2013 | ||||||
|  | Contact:	Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||||||
|  | Description: | ||||||
|  | 		The /sys/devices/.../power_resources_D3hot/ directory is only | ||||||
|  | 		present for device objects representing ACPI device nodes that | ||||||
|  | 		use ACPI power resources for power management and support ACPI | ||||||
|  | 		power state D3hot. | ||||||
|  | 
 | ||||||
|  | 		If present, it contains symbolic links to device directories | ||||||
|  | 		representing ACPI power resources that need to be turned on for | ||||||
|  | 		the given device node to be in ACPI power state D3hot.  The | ||||||
|  | 		names of the links are the same as the names of the directories | ||||||
|  | 		they point to. | ||||||
							
								
								
									
										20
									
								
								Documentation/ABI/testing/sysfs-devices-power_state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Documentation/ABI/testing/sysfs-devices-power_state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | What:		/sys/devices/.../power_state | ||||||
|  | Date:		January 2013 | ||||||
|  | Contact:	Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||||||
|  | Description: | ||||||
|  | 		The /sys/devices/.../power_state attribute is only present for | ||||||
|  | 		device objects representing ACPI device nodes that provide power | ||||||
|  | 		management methods. | ||||||
|  | 
 | ||||||
|  | 		If present, it contains a string representing the current ACPI | ||||||
|  | 		power state of the given device node.  Its possible values, | ||||||
|  | 		"D0", "D1", "D2", "D3hot", and "D3cold", reflect the power state | ||||||
|  | 		names defined by the ACPI specification (ACPI 4 and above). | ||||||
|  | 
 | ||||||
|  | 		If the device node uses shared ACPI power resources, this state | ||||||
|  | 		determines a list of power resources required not to be turned | ||||||
|  | 		off.  However, some power resources needed by the device node in | ||||||
|  | 		higher-power (lower-number) states may also be ON because of | ||||||
|  | 		some other devices using them at the moment. | ||||||
|  | 
 | ||||||
|  | 		This attribute is read-only. | ||||||
							
								
								
									
										23
									
								
								Documentation/ABI/testing/sysfs-devices-real_power_state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								Documentation/ABI/testing/sysfs-devices-real_power_state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | What:		/sys/devices/.../real_power_state | ||||||
|  | Date:		January 2013 | ||||||
|  | Contact:	Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||||||
|  | Description: | ||||||
|  | 		The /sys/devices/.../real_power_state attribute is only present | ||||||
|  | 		for device objects representing ACPI device nodes that provide | ||||||
|  | 		power management methods and use ACPI power resources for power | ||||||
|  | 		management. | ||||||
|  | 
 | ||||||
|  | 		If present, it contains a string representing the real ACPI | ||||||
|  | 		power state of the given device node as returned by the _PSC | ||||||
|  | 		control method or inferred from the configuration of power | ||||||
|  | 		resources.  Its possible values, "D0", "D1", "D2", "D3hot", and | ||||||
|  | 		"D3cold", reflect the power state names defined by the ACPI | ||||||
|  | 		specification (ACPI 4 and above). | ||||||
|  | 
 | ||||||
|  | 		In some situations the value of this attribute may be different | ||||||
|  | 		from the value of the /sys/devices/.../power_state attribute for | ||||||
|  | 		the same device object.  If that happens, some shared power | ||||||
|  | 		resources used by the device node are only ON because of some | ||||||
|  | 		other devices using them at the moment. | ||||||
|  | 
 | ||||||
|  | 		This attribute is read-only. | ||||||
							
								
								
									
										12
									
								
								Documentation/ABI/testing/sysfs-devices-resource_in_use
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Documentation/ABI/testing/sysfs-devices-resource_in_use
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | What:		/sys/devices/.../resource_in_use | ||||||
|  | Date:		January 2013 | ||||||
|  | Contact:	Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||||||
|  | Description: | ||||||
|  | 		The /sys/devices/.../resource_in_use attribute is only present | ||||||
|  | 		for device objects representing ACPI power resources. | ||||||
|  | 
 | ||||||
|  | 		If present, it contains a number (0 or 1) representing the | ||||||
|  | 		current status of the given power resource (0 means that the | ||||||
|  | 		resource is not in use and therefore it has been turned off). | ||||||
|  | 
 | ||||||
|  | 		This attribute is read-only. | ||||||
							
								
								
									
										47
									
								
								Documentation/ABI/testing/sysfs-platform-ts5500
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								Documentation/ABI/testing/sysfs-platform-ts5500
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,47 @@ | ||||||
|  | What:		/sys/devices/platform/ts5500/adc | ||||||
|  | Date:		January 2013 | ||||||
|  | KernelVersion:	3.7 | ||||||
|  | Contact:	"Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||||||
|  | Description: | ||||||
|  | 		Indicates the presence of an A/D Converter. If it is present, | ||||||
|  | 		it will display "1", otherwise "0". | ||||||
|  | 
 | ||||||
|  | What:		/sys/devices/platform/ts5500/ereset | ||||||
|  | Date:		January 2013 | ||||||
|  | KernelVersion:	3.7 | ||||||
|  | Contact:	"Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||||||
|  | Description: | ||||||
|  | 		Indicates the presence of an external reset. If it is present, | ||||||
|  | 		it will display "1", otherwise "0". | ||||||
|  | 
 | ||||||
|  | What:		/sys/devices/platform/ts5500/id | ||||||
|  | Date:		January 2013 | ||||||
|  | KernelVersion:	3.7 | ||||||
|  | Contact:	"Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||||||
|  | Description: | ||||||
|  | 		Product ID of the TS board. TS-5500 ID is 0x60. | ||||||
|  | 
 | ||||||
|  | What:		/sys/devices/platform/ts5500/jumpers | ||||||
|  | Date:		January 2013 | ||||||
|  | KernelVersion:	3.7 | ||||||
|  | Contact:	"Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||||||
|  | Description: | ||||||
|  | 		Bitfield showing the jumpers' state. If a jumper is present, | ||||||
|  | 		the corresponding bit is set. For instance, 0x0e means jumpers | ||||||
|  | 		2, 3 and 4 are set. | ||||||
|  | 
 | ||||||
|  | What:		/sys/devices/platform/ts5500/rs485 | ||||||
|  | Date:		January 2013 | ||||||
|  | KernelVersion:	3.7 | ||||||
|  | Contact:	"Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||||||
|  | Description: | ||||||
|  | 		Indicates the presence of the RS485 option. If it is present, | ||||||
|  | 		it will display "1", otherwise "0". | ||||||
|  | 
 | ||||||
|  | What:		/sys/devices/platform/ts5500/sram | ||||||
|  | Date:		January 2013 | ||||||
|  | KernelVersion:	3.7 | ||||||
|  | Contact:	"Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||||||
|  | Description: | ||||||
|  | 		Indicates the presence of the SRAM option. If it is present, | ||||||
|  | 		it will display "1", otherwise "0". | ||||||
|  | @ -107,8 +107,8 @@ | ||||||
| !Finclude/net/cfg80211.h key_params | !Finclude/net/cfg80211.h key_params | ||||||
| !Finclude/net/cfg80211.h survey_info_flags | !Finclude/net/cfg80211.h survey_info_flags | ||||||
| !Finclude/net/cfg80211.h survey_info | !Finclude/net/cfg80211.h survey_info | ||||||
| !Finclude/net/cfg80211.h beacon_parameters | !Finclude/net/cfg80211.h cfg80211_beacon_data | ||||||
| !Finclude/net/cfg80211.h plink_actions | !Finclude/net/cfg80211.h cfg80211_ap_settings | ||||||
| !Finclude/net/cfg80211.h station_parameters | !Finclude/net/cfg80211.h station_parameters | ||||||
| !Finclude/net/cfg80211.h station_info_flags | !Finclude/net/cfg80211.h station_info_flags | ||||||
| !Finclude/net/cfg80211.h rate_info_flags | !Finclude/net/cfg80211.h rate_info_flags | ||||||
|  |  | ||||||
|  | @ -127,15 +127,42 @@ on the number of vectors that can be allocated; pci_enable_msi_block() | ||||||
| returns as soon as it finds any constraint that doesn't allow the | returns as soon as it finds any constraint that doesn't allow the | ||||||
| call to succeed. | call to succeed. | ||||||
| 
 | 
 | ||||||
| 4.2.3 pci_disable_msi | 4.2.3 pci_enable_msi_block_auto | ||||||
|  | 
 | ||||||
|  | int pci_enable_msi_block_auto(struct pci_dev *dev, unsigned int *count) | ||||||
|  | 
 | ||||||
|  | This variation on pci_enable_msi() call allows a device driver to request | ||||||
|  | the maximum possible number of MSIs.  The MSI specification only allows | ||||||
|  | interrupts to be allocated in powers of two, up to a maximum of 2^5 (32). | ||||||
|  | 
 | ||||||
|  | If this function returns a positive number, it indicates that it has | ||||||
|  | succeeded and the returned value is the number of allocated interrupts. In | ||||||
|  | this case, the function enables MSI on this device and updates dev->irq to | ||||||
|  | be the lowest of the new interrupts assigned to it.  The other interrupts | ||||||
|  | assigned to the device are in the range dev->irq to dev->irq + returned | ||||||
|  | value - 1. | ||||||
|  | 
 | ||||||
|  | If this function returns a negative number, it indicates an error and | ||||||
|  | the driver should not attempt to request any more MSI interrupts for | ||||||
|  | this device. | ||||||
|  | 
 | ||||||
|  | If the device driver needs to know the number of interrupts the device | ||||||
|  | supports it can pass the pointer count where that number is stored. The | ||||||
|  | device driver must decide what action to take if pci_enable_msi_block_auto() | ||||||
|  | succeeds, but returns a value less than the number of interrupts supported. | ||||||
|  | If the device driver does not need to know the number of interrupts | ||||||
|  | supported, it can set the pointer count to NULL. | ||||||
|  | 
 | ||||||
|  | 4.2.4 pci_disable_msi | ||||||
| 
 | 
 | ||||||
| void pci_disable_msi(struct pci_dev *dev) | void pci_disable_msi(struct pci_dev *dev) | ||||||
| 
 | 
 | ||||||
| This function should be used to undo the effect of pci_enable_msi() or | This function should be used to undo the effect of pci_enable_msi() or | ||||||
| pci_enable_msi_block().  Calling it restores dev->irq to the pin-based | pci_enable_msi_block() or pci_enable_msi_block_auto().  Calling it restores | ||||||
| interrupt number and frees the previously allocated message signaled | dev->irq to the pin-based interrupt number and frees the previously | ||||||
| interrupt(s).  The interrupt may subsequently be assigned to another | allocated message signaled interrupt(s).  The interrupt may subsequently be | ||||||
| device, so drivers should not cache the value of dev->irq. | assigned to another device, so drivers should not cache the value of | ||||||
|  | dev->irq. | ||||||
| 
 | 
 | ||||||
| Before calling this function, a device driver must always call free_irq() | Before calling this function, a device driver must always call free_irq() | ||||||
| on any interrupt for which it previously called request_irq(). | on any interrupt for which it previously called request_irq(). | ||||||
|  |  | ||||||
|  | @ -63,8 +63,8 @@ from ACPI tables. | ||||||
| Currently the kernel is not able to automatically determine from which ACPI | Currently the kernel is not able to automatically determine from which ACPI | ||||||
| device it should make the corresponding platform device so we need to add | device it should make the corresponding platform device so we need to add | ||||||
| the ACPI device explicitly to acpi_platform_device_ids list defined in | the ACPI device explicitly to acpi_platform_device_ids list defined in | ||||||
| drivers/acpi/scan.c. This limitation is only for the platform devices, SPI | drivers/acpi/acpi_platform.c. This limitation is only for the platform | ||||||
| and I2C devices are created automatically as described below. | devices, SPI and I2C devices are created automatically as described below. | ||||||
| 
 | 
 | ||||||
| SPI serial bus support | SPI serial bus support | ||||||
| ~~~~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
							
								
								
									
										77
									
								
								Documentation/acpi/scan_handlers.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								Documentation/acpi/scan_handlers.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,77 @@ | ||||||
|  | ACPI Scan Handlers | ||||||
|  | 
 | ||||||
|  | Copyright (C) 2012, Intel Corporation | ||||||
|  | Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||||||
|  | 
 | ||||||
|  | During system initialization and ACPI-based device hot-add, the ACPI namespace | ||||||
|  | is scanned in search of device objects that generally represent various pieces | ||||||
|  | of hardware.  This causes a struct acpi_device object to be created and | ||||||
|  | registered with the driver core for every device object in the ACPI namespace | ||||||
|  | and the hierarchy of those struct acpi_device objects reflects the namespace | ||||||
|  | layout (i.e. parent device objects in the namespace are represented by parent | ||||||
|  | struct acpi_device objects and analogously for their children).  Those struct | ||||||
|  | acpi_device objects are referred to as "device nodes" in what follows, but they | ||||||
|  | should not be confused with struct device_node objects used by the Device Trees | ||||||
|  | parsing code (although their role is analogous to the role of those objects). | ||||||
|  | 
 | ||||||
|  | During ACPI-based device hot-remove device nodes representing pieces of hardware | ||||||
|  | being removed are unregistered and deleted. | ||||||
|  | 
 | ||||||
|  | The core ACPI namespace scanning code in drivers/acpi/scan.c carries out basic | ||||||
|  | initialization of device nodes, such as retrieving common configuration | ||||||
|  | information from the device objects represented by them and populating them with | ||||||
|  | appropriate data, but some of them require additional handling after they have | ||||||
|  | been registered.  For example, if the given device node represents a PCI host | ||||||
|  | bridge, its registration should cause the PCI bus under that bridge to be | ||||||
|  | enumerated and PCI devices on that bus to be registered with the driver core. | ||||||
|  | Similarly, if the device node represents a PCI interrupt link, it is necessary | ||||||
|  | to configure that link so that the kernel can use it. | ||||||
|  | 
 | ||||||
|  | Those additional configuration tasks usually depend on the type of the hardware | ||||||
|  | component represented by the given device node which can be determined on the | ||||||
|  | basis of the device node's hardware ID (HID).  They are performed by objects | ||||||
|  | called ACPI scan handlers represented by the following structure: | ||||||
|  | 
 | ||||||
|  | struct acpi_scan_handler { | ||||||
|  | 	const struct acpi_device_id *ids; | ||||||
|  | 	struct list_head list_node; | ||||||
|  | 	int (*attach)(struct acpi_device *dev, const struct acpi_device_id *id); | ||||||
|  | 	void (*detach)(struct acpi_device *dev); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | where ids is the list of IDs of device nodes the given handler is supposed to | ||||||
|  | take care of, list_node is the hook to the global list of ACPI scan handlers | ||||||
|  | maintained by the ACPI core and the .attach() and .detach() callbacks are | ||||||
|  | executed, respectively, after registration of new device nodes and before | ||||||
|  | unregistration of device nodes the handler attached to previously. | ||||||
|  | 
 | ||||||
|  | The namespace scanning function, acpi_bus_scan(), first registers all of the | ||||||
|  | device nodes in the given namespace scope with the driver core.  Then, it tries | ||||||
|  | to match a scan handler against each of them using the ids arrays of the | ||||||
|  | available scan handlers.  If a matching scan handler is found, its .attach() | ||||||
|  | callback is executed for the given device node.  If that callback returns 1, | ||||||
|  | that means that the handler has claimed the device node and is now responsible | ||||||
|  | for carrying out any additional configuration tasks related to it.  It also will | ||||||
|  | be responsible for preparing the device node for unregistration in that case. | ||||||
|  | The device node's handler field is then populated with the address of the scan | ||||||
|  | handler that has claimed it. | ||||||
|  | 
 | ||||||
|  | If the .attach() callback returns 0, it means that the device node is not | ||||||
|  | interesting to the given scan handler and may be matched against the next scan | ||||||
|  | handler in the list.  If it returns a (negative) error code, that means that | ||||||
|  | the namespace scan should be terminated due to a serious error.  The error code | ||||||
|  | returned should then reflect the type of the error. | ||||||
|  | 
 | ||||||
|  | The namespace trimming function, acpi_bus_trim(), first executes .detach() | ||||||
|  | callbacks from the scan handlers of all device nodes in the given namespace | ||||||
|  | scope (if they have scan handlers).  Next, it unregisters all of the device | ||||||
|  | nodes in that scope. | ||||||
|  | 
 | ||||||
|  | ACPI scan handlers can be added to the list maintained by the ACPI core with the | ||||||
|  | help of the acpi_scan_add_handler() function taking a pointer to the new scan | ||||||
|  | handler as an argument.  The order in which scan handlers are added to the list | ||||||
|  | is the order in which they are matched against device nodes during namespace | ||||||
|  | scans. | ||||||
|  | 
 | ||||||
|  | All scan handles must be added to the list before acpi_bus_scan() is run for the | ||||||
|  | first time and they cannot be removed from it. | ||||||
|  | @ -35,6 +35,8 @@ ffffffbc00000000	ffffffbdffffffff	   8GB		vmemmap | ||||||
| 
 | 
 | ||||||
| ffffffbe00000000	ffffffbffbbfffff	  ~8GB		[guard, future vmmemap] | ffffffbe00000000	ffffffbffbbfffff	  ~8GB		[guard, future vmmemap] | ||||||
| 
 | 
 | ||||||
|  | ffffffbffbc00000	ffffffbffbdfffff	   2MB		earlyprintk device | ||||||
|  | 
 | ||||||
| ffffffbffbe00000	ffffffbffbe0ffff	  64KB		PCI I/O space | ffffffbffbe00000	ffffffbffbe0ffff	  64KB		PCI I/O space | ||||||
| 
 | 
 | ||||||
| ffffffbbffff0000	ffffffbcffffffff	  ~2MB		[guard] | ffffffbbffff0000	ffffffbcffffffff	  ~2MB		[guard] | ||||||
|  |  | ||||||
|  | @ -253,6 +253,8 @@ This performs an atomic exchange operation on the atomic variable v, setting | ||||||
| the given new value.  It returns the old value that the atomic variable v had | the given new value.  It returns the old value that the atomic variable v had | ||||||
| just before the operation. | just before the operation. | ||||||
| 
 | 
 | ||||||
|  | atomic_xchg requires explicit memory barriers around the operation. | ||||||
|  | 
 | ||||||
| 	int atomic_cmpxchg(atomic_t *v, int old, int new); | 	int atomic_cmpxchg(atomic_t *v, int old, int new); | ||||||
| 
 | 
 | ||||||
| This performs an atomic compare exchange operation on the atomic value v, | This performs an atomic compare exchange operation on the atomic value v, | ||||||
|  |  | ||||||
|  | @ -4,8 +4,6 @@ blkio-controller.txt | ||||||
| 	- Description for Block IO Controller, implementation and usage details. | 	- Description for Block IO Controller, implementation and usage details. | ||||||
| cgroups.txt | cgroups.txt | ||||||
| 	- Control Groups definition, implementation details, examples and API. | 	- Control Groups definition, implementation details, examples and API. | ||||||
| cgroup_event_listener.c |  | ||||||
| 	- A user program for cgroup listener. |  | ||||||
| cpuacct.txt | cpuacct.txt | ||||||
| 	- CPU Accounting Controller; account CPU usage for groups of tasks. | 	- CPU Accounting Controller; account CPU usage for groups of tasks. | ||||||
| cpusets.txt | cpusets.txt | ||||||
|  |  | ||||||
|  | @ -399,8 +399,7 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y. | ||||||
| 
 | 
 | ||||||
|  9.10 Memory thresholds |  9.10 Memory thresholds | ||||||
| 	Memory controller implements memory thresholds using cgroups notification | 	Memory controller implements memory thresholds using cgroups notification | ||||||
| 	API. You can use Documentation/cgroups/cgroup_event_listener.c to test | 	API. You can use tools/cgroup/cgroup_event_listener.c to test it. | ||||||
| 	it. |  | ||||||
| 
 | 
 | ||||||
| 	(Shell-A) Create cgroup and run event listener | 	(Shell-A) Create cgroup and run event listener | ||||||
| 	# mkdir /cgroup/A | 	# mkdir /cgroup/A | ||||||
|  |  | ||||||
|  | @ -111,6 +111,12 @@ policy->governor		must contain the "default policy" for | ||||||
| For setting some of these values, the frequency table helpers might be | For setting some of these values, the frequency table helpers might be | ||||||
| helpful. See the section 2 for more information on them. | helpful. See the section 2 for more information on them. | ||||||
| 
 | 
 | ||||||
|  | SMP systems normally have same clock source for a group of cpus. For these the | ||||||
|  | .init() would be called only once for the first online cpu. Here the .init() | ||||||
|  | routine must initialize policy->cpus with mask of all possible cpus (Online + | ||||||
|  | Offline) that share the clock. Then the core would copy this mask onto | ||||||
|  | policy->related_cpus and will reset policy->cpus to carry only online cpus. | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 1.3 verify | 1.3 verify | ||||||
| ------------ | ------------ | ||||||
|  |  | ||||||
|  | @ -190,11 +190,11 @@ scaling_max_freq		show the current "policy limits" (in | ||||||
| 				first set scaling_max_freq, then | 				first set scaling_max_freq, then | ||||||
| 				scaling_min_freq. | 				scaling_min_freq. | ||||||
| 
 | 
 | ||||||
| affected_cpus :			List of CPUs that require software coordination | affected_cpus :			List of Online CPUs that require software | ||||||
| 				of frequency. | 				coordination of frequency. | ||||||
| 
 | 
 | ||||||
| related_cpus :			List of CPUs that need some sort of frequency | related_cpus :			List of Online + Offline CPUs that need software | ||||||
| 				coordination, whether software or hardware. | 				coordination of frequency. | ||||||
| 
 | 
 | ||||||
| scaling_driver :		Hardware driver for cpufreq. | scaling_driver :		Hardware driver for cpufreq. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ Required properties: | ||||||
| - compatible: Should be "atmel,<chip>-aic" | - compatible: Should be "atmel,<chip>-aic" | ||||||
| - interrupt-controller: Identifies the node as an interrupt controller. | - interrupt-controller: Identifies the node as an interrupt controller. | ||||||
| - interrupt-parent: For single AIC system, it is an empty property. | - interrupt-parent: For single AIC system, it is an empty property. | ||||||
| - #interrupt-cells: The number of cells to define the interrupts. It sould be 3. | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. | ||||||
|   The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet). |   The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet). | ||||||
|   The second cell is used to specify flags: |   The second cell is used to specify flags: | ||||||
|     bits[3:0] trigger type and level flags: |     bits[3:0] trigger type and level flags: | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ Main node required properties: | ||||||
| 
 | 
 | ||||||
| Optional | Optional | ||||||
| - interrupts	: Interrupt source of the parent interrupt controller on | - interrupts	: Interrupt source of the parent interrupt controller on | ||||||
|   secondary GICs, or VGIC maintainance interrupt on primary GIC (see |   secondary GICs, or VGIC maintenance interrupt on primary GIC (see | ||||||
|   below). |   below). | ||||||
| 
 | 
 | ||||||
| - cpu-offset	: per-cpu offset within the distributor and cpu interface | - cpu-offset	: per-cpu offset within the distributor and cpu interface | ||||||
|  | @ -74,7 +74,7 @@ Required properties: | ||||||
|   virtual interface control register base and size. The 2nd additional |   virtual interface control register base and size. The 2nd additional | ||||||
|   region is the GIC virtual cpu interface register base and size. |   region is the GIC virtual cpu interface register base and size. | ||||||
| 
 | 
 | ||||||
| - interrupts : VGIC maintainance interrupt. | - interrupts : VGIC maintenance interrupt. | ||||||
| 
 | 
 | ||||||
| Example: | Example: | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										27
									
								
								Documentation/devicetree/bindings/arm/kirkwood.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								Documentation/devicetree/bindings/arm/kirkwood.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | ||||||
|  | Marvell Kirkwood Platforms Device Tree Bindings | ||||||
|  | ----------------------------------------------- | ||||||
|  | 
 | ||||||
|  | Boards with a SoC of the Marvell Kirkwood | ||||||
|  | shall have the following property: | ||||||
|  | 
 | ||||||
|  | Required root node property: | ||||||
|  | 
 | ||||||
|  | compatible: must contain "marvell,kirkwood"; | ||||||
|  | 
 | ||||||
|  | In order to support the kirkwood cpufreq driver, there must be a node | ||||||
|  | cpus/cpu@0 with three clocks, "cpu_clk", "ddrclk" and "powersave", | ||||||
|  | where the "powersave" clock is a gating clock used to switch the CPU | ||||||
|  | between the "cpu_clk" and the "ddrclk". | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | 	cpus { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  | 
 | ||||||
|  | 		cpu@0 { | ||||||
|  | 		      device_type = "cpu"; | ||||||
|  | 		      compatible = "marvell,sheeva-88SV131"; | ||||||
|  | 		      clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>; | ||||||
|  | 		      clock-names = "cpu_clk", "ddrclk", "powersave"; | ||||||
|  | 		}; | ||||||
|  | @ -39,16 +39,16 @@ Boards: | ||||||
| - OMAP3 Tobi with Overo : Commercial expansion board with daughter board | - OMAP3 Tobi with Overo : Commercial expansion board with daughter board | ||||||
|   compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3" |   compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3" | ||||||
| 
 | 
 | ||||||
| - OMAP4 SDP : Software Developement Board | - OMAP4 SDP : Software Development Board | ||||||
|   compatible = "ti,omap4-sdp", "ti,omap4430" |   compatible = "ti,omap4-sdp", "ti,omap4430" | ||||||
| 
 | 
 | ||||||
| - OMAP4 PandaBoard : Low cost community board | - OMAP4 PandaBoard : Low cost community board | ||||||
|   compatible = "ti,omap4-panda", "ti,omap4430" |   compatible = "ti,omap4-panda", "ti,omap4430" | ||||||
| 
 | 
 | ||||||
| - OMAP3 EVM : Software Developement Board for OMAP35x, AM/DM37x | - OMAP3 EVM : Software Development Board for OMAP35x, AM/DM37x | ||||||
|   compatible = "ti,omap3-evm", "ti,omap3" |   compatible = "ti,omap3-evm", "ti,omap3" | ||||||
| 
 | 
 | ||||||
| - AM335X EVM : Software Developement Board for AM335x | - AM335X EVM : Software Development Board for AM335x | ||||||
|   compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3" |   compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3" | ||||||
| 
 | 
 | ||||||
| - AM335X Bone : Low cost community board | - AM335X Bone : Low cost community board | ||||||
|  |  | ||||||
							
								
								
									
										55
									
								
								Documentation/devicetree/bindings/arm/psci.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								Documentation/devicetree/bindings/arm/psci.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | ||||||
|  | * Power State Coordination Interface (PSCI) | ||||||
|  | 
 | ||||||
|  | Firmware implementing the PSCI functions described in ARM document number | ||||||
|  | ARM DEN 0022A ("Power State Coordination Interface System Software on ARM | ||||||
|  | processors") can be used by Linux to initiate various CPU-centric power | ||||||
|  | operations. | ||||||
|  | 
 | ||||||
|  | Issue A of the specification describes functions for CPU suspend, hotplug | ||||||
|  | and migration of secure software. | ||||||
|  | 
 | ||||||
|  | Functions are invoked by trapping to the privilege level of the PSCI | ||||||
|  | firmware (specified as part of the binding below) and passing arguments | ||||||
|  | in a manner similar to that specified by AAPCS: | ||||||
|  | 
 | ||||||
|  | 	 r0		=> 32-bit Function ID / return value | ||||||
|  | 	{r1 - r3}	=> Parameters | ||||||
|  | 
 | ||||||
|  | Note that the immediate field of the trapping instruction must be set | ||||||
|  | to #0. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Main node required properties: | ||||||
|  | 
 | ||||||
|  |  - compatible    : Must be "arm,psci" | ||||||
|  | 
 | ||||||
|  |  - method        : The method of calling the PSCI firmware. Permitted | ||||||
|  |                    values are: | ||||||
|  | 
 | ||||||
|  |                    "smc" : SMC #0, with the register assignments specified | ||||||
|  | 		           in this binding. | ||||||
|  | 
 | ||||||
|  |                    "hvc" : HVC #0, with the register assignments specified | ||||||
|  | 		           in this binding. | ||||||
|  | 
 | ||||||
|  | Main node optional properties: | ||||||
|  | 
 | ||||||
|  |  - cpu_suspend   : Function ID for CPU_SUSPEND operation | ||||||
|  | 
 | ||||||
|  |  - cpu_off       : Function ID for CPU_OFF operation | ||||||
|  | 
 | ||||||
|  |  - cpu_on        : Function ID for CPU_ON operation | ||||||
|  | 
 | ||||||
|  |  - migrate       : Function ID for MIGRATE operation | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | 	psci { | ||||||
|  | 		compatible	= "arm,psci"; | ||||||
|  | 		method		= "smc"; | ||||||
|  | 		cpu_suspend	= <0x95c10000>; | ||||||
|  | 		cpu_off		= <0x95c10001>; | ||||||
|  | 		cpu_on		= <0x95c10002>; | ||||||
|  | 		migrate		= <0x95c10003>; | ||||||
|  | 	}; | ||||||
							
								
								
									
										73
									
								
								Documentation/devicetree/bindings/clock/prima2-clock.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								Documentation/devicetree/bindings/clock/prima2-clock.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,73 @@ | ||||||
|  | * Clock bindings for CSR SiRFprimaII | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: Should be "sirf,prima2-clkc" | ||||||
|  | - reg: Address and length of the register set | ||||||
|  | - interrupts: Should contain clock controller interrupt | ||||||
|  | - #clock-cells: Should be <1> | ||||||
|  | 
 | ||||||
|  | The clock consumer should specify the desired clock by having the clock | ||||||
|  | ID in its "clocks" phandle cell.  The following is a full list of prima2 | ||||||
|  | clocks and IDs. | ||||||
|  | 
 | ||||||
|  | 	Clock			ID | ||||||
|  | 	--------------------------- | ||||||
|  | 	rtc			0 | ||||||
|  | 	osc             	1 | ||||||
|  | 	pll1            	2 | ||||||
|  | 	pll2            	3 | ||||||
|  | 	pll3            	4 | ||||||
|  | 	mem             	5 | ||||||
|  | 	sys             	6 | ||||||
|  | 	security        	7 | ||||||
|  | 	dsp             	8 | ||||||
|  | 	gps             	9 | ||||||
|  | 	mf              	10 | ||||||
|  | 	io              	11 | ||||||
|  | 	cpu             	12 | ||||||
|  | 	uart0           	13 | ||||||
|  | 	uart1           	14 | ||||||
|  | 	uart2           	15 | ||||||
|  | 	tsc             	16 | ||||||
|  | 	i2c0            	17 | ||||||
|  | 	i2c1            	18 | ||||||
|  | 	spi0            	19 | ||||||
|  | 	spi1            	20 | ||||||
|  | 	pwmc            	21 | ||||||
|  | 	efuse           	22 | ||||||
|  | 	pulse           	23 | ||||||
|  | 	dmac0           	24 | ||||||
|  | 	dmac1           	25 | ||||||
|  | 	nand            	26 | ||||||
|  | 	audio           	27 | ||||||
|  | 	usp0            	28 | ||||||
|  | 	usp1            	29 | ||||||
|  | 	usp2            	30 | ||||||
|  | 	vip             	31 | ||||||
|  | 	gfx             	32 | ||||||
|  | 	mm              	33 | ||||||
|  | 	lcd             	34 | ||||||
|  | 	vpp             	35 | ||||||
|  | 	mmc01           	36 | ||||||
|  | 	mmc23           	37 | ||||||
|  | 	mmc45           	38 | ||||||
|  | 	usbpll          	39 | ||||||
|  | 	usb0            	40 | ||||||
|  | 	usb1			41 | ||||||
|  | 
 | ||||||
|  | Examples: | ||||||
|  | 
 | ||||||
|  | clks: clock-controller@88000000 { | ||||||
|  | 	compatible = "sirf,prima2-clkc"; | ||||||
|  | 	reg = <0x88000000 0x1000>; | ||||||
|  | 	interrupts = <3>; | ||||||
|  | 	#clock-cells = <1>; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | i2c0: i2c@b00e0000 { | ||||||
|  | 	cell-index = <0>; | ||||||
|  | 	compatible = "sirf,prima2-i2c"; | ||||||
|  | 	reg = <0xb00e0000 0x10000>; | ||||||
|  | 	interrupts = <24>; | ||||||
|  | 	clocks = <&clks 17>; | ||||||
|  | }; | ||||||
							
								
								
									
										22
									
								
								Documentation/devicetree/bindings/drm/exynos/g2d.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Documentation/devicetree/bindings/drm/exynos/g2d.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | Samsung 2D Graphic Accelerator using DRM frame work | ||||||
|  | 
 | ||||||
|  | Samsung FIMG2D is a graphics 2D accelerator which supports Bit Block Transfer. | ||||||
|  | We set the drawing-context registers for configuring rendering parameters and | ||||||
|  | then start rendering. | ||||||
|  | This driver is for SOCs which contain G2D IPs with version 4.1. | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | 	-compatible: | ||||||
|  | 		should be "samsung,exynos-g2d-41". | ||||||
|  | 	-reg: | ||||||
|  | 		physical base address of the controller and length | ||||||
|  | 		of memory mapped region. | ||||||
|  | 	-interrupts: | ||||||
|  | 		interrupt combiner values. | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 	g2d { | ||||||
|  | 		compatible = "samsung,exynos-g2d-41"; | ||||||
|  | 		reg = <0x10850000 0x1000>; | ||||||
|  | 		interrupts = <0 91 0>; | ||||||
|  | 	}; | ||||||
							
								
								
									
										18
									
								
								Documentation/devicetree/bindings/i2c/ina209.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								Documentation/devicetree/bindings/i2c/ina209.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | ina209 properties | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: Must be "ti,ina209" | ||||||
|  | - reg: I2C address | ||||||
|  | 
 | ||||||
|  | Optional properties: | ||||||
|  | 
 | ||||||
|  | - shunt-resistor | ||||||
|  | 	Shunt resistor value in micro-Ohm | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | temp-sensor@4c { | ||||||
|  | 	compatible = "ti,ina209"; | ||||||
|  | 	reg = <0x4c>; | ||||||
|  | 	shunt-resistor = <5000>; | ||||||
|  | }; | ||||||
							
								
								
									
										64
									
								
								Documentation/devicetree/bindings/i2c/max6697.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								Documentation/devicetree/bindings/i2c/max6697.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,64 @@ | ||||||
|  | max6697 properties | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: | ||||||
|  | 	Should be one of | ||||||
|  | 		maxim,max6581 | ||||||
|  | 		maxim,max6602 | ||||||
|  | 		maxim,max6622 | ||||||
|  | 		maxim,max6636 | ||||||
|  | 		maxim,max6689 | ||||||
|  | 		maxim,max6693 | ||||||
|  | 		maxim,max6694 | ||||||
|  | 		maxim,max6697 | ||||||
|  | 		maxim,max6698 | ||||||
|  | 		maxim,max6699 | ||||||
|  | - reg: I2C address | ||||||
|  | 
 | ||||||
|  | Optional properties: | ||||||
|  | 
 | ||||||
|  | - smbus-timeout-disable | ||||||
|  | 	Set to disable SMBus timeout. If not specified, SMBus timeout will be | ||||||
|  | 	enabled. | ||||||
|  | - extended-range-enable | ||||||
|  | 	Only valid for MAX6581. Set to enable extended temperature range. | ||||||
|  | 	Extended temperature will be disabled if not specified. | ||||||
|  | - beta-compensation-enable | ||||||
|  | 	Only valid for MAX6693 and MX6694. Set to enable beta compensation on | ||||||
|  | 	remote temperature channel 1. | ||||||
|  | 	Beta compensation will be disabled if not specified. | ||||||
|  | - alert-mask | ||||||
|  | 	Alert bit mask. Alert disabled for bits set. | ||||||
|  | 	Select bit 0 for local temperature, bit 1..7 for remote temperatures. | ||||||
|  | 	If not specified, alert will be enabled for all channels. | ||||||
|  | - over-temperature-mask | ||||||
|  | 	Over-temperature bit mask. Over-temperature reporting disabled for | ||||||
|  | 	bits set. | ||||||
|  | 	Select bit 0 for local temperature, bit 1..7 for remote temperatures. | ||||||
|  | 	If not specified, over-temperature reporting will be enabled for all | ||||||
|  | 	channels. | ||||||
|  | - resistance-cancellation | ||||||
|  | 	Boolean for all chips other than MAX6581. Set to enable resistance | ||||||
|  | 	cancellation on remote temperature channel 1. | ||||||
|  | 	For MAX6581, resistance cancellation enabled for all channels if | ||||||
|  | 	specified as boolean, otherwise as per bit mask specified. | ||||||
|  | 	Only supported for remote temperatures (bit 1..7). | ||||||
|  | 	If not specified, resistance cancellation will be disabled for all | ||||||
|  | 	channels. | ||||||
|  | - transistor-ideality | ||||||
|  | 	For MAX6581 only. Two values; first is bit mask, second is ideality | ||||||
|  | 	select value as per MAX6581 data sheet. Select bit 1..7 for remote | ||||||
|  | 	channels. | ||||||
|  | 	Transistor ideality will be initialized to default (1.008) if not | ||||||
|  | 	specified. | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | temp-sensor@1a { | ||||||
|  | 	compatible = "maxim,max6697"; | ||||||
|  | 	reg = <0x1a>; | ||||||
|  | 	smbus-timeout-disable; | ||||||
|  | 	resistance-cancellation; | ||||||
|  | 	alert-mask = <0x72>; | ||||||
|  | 	over-temperature-mask = <0x7f>; | ||||||
|  | }; | ||||||
							
								
								
									
										53
									
								
								Documentation/devicetree/bindings/input/imx-keypad.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								Documentation/devicetree/bindings/input/imx-keypad.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,53 @@ | ||||||
|  | * Freescale i.MX Keypad Port(KPP) device tree bindings | ||||||
|  | 
 | ||||||
|  | The KPP is designed to interface with a keypad matrix with 2-point contact | ||||||
|  | or 3-point contact keys. The KPP is designed to simplify the software task | ||||||
|  | of scanning a keypad matrix. The KPP is capable of detecting, debouncing, | ||||||
|  | and decoding one or multiple keys pressed simultaneously on a keypad. | ||||||
|  | 
 | ||||||
|  | Required SoC Specific Properties: | ||||||
|  | - compatible: Should be "fsl,<soc>-kpp". | ||||||
|  | 
 | ||||||
|  | - reg: Physical base address of the KPP and length of memory mapped | ||||||
|  |   region. | ||||||
|  | 
 | ||||||
|  | - interrupts: The KPP interrupt number to the CPU(s). | ||||||
|  | 
 | ||||||
|  | - clocks: The clock provided by the SoC to the KPP. Some SoCs use dummy | ||||||
|  | clock(The clock for the KPP is provided by the SoCs automatically). | ||||||
|  | 
 | ||||||
|  | Required Board Specific Properties: | ||||||
|  | - pinctrl-names: The definition can be found at | ||||||
|  | pinctrl/pinctrl-bindings.txt. | ||||||
|  | 
 | ||||||
|  | - pinctrl-0: The definition can be found at | ||||||
|  | pinctrl/pinctrl-bindings.txt. | ||||||
|  | 
 | ||||||
|  | - linux,keymap: The definition can be found at | ||||||
|  | bindings/input/matrix-keymap.txt. | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | kpp: kpp@73f94000 { | ||||||
|  | 	compatible = "fsl,imx51-kpp", "fsl,imx21-kpp"; | ||||||
|  | 	reg = <0x73f94000 0x4000>; | ||||||
|  | 	interrupts = <60>; | ||||||
|  | 	clocks = <&clks 0>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&pinctrl_kpp_1>; | ||||||
|  | 	linux,keymap = <0x00000067	/* KEY_UP */ | ||||||
|  | 			0x0001006c	/* KEY_DOWN */ | ||||||
|  | 			0x00020072	/* KEY_VOLUMEDOWN */ | ||||||
|  | 			0x00030066	/* KEY_HOME */ | ||||||
|  | 			0x0100006a	/* KEY_RIGHT */ | ||||||
|  | 			0x01010069	/* KEY_LEFT */ | ||||||
|  | 			0x0102001c	/* KEY_ENTER */ | ||||||
|  | 			0x01030073	/* KEY_VOLUMEUP */ | ||||||
|  | 			0x02000040	/* KEY_F6 */ | ||||||
|  | 			0x02010042	/* KEY_F8 */ | ||||||
|  | 			0x02020043	/* KEY_F9 */ | ||||||
|  | 			0x02030044	/* KEY_F10 */ | ||||||
|  | 			0x0300003b	/* KEY_F1 */ | ||||||
|  | 			0x0301003c	/* KEY_F2 */ | ||||||
|  | 			0x0302003d	/* KEY_F3 */ | ||||||
|  | 			0x03030074>;	/* KEY_POWER */ | ||||||
|  | }; | ||||||
|  | @ -1,19 +1,22 @@ | ||||||
| NXP LPC32xx Key Scan Interface | NXP LPC32xx Key Scan Interface | ||||||
| 
 | 
 | ||||||
|  | This binding is based on the matrix-keymap binding with the following | ||||||
|  | changes: | ||||||
|  | 
 | ||||||
| Required Properties: | Required Properties: | ||||||
| - compatible: Should be "nxp,lpc3220-key" | - compatible: Should be "nxp,lpc3220-key" | ||||||
| - reg: Physical base address of the controller and length of memory mapped | - reg: Physical base address of the controller and length of memory mapped | ||||||
|   region. |   region. | ||||||
| - interrupts: The interrupt number to the cpu. | - interrupts: The interrupt number to the cpu. | ||||||
| - keypad,num-rows: Number of rows and columns, e.g. 1: 1x1, 6: 6x6 |  | ||||||
| - keypad,num-columns: Must be equal to keypad,num-rows since LPC32xx only |  | ||||||
|   supports square matrices |  | ||||||
| - nxp,debounce-delay-ms: Debounce delay in ms | - nxp,debounce-delay-ms: Debounce delay in ms | ||||||
| - nxp,scan-delay-ms: Repeated scan period in ms | - nxp,scan-delay-ms: Repeated scan period in ms | ||||||
| - linux,keymap: the key-code to be reported when the key is pressed | - linux,keymap: the key-code to be reported when the key is pressed | ||||||
|   and released, see also |   and released, see also | ||||||
|   Documentation/devicetree/bindings/input/matrix-keymap.txt |   Documentation/devicetree/bindings/input/matrix-keymap.txt | ||||||
| 
 | 
 | ||||||
|  | Note: keypad,num-rows and keypad,num-columns are required, and must be equal | ||||||
|  | since LPC32xx only supports square matrices | ||||||
|  | 
 | ||||||
| Example: | Example: | ||||||
| 
 | 
 | ||||||
| 	key@40050000 { | 	key@40050000 { | ||||||
|  |  | ||||||
|  | @ -9,6 +9,12 @@ Required properties: | ||||||
| 	row << 24 | column << 16 | key-code | 	row << 24 | column << 16 | key-code | ||||||
| 
 | 
 | ||||||
| Optional properties: | Optional properties: | ||||||
|  | Properties for the number of rows and columns are optional because some | ||||||
|  | drivers will use fixed values for these. | ||||||
|  | - keypad,num-rows: Number of row lines connected to the keypad controller. | ||||||
|  | - keypad,num-columns: Number of column lines connected to the keypad | ||||||
|  |   controller. | ||||||
|  | 
 | ||||||
| Some users of this binding might choose to specify secondary keymaps for | Some users of this binding might choose to specify secondary keymaps for | ||||||
| cases where there is a modifier key such as a Fn key. Proposed names | cases where there is a modifier key such as a Fn key. Proposed names | ||||||
| for said properties are "linux,fn-keymap" or with another descriptive | for said properties are "linux,fn-keymap" or with another descriptive | ||||||
|  | @ -17,3 +23,5 @@ word for the modifier other from "Fn". | ||||||
| Example: | Example: | ||||||
| 	linux,keymap = < 0x00030012 | 	linux,keymap = < 0x00030012 | ||||||
| 			 0x0102003a >; | 			 0x0102003a >; | ||||||
|  | 	keypad,num-rows = <2>; | ||||||
|  | 	keypad,num-columns = <8>; | ||||||
|  |  | ||||||
|  | @ -1,7 +1,18 @@ | ||||||
| * Tegra keyboard controller | * Tegra keyboard controller | ||||||
|  | The key controller has maximum 24 pins to make matrix keypad. Any pin | ||||||
|  | can be configured as row or column. The maximum column pin can be 8 | ||||||
|  | and maximum row pins can be 16 for Tegra20/Tegra30. | ||||||
| 
 | 
 | ||||||
| Required properties: | Required properties: | ||||||
| - compatible: "nvidia,tegra20-kbc" | - compatible: "nvidia,tegra20-kbc" | ||||||
|  | - reg: Register base address of KBC. | ||||||
|  | - interrupts: Interrupt number for the KBC. | ||||||
|  | - nvidia,kbc-row-pins: The KBC pins which are configured as row. This is an | ||||||
|  |   array of pin numbers which is used as rows. | ||||||
|  | - nvidia,kbc-col-pins: The KBC pins which are configured as column. This is an | ||||||
|  |   array of pin numbers which is used as column. | ||||||
|  | - linux,keymap: The keymap for keys as described in the binding document | ||||||
|  |   devicetree/bindings/input/matrix-keymap.txt. | ||||||
| 
 | 
 | ||||||
| Optional properties, in addition to those specified by the shared | Optional properties, in addition to those specified by the shared | ||||||
| matrix-keyboard bindings: | matrix-keyboard bindings: | ||||||
|  | @ -19,5 +30,16 @@ Example: | ||||||
| keyboard: keyboard { | keyboard: keyboard { | ||||||
| 	compatible = "nvidia,tegra20-kbc"; | 	compatible = "nvidia,tegra20-kbc"; | ||||||
| 	reg = <0x7000e200 0x100>; | 	reg = <0x7000e200 0x100>; | ||||||
|  | 	interrupts = <0 85 0x04>; | ||||||
| 	nvidia,ghost-filter; | 	nvidia,ghost-filter; | ||||||
|  | 	nvidia,debounce-delay-ms = <640>; | ||||||
|  | 	nvidia,kbc-row-pins = <0 1 2>;    /* pin 0, 1, 2 as rows */ | ||||||
|  | 	nvidia,kbc-col-pins = <11 12 13>; /* pin 11, 12, 13 as columns */ | ||||||
|  | 	linux,keymap = <0x00000074 | ||||||
|  | 			0x00010067 | ||||||
|  | 			0x00020066 | ||||||
|  | 			0x01010068 | ||||||
|  | 			0x02000069 | ||||||
|  | 			0x02010070 | ||||||
|  | 			0x02020071>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -6,19 +6,16 @@ A key can be placed at each intersection of a unique row and a unique column. | ||||||
| The keypad controller can sense a key-press and key-release and report the | The keypad controller can sense a key-press and key-release and report the | ||||||
| event using a interrupt to the cpu. | event using a interrupt to the cpu. | ||||||
| 
 | 
 | ||||||
|  | This binding is based on the matrix-keymap binding with the following | ||||||
|  | changes: | ||||||
|  | 
 | ||||||
|  | keypad,num-rows and keypad,num-columns are required. | ||||||
|  | 
 | ||||||
| Required SoC Specific Properties: | Required SoC Specific Properties: | ||||||
| - compatible: should be one of the following | - compatible: should be one of the following | ||||||
|    - "ti,omap4-keypad": For controllers compatible with omap4 keypad |    - "ti,omap4-keypad": For controllers compatible with omap4 keypad | ||||||
|       controller. |       controller. | ||||||
| 
 | 
 | ||||||
| Required Board Specific Properties, in addition to those specified by |  | ||||||
| the shared matrix-keyboard bindings: |  | ||||||
| - keypad,num-rows: Number of row lines connected to the keypad |  | ||||||
|   controller. |  | ||||||
| 
 |  | ||||||
| - keypad,num-columns: Number of column lines connected to the |  | ||||||
|   keypad controller. |  | ||||||
| 
 |  | ||||||
| Optional Properties specific to linux: | Optional Properties specific to linux: | ||||||
| - linux,keypad-no-autorepeat: do no enable autorepeat feature. | - linux,keypad-no-autorepeat: do no enable autorepeat feature. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,8 +1,10 @@ | ||||||
|  | This binding is based on the matrix-keymap binding with the following | ||||||
|  | changes: | ||||||
|  | 
 | ||||||
|  | keypad,num-rows and keypad,num-columns are required. | ||||||
| 
 | 
 | ||||||
| Required properties: | Required properties: | ||||||
| - compatible: "ti,tca8418" | - compatible: "ti,tca8418" | ||||||
| - reg: the I2C address | - reg: the I2C address | ||||||
| - interrupts: IRQ line number, should trigger on falling edge | - interrupts: IRQ line number, should trigger on falling edge | ||||||
| - keypad,num-rows: The number of rows |  | ||||||
| - keypad,num-columns: The number of columns |  | ||||||
| - linux,keymap: Keys definitions, see keypad-matrix. | - linux,keymap: Keys definitions, see keypad-matrix. | ||||||
|  |  | ||||||
							
								
								
									
										91
									
								
								Documentation/devicetree/bindings/mfd/tps6507x.txt
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										91
									
								
								Documentation/devicetree/bindings/mfd/tps6507x.txt
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,91 @@ | ||||||
|  | TPS6507x Power Management Integrated Circuit | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: "ti,tps6507x" | ||||||
|  | - reg: I2C slave address | ||||||
|  | - regulators: This is the list of child nodes that specify the regulator | ||||||
|  |   initialization data for defined regulators. Not all regulators for the | ||||||
|  |   given device need to be present. The definition for each of these nodes | ||||||
|  |   is defined using the standard binding for regulators found at | ||||||
|  |   Documentation/devicetree/bindings/regulator/regulator.txt. | ||||||
|  |   The regulator is matched with the regulator-compatible. | ||||||
|  | 
 | ||||||
|  |   The valid regulator-compatible values are: | ||||||
|  |   tps6507x: vdcdc1, vdcdc2, vdcdc3, vldo1, vldo2 | ||||||
|  | - xxx-supply: Input voltage supply regulator. | ||||||
|  |   These entries are required if regulators are enabled for a device. | ||||||
|  |   Missing of these properties can cause the regulator registration | ||||||
|  |   fails. | ||||||
|  |   If some of input supply is powered through battery or always-on | ||||||
|  |   supply then also it is require to have these parameters with proper | ||||||
|  |   node handle of always on power supply. | ||||||
|  |   tps6507x: | ||||||
|  |        vindcdc1_2-supply: VDCDC1 and VDCDC2 input. | ||||||
|  |        vindcdc3-supply  : VDCDC3 input. | ||||||
|  |        vldo1_2-supply   : VLDO1 and VLDO2 input. | ||||||
|  | 
 | ||||||
|  | Regulator Optional properties: | ||||||
|  | - defdcdc_default: It's property of DCDC2 and DCDC3 regulators. | ||||||
|  | 			0: If defdcdc pin of DCDC2/DCDC3 is pulled to GND. | ||||||
|  | 			1: If defdcdc pin of DCDC2/DCDC3 is driven HIGH. | ||||||
|  |   If this property is not defined, it defaults to 0 (not enabled). | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | 	pmu: tps6507x@48 { | ||||||
|  | 		compatible = "ti,tps6507x"; | ||||||
|  | 		reg = <0x48>; | ||||||
|  | 
 | ||||||
|  | 		vindcdc1_2-supply = <&vbat>; | ||||||
|  | 		vindcdc3-supply = <...>; | ||||||
|  | 		vinldo1_2-supply = <...>; | ||||||
|  | 
 | ||||||
|  | 		regulators { | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <0>; | ||||||
|  | 
 | ||||||
|  | 			vdcdc1_reg: regulator@0 { | ||||||
|  | 				regulator-compatible = "VDCDC1"; | ||||||
|  | 				reg = <0>; | ||||||
|  | 				regulator-min-microvolt = <3150000>; | ||||||
|  | 				regulator-max-microvolt = <3450000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-boot-on; | ||||||
|  | 			}; | ||||||
|  | 			vdcdc2_reg: regulator@1 { | ||||||
|  | 				regulator-compatible = "VDCDC2"; | ||||||
|  | 				reg = <1>; | ||||||
|  | 				regulator-min-microvolt = <1710000>; | ||||||
|  | 				regulator-max-microvolt = <3450000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-boot-on; | ||||||
|  | 				defdcdc_default = <1>; | ||||||
|  | 			}; | ||||||
|  | 			vdcdc3_reg: regulator@2 { | ||||||
|  | 				regulator-compatible = "VDCDC3"; | ||||||
|  | 				reg = <2>; | ||||||
|  | 				regulator-min-microvolt = <950000> | ||||||
|  | 				regulator-max-microvolt = <1350000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-boot-on; | ||||||
|  | 				defdcdc_default = <1>; | ||||||
|  | 			}; | ||||||
|  | 			ldo1_reg: regulator@3 { | ||||||
|  | 				regulator-compatible = "LDO1"; | ||||||
|  | 				reg = <3>; | ||||||
|  | 				regulator-min-microvolt = <1710000>; | ||||||
|  | 				regulator-max-microvolt = <1890000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-boot-on; | ||||||
|  | 			}; | ||||||
|  | 			ldo2_reg: regulator@4 { | ||||||
|  | 				regulator-compatible = "LDO2"; | ||||||
|  | 				reg = <4>; | ||||||
|  | 				regulator-min-microvolt = <1140000>; | ||||||
|  | 				regulator-max-microvolt = <1320000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-boot-on; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 
 | ||||||
|  | 	}; | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| * DMA Engine. | * DMA Engine. | ||||||
| 
 | 
 | ||||||
| The Octeon DMA Engine transfers between the Boot Bus and main memory. | The Octeon DMA Engine transfers between the Boot Bus and main memory. | ||||||
| The DMA Engine will be refered to by phandle by any device that is | The DMA Engine will be referred to by phandle by any device that is | ||||||
| connected to it. | connected to it. | ||||||
| 
 | 
 | ||||||
| Properties: | Properties: | ||||||
|  |  | ||||||
|  | @ -4,18 +4,18 @@ | ||||||
| The Synopsis designware mobile storage host controller is used to interface | The Synopsis designware mobile storage host controller is used to interface | ||||||
| a SoC with storage medium such as eMMC or SD/MMC cards. This file documents | a SoC with storage medium such as eMMC or SD/MMC cards. This file documents | ||||||
| differences between the core Synopsis dw mshc controller properties described | differences between the core Synopsis dw mshc controller properties described | ||||||
| by synposis-dw-mshc.txt and the properties used by the Samsung Exynos specific | by synopsis-dw-mshc.txt and the properties used by the Samsung Exynos specific | ||||||
| extensions to the Synopsis Designware Mobile Storage Host Controller. | extensions to the Synopsis Designware Mobile Storage Host Controller. | ||||||
| 
 | 
 | ||||||
| Required Properties: | Required Properties: | ||||||
| 
 | 
 | ||||||
| * compatible: should be | * compatible: should be | ||||||
| 	- "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 | 	- "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 | ||||||
| 	  specific extentions. | 	  specific extensions. | ||||||
| 	- "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 | 	- "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 | ||||||
| 	  specific extentions. | 	  specific extensions. | ||||||
| 	- "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 | 	- "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 | ||||||
| 	  specific extentions. | 	  specific extensions. | ||||||
| 
 | 
 | ||||||
| * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface | ||||||
|   unit (ciu) clock. This property is applicable only for Exynos5 SoC's and |   unit (ciu) clock. This property is applicable only for Exynos5 SoC's and | ||||||
|  |  | ||||||
|  | @ -55,5 +55,5 @@ Example: | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	Note: This example shows both SoC specific and board specific properties | 	Note: This example shows both SoC specific and board specific properties | ||||||
| 	in a single device node. The properties can be actually be seperated | 	in a single device node. The properties can be actually be separated | ||||||
| 	into SoC specific node and board specific node. | 	into SoC specific node and board specific node. | ||||||
|  |  | ||||||
|  | @ -24,6 +24,8 @@ Required properties: | ||||||
| Optional properties: | Optional properties: | ||||||
| - ti,hwmods		: Must be "cpgmac0" | - ti,hwmods		: Must be "cpgmac0" | ||||||
| - no_bd_ram		: Must be 0 or 1 | - no_bd_ram		: Must be 0 or 1 | ||||||
|  | - dual_emac		: Specifies Switch to act as Dual EMAC | ||||||
|  | - dual_emac_res_vlan	: Specifies VID to be used to segregate the ports | ||||||
| 
 | 
 | ||||||
| Note: "ti,hwmods" field is used to fetch the base address and irq | Note: "ti,hwmods" field is used to fetch the base address and irq | ||||||
| resources from TI, omap hwmod data base during device registration. | resources from TI, omap hwmod data base during device registration. | ||||||
|  |  | ||||||
|  | @ -0,0 +1,60 @@ | ||||||
|  | * Allwinner A1X Pin Controller | ||||||
|  | 
 | ||||||
|  | The pins controlled by sunXi pin controller are organized in banks, | ||||||
|  | each bank has 32 pins.  Each pin has 7 multiplexing functions, with | ||||||
|  | the first two functions being GPIO in and out. The configuration on | ||||||
|  | the pins includes drive strength and pull-up. | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: "allwinner,<soc>-pinctrl". Supported SoCs for now are: | ||||||
|  |   sun5i-a13. | ||||||
|  | - reg: Should contain the register physical address and length for the | ||||||
|  |   pin controller. | ||||||
|  | 
 | ||||||
|  | Please refer to pinctrl-bindings.txt in this directory for details of the | ||||||
|  | common pinctrl bindings used by client devices. | ||||||
|  | 
 | ||||||
|  | A pinctrl node should contain at least one subnodes representing the | ||||||
|  | pinctrl groups available on the machine. Each subnode will list the | ||||||
|  | pins it needs, and how they should be configured, with regard to muxer | ||||||
|  | configuration, drive strength and pullups. If one of these options is | ||||||
|  | not set, its actual value will be unspecified. | ||||||
|  | 
 | ||||||
|  | Required subnode-properties: | ||||||
|  | 
 | ||||||
|  | - allwinner,pins: List of strings containing the pin name. | ||||||
|  | - allwinner,function: Function to mux the pins listed above to. | ||||||
|  | 
 | ||||||
|  | Optional subnode-properties: | ||||||
|  | - allwinner,drive: Integer. Represents the current sent to the pin | ||||||
|  |     0: 10 mA | ||||||
|  |     1: 20 mA | ||||||
|  |     2: 30 mA | ||||||
|  |     3: 40 mA | ||||||
|  | - allwinner,pull: Integer. | ||||||
|  |     0: No resistor | ||||||
|  |     1: Pull-up resistor | ||||||
|  |     2: Pull-down resistor | ||||||
|  | 
 | ||||||
|  | Examples: | ||||||
|  | 
 | ||||||
|  | pinctrl@01c20800 { | ||||||
|  | 	compatible = "allwinner,sun5i-a13-pinctrl"; | ||||||
|  | 	reg = <0x01c20800 0x400>; | ||||||
|  | 	#address-cells = <1>; | ||||||
|  | 	#size-cells = <0>; | ||||||
|  | 
 | ||||||
|  | 	uart1_pins_a: uart1@0 { | ||||||
|  | 		allwinner,pins = "PE10", "PE11"; | ||||||
|  | 		allwinner,function = "uart1"; | ||||||
|  | 		allwinner,drive = <0>; | ||||||
|  | 		allwinner,pull = <0>; | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
|  | 	uart1_pins_b: uart1@1 { | ||||||
|  | 		allwinner,pins = "PG3", "PG4"; | ||||||
|  | 		allwinner,function = "uart1"; | ||||||
|  | 		allwinner,drive = <0>; | ||||||
|  | 		allwinner,pull = <0>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  | @ -0,0 +1,120 @@ | ||||||
|  | NVIDIA Tegra114 pinmux controller | ||||||
|  | 
 | ||||||
|  | The Tegra114 pinctrl binding is very similar to the Tegra20 and Tegra30 | ||||||
|  | pinctrl binding, as described in nvidia,tegra20-pinmux.txt and | ||||||
|  | nvidia,tegra30-pinmux.txt. In fact, this document assumes that binding as | ||||||
|  | a baseline, and only documents the differences between the two bindings. | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: "nvidia,tegra114-pinmux" | ||||||
|  | - reg: Should contain the register physical address and length for each of | ||||||
|  |   the pad control and mux registers. The first bank of address must be the | ||||||
|  |   driver strength pad control register address and second bank address must | ||||||
|  |   be pinmux register address. | ||||||
|  | 
 | ||||||
|  | Tegra114 adds the following optional properties for pin configuration subnodes: | ||||||
|  | - nvidia,enable-input: Integer. Enable the pin's input path. 0: no, 1: yes. | ||||||
|  | - nvidia,open-drain: Integer. Enable open drain mode. 0: no, 1: yes. | ||||||
|  | - nvidia,lock: Integer. Lock the pin configuration against further changes | ||||||
|  |     until reset. 0: no, 1: yes. | ||||||
|  | - nvidia,io-reset: Integer. Reset the IO path. 0: no, 1: yes. | ||||||
|  | - nvidia,rcv-sel: Integer. Select VIL/VIH receivers. 0: normal, 1: high. | ||||||
|  | - nvidia,drive-type: Integer. Valid range 0...3. | ||||||
|  | 
 | ||||||
|  | As with Tegra20 and Terga30, see the Tegra TRM for complete details regarding | ||||||
|  | which groups support which functionality. | ||||||
|  | 
 | ||||||
|  | Valid values for pin and group names are: | ||||||
|  | 
 | ||||||
|  |   per-pin mux groups: | ||||||
|  | 
 | ||||||
|  |     These all support nvidia,function, nvidia,tristate, nvidia,pull, | ||||||
|  |     nvidia,enable-input, nvidia,lock. Some support nvidia,open-drain, | ||||||
|  |     nvidia,io-reset and nvidia,rcv-sel. | ||||||
|  | 
 | ||||||
|  |     ulpi_data0_po1, ulpi_data1_po2, ulpi_data2_po3, ulpi_data3_po4, | ||||||
|  |     ulpi_data4_po5, ulpi_data5_po6, ulpi_data6_po7, ulpi_data7_po0, | ||||||
|  |     ulpi_clk_py0, ulpi_dir_py1, ulpi_nxt_py2, ulpi_stp_py3, dap3_fs_pp0, | ||||||
|  |     dap3_din_pp1, dap3_dout_pp2, dap3_sclk_pp3, pv0, pv1, sdmmc1_clk_pz0, | ||||||
|  |     sdmmc1_cmd_pz1, sdmmc1_dat3_py4, sdmmc1_dat2_py5, sdmmc1_dat1_py6, | ||||||
|  |     sdmmc1_dat0_py7, clk2_out_pw5, clk2_req_pcc5, hdmi_int_pn7, ddc_scl_pv4, | ||||||
|  |     ddc_sda_pv5, uart2_rxd_pc3, uart2_txd_pc2, uart2_rts_n_pj6, | ||||||
|  |     uart2_cts_n_pj5, uart3_txd_pw6, uart3_rxd_pw7, uart3_cts_n_pa1, | ||||||
|  |     uart3_rts_n_pc0, pu0, pu1, pu2, pu3, pu4, pu5, pu6, gen1_i2c_sda_pc5, | ||||||
|  |     gen1_i2c_scl_pc4, dap4_fs_pp4, dap4_din_pp5, dap4_dout_pp6, dap4_sclk_pp7, | ||||||
|  |     clk3_out_pee0, clk3_req_pee1, gmi_wp_n_pc7, gmi_iordy_pi5, gmi_wait_pi7, | ||||||
|  |     gmi_adv_n_pk0, gmi_clk_pk1, gmi_cs0_n_pj0, gmi_cs1_n_pj2, gmi_cs2_n_pk3, | ||||||
|  |     gmi_cs3_n_pk4, gmi_cs4_n_pk2, gmi_cs6_n_pi3, gmi_cs7_n_pi6, gmi_ad0_pg0, | ||||||
|  |     gmi_ad1_pg1, gmi_ad2_pg2, gmi_ad3_pg3, gmi_ad4_pg4, gmi_ad5_pg5, | ||||||
|  |     gmi_ad6_pg6, gmi_ad7_pg7, gmi_ad8_ph0, gmi_ad9_ph1, gmi_ad10_ph2, | ||||||
|  |     gmi_ad11_ph3, gmi_ad12_ph4, gmi_ad13_ph5, gmi_ad14_ph6, gmi_ad15_ph7, | ||||||
|  |     gmi_a16_pj7, gmi_a17_pb0, gmi_a18_pb1, gmi_a19_pk7, gmi_wr_n_pi0, | ||||||
|  |     gmi_oe_n_pi1, gmi_dqs_p_pj3, gmi_rst_n_pi4, gen2_i2c_scl_pt5, | ||||||
|  |     gen2_i2c_sda_pt6, sdmmc4_clk_pcc4, sdmmc4_cmd_pt7, sdmmc4_dat0_paa0, | ||||||
|  |     sdmmc4_dat1_paa1, sdmmc4_dat2_paa2, sdmmc4_dat3_paa3, sdmmc4_dat4_paa4, | ||||||
|  |     sdmmc4_dat5_paa5, sdmmc4_dat6_paa6, sdmmc4_dat7_paa7, cam_mclk_pcc0, | ||||||
|  |     pcc1, pbb0, cam_i2c_scl_pbb1, cam_i2c_sda_pbb2, pbb3, pbb4, pbb5, pbb6, | ||||||
|  |     pbb7, pcc2, pwr_i2c_scl_pz6, pwr_i2c_sda_pz7, kb_row0_pr0, kb_row1_pr1, | ||||||
|  |     kb_row2_pr2, kb_row3_pr3, kb_row4_pr4, kb_row5_pr5, kb_row6_pr6, | ||||||
|  |     kb_row7_pr7, kb_row8_ps0, kb_row9_ps1, kb_row10_ps2, kb_col0_pq0, | ||||||
|  |     kb_col1_pq1, kb_col2_pq2, kb_col3_pq3, kb_col4_pq4, kb_col5_pq5, | ||||||
|  |     kb_col6_pq6, kb_col7_pq7, clk_32k_out_pa0, sys_clk_req_pz5, core_pwr_req, | ||||||
|  |     cpu_pwr_req, pwr_int_n, owr, dap1_fs_pn0, dap1_din_pn1, dap1_dout_pn2, | ||||||
|  |     dap1_sclk_pn3, clk1_req_pee2, clk1_out_pw4, spdif_in_pk6, spdif_out_pk5, | ||||||
|  |     dap2_fs_pa2, dap2_din_pa4, dap2_dout_pa5, dap2_sclk_pa3, dvfs_pwm_px0, | ||||||
|  |     gpio_x1_aud_px1, gpio_x3_aud_px3, dvfs_clk_px2, gpio_x4_aud_px4, | ||||||
|  |     gpio_x5_aud_px5, gpio_x6_aud_px6, gpio_x7_aud_px7, sdmmc3_clk_pa6, | ||||||
|  |     sdmmc3_cmd_pa7, sdmmc3_dat0_pb7, sdmmc3_dat1_pb6, sdmmc3_dat2_pb5, | ||||||
|  |     sdmmc3_dat3_pb4, hdmi_cec_pee3, sdmmc1_wp_n_pv3, sdmmc3_cd_n_pv2, | ||||||
|  |     gpio_w2_aud_pw2, gpio_w3_aud_pw3, usb_vbus_en0_pn4, usb_vbus_en1_pn5, | ||||||
|  |     sdmmc3_clk_lb_in_pee5, sdmmc3_clk_lb_out_pee4, reset_out_n. | ||||||
|  | 
 | ||||||
|  |   drive groups: | ||||||
|  | 
 | ||||||
|  |     These all support nvidia,pull-down-strength, nvidia,pull-up-strength, | ||||||
|  |     nvidia,slew-rate-rising, nvidia,slew-rate-falling. Most but not all | ||||||
|  |     support nvidia,high-speed-mode, nvidia,schmitt, nvidia,low-power-mode | ||||||
|  |     and nvidia,drive-type. | ||||||
|  | 
 | ||||||
|  |     ao1, ao2, at1, at2, at3, at4, at5, cdev1, cdev2, dap1, dap2, dap3, dap4, | ||||||
|  |     dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, | ||||||
|  |     gmh, owr, uda. | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | 	pinmux: pinmux { | ||||||
|  | 		compatible = "nvidia,tegra114-pinmux"; | ||||||
|  | 		reg = <0x70000868 0x148		/* Pad control registers */ | ||||||
|  | 		       0x70003000 0x40c>;	/* PinMux registers */ | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
|  | Example board file extract: | ||||||
|  | 
 | ||||||
|  | 	pinctrl { | ||||||
|  | 		sdmmc4_default: pinmux { | ||||||
|  | 			sdmmc4_clk_pcc4 { | ||||||
|  | 				nvidia,pins = "sdmmc4_clk_pcc4", | ||||||
|  | 				nvidia,function = "sdmmc4"; | ||||||
|  | 				nvidia,pull = <0>; | ||||||
|  | 				nvidia,tristate = <0>; | ||||||
|  | 			}; | ||||||
|  | 			sdmmc4_dat0_paa0 { | ||||||
|  | 				nvidia,pins = "sdmmc4_dat0_paa0", | ||||||
|  | 						"sdmmc4_dat1_paa1", | ||||||
|  | 						"sdmmc4_dat2_paa2", | ||||||
|  | 						"sdmmc4_dat3_paa3", | ||||||
|  | 						"sdmmc4_dat4_paa4", | ||||||
|  | 						"sdmmc4_dat5_paa5", | ||||||
|  | 						"sdmmc4_dat6_paa6", | ||||||
|  | 						"sdmmc4_dat7_paa7"; | ||||||
|  | 				nvidia,function = "sdmmc4"; | ||||||
|  | 				nvidia,pull = <2>; | ||||||
|  | 				nvidia,tristate = <0>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
|  | 	sdhci@78000400 { | ||||||
|  | 		pinctrl-names = "default"; | ||||||
|  | 		pinctrl-0 = <&sdmmc4_default>; | ||||||
|  | 	}; | ||||||
							
								
								
									
										140
									
								
								Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,140 @@ | ||||||
|  | ST Ericsson Nomadik pinmux controller | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: "stericsson,nmk-pinctrl", "stericsson,nmk-pinctrl-db8540", | ||||||
|  |               "stericsson,nmk-pinctrl-stn8815" | ||||||
|  | - reg: Should contain the register physical address and length of the PRCMU. | ||||||
|  | 
 | ||||||
|  | Please refer to pinctrl-bindings.txt in this directory for details of the | ||||||
|  | common pinctrl bindings used by client devices, including the meaning of the | ||||||
|  | phrase "pin configuration node". | ||||||
|  | 
 | ||||||
|  | ST Ericsson's pin configuration nodes act as a container for an arbitrary number of | ||||||
|  | subnodes. Each of these subnodes represents some desired configuration for a | ||||||
|  | pin, a group, or a list of pins or groups. This configuration can include the | ||||||
|  | mux function to select on those pin(s)/group(s), and various pin configuration | ||||||
|  | parameters, such as input, output, pull up, pull down... | ||||||
|  | 
 | ||||||
|  | The name of each subnode is not important; all subnodes should be enumerated | ||||||
|  | and processed purely based on their content. | ||||||
|  | 
 | ||||||
|  | Required subnode-properties: | ||||||
|  | - ste,pins : An array of strings. Each string contains the name of a pin or | ||||||
|  |     group. | ||||||
|  | 
 | ||||||
|  | Optional subnode-properties: | ||||||
|  | - ste,function: A string containing the name of the function to mux to the | ||||||
|  |   pin or group. | ||||||
|  | 
 | ||||||
|  | - ste,config: Handle of pin configuration node (e.g. ste,config = <&slpm_in_wkup_pdis>) | ||||||
|  | 
 | ||||||
|  | - ste,input : <0/1/2> | ||||||
|  | 	0: input with no pull | ||||||
|  | 	1: input with pull up, | ||||||
|  | 	2: input with pull down, | ||||||
|  | 
 | ||||||
|  | - ste,output: <0/1/2> | ||||||
|  | 	0: output low, | ||||||
|  | 	1: output high, | ||||||
|  | 	2: output (value is not specified). | ||||||
|  | 
 | ||||||
|  | - ste,sleep: <0/1> | ||||||
|  | 	0: sleep mode disable, | ||||||
|  | 	1: sleep mode enable. | ||||||
|  | 
 | ||||||
|  | - ste,sleep-input: <0/1/2/3> | ||||||
|  | 	0: sleep input with no pull, | ||||||
|  | 	1: sleep input with pull up, | ||||||
|  | 	2: sleep input with pull down. | ||||||
|  | 	3: sleep input and keep last input configuration (no pull, pull up or pull down). | ||||||
|  | 
 | ||||||
|  | - ste,sleep-output: <0/1/2> | ||||||
|  | 	0: sleep output low, | ||||||
|  | 	1: sleep output high, | ||||||
|  | 	2: sleep output (value is not specified). | ||||||
|  | 
 | ||||||
|  | - ste,sleep-gpio: <0/1> | ||||||
|  | 	0: disable sleep gpio mode, | ||||||
|  | 	1: enable sleep gpio mode. | ||||||
|  | 
 | ||||||
|  | - ste,sleep-wakeup: <0/1> | ||||||
|  | 	0: wake-up detection enabled, | ||||||
|  | 	1: wake-up detection disabled. | ||||||
|  | 
 | ||||||
|  | - ste,sleep-pull-disable: <0/1> | ||||||
|  | 	0: GPIO pull-up or pull-down resistor is enabled, when pin is an input, | ||||||
|  | 	1: GPIO pull-up and pull-down resistor are disabled. | ||||||
|  | 
 | ||||||
|  | Example board file extract: | ||||||
|  | 
 | ||||||
|  | 	pinctrl@80157000 { | ||||||
|  | 		compatible = "stericsson,nmk-pinctrl"; | ||||||
|  | 		reg = <0x80157000 0x2000>; | ||||||
|  | 
 | ||||||
|  | 		pinctrl-names = "default"; | ||||||
|  | 
 | ||||||
|  | 		slpm_in_wkup_pdis: slpm_in_wkup_pdis { | ||||||
|  | 			ste,sleep = <1>; | ||||||
|  | 			ste,sleep-input = <3>; | ||||||
|  | 			ste,sleep-wakeup = <1>; | ||||||
|  | 			ste,sleep-pull-disable = <0>; | ||||||
|  | 		}; | ||||||
|  | 
 | ||||||
|  | 		slpm_out_hi_wkup_pdis: slpm_out_hi_wkup_pdis { | ||||||
|  | 			ste,sleep = <1>; | ||||||
|  | 			ste,sleep-output = <1>; | ||||||
|  | 			ste,sleep-wakeup = <1>; | ||||||
|  | 			ste,sleep-pull-disable = <0>; | ||||||
|  | 		}; | ||||||
|  | 
 | ||||||
|  | 		slpm_out_wkup_pdis: slpm_out_wkup_pdis { | ||||||
|  | 			ste,sleep = <1>; | ||||||
|  | 			ste,sleep-output = <2>; | ||||||
|  | 			ste,sleep-wakeup = <1>; | ||||||
|  | 			ste,sleep-pull-disable = <0>; | ||||||
|  | 		}; | ||||||
|  | 
 | ||||||
|  | 		uart0 { | ||||||
|  | 			uart0_default_mux: uart0_mux { | ||||||
|  | 				u0_default_mux { | ||||||
|  | 					ste,function = "u0"; | ||||||
|  | 					ste,pins = "u0_a_1"; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  | 			uart0_default_mode: uart0_default { | ||||||
|  | 				uart0_default_cfg1 { | ||||||
|  | 					ste,pins = "GPIO0", "GPIO2"; | ||||||
|  | 					ste,input = <1>; | ||||||
|  | 				}; | ||||||
|  | 
 | ||||||
|  | 				uart0_default_cfg2 { | ||||||
|  | 					ste,pins = "GPIO1", "GPIO3"; | ||||||
|  | 					ste,output = <1>; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  | 			uart0_sleep_mode: uart0_sleep { | ||||||
|  | 				uart0_sleep_cfg1 { | ||||||
|  | 					ste,pins = "GPIO0", "GPIO2"; | ||||||
|  | 					ste,config = <&slpm_in_wkup_pdis>; | ||||||
|  | 				}; | ||||||
|  | 				uart0_sleep_cfg2 { | ||||||
|  | 					ste,pins = "GPIO1"; | ||||||
|  | 					ste,config = <&slpm_out_hi_wkup_pdis>; | ||||||
|  | 				}; | ||||||
|  | 				uart0_sleep_cfg3 { | ||||||
|  | 					ste,pins = "GPIO3"; | ||||||
|  | 					ste,config = <&slpm_out_wkup_pdis>; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
|  | 	uart@80120000 { | ||||||
|  | 		compatible = "arm,pl011", "arm,primecell"; | ||||||
|  | 		reg = <0x80120000 0x1000>; | ||||||
|  | 		interrupts = <0 11 0x4>; | ||||||
|  | 
 | ||||||
|  | 		pinctrl-names = "default","sleep"; | ||||||
|  | 		pinctrl-0 = <&uart0_default_mux>, <&uart0_default_mode>; | ||||||
|  | 		pinctrl-1 = <&uart0_sleep_mode>; | ||||||
|  | 	}; | ||||||
|  | @ -0,0 +1,13 @@ | ||||||
|  | * QNAP Power Off | ||||||
|  | 
 | ||||||
|  | QNAP NAS devices have a microcontroller controlling the main power | ||||||
|  | supply. This microcontroller is connected to UART1 of the Kirkwood and | ||||||
|  | Orion5x SoCs. Sending the charactor 'A', at 19200 baud, tells the | ||||||
|  | microcontroller to turn the power off. This driver adds a handler to | ||||||
|  | pm_power_off which is called to turn the power off. | ||||||
|  | 
 | ||||||
|  | Required Properties: | ||||||
|  | - compatible: Should be "qnap,power-off" | ||||||
|  | 
 | ||||||
|  | - reg: Address and length of the register set for UART1 | ||||||
|  | - clocks: tclk clock | ||||||
|  | @ -0,0 +1,8 @@ | ||||||
|  | * Restart Power Off | ||||||
|  | 
 | ||||||
|  | Buffalo Linkstation LS-XHL and LS-CHLv2, and other devices power off | ||||||
|  | by restarting and letting u-boot keep hold of the machine until the | ||||||
|  | user presses a button. | ||||||
|  | 
 | ||||||
|  | Required Properties: | ||||||
|  | - compatible: Should be "restart-poweroff" | ||||||
|  | @ -8,9 +8,9 @@ Properties: | ||||||
| 	Definition: Must include "fsl,srio" for IP blocks with IP Block | 	Definition: Must include "fsl,srio" for IP blocks with IP Block | ||||||
| 	Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0. | 	Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0. | ||||||
| 
 | 
 | ||||||
| 	Optionally, a compatiable string of "fsl,srio-vX.Y" where X is Major | 	Optionally, a compatible string of "fsl,srio-vX.Y" where X is Major | ||||||
| 	version in IP Block Revision Register and Y is Minor version.  If this | 	version in IP Block Revision Register and Y is Minor version.  If this | ||||||
| 	compatiable is provided it should be ordered before "fsl,srio". | 	compatible is provided it should be ordered before "fsl,srio". | ||||||
| 
 | 
 | ||||||
|    - reg |    - reg | ||||||
| 	Usage: required | 	Usage: required | ||||||
|  |  | ||||||
|  | @ -9,6 +9,11 @@ Required properties: | ||||||
| - anatop-min-voltage: Minimum voltage of this regulator | - anatop-min-voltage: Minimum voltage of this regulator | ||||||
| - anatop-max-voltage: Maximum voltage of this regulator | - anatop-max-voltage: Maximum voltage of this regulator | ||||||
| 
 | 
 | ||||||
|  | Optional properties: | ||||||
|  | - anatop-delay-reg-offset: Anatop MFD step time register offset | ||||||
|  | - anatop-delay-bit-shift: Bit shift for the step time register | ||||||
|  | - anatop-delay-bit-width: Number of bits used in the step time register | ||||||
|  | 
 | ||||||
| Any property defined as part of the core regulator | Any property defined as part of the core regulator | ||||||
| binding, defined in regulator.txt, can also be used. | binding, defined in regulator.txt, can also be used. | ||||||
| 
 | 
 | ||||||
|  | @ -23,6 +28,9 @@ Example: | ||||||
| 		anatop-reg-offset = <0x140>; | 		anatop-reg-offset = <0x140>; | ||||||
| 		anatop-vol-bit-shift = <9>; | 		anatop-vol-bit-shift = <9>; | ||||||
| 		anatop-vol-bit-width = <5>; | 		anatop-vol-bit-width = <5>; | ||||||
|  | 		anatop-delay-reg-offset = <0x170>; | ||||||
|  | 		anatop-delay-bit-shift = <24>; | ||||||
|  | 		anatop-delay-bit-width = <2>; | ||||||
| 		anatop-min-bit-val = <1>; | 		anatop-min-bit-val = <1>; | ||||||
| 		anatop-min-voltage = <725000>; | 		anatop-min-voltage = <725000>; | ||||||
| 		anatop-max-voltage = <1300000>; | 		anatop-max-voltage = <1300000>; | ||||||
|  |  | ||||||
|  | @ -0,0 +1,152 @@ | ||||||
|  | * Samsung S5M8767 Voltage and Current Regulator | ||||||
|  | 
 | ||||||
|  | The Samsung S5M8767 is a multi-function device which includes volatage and | ||||||
|  | current regulators, rtc, charger controller and other sub-blocks. It is | ||||||
|  | interfaced to the host controller using a i2c interface. Each sub-block is | ||||||
|  | addressed by the host system using different i2c slave address. This document | ||||||
|  | describes the bindings for 'pmic' sub-block of s5m8767. | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: Should be "samsung,s5m8767-pmic". | ||||||
|  | - reg: Specifies the i2c slave address of the pmic block. It should be 0x66. | ||||||
|  | 
 | ||||||
|  | - s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||||||
|  |   units for buck2 when changing voltage using gpio dvs. Refer to [1] below | ||||||
|  |   for additional information. | ||||||
|  | 
 | ||||||
|  | - s5m8767,pmic-buck3-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||||||
|  |   units for buck3 when changing voltage using gpio dvs. Refer to [1] below | ||||||
|  |   for additional information. | ||||||
|  | 
 | ||||||
|  | - s5m8767,pmic-buck4-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||||||
|  |   units for buck4 when changing voltage using gpio dvs. Refer to [1] below | ||||||
|  |   for additional information. | ||||||
|  | 
 | ||||||
|  | - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used | ||||||
|  |   for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines. | ||||||
|  | 
 | ||||||
|  | [1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional | ||||||
|  |     property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage' | ||||||
|  |     property should specify atleast one voltage level (which would be a | ||||||
|  |     safe operating voltage). | ||||||
|  | 
 | ||||||
|  |     If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional | ||||||
|  |     property is specified, then all the eight voltage values for the | ||||||
|  |     's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified. | ||||||
|  | 
 | ||||||
|  | Optional properties: | ||||||
|  | - interrupt-parent: Specifies the phandle of the interrupt controller to which | ||||||
|  |   the interrupts from s5m8767 are delivered to. | ||||||
|  | - interrupts: Interrupt specifiers for two interrupt sources. | ||||||
|  |   - First interrupt specifier is for 'irq1' interrupt. | ||||||
|  |   - Second interrupt specifier is for 'alert' interrupt. | ||||||
|  | - s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs. | ||||||
|  | - s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs. | ||||||
|  | - s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs. | ||||||
|  | 
 | ||||||
|  | Additional properties required if either of the optional properties are used: | ||||||
|  | 
 | ||||||
|  | - s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from | ||||||
|  |   the possible 8 options selectable by the dvs gpios. The value of this | ||||||
|  |   property should be between 0 and 7. If not specified or if out of range, the | ||||||
|  |   default value of this property is set to 0. | ||||||
|  | 
 | ||||||
|  | - s5m8767,pmic-buck-dvs-gpios: GPIO specifiers for three host gpio's used | ||||||
|  |   for dvs. The format of the gpio specifier depends in the gpio controller. | ||||||
|  | 
 | ||||||
|  | Regulators: The regulators of s5m8767 that have to be instantiated should be | ||||||
|  | included in a sub-node named 'regulators'. Regulator nodes included in this | ||||||
|  | sub-node should be of the format as listed below. | ||||||
|  | 
 | ||||||
|  | 	regulator_name { | ||||||
|  | 		ldo1_reg: LDO1 { | ||||||
|  | 			regulator-name = "VDD_ALIVE_1.0V"; | ||||||
|  | 			regulator-min-microvolt = <1100000>; | ||||||
|  | 			regulator-max-microvolt = <1100000>; | ||||||
|  | 			regulator-always-on; | ||||||
|  | 			regulator-boot-on; | ||||||
|  | 			op_mode = <1>; /* Normal Mode */ | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | The above regulator entries are defined in regulator bindings documentation | ||||||
|  | except op_mode description. | ||||||
|  | 	- op_mode: describes the different operating modes of the LDO's with | ||||||
|  | 		power mode change in SOC. The different possible values are, | ||||||
|  | 		0 - always off mode | ||||||
|  | 		1 - on in normal mode | ||||||
|  | 		2 - low power mode | ||||||
|  | 		3 - suspend mode | ||||||
|  | 
 | ||||||
|  | The following are the names of the regulators that the s5m8767 pmic block | ||||||
|  | supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number | ||||||
|  | as per the datasheet of s5m8767. | ||||||
|  | 
 | ||||||
|  | 	- LDOn | ||||||
|  | 		  - valid values for n are 1 to 28 | ||||||
|  | 		  - Example: LDO0, LD01, LDO28 | ||||||
|  | 	- BUCKn | ||||||
|  | 		  - valid values for n are 1 to 9. | ||||||
|  | 		  - Example: BUCK1, BUCK2, BUCK9 | ||||||
|  | 
 | ||||||
|  | The bindings inside the regulator nodes use the standard regulator bindings | ||||||
|  | which are documented elsewhere. | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | 	s5m8767_pmic@66 { | ||||||
|  | 		compatible = "samsung,s5m8767-pmic"; | ||||||
|  | 		reg = <0x66>; | ||||||
|  | 
 | ||||||
|  | 		s5m8767,pmic-buck2-uses-gpio-dvs; | ||||||
|  | 		s5m8767,pmic-buck3-uses-gpio-dvs; | ||||||
|  | 		s5m8767,pmic-buck4-uses-gpio-dvs; | ||||||
|  | 
 | ||||||
|  | 		s5m8767,pmic-buck-default-dvs-idx = <0>; | ||||||
|  | 
 | ||||||
|  | 		s5m8767,pmic-buck-dvs-gpios = <&gpx0 0 1 0 0>, /* DVS1 */ | ||||||
|  | 						 <&gpx0 1 1 0 0>, /* DVS2 */ | ||||||
|  | 						 <&gpx0 2 1 0 0>; /* DVS3 */ | ||||||
|  | 
 | ||||||
|  | 		s5m8767,pmic-buck-ds-gpios = <&gpx2 3 1 0 0>, /* SET1 */ | ||||||
|  | 						<&gpx2 4 1 0 0>, /* SET2 */ | ||||||
|  | 						<&gpx2 5 1 0 0>; /* SET3 */ | ||||||
|  | 
 | ||||||
|  | 		s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>, | ||||||
|  | 						 <1250000>, <1200000>, | ||||||
|  | 						 <1150000>, <1100000>, | ||||||
|  | 						 <1000000>, <950000>; | ||||||
|  | 
 | ||||||
|  | 		s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>, | ||||||
|  | 						 <1100000>, <1100000>, | ||||||
|  | 						 <1000000>, <1000000>, | ||||||
|  | 						 <1000000>, <1000000>; | ||||||
|  | 
 | ||||||
|  | 		s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>, | ||||||
|  | 						 <1200000>, <1200000>, | ||||||
|  | 						 <1200000>, <1200000>, | ||||||
|  | 						 <1200000>, <1200000>; | ||||||
|  | 
 | ||||||
|  | 		regulators { | ||||||
|  | 			ldo1_reg: LDO1 { | ||||||
|  | 				regulator-name = "VDD_ABB_3.3V"; | ||||||
|  | 				regulator-min-microvolt = <3300000>; | ||||||
|  | 				regulator-max-microvolt = <3300000>; | ||||||
|  | 				op_mode = <1>; /* Normal Mode */ | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			ldo2_reg: LDO2 { | ||||||
|  | 				regulator-name = "VDD_ALIVE_1.1V"; | ||||||
|  | 				regulator-min-microvolt = <1100000>; | ||||||
|  | 				regulator-max-microvolt = <1100000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			buck1_reg: BUCK1 { | ||||||
|  | 				regulator-name = "VDD_MIF_1.2V"; | ||||||
|  | 				regulator-min-microvolt = <950000>; | ||||||
|  | 				regulator-max-microvolt = <1350000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-boot-on; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | TPS51632 Voltage regulators | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible: Must be "ti,tps51632" | ||||||
|  | - reg: I2C slave address | ||||||
|  | 
 | ||||||
|  | Optional properties: | ||||||
|  | - ti,enable-pwm-dvfs: Enable the DVFS voltage control through the PWM interface. | ||||||
|  | - ti,dvfs-step-20mV: The 20mV step voltage when PWM DVFS enabled. Missing this | ||||||
|  | 	will set 10mV step voltage in PWM DVFS mode. In normal mode, the voltage | ||||||
|  | 	step is 10mV as per datasheet. | ||||||
|  | 
 | ||||||
|  | Any property defined as part of the core regulator binding, defined in | ||||||
|  | regulator.txt, can also be used. | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | 	tps51632 { | ||||||
|  | 		compatible = "ti,tps51632"; | ||||||
|  | 		reg =  <0x43>; | ||||||
|  | 		regulator-name = "tps51632-vout"; | ||||||
|  | 		regulator-min-microvolt = <500000>; | ||||||
|  | 		regulator-max-microvolt = <1500000>; | ||||||
|  | 		regulator-boot-on; | ||||||
|  | 		ti,enable-pwm-dvfs; | ||||||
|  | 		ti,dvfs-step-20mV; | ||||||
|  | 	}; | ||||||
|  | @ -17,9 +17,9 @@ Optional properties: | ||||||
| - ti,vsel1-gpio: Gpio for controlling VSEL1 line. | - ti,vsel1-gpio: Gpio for controlling VSEL1 line. | ||||||
|   If this property is missing, then assume that there is no GPIO |   If this property is missing, then assume that there is no GPIO | ||||||
|   for vsel1 control. |   for vsel1 control. | ||||||
| - ti,vsel0-state-high: Inital state of vsel0 input is high. | - ti,vsel0-state-high: Initial state of vsel0 input is high. | ||||||
|   If this property is missing, then assume the state as low (0). |   If this property is missing, then assume the state as low (0). | ||||||
| - ti,vsel1-state-high: Inital state of vsel1 input is high. | - ti,vsel1-state-high: Initial state of vsel1 input is high. | ||||||
|   If this property is missing, then assume the state as low (0). |   If this property is missing, then assume the state as low (0). | ||||||
| 
 | 
 | ||||||
| Any property defined as part of the core regulator binding, defined in | Any property defined as part of the core regulator binding, defined in | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ Required properties: | ||||||
| - reg: physical base address of the controller and length of memory mapped | - reg: physical base address of the controller and length of memory mapped | ||||||
|   region. |   region. | ||||||
| - interrupts: Two interrupt numbers to the cpu should be specified. First | - interrupts: Two interrupt numbers to the cpu should be specified. First | ||||||
|   interrupt number is the rtc alarm interupt and second interrupt number |   interrupt number is the rtc alarm interrupt and second interrupt number | ||||||
|   is the rtc tick interrupt. The number of cells representing a interrupt |   is the rtc tick interrupt. The number of cells representing a interrupt | ||||||
|   depends on the parent interrupt controller. |   depends on the parent interrupt controller. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								Documentation/devicetree/bindings/spi/sh-msiof.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Documentation/devicetree/bindings/spi/sh-msiof.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | Renesas MSIOF spi controller | ||||||
|  | 
 | ||||||
|  | Required properties: | ||||||
|  | - compatible : 	"renesas,sh-msiof" for SuperH or | ||||||
|  | 		"renesas,sh-mobile-msiof" for SH Mobile series | ||||||
|  | - reg : Offset and length of the register set for the device | ||||||
|  | - interrupts : interrupt line used by MSIOF | ||||||
|  | 
 | ||||||
|  | Optional properties: | ||||||
|  | - num-cs		: total number of chip-selects | ||||||
|  | - renesas,tx-fifo-size	: Overrides the default tx fifo size given in words | ||||||
|  | - renesas,rx-fifo-size	: Overrides the default rx fifo size given in words | ||||||
|  | @ -14,6 +14,7 @@ bosch	Bosch Sensortec GmbH | ||||||
| brcm	Broadcom Corporation | brcm	Broadcom Corporation | ||||||
| cavium	Cavium, Inc. | cavium	Cavium, Inc. | ||||||
| chrp	Common Hardware Reference Platform | chrp	Common Hardware Reference Platform | ||||||
|  | cirrus	Cirrus Logic, Inc. | ||||||
| cortina	Cortina Systems, Inc. | cortina	Cortina Systems, Inc. | ||||||
| dallas	Maxim Integrated Products (formerly Dallas Semiconductor) | dallas	Maxim Integrated Products (formerly Dallas Semiconductor) | ||||||
| denx	Denx Software Engineering | denx	Denx Software Engineering | ||||||
|  | @ -42,6 +43,7 @@ powervr	PowerVR (deprecated, use img) | ||||||
| qcom	Qualcomm, Inc. | qcom	Qualcomm, Inc. | ||||||
| ramtron	Ramtron International | ramtron	Ramtron International | ||||||
| realtek Realtek Semiconductor Corp. | realtek Realtek Semiconductor Corp. | ||||||
|  | renesas	Renesas Electronics Corporation | ||||||
| samsung	Samsung Semiconductor | samsung	Samsung Semiconductor | ||||||
| sbs	Smart Battery System | sbs	Smart Battery System | ||||||
| schindler	Schindler | schindler	Schindler | ||||||
|  | @ -50,8 +52,10 @@ simtek | ||||||
| sirf	SiRF Technology, Inc. | sirf	SiRF Technology, Inc. | ||||||
| snps 	Synopsys, Inc. | snps 	Synopsys, Inc. | ||||||
| st	STMicroelectronics | st	STMicroelectronics | ||||||
|  | ste	ST-Ericsson | ||||||
| stericsson	ST-Ericsson | stericsson	ST-Ericsson | ||||||
| ti	Texas Instruments | ti	Texas Instruments | ||||||
|  | toshiba	Toshiba Corporation | ||||||
| via	VIA Technologies, Inc. | via	VIA Technologies, Inc. | ||||||
| wlf	Wolfson Microelectronics | wlf	Wolfson Microelectronics | ||||||
| wm	Wondermedia Technologies, Inc. | wm	Wondermedia Technologies, Inc. | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| 
 | 
 | ||||||
| The Samsung's Watchdog controller is used for resuming system operation | The Samsung's Watchdog controller is used for resuming system operation | ||||||
| after a preset amount of time during which the WDT reset event has not | after a preset amount of time during which the WDT reset event has not | ||||||
| occured. | occurred. | ||||||
| 
 | 
 | ||||||
| Required properties: | Required properties: | ||||||
| - compatible : should be "samsung,s3c2410-wdt" | - compatible : should be "samsung,s3c2410-wdt" | ||||||
|  |  | ||||||
|  | @ -66,6 +66,7 @@ Process		Processor					TjMax(C) | ||||||
| 		i5 3470T					91 | 		i5 3470T					91 | ||||||
| 
 | 
 | ||||||
| 32nm		Core i3/i5/i7 Processors | 32nm		Core i3/i5/i7 Processors | ||||||
|  | 		i7 2600						98 | ||||||
| 		i7 660UM/640/620, 640LM/620, 620M, 610E		105 | 		i7 660UM/640/620, 640LM/620, 620M, 610E		105 | ||||||
| 		i5 540UM/520/430, 540M/520/450/430		105 | 		i5 540UM/520/430, 540M/520/450/430		105 | ||||||
| 		i3 330E, 370M/350/330				90 rPGA, 105 BGA | 		i3 330E, 370M/350/330				90 rPGA, 105 BGA | ||||||
|  | @ -79,7 +80,10 @@ Process		Processor					TjMax(C) | ||||||
| 		P4505/P4500 					90 | 		P4505/P4500 					90 | ||||||
| 
 | 
 | ||||||
| 32nm		Atom Processors | 32nm		Atom Processors | ||||||
|  | 		S1260/1220					95 | ||||||
|  | 		S1240						102 | ||||||
| 		Z2460						90 | 		Z2460						90 | ||||||
|  | 		Z2760						90 | ||||||
| 		D2700/2550/2500					100 | 		D2700/2550/2500					100 | ||||||
| 		N2850/2800/2650/2600				100 | 		N2850/2800/2650/2600				100 | ||||||
| 
 | 
 | ||||||
|  | @ -98,6 +102,7 @@ Process		Processor					TjMax(C) | ||||||
| 
 | 
 | ||||||
| 45nm		Atom Processors | 45nm		Atom Processors | ||||||
| 		D525/510/425/410				100 | 		D525/510/425/410				100 | ||||||
|  | 		K525/510/425/410				100 | ||||||
| 		Z670/650					90 | 		Z670/650					90 | ||||||
| 		Z560/550/540/530P/530/520PT/520/515/510PT/510P	90 | 		Z560/550/540/530P/530/520PT/520/515/510PT/510P	90 | ||||||
| 		Z510/500					90 | 		Z510/500					90 | ||||||
|  | @ -107,7 +112,11 @@ Process		Processor					TjMax(C) | ||||||
| 		330/230						125 | 		330/230						125 | ||||||
| 		E680/660/640/620				90 | 		E680/660/640/620				90 | ||||||
| 		E680T/660T/640T/620T				110 | 		E680T/660T/640T/620T				110 | ||||||
|  | 		E665C/645C					90 | ||||||
|  | 		E665CT/645CT					110 | ||||||
| 		CE4170/4150/4110				110 | 		CE4170/4150/4110				110 | ||||||
|  | 		CE4200 series					unknown | ||||||
|  | 		CE5300 series					unknown | ||||||
| 
 | 
 | ||||||
| 45nm		Core2 Processors | 45nm		Core2 Processors | ||||||
| 		Solo ULV SU3500/3300				100 | 		Solo ULV SU3500/3300				100 | ||||||
|  |  | ||||||
							
								
								
									
										93
									
								
								Documentation/hwmon/ina209
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								Documentation/hwmon/ina209
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,93 @@ | ||||||
|  | Kernel driver ina209 | ||||||
|  | ===================== | ||||||
|  | 
 | ||||||
|  | Supported chips: | ||||||
|  |   * Burr-Brown / Texas Instruments INA209 | ||||||
|  |     Prefix: 'ina209' | ||||||
|  |     Addresses scanned: - | ||||||
|  |     Datasheet: | ||||||
|  |         http://www.ti.com/lit/gpn/ina209 | ||||||
|  | 
 | ||||||
|  | Author: Paul Hays <Paul.Hays@cattail.ca> | ||||||
|  | Author: Ira W. Snyder <iws@ovro.caltech.edu> | ||||||
|  | Author: Guenter Roeck <linux@roeck-us.net> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Description | ||||||
|  | ----------- | ||||||
|  | 
 | ||||||
|  | The TI / Burr-Brown INA209 monitors voltage, current, and power on the high side | ||||||
|  | of a D.C. power supply. It can perform measurements and calculations in the | ||||||
|  | background to supply readings at any time. It includes a programmable | ||||||
|  | calibration multiplier to scale the displayed current and power values. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Sysfs entries | ||||||
|  | ------------- | ||||||
|  | 
 | ||||||
|  | The INA209 chip is highly configurable both via hardwiring and via | ||||||
|  | the I2C bus. See the datasheet for details. | ||||||
|  | 
 | ||||||
|  | This tries to expose most monitoring features of the hardware via | ||||||
|  | sysfs. It does not support every feature of this chip. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | in0_input		shunt voltage (mV) | ||||||
|  | in0_input_highest	shunt voltage historical maximum reading (mV) | ||||||
|  | in0_input_lowest	shunt voltage historical minimum reading (mV) | ||||||
|  | in0_reset_history	reset shunt voltage history | ||||||
|  | in0_max			shunt voltage max alarm limit (mV) | ||||||
|  | in0_min			shunt voltage min alarm limit (mV) | ||||||
|  | in0_crit_max		shunt voltage crit max alarm limit (mV) | ||||||
|  | in0_crit_min		shunt voltage crit min alarm limit (mV) | ||||||
|  | in0_max_alarm		shunt voltage max alarm limit exceeded | ||||||
|  | in0_min_alarm		shunt voltage min alarm limit exceeded | ||||||
|  | in0_crit_max_alarm	shunt voltage crit max alarm limit exceeded | ||||||
|  | in0_crit_min_alarm	shunt voltage crit min alarm limit exceeded | ||||||
|  | 
 | ||||||
|  | in1_input		bus voltage (mV) | ||||||
|  | in1_input_highest	bus voltage historical maximum reading (mV) | ||||||
|  | in1_input_lowest	bus voltage historical minimum reading (mV) | ||||||
|  | in1_reset_history	reset bus voltage history | ||||||
|  | in1_max			bus voltage max alarm limit (mV) | ||||||
|  | in1_min			bus voltage min alarm limit (mV) | ||||||
|  | in1_crit_max		bus voltage crit max alarm limit (mV) | ||||||
|  | in1_crit_min		bus voltage crit min alarm limit (mV) | ||||||
|  | in1_max_alarm		bus voltage max alarm limit exceeded | ||||||
|  | in1_min_alarm		bus voltage min alarm limit exceeded | ||||||
|  | in1_crit_max_alarm	bus voltage crit max alarm limit exceeded | ||||||
|  | in1_crit_min_alarm	bus voltage crit min alarm limit exceeded | ||||||
|  | 
 | ||||||
|  | power1_input		power measurement (uW) | ||||||
|  | power1_input_highest	power historical maximum reading (uW) | ||||||
|  | power1_reset_history	reset power history | ||||||
|  | power1_max		power max alarm limit (uW) | ||||||
|  | power1_crit		power crit alarm limit (uW) | ||||||
|  | power1_max_alarm	power max alarm limit exceeded | ||||||
|  | power1_crit_alarm	power crit alarm limit exceeded | ||||||
|  | 
 | ||||||
|  | curr1_input		current measurement (mA) | ||||||
|  | 
 | ||||||
|  | update_interval		data conversion time; affects number of samples used | ||||||
|  | 			to average results for shunt and bus voltages. | ||||||
|  | 
 | ||||||
|  | General Remarks | ||||||
|  | --------------- | ||||||
|  | 
 | ||||||
|  | The power and current registers in this chip require that the calibration | ||||||
|  | register is programmed correctly before they are used. Normally this is expected | ||||||
|  | to be done in the BIOS. In the absence of BIOS programming, the shunt resistor | ||||||
|  | voltage can be provided using platform data. The driver uses platform data from | ||||||
|  | the ina2xx driver for this purpose. If calibration register data is not provided | ||||||
|  | via platform data, the driver checks if the calibration register has been | ||||||
|  | programmed (ie has a value not equal to zero). If so, this value is retained. | ||||||
|  | Otherwise, a default value reflecting a shunt resistor value of 10 mOhm is | ||||||
|  | programmed into the calibration register. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Output Pins | ||||||
|  | ----------- | ||||||
|  | 
 | ||||||
|  | Output pin programming is a board feature which depends on the BIOS. It is | ||||||
|  | outside the scope of a hardware monitoring driver to enable or disable output | ||||||
|  | pins. | ||||||
|  | @ -30,6 +30,14 @@ Supported chips: | ||||||
|     Prefix: 'it8728' |     Prefix: 'it8728' | ||||||
|     Addresses scanned: from Super I/O config space (8 I/O ports) |     Addresses scanned: from Super I/O config space (8 I/O ports) | ||||||
|     Datasheet: Not publicly available |     Datasheet: Not publicly available | ||||||
|  |   * IT8771E | ||||||
|  |     Prefix: 'it8771' | ||||||
|  |     Addresses scanned: from Super I/O config space (8 I/O ports) | ||||||
|  |     Datasheet: Not publicly available | ||||||
|  |   * IT8772E | ||||||
|  |     Prefix: 'it8772' | ||||||
|  |     Addresses scanned: from Super I/O config space (8 I/O ports) | ||||||
|  |     Datasheet: Not publicly available | ||||||
|   * IT8782F |   * IT8782F | ||||||
|     Prefix: 'it8782' |     Prefix: 'it8782' | ||||||
|     Addresses scanned: from Super I/O config space (8 I/O ports) |     Addresses scanned: from Super I/O config space (8 I/O ports) | ||||||
|  | @ -83,8 +91,8 @@ Description | ||||||
| ----------- | ----------- | ||||||
| 
 | 
 | ||||||
| This driver implements support for the IT8705F, IT8712F, IT8716F, | This driver implements support for the IT8705F, IT8712F, IT8716F, | ||||||
| IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8781F, IT8782F, | IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8771E, IT8772E, | ||||||
| IT8783E/F, and SiS950 chips. | IT8782F, IT8783E/F, and SiS950 chips. | ||||||
| 
 | 
 | ||||||
| These chips are 'Super I/O chips', supporting floppy disks, infrared ports, | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, | ||||||
| joysticks and other miscellaneous stuff. For hardware monitoring, they | joysticks and other miscellaneous stuff. For hardware monitoring, they | ||||||
|  | @ -118,8 +126,8 @@ The IT8726F is just bit enhanced IT8716F with additional hardware | ||||||
| for AMD power sequencing. Therefore the chip will appear as IT8716F | for AMD power sequencing. Therefore the chip will appear as IT8716F | ||||||
| to userspace applications. | to userspace applications. | ||||||
| 
 | 
 | ||||||
| The IT8728F is considered compatible with the IT8721F, until a datasheet | The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F, | ||||||
| becomes available (hopefully.) | until a datasheet becomes available (hopefully.) | ||||||
| 
 | 
 | ||||||
| Temperatures are measured in degrees Celsius. An alarm is triggered once | Temperatures are measured in degrees Celsius. An alarm is triggered once | ||||||
| when the Overtemperature Shutdown limit is crossed. | when the Overtemperature Shutdown limit is crossed. | ||||||
|  |  | ||||||
|  | @ -17,12 +17,13 @@ Supported chips: | ||||||
|   * Maxim MAX6604 |   * Maxim MAX6604 | ||||||
|     Datasheets: |     Datasheets: | ||||||
| 	http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf | 	http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf | ||||||
|   * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843 |   * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP98244, MCP9843 | ||||||
|     Datasheets: |     Datasheets: | ||||||
| 	http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf | 	http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf | ||||||
| 	http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf | 	http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf | ||||||
| 	http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf | 	http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf | ||||||
| 	http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf | 	http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf | ||||||
|  | 	http://ww1.microchip.com/downloads/en/DeviceDoc/22327A.pdf | ||||||
|   * NXP Semiconductors SE97, SE97B, SE98, SE98A |   * NXP Semiconductors SE97, SE97B, SE98, SE98A | ||||||
|     Datasheets: |     Datasheets: | ||||||
| 	http://www.nxp.com/documents/data_sheet/SE97.pdf | 	http://www.nxp.com/documents/data_sheet/SE97.pdf | ||||||
|  |  | ||||||
							
								
								
									
										90
									
								
								Documentation/hwmon/lm73
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								Documentation/hwmon/lm73
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | ||||||
|  | Kernel driver lm73 | ||||||
|  | ================== | ||||||
|  | 
 | ||||||
|  | Supported chips: | ||||||
|  |   * Texas Instruments LM73 | ||||||
|  |     Prefix: 'lm73' | ||||||
|  |     Addresses scanned: I2C 0x48, 0x49, 0x4a, 0x4c, 0x4d, and 0x4e | ||||||
|  |     Datasheet: Publicly available at the Texas Instruments website | ||||||
|  |                http://www.ti.com/product/lm73 | ||||||
|  | 
 | ||||||
|  | Author: Guillaume Ligneul <guillaume.ligneul@gmail.com> | ||||||
|  | Documentation: Chris Verges <kg4ysn@gmail.com> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Description | ||||||
|  | ----------- | ||||||
|  | 
 | ||||||
|  | The LM73 is a digital temperature sensor.  All temperature values are | ||||||
|  | given in degrees Celsius. | ||||||
|  | 
 | ||||||
|  | Measurement Resolution Support | ||||||
|  | ------------------------------ | ||||||
|  | 
 | ||||||
|  | The LM73 supports four resolutions, defined in terms of degrees C per | ||||||
|  | LSB: 0.25, 0.125, 0.0625, and 0.3125.  Changing the resolution mode | ||||||
|  | affects the conversion time of the LM73's analog-to-digital converter. | ||||||
|  | From userspace, the desired resolution can be specified as a function of | ||||||
|  | conversion time via the 'update_interval' sysfs attribute for the | ||||||
|  | device.  This attribute will normalize ranges of input values to the | ||||||
|  | maximum times defined for the resolution in the datasheet. | ||||||
|  | 
 | ||||||
|  |     Resolution    Conv. Time    Input Range | ||||||
|  |     (C/LSB)       (msec)        (msec) | ||||||
|  |     -------------------------------------- | ||||||
|  |     0.25          14             0..14 | ||||||
|  |     0.125         28            15..28 | ||||||
|  |     0.0625        56            29..56 | ||||||
|  |     0.03125       112           57..infinity | ||||||
|  |     -------------------------------------- | ||||||
|  | 
 | ||||||
|  | The following examples show how the 'update_interval' attribute can be | ||||||
|  | used to change the conversion time: | ||||||
|  | 
 | ||||||
|  |     $ echo 0 > update_interval | ||||||
|  |     $ cat update_interval | ||||||
|  |     14 | ||||||
|  |     $ cat temp1_input | ||||||
|  |     24250 | ||||||
|  | 
 | ||||||
|  |     $ echo 22 > update_interval | ||||||
|  |     $ cat update_interval | ||||||
|  |     28 | ||||||
|  |     $ cat temp1_input | ||||||
|  |     24125 | ||||||
|  | 
 | ||||||
|  |     $ echo 56 > update_interval | ||||||
|  |     $ cat update_interval | ||||||
|  |     56 | ||||||
|  |     $ cat temp1_input | ||||||
|  |     24062 | ||||||
|  | 
 | ||||||
|  |     $ echo 85 > update_interval | ||||||
|  |     $ cat update_interval | ||||||
|  |     112 | ||||||
|  |     $ cat temp1_input | ||||||
|  |     24031 | ||||||
|  | 
 | ||||||
|  | As shown here, the lm73 driver automatically adjusts any user input for | ||||||
|  | 'update_interval' via a step function.  Reading back the | ||||||
|  | 'update_interval' value after a write operation will confirm the | ||||||
|  | conversion time actively in use. | ||||||
|  | 
 | ||||||
|  | Mathematically, the resolution can be derived from the conversion time | ||||||
|  | via the following function: | ||||||
|  | 
 | ||||||
|  |    g(x) = 0.250 * [log(x/14) / log(2)] | ||||||
|  | 
 | ||||||
|  | where 'x' is the output from 'update_interval' and 'g(x)' is the | ||||||
|  | resolution in degrees C per LSB. | ||||||
|  | 
 | ||||||
|  | Alarm Support | ||||||
|  | ------------- | ||||||
|  | 
 | ||||||
|  | The LM73 features a simple over-temperature alarm mechanism.  This | ||||||
|  | feature is exposed via the sysfs attributes. | ||||||
|  | 
 | ||||||
|  | The attributes 'temp1_max_alarm' and 'temp1_min_alarm' are flags | ||||||
|  | provided by the LM73 that indicate whether the measured temperature has | ||||||
|  | passed the 'temp1_max' and 'temp1_min' thresholds, respectively.  These | ||||||
|  | values _must_ be read to clear the registers on the LM73. | ||||||
|  | @ -16,6 +16,16 @@ Supported chips: | ||||||
|     Prefixes: 'max34446' |     Prefixes: 'max34446' | ||||||
|     Addresses scanned: - |     Addresses scanned: - | ||||||
|     Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34446.pdf |     Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34446.pdf | ||||||
|  |   * Maxim MAX34460 | ||||||
|  |     PMBus 12-Channel Voltage Monitor & Sequencer | ||||||
|  |     Prefix: 'max34460' | ||||||
|  |     Addresses scanned: - | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX34460.pdf | ||||||
|  |   * Maxim MAX34461 | ||||||
|  |     PMBus 16-Channel Voltage Monitor & Sequencer | ||||||
|  |     Prefix: 'max34461' | ||||||
|  |     Addresses scanned: - | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX34461.pdf | ||||||
| 
 | 
 | ||||||
| Author: Guenter Roeck <guenter.roeck@ericsson.com> | Author: Guenter Roeck <guenter.roeck@ericsson.com> | ||||||
| 
 | 
 | ||||||
|  | @ -26,6 +36,9 @@ Description | ||||||
| This driver supports hardware montoring for Maxim MAX34440 PMBus 6-Channel | This driver supports hardware montoring for Maxim MAX34440 PMBus 6-Channel | ||||||
| Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager | Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager | ||||||
| and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger. | and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger. | ||||||
|  | It also supports the MAX34460 and MAX34461 PMBus Voltage Monitor & Sequencers. | ||||||
|  | The MAX34460 supports 12 voltage channels, and the MAX34461 supports 16 voltage | ||||||
|  | channels. | ||||||
| 
 | 
 | ||||||
| The driver is a client driver to the core PMBus driver. Please see | The driver is a client driver to the core PMBus driver. Please see | ||||||
| Documentation/hwmon/pmbus for details on PMBus client drivers. | Documentation/hwmon/pmbus for details on PMBus client drivers. | ||||||
|  | @ -109,3 +122,6 @@ temp[1-8]_reset_history	Write any value to reset history. | ||||||
| 
 | 
 | ||||||
| 			temp7 and temp8 attributes only exist for MAX34440. | 			temp7 and temp8 attributes only exist for MAX34440. | ||||||
| 			MAX34446 only supports temp[1-3]. | 			MAX34446 only supports temp[1-3]. | ||||||
|  | 
 | ||||||
|  | MAX34460 supports attribute groups in[1-12] and temp[1-5]. | ||||||
|  | MAX34461 supports attribute groups in[1-16] and temp[1-5]. | ||||||
|  |  | ||||||
							
								
								
									
										58
									
								
								Documentation/hwmon/max6697
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								Documentation/hwmon/max6697
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,58 @@ | ||||||
|  | Kernel driver max6697 | ||||||
|  | ===================== | ||||||
|  | 
 | ||||||
|  | Supported chips: | ||||||
|  |   * Maxim MAX6581 | ||||||
|  |     Prefix: 'max6581' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6581.pdf | ||||||
|  |   * Maxim MAX6602 | ||||||
|  |     Prefix: 'max6602' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6602.pdf | ||||||
|  |   * Maxim MAX6622 | ||||||
|  |     Prefix: 'max6622' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6622.pdf | ||||||
|  |   * Maxim MAX6636 | ||||||
|  |     Prefix: 'max6636' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6636.pdf | ||||||
|  |   * Maxim MAX6689 | ||||||
|  |     Prefix: 'max6689' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6689.pdf | ||||||
|  |   * Maxim MAX6693 | ||||||
|  |     Prefix: 'max6693' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6693.pdf | ||||||
|  |   * Maxim MAX6694 | ||||||
|  |     Prefix: 'max6694' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6694.pdf | ||||||
|  |   * Maxim MAX6697 | ||||||
|  |     Prefix: 'max6697' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6697.pdf | ||||||
|  |   * Maxim MAX6698 | ||||||
|  |     Prefix: 'max6698' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6698.pdf | ||||||
|  |   * Maxim MAX6699 | ||||||
|  |     Prefix: 'max6699' | ||||||
|  |     Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6699.pdf | ||||||
|  | 
 | ||||||
|  | Author: | ||||||
|  |     Guenter Roeck <linux@roeck-us.net> | ||||||
|  | 
 | ||||||
|  | Description | ||||||
|  | ----------- | ||||||
|  | 
 | ||||||
|  | This driver implements support for several MAX6697 compatible temperature sensor | ||||||
|  | chips. The chips support one local temperature sensor plus four, six, or seven | ||||||
|  | remote temperature sensors. Remote temperature sensors are diode-connected | ||||||
|  | thermal transitors, except for MAX6698 which supports three diode-connected | ||||||
|  | thermal transistors plus three thermistors in addition to the local temperature | ||||||
|  | sensor. | ||||||
|  | 
 | ||||||
|  | The driver provides the following sysfs attributes. temp1 is the local (chip) | ||||||
|  | temperature, temp[2..n] are remote temperatures. The actually supported | ||||||
|  | per-channel attributes are chip type and channel dependent. | ||||||
|  | 
 | ||||||
|  | tempX_input      RO temperature | ||||||
|  | tempX_max        RW temperature maximum threshold | ||||||
|  | tempX_max_alarm  RO temperature maximum threshold alarm | ||||||
|  | tempX_crit       RW temperature critical threshold | ||||||
|  | tempX_crit_alarm RO temperature critical threshold alarm | ||||||
|  | tempX_fault      RO temperature diode fault (remote sensors only) | ||||||
|  | @ -722,14 +722,14 @@ add/subtract if it has been divided before the add/subtract. | ||||||
| What to do if a value is found to be invalid, depends on the type of the | What to do if a value is found to be invalid, depends on the type of the | ||||||
| sysfs attribute that is being set. If it is a continuous setting like a | sysfs attribute that is being set. If it is a continuous setting like a | ||||||
| tempX_max or inX_max attribute, then the value should be clamped to its | tempX_max or inX_max attribute, then the value should be clamped to its | ||||||
| limits using SENSORS_LIMIT(value, min_limit, max_limit). If it is not | limits using clamp_val(value, min_limit, max_limit). If it is not continuous | ||||||
| continuous like for example a tempX_type, then when an invalid value is | like for example a tempX_type, then when an invalid value is written, | ||||||
| written, -EINVAL should be returned. | -EINVAL should be returned. | ||||||
| 
 | 
 | ||||||
| Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees): | Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees): | ||||||
| 
 | 
 | ||||||
| 	long v = simple_strtol(buf, NULL, 10) / 1000; | 	long v = simple_strtol(buf, NULL, 10) / 1000; | ||||||
| 	v = SENSORS_LIMIT(v, -128, 127); | 	v = clamp_val(v, -128, 127); | ||||||
| 	/* write v to register */ | 	/* write v to register */ | ||||||
| 
 | 
 | ||||||
| Example2, fan divider setting, valid values 2, 4 and 8: | Example2, fan divider setting, valid values 2, 4 and 8: | ||||||
|  |  | ||||||
|  | @ -121,12 +121,26 @@ in1_max_alarm		Input voltage high alarm. | ||||||
| in1_lcrit_alarm		Input voltage critical low alarm. | in1_lcrit_alarm		Input voltage critical low alarm. | ||||||
| in1_crit_alarm		Input voltage critical high alarm. | in1_crit_alarm		Input voltage critical high alarm. | ||||||
| 
 | 
 | ||||||
| in2_label		"vout1" | in2_label		"vmon" | ||||||
| in2_input		Measured output voltage. | in2_input		Measured voltage on VMON (ZL2004) or VDRV (ZL9101M, | ||||||
| in2_lcrit		Critical minimum output Voltage. | 			ZL9117M) pin. Reported voltage is 16x the voltage on the | ||||||
| in2_crit		Critical maximum output voltage. | 			pin (adjusted internally by the chip). | ||||||
| in2_lcrit_alarm		Critical output voltage critical low alarm. | in2_lcrit		Critical minumum VMON/VDRV Voltage. | ||||||
| in2_crit_alarm		Critical output voltage critical high alarm. | in2_crit		Critical maximum VMON/VDRV voltage. | ||||||
|  | in2_lcrit_alarm		VMON/VDRV voltage critical low alarm. | ||||||
|  | in2_crit_alarm		VMON/VDRV voltage critical high alarm. | ||||||
|  | 
 | ||||||
|  | 			vmon attributes are supported on ZL2004, ZL9101M, | ||||||
|  | 			and ZL9117M only. | ||||||
|  | 
 | ||||||
|  | inX_label		"vout1" | ||||||
|  | inX_input		Measured output voltage. | ||||||
|  | inX_lcrit		Critical minimum output Voltage. | ||||||
|  | inX_crit		Critical maximum output voltage. | ||||||
|  | inX_lcrit_alarm		Critical output voltage critical low alarm. | ||||||
|  | inX_crit_alarm		Critical output voltage critical high alarm. | ||||||
|  | 
 | ||||||
|  | 			X is 3 for ZL2004, ZL9101M, and ZL9117M, 2 otherwise. | ||||||
| 
 | 
 | ||||||
| curr1_label		"iout1" | curr1_label		"iout1" | ||||||
| curr1_input		Measured output current. | curr1_input		Measured output current. | ||||||
|  |  | ||||||
|  | @ -179,7 +179,7 @@ Code  Seq#(hex)	Include File		Comments | ||||||
| 'V'	C0	media/davinci/vpfe_capture.h	conflict! | 'V'	C0	media/davinci/vpfe_capture.h	conflict! | ||||||
| 'V'	C0	media/si4713.h		conflict! | 'V'	C0	media/si4713.h		conflict! | ||||||
| 'W'	00-1F	linux/watchdog.h	conflict! | 'W'	00-1F	linux/watchdog.h	conflict! | ||||||
| 'W'	00-1F	linux/wanrouter.h	conflict! | 'W'	00-1F	linux/wanrouter.h	conflict!		(pre 3.9) | ||||||
| 'W'	00-3F	sound/asound.h		conflict! | 'W'	00-3F	sound/asound.h		conflict! | ||||||
| 'X'	all	fs/xfs/xfs_fs.h		conflict! | 'X'	all	fs/xfs/xfs_fs.h		conflict! | ||||||
| 		and fs/xfs/linux-2.6/xfs_ioctl32.h | 		and fs/xfs/linux-2.6/xfs_ioctl32.h | ||||||
|  |  | ||||||
|  | @ -1186,6 +1186,29 @@ When kbuild executes, the following steps are followed (roughly): | ||||||
| 		clean-files += *.dtb | 		clean-files += *.dtb | ||||||
| 		DTC_FLAGS ?= -p 1024 | 		DTC_FLAGS ?= -p 1024 | ||||||
| 
 | 
 | ||||||
|  |     dtc_cpp | ||||||
|  | 	This is just like dtc as describe above, except that the C pre- | ||||||
|  | 	processor is invoked upon the .dtsp file before compiling the result | ||||||
|  | 	with dtc. | ||||||
|  | 
 | ||||||
|  | 	In order for build dependencies to work, all files compiled using | ||||||
|  | 	dtc_cpp must use the C pre-processor's #include functionality and not | ||||||
|  | 	dtc's /include/ functionality. | ||||||
|  | 
 | ||||||
|  | 	Using the C pre-processor allows use of #define to create named | ||||||
|  | 	constants. In turn, the #defines will typically appear in a header | ||||||
|  | 	file, which may be shared with regular C code. Since the dtc language | ||||||
|  | 	represents a data structure rather than code in C syntax, similar | ||||||
|  | 	restrictions are placed on a header file included by a device tree | ||||||
|  | 	file as for a header file included by an assembly language file. | ||||||
|  | 	In particular, the C pre-processor is passed -x assembler-with-cpp, | ||||||
|  | 	which sets macro __ASSEMBLY__. __DTS__ is also set. These allow header | ||||||
|  | 	files to restrict their content to that compatible with device tree | ||||||
|  | 	source. | ||||||
|  | 
 | ||||||
|  | 	A central rule exists to create $(obj)/%.dtb from $(src)/%.dtsp; | ||||||
|  | 	architecture Makefiles do no need to explicitly write out that rule. | ||||||
|  | 
 | ||||||
| --- 6.8 Custom kbuild commands | --- 6.8 Custom kbuild commands | ||||||
| 
 | 
 | ||||||
| 	When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand | 	When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand | ||||||
|  |  | ||||||
|  | @ -1039,16 +1039,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | ||||||
| 			Claim all unknown PCI IDE storage controllers. | 			Claim all unknown PCI IDE storage controllers. | ||||||
| 
 | 
 | ||||||
| 	idle=		[X86] | 	idle=		[X86] | ||||||
| 			Format: idle=poll, idle=mwait, idle=halt, idle=nomwait | 			Format: idle=poll, idle=halt, idle=nomwait | ||||||
| 			Poll forces a polling idle loop that can slightly | 			Poll forces a polling idle loop that can slightly | ||||||
| 			improve the performance of waking up a idle CPU, but | 			improve the performance of waking up a idle CPU, but | ||||||
| 			will use a lot of power and make the system run hot. | 			will use a lot of power and make the system run hot. | ||||||
| 			Not recommended. | 			Not recommended. | ||||||
| 			idle=mwait: On systems which support MONITOR/MWAIT but |  | ||||||
| 			the kernel chose to not use it because it doesn't save |  | ||||||
| 			as much power as a normal idle loop, use the |  | ||||||
| 			MONITOR/MWAIT idle loop anyways. Performance should be |  | ||||||
| 			the same as idle=poll. |  | ||||||
| 			idle=halt: Halt is forced to be used for CPU idle. | 			idle=halt: Halt is forced to be used for CPU idle. | ||||||
| 			In such case C2/C3 won't be used again. | 			In such case C2/C3 won't be used again. | ||||||
| 			idle=nomwait: Disable mwait for CPU C-states | 			idle=nomwait: Disable mwait for CPU C-states | ||||||
|  | @ -1131,6 +1126,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | ||||||
| 			0	disables intel_idle and fall back on acpi_idle. | 			0	disables intel_idle and fall back on acpi_idle. | ||||||
| 			1 to 6	specify maximum depth of C-state. | 			1 to 6	specify maximum depth of C-state. | ||||||
| 
 | 
 | ||||||
|  | 	intel_pstate=  [X86] | ||||||
|  | 		       disable | ||||||
|  | 		         Do not enable intel_pstate as the default | ||||||
|  | 		         scaling driver for the supported processors | ||||||
|  | 
 | ||||||
| 	intremap=	[X86-64, Intel-IOMMU] | 	intremap=	[X86-64, Intel-IOMMU] | ||||||
| 			on	enable Interrupt Remapping (default) | 			on	enable Interrupt Remapping (default) | ||||||
| 			off	disable Interrupt Remapping | 			off	disable Interrupt Remapping | ||||||
|  | @ -1886,10 +1886,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | ||||||
| 			wfi(ARM) instruction doesn't work correctly and not to | 			wfi(ARM) instruction doesn't work correctly and not to | ||||||
| 			use it. This is also useful when using JTAG debugger. | 			use it. This is also useful when using JTAG debugger. | ||||||
| 
 | 
 | ||||||
| 	no-hlt		[BUGS=X86-32] Tells the kernel that the hlt |  | ||||||
| 			instruction doesn't work correctly and not to |  | ||||||
| 			use it. |  | ||||||
| 
 |  | ||||||
| 	no_file_caps	Tells the kernel not to honor file capabilities.  The | 	no_file_caps	Tells the kernel not to honor file capabilities.  The | ||||||
| 			only way then for a file to be executed with privilege | 			only way then for a file to be executed with privilege | ||||||
| 			is to be setuid root or executed by root. | 			is to be setuid root or executed by root. | ||||||
|  |  | ||||||
|  | @ -122,7 +122,7 @@ SLAB_C_MAGIC          0x4f17a36d  kmem_cache        mm/slab.c | ||||||
| COW_MAGIC             0x4f4f4f4d  cow_header_v1     arch/um/drivers/ubd_user.c | COW_MAGIC             0x4f4f4f4d  cow_header_v1     arch/um/drivers/ubd_user.c | ||||||
| I810_CARD_MAGIC       0x5072696E  i810_card         sound/oss/i810_audio.c | I810_CARD_MAGIC       0x5072696E  i810_card         sound/oss/i810_audio.c | ||||||
| TRIDENT_CARD_MAGIC    0x5072696E  trident_card      sound/oss/trident.c | TRIDENT_CARD_MAGIC    0x5072696E  trident_card      sound/oss/trident.c | ||||||
| ROUTER_MAGIC          0x524d4157  wan_device        include/linux/wanrouter.h | ROUTER_MAGIC          0x524d4157  wan_device        [in wanrouter.h pre 3.9] | ||||||
| SCC_MAGIC             0x52696368  gs_port           drivers/char/scc.h | SCC_MAGIC             0x52696368  gs_port           drivers/char/scc.h | ||||||
| SAVEKMSG_MAGIC1       0x53415645  savekmsg          arch/*/amiga/config.c | SAVEKMSG_MAGIC1       0x53415645  savekmsg          arch/*/amiga/config.c | ||||||
| GDA_MAGIC             0x58464552  gda               arch/mips/include/asm/sn/gda.h | GDA_MAGIC             0x58464552  gda               arch/mips/include/asm/sn/gda.h | ||||||
|  |  | ||||||
|  | @ -1685,6 +1685,7 @@ explicit lock operations, described later).  These include: | ||||||
| 
 | 
 | ||||||
| 	xchg(); | 	xchg(); | ||||||
| 	cmpxchg(); | 	cmpxchg(); | ||||||
|  | 	atomic_xchg(); | ||||||
| 	atomic_cmpxchg(); | 	atomic_cmpxchg(); | ||||||
| 	atomic_inc_return(); | 	atomic_inc_return(); | ||||||
| 	atomic_dec_return(); | 	atomic_dec_return(); | ||||||
|  |  | ||||||
|  | @ -52,8 +52,6 @@ de4x5.txt | ||||||
| 	- the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver | 	- the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver | ||||||
| decnet.txt | decnet.txt | ||||||
| 	- info on using the DECnet networking layer in Linux. | 	- info on using the DECnet networking layer in Linux. | ||||||
| depca.txt |  | ||||||
| 	- the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver |  | ||||||
| dl2k.txt | dl2k.txt | ||||||
| 	- README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). | 	- README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). | ||||||
| dm9000.txt | dm9000.txt | ||||||
|  | @ -72,8 +70,6 @@ e1000e.txt | ||||||
| 	- README for the Intel Gigabit Ethernet Driver (e1000e). | 	- README for the Intel Gigabit Ethernet Driver (e1000e). | ||||||
| eql.txt | eql.txt | ||||||
| 	- serial IP load balancing | 	- serial IP load balancing | ||||||
| ewrk3.txt |  | ||||||
| 	- the Digital EtherWORKS 3 DE203/4/5 Ethernet driver |  | ||||||
| fib_trie.txt | fib_trie.txt | ||||||
| 	- Level Compressed Trie (LC-trie) notes: a structure for routing. | 	- Level Compressed Trie (LC-trie) notes: a structure for routing. | ||||||
| filter.txt | filter.txt | ||||||
|  | @ -126,8 +122,6 @@ ltpc.txt | ||||||
| 	- the Apple or Farallon LocalTalk PC card driver | 	- the Apple or Farallon LocalTalk PC card driver | ||||||
| mac80211-injection.txt | mac80211-injection.txt | ||||||
| 	- HOWTO use packet injection with mac80211 | 	- HOWTO use packet injection with mac80211 | ||||||
| multicast.txt |  | ||||||
| 	- Behaviour of cards under Multicast |  | ||||||
| multiqueue.txt | multiqueue.txt | ||||||
| 	- HOWTO for multiqueue network device support. | 	- HOWTO for multiqueue network device support. | ||||||
| netconsole.txt | netconsole.txt | ||||||
|  |  | ||||||
|  | @ -1,203 +0,0 @@ | ||||||
| Released 1994-06-13 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	CONTENTS: |  | ||||||
| 
 |  | ||||||
| 	1. Introduction. |  | ||||||
| 	2. License. |  | ||||||
| 	3. Files in this release. |  | ||||||
| 	4. Installation. |  | ||||||
| 	5. Problems and tuning. |  | ||||||
| 	6. Using the drivers with earlier releases. |  | ||||||
| 	7. Acknowledgments. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	1. INTRODUCTION. |  | ||||||
| 
 |  | ||||||
| 	This is a set of Ethernet drivers for the D-Link DE-600/DE-620 |  | ||||||
| 	pocket adapters, for the parallel port on a Linux based machine. |  | ||||||
| 	Some adapter "clones" will also work.  Xircom is _not_ a clone... |  | ||||||
| 	These drivers _can_ be used as loadable modules, |  | ||||||
| 	and were developed for use on Linux 1.1.13 and above. |  | ||||||
| 	For use on Linux 1.0.X, or earlier releases, see below. |  | ||||||
| 
 |  | ||||||
| 	I have used these drivers for NFS, ftp, telnet and X-clients on |  | ||||||
| 	remote machines. Transmissions with ftp seems to work as |  | ||||||
| 	good as can be expected (i.e. > 80k bytes/sec) from a |  | ||||||
| 	parallel port...:-)  Receive speeds will be about 60-80% of this. |  | ||||||
| 	Depending on your machine, somewhat higher speeds can be achieved. |  | ||||||
| 
 |  | ||||||
| 	All comments/fixes to Bjorn Ekwall (bj0rn@blox.se). |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	2. LICENSE. |  | ||||||
| 
 |  | ||||||
| 	This program is free software; you can redistribute it |  | ||||||
| 	and/or modify it under the terms of the GNU General Public |  | ||||||
| 	License as published by the Free Software Foundation; either |  | ||||||
| 	version 2, or (at your option) any later version. |  | ||||||
| 
 |  | ||||||
| 	This program is distributed in the hope that it will be |  | ||||||
| 	useful, but WITHOUT ANY WARRANTY; without even the implied |  | ||||||
| 	warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |  | ||||||
| 	PURPOSE. See the GNU General Public License for more |  | ||||||
| 	details. |  | ||||||
| 
 |  | ||||||
| 	You should have received a copy of the GNU General Public |  | ||||||
| 	License along with this program; if not, write to the Free |  | ||||||
| 	Software Foundation, Inc., 675 Mass Ave, Cambridge, MA |  | ||||||
| 	02139, USA. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	3. FILES IN THIS RELEASE. |  | ||||||
| 
 |  | ||||||
| 	README.DLINK  This file. |  | ||||||
| 	de600.c       The Source (may it be with You :-) for the DE-600 |  | ||||||
| 	de620.c       ditto for the DE-620 |  | ||||||
| 	de620.h       Macros for de620.c |  | ||||||
| 
 |  | ||||||
| 	If you are upgrading from the d-link tar release, there will |  | ||||||
| 	also be a "dlink-patches" file that will patch Linux 1.1.18: |  | ||||||
| 		linux/drivers/net/Makefile |  | ||||||
| 		linux/drivers/net/CONFIG |  | ||||||
| 		linux/drivers/net/MODULES |  | ||||||
| 		linux/drivers/net/Space.c |  | ||||||
| 		linux/config.in |  | ||||||
| 	Apply the patch by: |  | ||||||
| 	"cd /usr/src; patch -p0 < linux/drivers/net/dlink-patches" |  | ||||||
| 	The old source, "linux/drivers/net/d_link.c", can be removed. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	4. INSTALLATION. |  | ||||||
| 
 |  | ||||||
| 	o Get the latest net binaries, according to current net.wisdom. |  | ||||||
| 
 |  | ||||||
| 	o Read the NET-2 and Ethernet HOWTOs and modify your setup. |  | ||||||
| 
 |  | ||||||
| 	o If your parallel port has a strange address or irq, |  | ||||||
| 	  modify "linux/drivers/net/CONFIG" accordingly, or adjust |  | ||||||
| 	  the parameters in the "tuning" section in the sources. |  | ||||||
| 
 |  | ||||||
| 	If you are going to use the drivers as loadable modules, do _not_ |  | ||||||
| 	enable them while doing "make config", but instead make sure that |  | ||||||
| 	the drivers are included in "linux/drivers/net/MODULES". |  | ||||||
| 
 |  | ||||||
| 	If you are _not_ going to use the driver(s) as loadable modules, |  | ||||||
| 	but instead have them included in the kernel, remember to enable |  | ||||||
| 	the drivers while doing "make config". |  | ||||||
| 
 |  | ||||||
| 	o To include networking and DE600/DE620 support in your kernel: |  | ||||||
| 	  # cd /linux |  | ||||||
| 	  (as modules:) |  | ||||||
| 	  #  make config (answer yes on CONFIG_NET and CONFIG_INET) |  | ||||||
| 	  (else included in the kernel:) |  | ||||||
| 	  #  make config (answer yes on CONFIG _NET, _INET and _DE600 or _DE620) |  | ||||||
| 	  # make clean |  | ||||||
| 	  # make zImage (or whatever magic you usually do) |  | ||||||
| 
 |  | ||||||
| 	o I use lilo to boot multiple kernels, so that I at least |  | ||||||
| 	  can have one working kernel :-). If you do too, append |  | ||||||
| 	  these lines to /etc/lilo/config: |  | ||||||
| 
 |  | ||||||
| 		image = /linux/zImage |  | ||||||
| 		label = newlinux |  | ||||||
| 		root = /dev/hda2 (or whatever YOU have...) |  | ||||||
| 
 |  | ||||||
| 	  # /etc/lilo/install |  | ||||||
| 
 |  | ||||||
| 	o Do "sync" and reboot the new kernel with a D-Link |  | ||||||
| 	  DE-600/DE-620 pocket adapter connected. |  | ||||||
| 
 |  | ||||||
| 	o The adapter can be configured with ifconfig eth? |  | ||||||
| 	  where the actual number is decided by the kernel |  | ||||||
| 	  when the drivers are initialized. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	5. "PROBLEMS" AND TUNING, |  | ||||||
| 
 |  | ||||||
| 	o If you see error messages from the driver, and if the traffic |  | ||||||
| 	  stops on the adapter, try to do "ifconfig" and "route" once |  | ||||||
| 	  more, just as in "rc.inet1".  This should take care of most |  | ||||||
| 	  problems, including effects from power loss, or adapters that |  | ||||||
| 	  aren't connected to the printer port in some way or another. |  | ||||||
| 	  You can somewhat change the behaviour by enabling/disabling |  | ||||||
| 	  the macro  SHUTDOWN_WHEN_LOST  in the "tuning" section. |  | ||||||
| 	  For the DE-600 there is another macro, CHECK_LOST_DE600, |  | ||||||
| 	  that you might want to read about in the "tuning" section. |  | ||||||
| 
 |  | ||||||
| 	o Some machines have trouble handling the parallel port and |  | ||||||
| 	  the adapter at high speed. If you experience problems: |  | ||||||
| 
 |  | ||||||
| 	  DE-600: |  | ||||||
| 	  - The adapter is not recognized at boot, i.e. an Ethernet |  | ||||||
| 	    address of 00:80:c8:... is not shown, try to add another |  | ||||||
| 	      "; SLOW_DOWN_IO" |  | ||||||
| 	    at DE600_SLOW_DOWN in the "tuning" section. As a last resort, |  | ||||||
| 	    uncomment: "#define REALLY_SLOW_IO" (see <asm/io.h> for hints). |  | ||||||
| 
 |  | ||||||
| 	  - You experience "timeout" messages: first try to add another |  | ||||||
| 	      "; SLOW_DOWN_IO" |  | ||||||
| 	    at DE600_SLOW_DOWN in the "tuning" section, _then_ try to |  | ||||||
| 	    increase the value (original value: 5) at |  | ||||||
| 	    "if (tickssofar < 5)" near line 422. |  | ||||||
| 
 |  | ||||||
| 	  DE-620: |  | ||||||
| 	  - Your parallel port might be "sluggish".  To cater for |  | ||||||
| 	    this, there are the macros LOWSPEED and READ_DELAY/WRITE_DELAY |  | ||||||
| 	    in the "tuning" section. Your first step should be to enable |  | ||||||
| 	    LOWSPEED, and after that you can "tune" the XXX_DELAY values. |  | ||||||
| 
 |  | ||||||
| 	o If the adapter _is_ recognized at boot but you get messages |  | ||||||
| 	  about "Network Unreachable", then the problem is probably |  | ||||||
| 	  _not_ with the driver.  Check your net configuration instead |  | ||||||
| 	  (ifconfig and route) in "rc.inet1". |  | ||||||
| 
 |  | ||||||
| 	o There is some rudimentary support for debugging, look at |  | ||||||
| 	  the source. Use "-DDE600_DEBUG=3" or "-DDE620_DEBUG=3" |  | ||||||
| 	  when compiling, or include it in "linux/drivers/net/CONFIG". |  | ||||||
| 	  IF YOU HAVE PROBLEMS YOU CAN'T SOLVE: PLEASE COMPILE THE DRIVER |  | ||||||
| 	  WITH DEBUGGING ENABLED, AND SEND ME THE RESULTING OUTPUT! |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	6. USING THE DRIVERS WITH EARLIER RELEASES. |  | ||||||
| 
 |  | ||||||
| 	The later 1.1.X releases of the Linux kernel include some |  | ||||||
| 	changes in the networking layer (a.k.a. NET3). This affects |  | ||||||
| 	these drivers in a few places.  The hints that follow are |  | ||||||
| 	_not_ tested by me, since I don't have the disk space to keep |  | ||||||
| 	all releases on-line. |  | ||||||
| 	Known needed changes to date: |  | ||||||
| 	- release patchfile: some patches will fail, but they should |  | ||||||
| 	  be easy to apply "by hand", since they are trivial. |  | ||||||
| 	  (Space.c: d_link_init() is now called de600_probe()) |  | ||||||
| 	- de600.c: change  "mark_bh(NET_BH)" to  "mark_bh(INET_BH)". |  | ||||||
| 	- de620.c: (maybe) change the code around "netif_rx(skb);" to be |  | ||||||
| 		   similar to the code around "dev_rint(...)" in de600.c |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	7. ACKNOWLEDGMENTS. |  | ||||||
| 
 |  | ||||||
| 	These drivers wouldn't have been done without the base |  | ||||||
| 	(and support) from Ross Biro, and D-Link Systems Inc. |  | ||||||
| 	The driver relies upon GPL-ed source from D-Link Systems Inc. |  | ||||||
| 	and from Russel Nelson at Crynwr Software <nelson@crynwr.com>. |  | ||||||
| 
 |  | ||||||
| 	Additional input also from: |  | ||||||
| 	Donald Becker <becker@super.org>, Alan Cox <A.Cox@swansea.ac.uk> |  | ||||||
| 	and Fred N. van Kempen <waltje@uWalt.NL.Mugnet.ORG> |  | ||||||
| 
 |  | ||||||
| 	DE-600 alpha release primary victim^H^H^H^H^H^Htester: |  | ||||||
| 	- Erik Proper <erikp@cs.kun.nl>. |  | ||||||
| 	Good input also from several users, most notably |  | ||||||
| 	- Mark Burton <markb@ordern.demon.co.uk>. |  | ||||||
| 
 |  | ||||||
| 	DE-620 alpha release victims^H^H^H^H^H^H^Htesters: |  | ||||||
| 	- J. Joshua Kopper <kopper@rtsg.mot.com> |  | ||||||
| 	- Olav Kvittem <Olav.Kvittem@uninett.no> |  | ||||||
| 	- Germano Caronni <caronni@nessie.cs.id.ethz.ch> |  | ||||||
| 	- Jeremy Fitzhardinge <jeremy@suite.sw.oz.au> |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	Happy hacking! |  | ||||||
| 
 |  | ||||||
| 	Bjorn Ekwall == bj0rn@blox.se |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| Copyright (c) 2009-2011 QLogic Corporation | Copyright (c) 2009-2013 QLogic Corporation | ||||||
| QLogic Linux qlcnic NIC Driver | QLogic Linux qlcnic NIC Driver | ||||||
| 
 | 
 | ||||||
| You may modify and redistribute the device driver code under the | You may modify and redistribute the device driver code under the | ||||||
|  |  | ||||||
|  | @ -36,7 +36,6 @@ TABLE OF CONTENTS | ||||||
|     4.1 Compiling the Driver as a Loadable Module |     4.1 Compiling the Driver as a Loadable Module | ||||||
|     4.2 Compiling the driver to support memory mode |     4.2 Compiling the driver to support memory mode | ||||||
|     4.3 Compiling the driver to support Rx DMA  |     4.3 Compiling the driver to support Rx DMA  | ||||||
|     4.4 Compiling the Driver into the Kernel |  | ||||||
| 
 | 
 | ||||||
| 5.0 TESTING AND TROUBLESHOOTING | 5.0 TESTING AND TROUBLESHOOTING | ||||||
|     5.1 Known Defects and Limitations |     5.1 Known Defects and Limitations | ||||||
|  | @ -364,84 +363,6 @@ The compile-time optionality for DMA was removed in the 2.3 kernel | ||||||
| series.  DMA support is now unconditionally part of the driver.  It is | series.  DMA support is now unconditionally part of the driver.  It is | ||||||
| enabled by the 'use_dma=1' module option. | enabled by the 'use_dma=1' module option. | ||||||
| 
 | 
 | ||||||
| 4.4 COMPILING THE DRIVER INTO THE KERNEL |  | ||||||
| 
 |  | ||||||
| If your Linux distribution already has support for the cs89x0 driver |  | ||||||
| then simply copy the source file to the /usr/src/linux/drivers/net |  | ||||||
| directory to replace the original ones and run the make utility to |  | ||||||
| rebuild the kernel.  See Step 3 for rebuilding the kernel. |  | ||||||
| 
 |  | ||||||
| If your Linux does not include the cs89x0 driver, you need to edit three  |  | ||||||
| configuration files, copy the source file to the /usr/src/linux/drivers/net |  | ||||||
| directory, and then run the make utility to rebuild the kernel. |  | ||||||
| 
 |  | ||||||
| 1. Edit the following configuration files by adding the statements as |  | ||||||
| indicated.  (When possible, try to locate the added text to the section of the |  | ||||||
| file containing similar statements). |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| a.) In /usr/src/linux/drivers/net/Config.in, add: |  | ||||||
| 
 |  | ||||||
| tristate 'CS89x0 support' CONFIG_CS89x0 |  | ||||||
| 
 |  | ||||||
| Example: |  | ||||||
| 
 |  | ||||||
|      if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then |  | ||||||
|        tristate 'ICL EtherTeam 16i/32 support' CONFIG_ETH16I |  | ||||||
|      fi |  | ||||||
| 
 |  | ||||||
|      tristate 'CS89x0 support' CONFIG_CS89x0 |  | ||||||
| 
 |  | ||||||
|      tristate 'NE2000/NE1000 support' CONFIG_NE2000 |  | ||||||
|      if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then |  | ||||||
|        tristate 'NI5210 support' CONFIG_NI52 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| b.) In /usr/src/linux/drivers/net/Makefile, add the following lines:  |  | ||||||
| 
 |  | ||||||
| ifeq ($(CONFIG_CS89x0),y) |  | ||||||
| L_OBJS += cs89x0.o |  | ||||||
| else |  | ||||||
|   ifeq ($(CONFIG_CS89x0),m) |  | ||||||
|   M_OBJS += cs89x0.o |  | ||||||
|   endif |  | ||||||
| endif |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| c.) In /linux/drivers/net/Space.c file, add the line: |  | ||||||
| 
 |  | ||||||
| extern int cs89x0_probe(struct device *dev); |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Example: |  | ||||||
| 
 |  | ||||||
|  extern int ultra_probe(struct device *dev); |  | ||||||
|  extern int wd_probe(struct device *dev); |  | ||||||
|  extern int el2_probe(struct device *dev); |  | ||||||
| 
 |  | ||||||
|  extern int cs89x0_probe(struct device *dev); |  | ||||||
| 
 |  | ||||||
|  extern int ne_probe(struct device *dev); |  | ||||||
|  extern int hp_probe(struct device *dev); |  | ||||||
|  extern int hp_plus_probe(struct device *dev); |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Also add: |  | ||||||
| 
 |  | ||||||
|  #ifdef CONFIG_CS89x0 |  | ||||||
|  	{ cs89x0_probe,0 }, |  | ||||||
|  #endif |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 2.) Copy the driver source files (cs89x0.c and cs89x0.h)  |  | ||||||
| into the /usr/src/linux/drivers/net directory. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 3.) Go to /usr/src/linux directory and run 'make config' followed by 'make'  |  | ||||||
| (or make bzImage) to rebuild the kernel.  |  | ||||||
| 
 |  | ||||||
| 4.) Use the DOS 'setup' utility to disable plug and play on the NIC. |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| 5.0 TESTING AND TROUBLESHOOTING | 5.0 TESTING AND TROUBLESHOOTING | ||||||
| =============================================================================== | =============================================================================== | ||||||
|  |  | ||||||
|  | @ -1,92 +0,0 @@ | ||||||
| 
 |  | ||||||
| DE10x |  | ||||||
| ===== |  | ||||||
| 
 |  | ||||||
| Memory Addresses: |  | ||||||
| 
 |  | ||||||
| 	SW1	SW2	SW3	SW4 |  | ||||||
| 64K	on	on	on	on	d0000	dbfff |  | ||||||
| 	off	on	on	on	c0000	cbfff |  | ||||||
| 	off	off	on	on	e0000	ebfff |  | ||||||
| 
 |  | ||||||
| 32K	on	on	off	on	d8000	dbfff |  | ||||||
| 	off	on	off	on	c8000	cbfff |  | ||||||
| 	off	off	off	on	e8000	ebfff |  | ||||||
| 
 |  | ||||||
| DBR ROM	on	on			dc000	dffff |  | ||||||
| 	off	on			cc000	cffff |  | ||||||
| 	off	off			ec000	effff |  | ||||||
| 
 |  | ||||||
| Note  that the 2K  mode   is set  by   SW3/SW4  on/off or  off/off.  Address |  | ||||||
| assignment is through the RBSA register. |  | ||||||
| 
 |  | ||||||
| I/O Address: |  | ||||||
| 	SW5 |  | ||||||
| 0x300	on |  | ||||||
| 0x200	off |  | ||||||
| 
 |  | ||||||
| Remote Boot: |  | ||||||
| 	SW6 |  | ||||||
| Disable	on |  | ||||||
| Enable	off |  | ||||||
| 
 |  | ||||||
| Remote Boot Timeout: |  | ||||||
| 	SW7 |  | ||||||
| 2.5min	on |  | ||||||
| 30s	off |  | ||||||
| 
 |  | ||||||
| IRQ: |  | ||||||
| 	SW8	SW9	SW10	SW11	SW12 |  | ||||||
| 2	on	off	off	off	off |  | ||||||
| 3	off	on	off	off	off |  | ||||||
| 4	off	off	on	off	off |  | ||||||
| 5	off	off	off	on	off |  | ||||||
| 7	off	off	off	off	on |  | ||||||
| 
 |  | ||||||
| DE20x |  | ||||||
| ===== |  | ||||||
| 
 |  | ||||||
| Memory Size: |  | ||||||
| 
 |  | ||||||
| 	SW3	SW4 |  | ||||||
| 64K	on	on |  | ||||||
| 32K	off	on |  | ||||||
| 2K	on 	off |  | ||||||
| 2K	off	off |  | ||||||
| 
 |  | ||||||
| Start Addresses: |  | ||||||
| 
 |  | ||||||
| 	SW1	SW2	SW3	SW4 |  | ||||||
| 64K	on	on	on	on	c0000	cffff |  | ||||||
| 	on	off	on	on	d0000	dffff |  | ||||||
| 	off	on	on	on	e0000	effff |  | ||||||
| 
 |  | ||||||
| 32K	on	on	off	off	c8000	cffff |  | ||||||
| 	on	off	off	off	d8000	dffff |  | ||||||
| 	off	on	off	off	e8000	effff |  | ||||||
| 
 |  | ||||||
| Illegal	off	off	 -	 -	  -	  - |  | ||||||
| 
 |  | ||||||
| I/O Address: |  | ||||||
| 	SW5 |  | ||||||
| 0x300	on |  | ||||||
| 0x200	off |  | ||||||
| 
 |  | ||||||
| Remote Boot: |  | ||||||
| 	SW6 |  | ||||||
| Disable	on |  | ||||||
| Enable	off |  | ||||||
| 
 |  | ||||||
| Remote Boot Timeout: |  | ||||||
| 	SW7 |  | ||||||
| 2.5min	on |  | ||||||
| 30s	off |  | ||||||
| 
 |  | ||||||
| IRQ: |  | ||||||
| 	SW8	SW9	SW10	SW11	SW12 |  | ||||||
| 5	on	off	off	off	off |  | ||||||
| 9	off	on	off	off	off |  | ||||||
| 10	off	off	on	off	off |  | ||||||
| 11	off	off	off	on	off |  | ||||||
| 15	off	off	off	off	on |  | ||||||
| 
 |  | ||||||
|  | @ -1,46 +0,0 @@ | ||||||
| The EtherWORKS 3  driver in this distribution is  designed to  work with all |  | ||||||
| kernels   >  1.1.33   (approx)  and  includes  tools   in  the  'ewrk3tools' |  | ||||||
| subdirectory   to  allow  set   up of   the   card,  similar  to  the  MSDOS |  | ||||||
| 'NICSETUP.EXE' tools provided on  the DOS drivers  disk (type 'make' in that |  | ||||||
| subdirectory to make the tools). |  | ||||||
| 
 |  | ||||||
| The supported  cards are DE203,  DE204 and DE205.  All   other cards are NOT |  | ||||||
| supported - refer to 'depca.c' for running the LANCE based network cards and |  | ||||||
| 'de4x5.c'  for the  DIGITAL   Semiconductor PCI  chip  based  adapters  from |  | ||||||
| Digital. |  | ||||||
| 
 |  | ||||||
| The ability to load  this driver as a  loadable module has been included and |  | ||||||
| used extensively  during the driver  development (to save those  long reboot |  | ||||||
| sequences). To utilise this ability, you have to do 8 things: |  | ||||||
| 
 |  | ||||||
|     0) have a copy of the loadable modules code installed on your system. |  | ||||||
|     1) copy ewrk3.c from the  /linux/drivers/net directory to your favourite |  | ||||||
|     temporary directory. |  | ||||||
|     2) edit the  source code near  line 1898 to reflect  the I/O address and |  | ||||||
|     IRQ you're using. |  | ||||||
|     3) compile  ewrk3.c, but include -DMODULE in  the command line to ensure |  | ||||||
|     that the correct bits are compiled (see end of source code). |  | ||||||
|     4) if you are wanting to add a new  card, goto 5. Otherwise, recompile a |  | ||||||
|     kernel with the ewrk3 configuration turned off and reboot. |  | ||||||
|     5) insmod ewrk3.o |  | ||||||
|           [Alan Cox: Changed this so you can insmod ewrk3.o irq=x io=y] |  | ||||||
|           [Adam Kropelin: Multiple cards now supported by irq=x1,x2 io=y1,y2] |  | ||||||
|     6) run the net startup bits for your new eth?? interface manually  |  | ||||||
|     (usually /etc/rc.inet[12] at boot time).  |  | ||||||
|     7) enjoy! |  | ||||||
| 
 |  | ||||||
|     Note that autoprobing is not allowed in loadable modules - the system is |  | ||||||
|     already up and running and you're messing with interrupts. |  | ||||||
| 
 |  | ||||||
|     To unload a module, turn off the associated interface  |  | ||||||
|     'ifconfig eth?? down' then 'rmmod ewrk3'. |  | ||||||
| 
 |  | ||||||
| The performance we've  achieved so far  has been measured through the 'ttcp' |  | ||||||
| tool   at 975kB/s.  This  measures  the  total  TCP  stack performance which |  | ||||||
| includes the   card,  so don't  expect   to get   much nearer  the  1.25MB/s |  | ||||||
| theoretical Ethernet rate. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Enjoy! |  | ||||||
| 
 |  | ||||||
| Dave |  | ||||||
|  | @ -17,12 +17,12 @@ creating filters. | ||||||
| 
 | 
 | ||||||
| LSF is much simpler than BPF. One does not have to worry about | LSF is much simpler than BPF. One does not have to worry about | ||||||
| devices or anything like that. You simply create your filter | devices or anything like that. You simply create your filter | ||||||
| code, send it to the kernel via the SO_ATTACH_FILTER ioctl and | code, send it to the kernel via the SO_ATTACH_FILTER option and | ||||||
| if your filter code passes the kernel check on it, you then | if your filter code passes the kernel check on it, you then | ||||||
| immediately begin filtering data on that socket. | immediately begin filtering data on that socket. | ||||||
| 
 | 
 | ||||||
| You can also detach filters from your socket via the | You can also detach filters from your socket via the | ||||||
| SO_DETACH_FILTER ioctl. This will probably not be used much | SO_DETACH_FILTER option. This will probably not be used much | ||||||
| since when you close a socket that has a filter on it the | since when you close a socket that has a filter on it the | ||||||
| filter is automagically removed. The other less common case | filter is automagically removed. The other less common case | ||||||
| may be adding a different filter on the same socket where you had another | may be adding a different filter on the same socket where you had another | ||||||
|  | @ -31,12 +31,19 @@ the old one and placing your new one in its place, assuming your | ||||||
| filter has passed the checks, otherwise if it fails the old filter | filter has passed the checks, otherwise if it fails the old filter | ||||||
| will remain on that socket. | will remain on that socket. | ||||||
| 
 | 
 | ||||||
|  | SO_LOCK_FILTER option allows to lock the filter attached to a | ||||||
|  | socket. Once set, a filter cannot be removed or changed. This allows | ||||||
|  | one process to setup a socket, attach a filter, lock it then drop | ||||||
|  | privileges and be assured that the filter will be kept until the | ||||||
|  | socket is closed. | ||||||
|  | 
 | ||||||
| Examples | Examples | ||||||
| ======== | ======== | ||||||
| 
 | 
 | ||||||
| Ioctls- | Ioctls- | ||||||
| setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter)); | setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter)); | ||||||
| setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value)); | setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value)); | ||||||
|  | setsockopt(sockfd, SOL_SOCKET, SO_LOCK_FILTER, &value, sizeof(value)); | ||||||
| 
 | 
 | ||||||
| See the BSD bpf.4 manpage and the BSD Packet Filter paper written by | See the BSD bpf.4 manpage and the BSD Packet Filter paper written by | ||||||
| Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory. | Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory. | ||||||
|  |  | ||||||
|  | @ -26,6 +26,11 @@ route/max_size - INTEGER | ||||||
| 	Maximum number of routes allowed in the kernel.  Increase | 	Maximum number of routes allowed in the kernel.  Increase | ||||||
| 	this when using large numbers of interfaces and/or routes. | 	this when using large numbers of interfaces and/or routes. | ||||||
| 
 | 
 | ||||||
|  | neigh/default/gc_thresh1 - INTEGER | ||||||
|  | 	Minimum number of entries to keep.  Garbage collector will not | ||||||
|  | 	purge entries if there are fewer than this number. | ||||||
|  | 	Default: 256 | ||||||
|  | 
 | ||||||
| neigh/default/gc_thresh3 - INTEGER | neigh/default/gc_thresh3 - INTEGER | ||||||
| 	Maximum number of neighbor entries allowed.  Increase this | 	Maximum number of neighbor entries allowed.  Increase this | ||||||
| 	when using large numbers of interfaces and when communicating | 	when using large numbers of interfaces and when communicating | ||||||
|  | @ -125,17 +130,6 @@ somaxconn - INTEGER | ||||||
| 	Defaults to 128.  See also tcp_max_syn_backlog for additional tuning | 	Defaults to 128.  See also tcp_max_syn_backlog for additional tuning | ||||||
| 	for TCP sockets. | 	for TCP sockets. | ||||||
| 
 | 
 | ||||||
| tcp_abc - INTEGER |  | ||||||
| 	Controls Appropriate Byte Count (ABC) defined in RFC3465. |  | ||||||
| 	ABC is a way of increasing congestion window (cwnd) more slowly |  | ||||||
| 	in response to partial acknowledgments. |  | ||||||
| 	Possible values are: |  | ||||||
| 		0 increase cwnd once per acknowledgment (no ABC) |  | ||||||
| 		1 increase cwnd once per acknowledgment of full sized segment |  | ||||||
| 		2 allow increase cwnd by two if acknowledgment is |  | ||||||
| 		  of two segments to compensate for delayed acknowledgments. |  | ||||||
| 	Default: 0 (off) |  | ||||||
| 
 |  | ||||||
| tcp_abort_on_overflow - BOOLEAN | tcp_abort_on_overflow - BOOLEAN | ||||||
| 	If listening service is too slow to accept new connections, | 	If listening service is too slow to accept new connections, | ||||||
| 	reset them. Default state is FALSE. It means that if overflow | 	reset them. Default state is FALSE. It means that if overflow | ||||||
|  | @ -214,7 +208,8 @@ tcp_ecn - INTEGER | ||||||
| 	congestion before having to drop packets. | 	congestion before having to drop packets. | ||||||
| 	Possible values are: | 	Possible values are: | ||||||
| 		0 Disable ECN.  Neither initiate nor accept ECN. | 		0 Disable ECN.  Neither initiate nor accept ECN. | ||||||
| 		1 Always request ECN on outgoing connection attempts. | 		1 Enable ECN when requested by incoming connections and | ||||||
|  | 		  also request ECN on outgoing connection attempts. | ||||||
| 		2 Enable ECN when requested by incoming connections | 		2 Enable ECN when requested by incoming connections | ||||||
| 		  but do not request ECN on outgoing connections. | 		  but do not request ECN on outgoing connections. | ||||||
| 	Default: 2 | 	Default: 2 | ||||||
|  |  | ||||||
|  | @ -1,63 +0,0 @@ | ||||||
| Behaviour of Cards Under Multicast |  | ||||||
| ================================== |  | ||||||
| 
 |  | ||||||
| This is how they currently behave, not what the hardware can do--for example, |  | ||||||
| the Lance driver doesn't use its filter, even though the code for loading |  | ||||||
| it is in the DEC Lance-based driver. |  | ||||||
| 
 |  | ||||||
| The following are requirements for multicasting  |  | ||||||
| ----------------------------------------------- |  | ||||||
| AppleTalk	Multicast	hardware filtering not important but |  | ||||||
| 				 avoid cards only doing promisc |  | ||||||
| IP-Multicast	Multicast	hardware filters really help |  | ||||||
| IP-MRoute	AllMulti	hardware filters are of no help |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Board		Multicast	AllMulti	Promisc		Filter |  | ||||||
| ------------------------------------------------------------------------ |  | ||||||
| 3c501		YES		YES		YES		Software |  | ||||||
| 3c503		YES		YES		YES		Hardware |  | ||||||
| 3c505		YES		NO		YES		Hardware |  | ||||||
| 3c507		NO		NO		NO		N/A |  | ||||||
| 3c509		YES		YES		YES		Software |  | ||||||
| 3c59x		YES		YES		YES		Software |  | ||||||
| ac3200		YES		YES		YES		Hardware |  | ||||||
| apricot		YES		PROMISC		YES		Hardware |  | ||||||
| arcnet		NO		NO		NO		N/A |  | ||||||
| at1700		PROMISC		PROMISC		YES		Software |  | ||||||
| atp		PROMISC		PROMISC		YES		Software |  | ||||||
| cs89x0		YES		YES		YES		Software |  | ||||||
| de4x5		YES		YES		YES		Hardware |  | ||||||
| de600		NO		NO		NO		N/A |  | ||||||
| de620		PROMISC		PROMISC		YES		Software |  | ||||||
| depca		YES		PROMISC		YES		Hardware |  | ||||||
| dmfe		YES		YES		YES		Software(*) |  | ||||||
| e2100		YES		YES		YES		Hardware |  | ||||||
| eepro		YES		PROMISC		YES		Hardware |  | ||||||
| eexpress	NO		NO		NO		N/A |  | ||||||
| ewrk3		YES		PROMISC		YES		Hardware |  | ||||||
| hp-plus		YES		YES		YES		Hardware |  | ||||||
| hp		YES		YES		YES		Hardware |  | ||||||
| hp100		YES		YES		YES		Hardware |  | ||||||
| ibmtr		NO		NO		NO		N/A |  | ||||||
| ioc3-eth	YES		YES		YES		Hardware |  | ||||||
| lance		YES		YES		YES		Software(#) |  | ||||||
| ne		YES		YES		YES		Hardware |  | ||||||
| ni52		<------------------ Buggy ------------------> |  | ||||||
| ni65		YES		YES		YES		Software(#) |  | ||||||
| seeq		NO		NO		NO		N/A |  | ||||||
| sgiseek		<------------------ Buggy ------------------> |  | ||||||
| smc-ultra	YES		YES		YES		Hardware |  | ||||||
| sunlance	YES		YES		YES		Hardware |  | ||||||
| tulip		YES		YES		YES		Hardware |  | ||||||
| wavelan		YES		PROMISC		YES		Hardware |  | ||||||
| wd		YES		YES		YES		Hardware |  | ||||||
| xirc2ps_cs	YES		YES		YES		Hardware |  | ||||||
| znet		YES		YES		YES		Software |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| PROMISC = This multicast mode is in fact promiscuous mode. Avoid using |  | ||||||
| cards who go PROMISC on any multicast in a multicast kernel. |  | ||||||
| 
 |  | ||||||
| (#) = Hardware multicast support is not used yet. |  | ||||||
| (*) = Hardware support for Davicom 9132 chipset only. |  | ||||||
|  | @ -1,9 +1,10 @@ | ||||||
| 
 | 
 | ||||||
| started by Ingo Molnar <mingo@redhat.com>, 2001.09.17 | started by Ingo Molnar <mingo@redhat.com>, 2001.09.17 | ||||||
| 2.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003 | 2.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003 | ||||||
|  | IPv6 support by Cong Wang <xiyou.wangcong@gmail.com>, Jan 1 2013 | ||||||
| 
 | 
 | ||||||
| Please send bug reports to Matt Mackall <mpm@selenic.com> | Please send bug reports to Matt Mackall <mpm@selenic.com> | ||||||
| and Satyam Sharma <satyam.sharma@gmail.com> | Satyam Sharma <satyam.sharma@gmail.com>, and Cong Wang <xiyou.wangcong@gmail.com> | ||||||
| 
 | 
 | ||||||
| Introduction: | Introduction: | ||||||
| ============= | ============= | ||||||
|  | @ -41,6 +42,10 @@ Examples: | ||||||
| 
 | 
 | ||||||
|  insmod netconsole netconsole=@/,@10.0.0.2/ |  insmod netconsole netconsole=@/,@10.0.0.2/ | ||||||
| 
 | 
 | ||||||
|  |   or using IPv6 | ||||||
|  | 
 | ||||||
|  |  insmod netconsole netconsole=@/,@fd00:1:2:3::1/ | ||||||
|  | 
 | ||||||
| It also supports logging to multiple remote agents by specifying | It also supports logging to multiple remote agents by specifying | ||||||
| parameters for the multiple agents separated by semicolons and the | parameters for the multiple agents separated by semicolons and the | ||||||
| complete string enclosed in "quotes", thusly: | complete string enclosed in "quotes", thusly: | ||||||
|  |  | ||||||
							
								
								
									
										176
									
								
								Documentation/networking/nf_conntrack-sysctl.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								Documentation/networking/nf_conntrack-sysctl.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,176 @@ | ||||||
|  | /proc/sys/net/netfilter/nf_conntrack_* Variables: | ||||||
|  | 
 | ||||||
|  | nf_conntrack_acct - BOOLEAN | ||||||
|  | 	0 - disabled (default) | ||||||
|  | 	not 0 - enabled | ||||||
|  | 
 | ||||||
|  | 	Enable connection tracking flow accounting. 64-bit byte and packet | ||||||
|  | 	counters per flow are added. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_buckets - INTEGER (read-only) | ||||||
|  | 	Size of hash table. If not specified as parameter during module | ||||||
|  | 	loading, the default size is calculated by dividing total memory | ||||||
|  | 	by 16384 to determine the number of buckets but the hash table will | ||||||
|  | 	never have fewer than 32 or more than 16384 buckets. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_checksum - BOOLEAN | ||||||
|  | 	0 - disabled | ||||||
|  | 	not 0 - enabled (default) | ||||||
|  | 
 | ||||||
|  | 	Verify checksum of incoming packets. Packets with bad checksums are | ||||||
|  | 	in INVALID state. If this is enabled, such packets will not be | ||||||
|  | 	considered for connection tracking. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_count - INTEGER (read-only) | ||||||
|  | 	Number of currently allocated flow entries. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_events - BOOLEAN | ||||||
|  | 	0 - disabled | ||||||
|  | 	not 0 - enabled (default) | ||||||
|  | 
 | ||||||
|  | 	If this option is enabled, the connection tracking code will | ||||||
|  | 	provide userspace with connection tracking events via ctnetlink. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_events_retry_timeout - INTEGER (seconds) | ||||||
|  | 	default 15 | ||||||
|  | 
 | ||||||
|  | 	This option is only relevant when "reliable connection tracking | ||||||
|  | 	events" are used.  Normally, ctnetlink is "lossy", that is, | ||||||
|  | 	events are normally dropped when userspace listeners can't keep up. | ||||||
|  | 
 | ||||||
|  | 	Userspace can request "reliable event mode".  When this mode is | ||||||
|  | 	active, the conntrack will only be destroyed after the event was | ||||||
|  | 	delivered.  If event delivery fails, the kernel periodically | ||||||
|  | 	re-tries to send the event to userspace. | ||||||
|  | 
 | ||||||
|  | 	This is the maximum interval the kernel should use when re-trying | ||||||
|  | 	to deliver the destroy event. | ||||||
|  | 
 | ||||||
|  | 	A higher number means there will be fewer delivery retries and it | ||||||
|  | 	will take longer for a backlog to be processed. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_expect_max - INTEGER | ||||||
|  | 	Maximum size of expectation table.  Default value is | ||||||
|  | 	nf_conntrack_buckets / 256. Minimum is 1. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_frag6_high_thresh - INTEGER | ||||||
|  | 	default 262144 | ||||||
|  | 
 | ||||||
|  | 	Maximum memory used to reassemble IPv6 fragments.  When | ||||||
|  | 	nf_conntrack_frag6_high_thresh bytes of memory is allocated for this | ||||||
|  | 	purpose, the fragment handler will toss packets until | ||||||
|  | 	nf_conntrack_frag6_low_thresh is reached. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_frag6_low_thresh - INTEGER | ||||||
|  | 	default 196608 | ||||||
|  | 
 | ||||||
|  | 	See nf_conntrack_frag6_low_thresh | ||||||
|  | 
 | ||||||
|  | nf_conntrack_frag6_timeout - INTEGER (seconds) | ||||||
|  | 	default 60 | ||||||
|  | 
 | ||||||
|  | 	Time to keep an IPv6 fragment in memory. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_generic_timeout - INTEGER (seconds) | ||||||
|  | 	default 600 | ||||||
|  | 
 | ||||||
|  | 	Default for generic timeout.  This refers to layer 4 unknown/unsupported | ||||||
|  | 	protocols. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_helper - BOOLEAN | ||||||
|  | 	0 - disabled | ||||||
|  | 	not 0 - enabled (default) | ||||||
|  | 
 | ||||||
|  | 	Enable automatic conntrack helper assignment. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_icmp_timeout - INTEGER (seconds) | ||||||
|  | 	default 30 | ||||||
|  | 
 | ||||||
|  | 	Default for ICMP timeout. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_icmpv6_timeout - INTEGER (seconds) | ||||||
|  | 	default 30 | ||||||
|  | 
 | ||||||
|  | 	Default for ICMP6 timeout. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_log_invalid - INTEGER | ||||||
|  | 	0   - disable (default) | ||||||
|  | 	1   - log ICMP packets | ||||||
|  | 	6   - log TCP packets | ||||||
|  | 	17  - log UDP packets | ||||||
|  | 	33  - log DCCP packets | ||||||
|  | 	41  - log ICMPv6 packets | ||||||
|  | 	136 - log UDPLITE packets | ||||||
|  | 	255 - log packets of any protocol | ||||||
|  | 
 | ||||||
|  | 	Log invalid packets of a type specified by value. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_max - INTEGER | ||||||
|  | 	Size of connection tracking table.  Default value is | ||||||
|  | 	nf_conntrack_buckets value * 4. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_be_liberal - BOOLEAN | ||||||
|  | 	0 - disabled (default) | ||||||
|  | 	not 0 - enabled | ||||||
|  | 
 | ||||||
|  | 	Be conservative in what you do, be liberal in what you accept from others. | ||||||
|  | 	If it's non-zero, we mark only out of window RST segments as INVALID. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_loose - BOOLEAN | ||||||
|  | 	0 - disabled | ||||||
|  | 	not 0 - enabled (default) | ||||||
|  | 
 | ||||||
|  | 	If it is set to zero, we disable picking up already established | ||||||
|  | 	connections. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_max_retrans - INTEGER | ||||||
|  | 	default 3 | ||||||
|  | 
 | ||||||
|  | 	Maximum number of packets that can be retransmitted without | ||||||
|  | 	received an (acceptable) ACK from the destination. If this number | ||||||
|  | 	is reached, a shorter timer will be started. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_close - INTEGER (seconds) | ||||||
|  | 	default 10 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_close_wait - INTEGER (seconds) | ||||||
|  | 	default 60 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_established - INTEGER (seconds) | ||||||
|  | 	default 432000 (5 days) | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_fin_wait - INTEGER (seconds) | ||||||
|  | 	default 120 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_last_ack - INTEGER (seconds) | ||||||
|  | 	default 30 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_max_retrans - INTEGER (seconds) | ||||||
|  | 	default 300 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_syn_recv - INTEGER (seconds) | ||||||
|  | 	default 60 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_syn_sent - INTEGER (seconds) | ||||||
|  | 	default 120 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_time_wait - INTEGER (seconds) | ||||||
|  | 	default 120 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_tcp_timeout_unacknowledged - INTEGER (seconds) | ||||||
|  | 	default 300 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_timestamp - BOOLEAN | ||||||
|  | 	0 - disabled (default) | ||||||
|  | 	not 0 - enabled | ||||||
|  | 
 | ||||||
|  | 	Enable connection tracking flow timestamping. | ||||||
|  | 
 | ||||||
|  | nf_conntrack_udp_timeout - INTEGER (seconds) | ||||||
|  | 	default 30 | ||||||
|  | 
 | ||||||
|  | nf_conntrack_udp_timeout_stream2 - INTEGER (seconds) | ||||||
|  | 	default 180 | ||||||
|  | 
 | ||||||
|  | 	This extended timeout will be used in case there is an UDP stream | ||||||
|  | 	detected. | ||||||
|  | @ -88,6 +88,10 @@ set this flag. On netif_carrier_off(), the scheduler stops sending | ||||||
| packets. The name 'carrier' and the inversion are historical, think of | packets. The name 'carrier' and the inversion are historical, think of | ||||||
| it as lower layer. | it as lower layer. | ||||||
| 
 | 
 | ||||||
|  | Note that for certain kind of soft-devices, which are not managing any | ||||||
|  | real hardware, there is possible to set this bit from userpsace. | ||||||
|  | One should use TVL IFLA_CARRIER to do so. | ||||||
|  | 
 | ||||||
| netif_carrier_ok() can be used to query that bit. | netif_carrier_ok() can be used to query that bit. | ||||||
| 
 | 
 | ||||||
| __LINK_STATE_DORMANT, maps to IFF_DORMANT: | __LINK_STATE_DORMANT, maps to IFF_DORMANT: | ||||||
|  |  | ||||||
|  | @ -103,7 +103,7 @@ Letting the PHY Abstraction Layer do Everything | ||||||
|   |   | ||||||
|  Now, to connect, just call this function: |  Now, to connect, just call this function: | ||||||
|   |   | ||||||
|    phydev = phy_connect(dev, phy_name, &adjust_link, flags, interface); |    phydev = phy_connect(dev, phy_name, &adjust_link, interface); | ||||||
| 
 | 
 | ||||||
|  phydev is a pointer to the phy_device structure which represents the PHY.  If |  phydev is a pointer to the phy_device structure which represents the PHY.  If | ||||||
|  phy_connect is successful, it will return the pointer.  dev, here, is the |  phy_connect is successful, it will return the pointer.  dev, here, is the | ||||||
|  | @ -113,7 +113,9 @@ Letting the PHY Abstraction Layer do Everything | ||||||
|  current state, though the PHY will not yet be truly operational at this |  current state, though the PHY will not yet be truly operational at this | ||||||
|  point. |  point. | ||||||
| 
 | 
 | ||||||
|  flags is a u32 which can optionally contain phy-specific flags. |  PHY-specific flags should be set in phydev->dev_flags prior to the call | ||||||
|  |  to phy_connect() such that the underlying PHY driver can check for flags | ||||||
|  |  and perform specific operations based on them. | ||||||
|  This is useful if the system has put hardware restrictions on |  This is useful if the system has put hardware restrictions on | ||||||
|  the PHY/controller, of which the PHY needs to be aware. |  the PHY/controller, of which the PHY needs to be aware. | ||||||
| 
 | 
 | ||||||
|  | @ -185,11 +187,10 @@ Doing it all yourself | ||||||
|    start, or disables then frees them for stop. |    start, or disables then frees them for stop. | ||||||
| 
 | 
 | ||||||
|  struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, |  struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, | ||||||
| 		 u32 flags, phy_interface_t interface); | 		 phy_interface_t interface); | ||||||
| 
 | 
 | ||||||
|    Attaches a network device to a particular PHY, binding the PHY to a generic |    Attaches a network device to a particular PHY, binding the PHY to a generic | ||||||
|    driver if none was found during bus initialization.  Passes in |    driver if none was found during bus initialization. | ||||||
|    any phy-specific flags as needed. |  | ||||||
| 
 | 
 | ||||||
|  int phy_start_aneg(struct phy_device *phydev); |  int phy_start_aneg(struct phy_device *phydev); | ||||||
|     |     | ||||||
|  |  | ||||||
|  | @ -17,10 +17,12 @@ HCI | ||||||
| HCI registers as an nfc device with NFC Core. Requests coming from userspace are | HCI registers as an nfc device with NFC Core. Requests coming from userspace are | ||||||
| routed through netlink sockets to NFC Core and then to HCI. From this point, | routed through netlink sockets to NFC Core and then to HCI. From this point, | ||||||
| they are translated in a sequence of HCI commands sent to the HCI layer in the | they are translated in a sequence of HCI commands sent to the HCI layer in the | ||||||
| host controller (the chip). The sending context blocks while waiting for the | host controller (the chip). Commands can be executed synchronously (the sending | ||||||
| response to arrive. | context blocks waiting for response) or asynchronously (the response is returned | ||||||
|  | from HCI Rx context). | ||||||
| HCI events can also be received from the host controller. They will be handled | HCI events can also be received from the host controller. They will be handled | ||||||
| and a translation will be forwarded to NFC Core as needed. | and a translation will be forwarded to NFC Core as needed. There are hooks to | ||||||
|  | let the HCI driver handle proprietary events or override standard behavior. | ||||||
| HCI uses 2 execution contexts: | HCI uses 2 execution contexts: | ||||||
| - one for executing commands : nfc_hci_msg_tx_work(). Only one command | - one for executing commands : nfc_hci_msg_tx_work(). Only one command | ||||||
| can be executing at any given moment. | can be executing at any given moment. | ||||||
|  | @ -33,6 +35,8 @@ The Session initialization is an HCI standard which must unfortunately | ||||||
| support proprietary gates. This is the reason why the driver will pass a list | support proprietary gates. This is the reason why the driver will pass a list | ||||||
| of proprietary gates that must be part of the session. HCI will ensure all | of proprietary gates that must be part of the session. HCI will ensure all | ||||||
| those gates have pipes connected when the hci device is set up. | those gates have pipes connected when the hci device is set up. | ||||||
|  | In case the chip supports pre-opened gates and pseudo-static pipes, the driver | ||||||
|  | can pass that information to HCI core. | ||||||
| 
 | 
 | ||||||
| HCI Gates and Pipes | HCI Gates and Pipes | ||||||
| ------------------- | ------------------- | ||||||
|  | @ -46,6 +50,13 @@ without knowing the pipe connected to it. | ||||||
| Driver interface | Driver interface | ||||||
| ---------------- | ---------------- | ||||||
| 
 | 
 | ||||||
|  | A driver is generally written in two parts : the physical link management and | ||||||
|  | the HCI management. This makes it easier to maintain a driver for a chip that | ||||||
|  | can be connected using various phy (i2c, spi, ...) | ||||||
|  | 
 | ||||||
|  | HCI Management | ||||||
|  | -------------- | ||||||
|  | 
 | ||||||
| A driver would normally register itself with HCI and provide the following | A driver would normally register itself with HCI and provide the following | ||||||
| entry points: | entry points: | ||||||
| 
 | 
 | ||||||
|  | @ -53,58 +64,113 @@ struct nfc_hci_ops { | ||||||
| 	int (*open)(struct nfc_hci_dev *hdev); | 	int (*open)(struct nfc_hci_dev *hdev); | ||||||
| 	void (*close)(struct nfc_hci_dev *hdev); | 	void (*close)(struct nfc_hci_dev *hdev); | ||||||
| 	int (*hci_ready) (struct nfc_hci_dev *hdev); | 	int (*hci_ready) (struct nfc_hci_dev *hdev); | ||||||
| 	int (*xmit)(struct nfc_hci_dev *hdev, struct sk_buff *skb); | 	int (*xmit) (struct nfc_hci_dev *hdev, struct sk_buff *skb); | ||||||
| 	int (*start_poll)(struct nfc_hci_dev *hdev, u32 protocols); | 	int (*start_poll) (struct nfc_hci_dev *hdev, | ||||||
| 	int (*target_from_gate)(struct nfc_hci_dev *hdev, u8 gate, | 			   u32 im_protocols, u32 tm_protocols); | ||||||
|  | 	int (*dep_link_up)(struct nfc_hci_dev *hdev, struct nfc_target *target, | ||||||
|  | 			   u8 comm_mode, u8 *gb, size_t gb_len); | ||||||
|  | 	int (*dep_link_down)(struct nfc_hci_dev *hdev); | ||||||
|  | 	int (*target_from_gate) (struct nfc_hci_dev *hdev, u8 gate, | ||||||
| 				 struct nfc_target *target); | 				 struct nfc_target *target); | ||||||
| 	int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate, | 	int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate, | ||||||
| 					   struct nfc_target *target); | 					   struct nfc_target *target); | ||||||
| 	int (*data_exchange) (struct nfc_hci_dev *hdev, | 	int (*im_transceive) (struct nfc_hci_dev *hdev, | ||||||
| 			      struct nfc_target *target, | 			      struct nfc_target *target, struct sk_buff *skb, | ||||||
| 			      struct sk_buff *skb, struct sk_buff **res_skb); | 			      data_exchange_cb_t cb, void *cb_context); | ||||||
|  | 	int (*tm_send)(struct nfc_hci_dev *hdev, struct sk_buff *skb); | ||||||
| 	int (*check_presence)(struct nfc_hci_dev *hdev, | 	int (*check_presence)(struct nfc_hci_dev *hdev, | ||||||
| 			      struct nfc_target *target); | 			      struct nfc_target *target); | ||||||
|  | 	int (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event, | ||||||
|  | 			      struct sk_buff *skb); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| - open() and close() shall turn the hardware on and off. | - open() and close() shall turn the hardware on and off. | ||||||
| - hci_ready() is an optional entry point that is called right after the hci | - hci_ready() is an optional entry point that is called right after the hci | ||||||
| session has been set up. The driver can use it to do additional initialization | session has been set up. The driver can use it to do additional initialization | ||||||
| that must be performed using HCI commands. | that must be performed using HCI commands. | ||||||
| - xmit() shall simply write a frame to the chip. | - xmit() shall simply write a frame to the physical link. | ||||||
| - start_poll() is an optional entrypoint that shall set the hardware in polling | - start_poll() is an optional entrypoint that shall set the hardware in polling | ||||||
| mode. This must be implemented only if the hardware uses proprietary gates or a | mode. This must be implemented only if the hardware uses proprietary gates or a | ||||||
| mechanism slightly different from the HCI standard. | mechanism slightly different from the HCI standard. | ||||||
|  | - dep_link_up() is called after a p2p target has been detected, to finish | ||||||
|  | the p2p connection setup with hardware parameters that need to be passed back | ||||||
|  | to nfc core. | ||||||
|  | - dep_link_down() is called to bring the p2p link down. | ||||||
| - target_from_gate() is an optional entrypoint to return the nfc protocols | - target_from_gate() is an optional entrypoint to return the nfc protocols | ||||||
| corresponding to a proprietary gate. | corresponding to a proprietary gate. | ||||||
| - complete_target_discovered() is an optional entry point to let the driver | - complete_target_discovered() is an optional entry point to let the driver | ||||||
| perform additional proprietary processing necessary to auto activate the | perform additional proprietary processing necessary to auto activate the | ||||||
| discovered target. | discovered target. | ||||||
| - data_exchange() must be implemented by the driver if proprietary HCI commands | - im_transceive() must be implemented by the driver if proprietary HCI commands | ||||||
| are required to send data to the tag. Some tag types will require custom | are required to send data to the tag. Some tag types will require custom | ||||||
| commands, others can be written to using the standard HCI commands. The driver | commands, others can be written to using the standard HCI commands. The driver | ||||||
| can check the tag type and either do proprietary processing, or return 1 to ask | can check the tag type and either do proprietary processing, or return 1 to ask | ||||||
| for standard processing. | for standard processing. The data exchange command itself must be sent | ||||||
|  | asynchronously. | ||||||
|  | - tm_send() is called to send data in the case of a p2p connection | ||||||
| - check_presence() is an optional entry point that will be called regularly | - check_presence() is an optional entry point that will be called regularly | ||||||
| by the core to check that an activated tag is still in the field. If this is | by the core to check that an activated tag is still in the field. If this is | ||||||
| not implemented, the core will not be able to push tag_lost events to the user | not implemented, the core will not be able to push tag_lost events to the user | ||||||
| space | space | ||||||
|  | - event_received() is called to handle an event coming from the chip. Driver | ||||||
|  | can handle the event or return 1 to let HCI attempt standard processing. | ||||||
| 
 | 
 | ||||||
| On the rx path, the driver is responsible to push incoming HCP frames to HCI | On the rx path, the driver is responsible to push incoming HCP frames to HCI | ||||||
| using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling | using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling | ||||||
| This must be done from a context that can sleep. | This must be done from a context that can sleep. | ||||||
| 
 | 
 | ||||||
| SHDLC | PHY Management | ||||||
| ----- | -------------- | ||||||
| 
 | 
 | ||||||
| Most chips use shdlc to ensure integrity and delivery ordering of the HCP | The physical link (i2c, ...) management is defined by the following struture: | ||||||
| frames between the host controller (the chip) and hosts (entities connected | 
 | ||||||
| to the chip, like the cpu). In order to simplify writing the driver, an shdlc | struct nfc_phy_ops { | ||||||
| layer is available for use by the driver. | 	int (*write)(void *dev_id, struct sk_buff *skb); | ||||||
| When used, the driver actually registers with shdlc, and shdlc will register | 	int (*enable)(void *dev_id); | ||||||
| with HCI. HCI sees shdlc as the driver and thus send its HCP frames | 	void (*disable)(void *dev_id); | ||||||
| through shdlc->xmit. | }; | ||||||
| SHDLC adds a new execution context (nfc_shdlc_sm_work()) to run its state | 
 | ||||||
| machine and handle both its rx and tx path. | enable(): turn the phy on (power on), make it ready to transfer data | ||||||
|  | disable(): turn the phy off | ||||||
|  | write(): Send a data frame to the chip. Note that to enable higher | ||||||
|  | layers such as an llc to store the frame for re-emission, this function must | ||||||
|  | not alter the skb. It must also not return a positive result (return 0 for | ||||||
|  | success, negative for failure). | ||||||
|  | 
 | ||||||
|  | Data coming from the chip shall be sent directly to nfc_hci_recv_frame(). | ||||||
|  | 
 | ||||||
|  | LLC | ||||||
|  | --- | ||||||
|  | 
 | ||||||
|  | Communication between the CPU and the chip often requires some link layer | ||||||
|  | protocol. Those are isolated as modules managed by the HCI layer. There are | ||||||
|  | currently two modules : nop (raw transfert) and shdlc. | ||||||
|  | A new llc must implement the following functions: | ||||||
|  | 
 | ||||||
|  | struct nfc_llc_ops { | ||||||
|  | 	void *(*init) (struct nfc_hci_dev *hdev, xmit_to_drv_t xmit_to_drv, | ||||||
|  | 		       rcv_to_hci_t rcv_to_hci, int tx_headroom, | ||||||
|  | 		       int tx_tailroom, int *rx_headroom, int *rx_tailroom, | ||||||
|  | 		       llc_failure_t llc_failure); | ||||||
|  | 	void (*deinit) (struct nfc_llc *llc); | ||||||
|  | 	int (*start) (struct nfc_llc *llc); | ||||||
|  | 	int (*stop) (struct nfc_llc *llc); | ||||||
|  | 	void (*rcv_from_drv) (struct nfc_llc *llc, struct sk_buff *skb); | ||||||
|  | 	int (*xmit_from_hci) (struct nfc_llc *llc, struct sk_buff *skb); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | - init() : allocate and init your private storage | ||||||
|  | - deinit() : cleanup | ||||||
|  | - start() : establish the logical connection | ||||||
|  | - stop () : terminate the logical connection | ||||||
|  | - rcv_from_drv() : handle data coming from the chip, going to HCI | ||||||
|  | - xmit_from_hci() : handle data sent by HCI, going to the chip | ||||||
|  | 
 | ||||||
|  | The llc must be registered with nfc before it can be used. Do that by | ||||||
|  | calling nfc_llc_register(const char *name, struct nfc_llc_ops *ops); | ||||||
|  | 
 | ||||||
|  | Again, note that the llc does not handle the physical link. It is thus very | ||||||
|  | easy to mix any physical link with any llc for a given chip driver. | ||||||
| 
 | 
 | ||||||
| Included Drivers | Included Drivers | ||||||
| ---------------- | ---------------- | ||||||
|  | @ -117,10 +183,12 @@ Execution Contexts | ||||||
| 
 | 
 | ||||||
| The execution contexts are the following: | The execution contexts are the following: | ||||||
| - IRQ handler (IRQH): | - IRQ handler (IRQH): | ||||||
| fast, cannot sleep. stores incoming frames into an shdlc rx queue | fast, cannot sleep. sends incoming frames to HCI where they are passed to | ||||||
|  | the current llc. In case of shdlc, the frame is queued in shdlc rx queue. | ||||||
| 
 | 
 | ||||||
| - SHDLC State Machine worker (SMW) | - SHDLC State Machine worker (SMW) | ||||||
| handles shdlc rx & tx queues. Dispatches HCI cmd responses. | Only when llc_shdlc is used: handles shdlc rx & tx queues. | ||||||
|  | Dispatches HCI cmd responses. | ||||||
| 
 | 
 | ||||||
| - HCI Tx Cmd worker (MSGTXWQ) | - HCI Tx Cmd worker (MSGTXWQ) | ||||||
| Serializes execution of HCI commands. Completes execution in case of response | Serializes execution of HCI commands. Completes execution in case of response | ||||||
|  | @ -166,6 +234,15 @@ waiting command execution. Response processing involves invoking the completion | ||||||
| callback that was provided by nfc_hci_msg_tx_work() when it sent the command. | callback that was provided by nfc_hci_msg_tx_work() when it sent the command. | ||||||
| The completion callback will then wake the syscall context. | The completion callback will then wake the syscall context. | ||||||
| 
 | 
 | ||||||
|  | It is also possible to execute the command asynchronously using this API: | ||||||
|  | 
 | ||||||
|  | static int nfc_hci_execute_cmd_async(struct nfc_hci_dev *hdev, u8 pipe, u8 cmd, | ||||||
|  | 			       const u8 *param, size_t param_len, | ||||||
|  | 			       data_exchange_cb_t cb, void *cb_context) | ||||||
|  | 
 | ||||||
|  | The workflow is the same, except that the API call returns immediately, and | ||||||
|  | the callback will be called with the result from the SMW context. | ||||||
|  | 
 | ||||||
| Workflow receiving an HCI event or command | Workflow receiving an HCI event or command | ||||||
| ------------------------------------------ | ------------------------------------------ | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,32 +1,15 @@ | ||||||
| Kernel driver for the NXP Semiconductors PN544 Near Field | Kernel driver for the NXP Semiconductors PN544 Near Field | ||||||
| Communication chip | Communication chip | ||||||
| 
 | 
 | ||||||
| Author: Jari Vanhala |  | ||||||
| Contact: Matti Aaltonen (matti.j.aaltonen at nokia.com) |  | ||||||
| 
 |  | ||||||
| General | General | ||||||
| ------- | ------- | ||||||
| 
 | 
 | ||||||
| The PN544 is an integrated transmission module for contactless | The PN544 is an integrated transmission module for contactless | ||||||
| communication. The driver goes under drives/nfc/ and is compiled as a | communication. The driver goes under drives/nfc/ and is compiled as a | ||||||
| module named "pn544". It registers a misc device and creates a device | module named "pn544". | ||||||
| file named "/dev/pn544". |  | ||||||
| 
 | 
 | ||||||
| Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C. | Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C. | ||||||
| 
 | 
 | ||||||
| The Interface |  | ||||||
| ------------- |  | ||||||
| 
 |  | ||||||
| The driver offers a sysfs interface for a hardware test and an IOCTL |  | ||||||
| interface for selecting between two operating modes. There are read, |  | ||||||
| write and poll functions for transferring messages. The two operating |  | ||||||
| modes are the normal (HCI) mode and the firmware update mode. |  | ||||||
| 
 |  | ||||||
| PN544 is controlled by sending messages from the userspace to the |  | ||||||
| chip. The main function of the driver is just to pass those messages |  | ||||||
| without caring about the message content. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Protocols | Protocols | ||||||
| --------- | --------- | ||||||
| 
 | 
 | ||||||
|  | @ -47,68 +30,3 @@ and third (LSB) bytes of the message. The maximum FW message length is | ||||||
| 
 | 
 | ||||||
| For the ETSI HCI specification see | For the ETSI HCI specification see | ||||||
| http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx | http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx | ||||||
| 
 |  | ||||||
| The Hardware Test |  | ||||||
| ----------------- |  | ||||||
| 
 |  | ||||||
| The idea of the test is that it can performed by reading from the |  | ||||||
| corresponding sysfs file. The test is implemented in the board file |  | ||||||
| and it should test that PN544 can be put into the firmware update |  | ||||||
| mode. If the test is not implemented the sysfs file does not get |  | ||||||
| created. |  | ||||||
| 
 |  | ||||||
| Example: |  | ||||||
| > cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test |  | ||||||
| 1 |  | ||||||
| 
 |  | ||||||
| Normal Operation |  | ||||||
| ---------------- |  | ||||||
| 
 |  | ||||||
| PN544 is powered up when the device file is opened, otherwise it's |  | ||||||
| turned off. Only one instance can use the device at a time. |  | ||||||
| 
 |  | ||||||
| Userspace applications control PN544 with HCI messages. The hardware |  | ||||||
| sends an interrupt when data is available for reading. Data is |  | ||||||
| physically read when the read function is called by a userspace |  | ||||||
| application. Poll() checks the read interrupt state. Configuration and |  | ||||||
| self testing are also done from the userspace using read and write. |  | ||||||
| 
 |  | ||||||
| Example platform data: |  | ||||||
| 
 |  | ||||||
| static int rx71_pn544_nfc_request_resources(struct i2c_client *client) |  | ||||||
| { |  | ||||||
| 	/* Get and setup the HW resources for the device */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void rx71_pn544_nfc_free_resources(void) |  | ||||||
| { |  | ||||||
| 	/* Release the HW resources */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void rx71_pn544_nfc_enable(int fw) |  | ||||||
| { |  | ||||||
| 	/* Turn the device on */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static int rx71_pn544_nfc_test(void) |  | ||||||
| { |  | ||||||
| 	/* |  | ||||||
| 	 * Put the device into the FW update mode |  | ||||||
| 	 * and then back to the normal mode. |  | ||||||
| 	 * Check the behavior and return one on success, |  | ||||||
| 	 * zero on failure. |  | ||||||
| 	 */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void rx71_pn544_nfc_disable(void) |  | ||||||
| { |  | ||||||
| 	/* turn the power off */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static struct pn544_nfc_platform_data rx71_nfc_data = { |  | ||||||
| 	.request_resources = rx71_pn544_nfc_request_resources, |  | ||||||
| 	.free_resources = rx71_pn544_nfc_free_resources, |  | ||||||
| 	.enable = rx71_pn544_nfc_enable, |  | ||||||
| 	.test = rx71_pn544_nfc_test, |  | ||||||
| 	.disable = rx71_pn544_nfc_disable, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  | @ -972,6 +972,18 @@ pinmux core. | ||||||
| Pin control requests from drivers | Pin control requests from drivers | ||||||
| ================================= | ================================= | ||||||
| 
 | 
 | ||||||
|  | When a device driver is about to probe the device core will automatically | ||||||
|  | attempt to issue pinctrl_get_select_default() on these devices. | ||||||
|  | This way driver writers do not need to add any of the boilerplate code | ||||||
|  | of the type found below. However when doing fine-grained state selection | ||||||
|  | and not using the "default" state, you may have to do some device driver | ||||||
|  | handling of the pinctrl handles and states. | ||||||
|  | 
 | ||||||
|  | So if you just want to put the pins for a certain device into the default | ||||||
|  | state and be done with it, there is nothing you need to do besides | ||||||
|  | providing the proper mapping table. The device core will take care of | ||||||
|  | the rest. | ||||||
|  | 
 | ||||||
| Generally it is discouraged to let individual drivers get and enable pin | Generally it is discouraged to let individual drivers get and enable pin | ||||||
| control. So if possible, handle the pin control in platform code or some other | control. So if possible, handle the pin control in platform code or some other | ||||||
| place where you have access to all the affected struct device * pointers. In | place where you have access to all the affected struct device * pointers. In | ||||||
|  | @ -1097,9 +1109,9 @@ situations that can be electrically unpleasant, you will certainly want to | ||||||
| mux in and bias pins in a certain way before the GPIO subsystems starts to | mux in and bias pins in a certain way before the GPIO subsystems starts to | ||||||
| deal with them. | deal with them. | ||||||
| 
 | 
 | ||||||
| The above can be hidden: using pinctrl hogs, the pin control driver may be | The above can be hidden: using the device core, the pinctrl core may be | ||||||
| setting up the config and muxing for the pins when it is probing, | setting up the config and muxing for the pins right before the device is | ||||||
| nevertheless orthogonal to the GPIO subsystem. | probing, nevertheless orthogonal to the GPIO subsystem. | ||||||
| 
 | 
 | ||||||
| But there are also situations where it makes sense for the GPIO subsystem | But there are also situations where it makes sense for the GPIO subsystem | ||||||
| to communicate directly with with the pinctrl subsystem, using the latter | to communicate directly with with the pinctrl subsystem, using the latter | ||||||
|  |  | ||||||
|  | @ -223,3 +223,8 @@ since they ask the freezer to skip freezing this task, since it is anyway | ||||||
| only after the entire suspend/hibernation sequence is complete. | only after the entire suspend/hibernation sequence is complete. | ||||||
| So, to summarize, use [un]lock_system_sleep() instead of directly using | So, to summarize, use [un]lock_system_sleep() instead of directly using | ||||||
| mutex_[un]lock(&pm_mutex). That would prevent freezing failures. | mutex_[un]lock(&pm_mutex). That would prevent freezing failures. | ||||||
|  | 
 | ||||||
|  | V. Miscellaneous | ||||||
|  | /sys/power/pm_freeze_timeout controls how long it will cost at most to freeze | ||||||
|  | all user space processes or all freezable kernel threads, in unit of millisecond. | ||||||
|  | The default value is 20000, with range of unsigned integer. | ||||||
|  |  | ||||||
|  | @ -426,6 +426,10 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h: | ||||||
|       'power.runtime_error' is set or 'power.disable_depth' is greater than |       'power.runtime_error' is set or 'power.disable_depth' is greater than | ||||||
|       zero) |       zero) | ||||||
| 
 | 
 | ||||||
|  |   bool pm_runtime_active(struct device *dev); | ||||||
|  |     - return true if the device's runtime PM status is 'active' or its | ||||||
|  |       'power.disable_depth' field is not equal to zero, or false otherwise | ||||||
|  | 
 | ||||||
|   bool pm_runtime_suspended(struct device *dev); |   bool pm_runtime_suspended(struct device *dev); | ||||||
|     - return true if the device's runtime PM status is 'suspended' and its |     - return true if the device's runtime PM status is 'suspended' and its | ||||||
|       'power.disable_depth' field is equal to zero, or false otherwise |       'power.disable_depth' field is equal to zero, or false otherwise | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ Cf. include/trace/events/power.h for the events definitions. | ||||||
| 1. Power state switch events | 1. Power state switch events | ||||||
| ============================ | ============================ | ||||||
| 
 | 
 | ||||||
| 1.1 New trace API | 1.1 Trace API | ||||||
| ----------------- | ----------------- | ||||||
| 
 | 
 | ||||||
| A 'cpu' event class gathers the CPU-related events: cpuidle and | A 'cpu' event class gathers the CPU-related events: cpuidle and | ||||||
|  | @ -41,31 +41,6 @@ The event which has 'state=4294967295' in the trace is very important to the use | ||||||
| space tools which are using it to detect the end of the current state, and so to | space tools which are using it to detect the end of the current state, and so to | ||||||
| correctly draw the states diagrams and to calculate accurate statistics etc. | correctly draw the states diagrams and to calculate accurate statistics etc. | ||||||
| 
 | 
 | ||||||
| 1.2 DEPRECATED trace API |  | ||||||
| ------------------------ |  | ||||||
| 
 |  | ||||||
| A new Kconfig option CONFIG_EVENT_POWER_TRACING_DEPRECATED with the default value of |  | ||||||
| 'y' has been created. This allows the legacy trace power API to be used conjointly |  | ||||||
| with the new trace API. |  | ||||||
| The Kconfig option, the old trace API (in include/trace/events/power.h) and the |  | ||||||
| old trace points will disappear in a future release (namely 2.6.41). |  | ||||||
| 
 |  | ||||||
| power_start		"type=%lu state=%lu cpu_id=%lu" |  | ||||||
| power_frequency		"type=%lu state=%lu cpu_id=%lu" |  | ||||||
| power_end		"cpu_id=%lu" |  | ||||||
| 
 |  | ||||||
| The 'type' parameter takes one of those macros: |  | ||||||
|  . POWER_NONE	= 0, |  | ||||||
|  . POWER_CSTATE	= 1,	/* C-State */ |  | ||||||
|  . POWER_PSTATE	= 2,	/* Frequency change or DVFS */ |  | ||||||
| 
 |  | ||||||
| The 'state' parameter is set depending on the type: |  | ||||||
|  . Target C-state for type=POWER_CSTATE, |  | ||||||
|  . Target frequency for type=POWER_PSTATE, |  | ||||||
| 
 |  | ||||||
| power_end is used to indicate the exit of a state, corresponding to the latest |  | ||||||
| power_start event. |  | ||||||
| 
 |  | ||||||
| 2. Clocks events | 2. Clocks events | ||||||
| ================ | ================ | ||||||
| The clock events are used for clock enable/disable and for | The clock events are used for clock enable/disable and for | ||||||
|  |  | ||||||
|  | @ -1842,6 +1842,89 @@ an error. | ||||||
|  # cat buffer_size_kb |  # cat buffer_size_kb | ||||||
| 85 | 85 | ||||||
| 
 | 
 | ||||||
|  | Snapshot | ||||||
|  | -------- | ||||||
|  | CONFIG_TRACER_SNAPSHOT makes a generic snapshot feature | ||||||
|  | available to all non latency tracers. (Latency tracers which | ||||||
|  | record max latency, such as "irqsoff" or "wakeup", can't use | ||||||
|  | this feature, since those are already using the snapshot | ||||||
|  | mechanism internally.) | ||||||
|  | 
 | ||||||
|  | Snapshot preserves a current trace buffer at a particular point | ||||||
|  | in time without stopping tracing. Ftrace swaps the current | ||||||
|  | buffer with a spare buffer, and tracing continues in the new | ||||||
|  | current (=previous spare) buffer. | ||||||
|  | 
 | ||||||
|  | The following debugfs files in "tracing" are related to this | ||||||
|  | feature: | ||||||
|  | 
 | ||||||
|  |   snapshot: | ||||||
|  | 
 | ||||||
|  | 	This is used to take a snapshot and to read the output | ||||||
|  | 	of the snapshot. Echo 1 into this file to allocate a | ||||||
|  | 	spare buffer and to take a snapshot (swap), then read | ||||||
|  | 	the snapshot from this file in the same format as | ||||||
|  | 	"trace" (described above in the section "The File | ||||||
|  | 	System"). Both reads snapshot and tracing are executable | ||||||
|  | 	in parallel. When the spare buffer is allocated, echoing | ||||||
|  | 	0 frees it, and echoing else (positive) values clear the | ||||||
|  | 	snapshot contents. | ||||||
|  | 	More details are shown in the table below. | ||||||
|  | 
 | ||||||
|  | 	status\input  |     0      |     1      |    else    | | ||||||
|  | 	--------------+------------+------------+------------+ | ||||||
|  | 	not allocated |(do nothing)| alloc+swap |   EINVAL   | | ||||||
|  | 	--------------+------------+------------+------------+ | ||||||
|  | 	allocated     |    free    |    swap    |   clear    | | ||||||
|  | 	--------------+------------+------------+------------+ | ||||||
|  | 
 | ||||||
|  | Here is an example of using the snapshot feature. | ||||||
|  | 
 | ||||||
|  |  # echo 1 > events/sched/enable | ||||||
|  |  # echo 1 > snapshot | ||||||
|  |  # cat snapshot | ||||||
|  | # tracer: nop | ||||||
|  | # | ||||||
|  | # entries-in-buffer/entries-written: 71/71   #P:8 | ||||||
|  | # | ||||||
|  | #                              _-----=> irqs-off | ||||||
|  | #                             / _----=> need-resched | ||||||
|  | #                            | / _---=> hardirq/softirq | ||||||
|  | #                            || / _--=> preempt-depth | ||||||
|  | #                            ||| /     delay | ||||||
|  | #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION | ||||||
|  | #              | |       |   ||||       |         | | ||||||
|  |           <idle>-0     [005] d...  2440.603828: sched_switch: prev_comm=swapper/5 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2242 next_prio=120 | ||||||
|  |            sleep-2242  [005] d...  2440.603846: sched_switch: prev_comm=snapshot-test-2 prev_pid=2242 prev_prio=120 prev_state=R ==> next_comm=kworker/5:1 next_pid=60 next_prio=120 | ||||||
|  | [...] | ||||||
|  |           <idle>-0     [002] d...  2440.707230: sched_switch: prev_comm=swapper/2 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2229 next_prio=120 | ||||||
|  | 
 | ||||||
|  |  # cat trace | ||||||
|  | # tracer: nop | ||||||
|  | # | ||||||
|  | # entries-in-buffer/entries-written: 77/77   #P:8 | ||||||
|  | # | ||||||
|  | #                              _-----=> irqs-off | ||||||
|  | #                             / _----=> need-resched | ||||||
|  | #                            | / _---=> hardirq/softirq | ||||||
|  | #                            || / _--=> preempt-depth | ||||||
|  | #                            ||| /     delay | ||||||
|  | #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION | ||||||
|  | #              | |       |   ||||       |         | | ||||||
|  |           <idle>-0     [007] d...  2440.707395: sched_switch: prev_comm=swapper/7 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2243 next_prio=120 | ||||||
|  |  snapshot-test-2-2229  [002] d...  2440.707438: sched_switch: prev_comm=snapshot-test-2 prev_pid=2229 prev_prio=120 prev_state=S ==> next_comm=swapper/2 next_pid=0 next_prio=120 | ||||||
|  | [...] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | If you try to use this snapshot feature when current tracer is | ||||||
|  | one of the latency tracers, you will get the following results. | ||||||
|  | 
 | ||||||
|  |  # echo wakeup > current_tracer | ||||||
|  |  # echo 1 > snapshot | ||||||
|  | bash: echo: write error: Device or resource busy | ||||||
|  |  # cat snapshot | ||||||
|  | cat: snapshot: Device or resource busy | ||||||
|  | 
 | ||||||
| ----------- | ----------- | ||||||
| 
 | 
 | ||||||
| More details can be found in the source code, in the | More details can be found in the source code, in the | ||||||
|  |  | ||||||
|  | @ -293,7 +293,7 @@ kvm_run' (see below). | ||||||
| 4.11 KVM_GET_REGS | 4.11 KVM_GET_REGS | ||||||
| 
 | 
 | ||||||
| Capability: basic | Capability: basic | ||||||
| Architectures: all | Architectures: all except ARM | ||||||
| Type: vcpu ioctl | Type: vcpu ioctl | ||||||
| Parameters: struct kvm_regs (out) | Parameters: struct kvm_regs (out) | ||||||
| Returns: 0 on success, -1 on error | Returns: 0 on success, -1 on error | ||||||
|  | @ -314,7 +314,7 @@ struct kvm_regs { | ||||||
| 4.12 KVM_SET_REGS | 4.12 KVM_SET_REGS | ||||||
| 
 | 
 | ||||||
| Capability: basic | Capability: basic | ||||||
| Architectures: all | Architectures: all except ARM | ||||||
| Type: vcpu ioctl | Type: vcpu ioctl | ||||||
| Parameters: struct kvm_regs (in) | Parameters: struct kvm_regs (in) | ||||||
| Returns: 0 on success, -1 on error | Returns: 0 on success, -1 on error | ||||||
|  | @ -600,7 +600,7 @@ struct kvm_fpu { | ||||||
| 4.24 KVM_CREATE_IRQCHIP | 4.24 KVM_CREATE_IRQCHIP | ||||||
| 
 | 
 | ||||||
| Capability: KVM_CAP_IRQCHIP | Capability: KVM_CAP_IRQCHIP | ||||||
| Architectures: x86, ia64 | Architectures: x86, ia64, ARM | ||||||
| Type: vm ioctl | Type: vm ioctl | ||||||
| Parameters: none | Parameters: none | ||||||
| Returns: 0 on success, -1 on error | Returns: 0 on success, -1 on error | ||||||
|  | @ -608,21 +608,39 @@ Returns: 0 on success, -1 on error | ||||||
| Creates an interrupt controller model in the kernel.  On x86, creates a virtual | Creates an interrupt controller model in the kernel.  On x86, creates a virtual | ||||||
| ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a | ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a | ||||||
| local APIC.  IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 | local APIC.  IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 | ||||||
| only go to the IOAPIC.  On ia64, a IOSAPIC is created. | only go to the IOAPIC.  On ia64, a IOSAPIC is created. On ARM, a GIC is | ||||||
|  | created. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 4.25 KVM_IRQ_LINE | 4.25 KVM_IRQ_LINE | ||||||
| 
 | 
 | ||||||
| Capability: KVM_CAP_IRQCHIP | Capability: KVM_CAP_IRQCHIP | ||||||
| Architectures: x86, ia64 | Architectures: x86, ia64, arm | ||||||
| Type: vm ioctl | Type: vm ioctl | ||||||
| Parameters: struct kvm_irq_level | Parameters: struct kvm_irq_level | ||||||
| Returns: 0 on success, -1 on error | Returns: 0 on success, -1 on error | ||||||
| 
 | 
 | ||||||
| Sets the level of a GSI input to the interrupt controller model in the kernel. | Sets the level of a GSI input to the interrupt controller model in the kernel. | ||||||
| Requires that an interrupt controller model has been previously created with | On some architectures it is required that an interrupt controller model has | ||||||
| KVM_CREATE_IRQCHIP.  Note that edge-triggered interrupts require the level | been previously created with KVM_CREATE_IRQCHIP.  Note that edge-triggered | ||||||
| to be set to 1 and then back to 0. | interrupts require the level to be set to 1 and then back to 0. | ||||||
|  | 
 | ||||||
|  | ARM can signal an interrupt either at the CPU level, or at the in-kernel irqchip | ||||||
|  | (GIC), and for in-kernel irqchip can tell the GIC to use PPIs designated for | ||||||
|  | specific cpus.  The irq field is interpreted like this: | ||||||
|  | 
 | ||||||
|  |   bits:  | 31 ... 24 | 23  ... 16 | 15    ...    0 | | ||||||
|  |   field: | irq_type  | vcpu_index |     irq_id     | | ||||||
|  | 
 | ||||||
|  | The irq_type field has the following values: | ||||||
|  | - irq_type[0]: out-of-kernel GIC: irq_id 0 is IRQ, irq_id 1 is FIQ | ||||||
|  | - irq_type[1]: in-kernel GIC: SPI, irq_id between 32 and 1019 (incl.) | ||||||
|  |                (the vcpu_index field is ignored) | ||||||
|  | - irq_type[2]: in-kernel GIC: PPI, irq_id between 16 and 31 (incl.) | ||||||
|  | 
 | ||||||
|  | (The irq_id field thus corresponds nicely to the IRQ ID in the ARM GIC specs) | ||||||
|  | 
 | ||||||
|  | In both cases, level is used to raise/lower the line. | ||||||
| 
 | 
 | ||||||
| struct kvm_irq_level { | struct kvm_irq_level { | ||||||
| 	union { | 	union { | ||||||
|  | @ -1775,6 +1793,27 @@ registers, find a list below: | ||||||
|   PPC   | KVM_REG_PPC_VPA_DTL   | 128 |   PPC   | KVM_REG_PPC_VPA_DTL   | 128 | ||||||
|   PPC   | KVM_REG_PPC_EPCR	| 32 |   PPC   | KVM_REG_PPC_EPCR	| 32 | ||||||
| 
 | 
 | ||||||
|  | ARM registers are mapped using the lower 32 bits.  The upper 16 of that | ||||||
|  | is the register group type, or coprocessor number: | ||||||
|  | 
 | ||||||
|  | ARM core registers have the following id bit patterns: | ||||||
|  |   0x4002 0000 0010 <index into the kvm_regs struct:16> | ||||||
|  | 
 | ||||||
|  | ARM 32-bit CP15 registers have the following id bit patterns: | ||||||
|  |   0x4002 0000 000F <zero:1> <crn:4> <crm:4> <opc1:4> <opc2:3> | ||||||
|  | 
 | ||||||
|  | ARM 64-bit CP15 registers have the following id bit patterns: | ||||||
|  |   0x4003 0000 000F <zero:1> <zero:4> <crm:4> <opc1:4> <zero:3> | ||||||
|  | 
 | ||||||
|  | ARM CCSIDR registers are demultiplexed by CSSELR value: | ||||||
|  |   0x4002 0000 0011 00 <csselr:8> | ||||||
|  | 
 | ||||||
|  | ARM 32-bit VFP control registers have the following id bit patterns: | ||||||
|  |   0x4002 0000 0012 1 <regno:12> | ||||||
|  | 
 | ||||||
|  | ARM 64-bit FP registers have the following id bit patterns: | ||||||
|  |   0x4002 0000 0012 0 <regno:12> | ||||||
|  | 
 | ||||||
| 4.69 KVM_GET_ONE_REG | 4.69 KVM_GET_ONE_REG | ||||||
| 
 | 
 | ||||||
| Capability: KVM_CAP_ONE_REG | Capability: KVM_CAP_ONE_REG | ||||||
|  | @ -2127,6 +2166,50 @@ written, then `n_invalid' invalid entries, invalidating any previously | ||||||
| valid entries found. | valid entries found. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 4.77 KVM_ARM_VCPU_INIT | ||||||
|  | 
 | ||||||
|  | Capability: basic | ||||||
|  | Architectures: arm | ||||||
|  | Type: vcpu ioctl | ||||||
|  | Parameters: struct struct kvm_vcpu_init (in) | ||||||
|  | Returns: 0 on success; -1 on error | ||||||
|  | Errors: | ||||||
|  |   EINVAL:    the target is unknown, or the combination of features is invalid. | ||||||
|  |   ENOENT:    a features bit specified is unknown. | ||||||
|  | 
 | ||||||
|  | This tells KVM what type of CPU to present to the guest, and what | ||||||
|  | optional features it should have.  This will cause a reset of the cpu | ||||||
|  | registers to their initial values.  If this is not called, KVM_RUN will | ||||||
|  | return ENOEXEC for that vcpu. | ||||||
|  | 
 | ||||||
|  | Note that because some registers reflect machine topology, all vcpus | ||||||
|  | should be created before this ioctl is invoked. | ||||||
|  | 
 | ||||||
|  | Possible features: | ||||||
|  | 	- KVM_ARM_VCPU_POWER_OFF: Starts the CPU in a power-off state. | ||||||
|  | 	  Depends on KVM_CAP_ARM_PSCI. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 4.78 KVM_GET_REG_LIST | ||||||
|  | 
 | ||||||
|  | Capability: basic | ||||||
|  | Architectures: arm | ||||||
|  | Type: vcpu ioctl | ||||||
|  | Parameters: struct kvm_reg_list (in/out) | ||||||
|  | Returns: 0 on success; -1 on error | ||||||
|  | Errors: | ||||||
|  |   E2BIG:     the reg index list is too big to fit in the array specified by | ||||||
|  |              the user (the number required will be written into n). | ||||||
|  | 
 | ||||||
|  | struct kvm_reg_list { | ||||||
|  | 	__u64 n; /* number of registers in reg[] */ | ||||||
|  | 	__u64 reg[0]; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | This ioctl returns the guest registers that are supported for the | ||||||
|  | KVM_GET_ONE_REG/KVM_SET_ONE_REG calls. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 5. The kvm_run structure | 5. The kvm_run structure | ||||||
| ------------------------ | ------------------------ | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -390,6 +390,7 @@ Protocol:	2.00+ | ||||||
| 	F  Special		(0xFF = undefined) | 	F  Special		(0xFF = undefined) | ||||||
|        10  Reserved |        10  Reserved | ||||||
|        11  Minimal Linux Bootloader <http://sebastian-plotz.blogspot.de> |        11  Minimal Linux Bootloader <http://sebastian-plotz.blogspot.de> | ||||||
|  |        12  OVMF UEFI virtualization stack | ||||||
| 
 | 
 | ||||||
|   Please contact <hpa@zytor.com> if you need a bootloader ID |   Please contact <hpa@zytor.com> if you need a bootloader ID | ||||||
|   value assigned. |   value assigned. | ||||||
|  |  | ||||||
|  | @ -122,7 +122,7 @@ SLAB_C_MAGIC          0x4f17a36d  kmem_cache        mm/slab.c | ||||||
| COW_MAGIC             0x4f4f4f4d  cow_header_v1     arch/um/drivers/ubd_user.c | COW_MAGIC             0x4f4f4f4d  cow_header_v1     arch/um/drivers/ubd_user.c | ||||||
| I810_CARD_MAGIC       0x5072696E  i810_card         sound/oss/i810_audio.c | I810_CARD_MAGIC       0x5072696E  i810_card         sound/oss/i810_audio.c | ||||||
| TRIDENT_CARD_MAGIC    0x5072696E  trident_card      sound/oss/trident.c | TRIDENT_CARD_MAGIC    0x5072696E  trident_card      sound/oss/trident.c | ||||||
| ROUTER_MAGIC          0x524d4157  wan_device        include/linux/wanrouter.h | ROUTER_MAGIC          0x524d4157  wan_device        [in wanrouter.h pre 3.9] | ||||||
| SCC_MAGIC             0x52696368  gs_port           drivers/char/scc.h | SCC_MAGIC             0x52696368  gs_port           drivers/char/scc.h | ||||||
| SAVEKMSG_MAGIC1       0x53415645  savekmsg          arch/*/amiga/config.c | SAVEKMSG_MAGIC1       0x53415645  savekmsg          arch/*/amiga/config.c | ||||||
| GDA_MAGIC             0x58464552  gda               arch/mips/include/asm/sn/gda.h | GDA_MAGIC             0x58464552  gda               arch/mips/include/asm/sn/gda.h | ||||||
|  |  | ||||||
							
								
								
									
										77
									
								
								MAINTAINERS
									
										
									
									
									
								
							
							
						
						
									
										77
									
								
								MAINTAINERS
									
										
									
									
									
								
							|  | @ -670,8 +670,16 @@ F:	drivers/input/serio/ambakmi.* | ||||||
| F:	include/linux/amba/kmi.h | F:	include/linux/amba/kmi.h | ||||||
| 
 | 
 | ||||||
| ARM PRIMECELL MMCI PL180/1 DRIVER | ARM PRIMECELL MMCI PL180/1 DRIVER | ||||||
| S:	Orphan | M:	Russell King <linux@arm.linux.org.uk> | ||||||
|  | S:	Maintained | ||||||
| F:	drivers/mmc/host/mmci.* | F:	drivers/mmc/host/mmci.* | ||||||
|  | F:	include/linux/amba/mmci.h | ||||||
|  | 
 | ||||||
|  | ARM PRIMECELL UART PL010 AND PL011 DRIVERS | ||||||
|  | M:	Russell King <linux@arm.linux.org.uk> | ||||||
|  | S:	Maintained | ||||||
|  | F:	drivers/tty/serial/amba-pl01*.c | ||||||
|  | F:	include/linux/amba/serial.h | ||||||
| 
 | 
 | ||||||
| ARM PRIMECELL BUS SUPPORT | ARM PRIMECELL BUS SUPPORT | ||||||
| M:	Russell King <linux@arm.linux.org.uk> | M:	Russell King <linux@arm.linux.org.uk> | ||||||
|  | @ -1303,7 +1311,7 @@ F:	include/linux/dmaengine.h | ||||||
| F:	include/linux/async_tx.h | F:	include/linux/async_tx.h | ||||||
| 
 | 
 | ||||||
| AT24 EEPROM DRIVER | AT24 EEPROM DRIVER | ||||||
| M:	Wolfram Sang <w.sang@pengutronix.de> | M:	Wolfram Sang <wsa@the-dreams.de> | ||||||
| L:	linux-i2c@vger.kernel.org | L:	linux-i2c@vger.kernel.org | ||||||
| S:	Maintained | S:	Maintained | ||||||
| F:	drivers/misc/eeprom/at24.c | F:	drivers/misc/eeprom/at24.c | ||||||
|  | @ -2140,10 +2148,10 @@ S:	Maintained | ||||||
| F:	tools/power/cpupower | F:	tools/power/cpupower | ||||||
| 
 | 
 | ||||||
| CPUSETS | CPUSETS | ||||||
| M:	Paul Menage <paul@paulmenage.org> | M:	Li Zefan <lizefan@huawei.com> | ||||||
| W:	http://www.bullopensource.org/cpuset/ | W:	http://www.bullopensource.org/cpuset/ | ||||||
| W:	http://oss.sgi.com/projects/cpusets/ | W:	http://oss.sgi.com/projects/cpusets/ | ||||||
| S:	Supported | S:	Maintained | ||||||
| F:	Documentation/cgroups/cpusets.txt | F:	Documentation/cgroups/cpusets.txt | ||||||
| F:	include/linux/cpuset.h | F:	include/linux/cpuset.h | ||||||
| F:	kernel/cpuset.c | F:	kernel/cpuset.c | ||||||
|  | @ -2974,11 +2982,6 @@ S:	Maintained | ||||||
| F:	include/linux/netfilter_bridge/ | F:	include/linux/netfilter_bridge/ | ||||||
| F:	net/bridge/ | F:	net/bridge/ | ||||||
| 
 | 
 | ||||||
| ETHERTEAM 16I DRIVER |  | ||||||
| M:	Mika Kuoppala <miku@iki.fi> |  | ||||||
| S:	Maintained |  | ||||||
| F:	drivers/net/ethernet/fujitsu/eth16i.c |  | ||||||
| 
 |  | ||||||
| EXT2 FILE SYSTEM | EXT2 FILE SYSTEM | ||||||
| M:	Jan Kara <jack@suse.cz> | M:	Jan Kara <jack@suse.cz> | ||||||
| L:	linux-ext4@vger.kernel.org | L:	linux-ext4@vger.kernel.org | ||||||
|  | @ -3757,12 +3760,11 @@ S:	Maintained | ||||||
| F:	drivers/i2c/i2c-stub.c | F:	drivers/i2c/i2c-stub.c | ||||||
| 
 | 
 | ||||||
| I2C SUBSYSTEM | I2C SUBSYSTEM | ||||||
| M:	Wolfram Sang <w.sang@pengutronix.de> | M:	Wolfram Sang <wsa@the-dreams.de> | ||||||
| M:	"Ben Dooks (embedded platforms)" <ben-linux@fluff.org> | M:	"Ben Dooks (embedded platforms)" <ben-linux@fluff.org> | ||||||
| L:	linux-i2c@vger.kernel.org | L:	linux-i2c@vger.kernel.org | ||||||
| W:	http://i2c.wiki.kernel.org/ | W:	http://i2c.wiki.kernel.org/ | ||||||
| T:	quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/ | T:	git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git | ||||||
| T:	git git://git.pengutronix.de/git/wsa/linux.git |  | ||||||
| S:	Maintained | S:	Maintained | ||||||
| F:	Documentation/i2c/ | F:	Documentation/i2c/ | ||||||
| F:	drivers/i2c/ | F:	drivers/i2c/ | ||||||
|  | @ -4481,6 +4483,15 @@ F:	arch/s390/include/asm/kvm* | ||||||
| F:	arch/s390/kvm/ | F:	arch/s390/kvm/ | ||||||
| F:	drivers/s390/kvm/ | F:	drivers/s390/kvm/ | ||||||
| 
 | 
 | ||||||
|  | KERNEL VIRTUAL MACHINE (KVM) FOR ARM | ||||||
|  | M:	Christoffer Dall <cdall@cs.columbia.edu> | ||||||
|  | L:	kvmarm@lists.cs.columbia.edu | ||||||
|  | W:	http://systems.cs.columbia.edu/projects/kvm-arm | ||||||
|  | S:	Maintained | ||||||
|  | F:	arch/arm/include/uapi/asm/kvm* | ||||||
|  | F:	arch/arm/include/asm/kvm* | ||||||
|  | F:	arch/arm/kvm/ | ||||||
|  | 
 | ||||||
| KEXEC | KEXEC | ||||||
| M:	Eric Biederman <ebiederm@xmission.com> | M:	Eric Biederman <ebiederm@xmission.com> | ||||||
| W:	http://kernel.org/pub/linux/utils/kernel/kexec/ | W:	http://kernel.org/pub/linux/utils/kernel/kexec/ | ||||||
|  | @ -5369,13 +5380,6 @@ F:	include/linux/sunrpc/ | ||||||
| F:	include/uapi/linux/nfs* | F:	include/uapi/linux/nfs* | ||||||
| F:	include/uapi/linux/sunrpc/ | F:	include/uapi/linux/sunrpc/ | ||||||
| 
 | 
 | ||||||
| NI5010 NETWORK DRIVER |  | ||||||
| M:	Jan-Pascal van Best <janpascal@vanbest.org> |  | ||||||
| M:	Andreas Mohr <andi@lisas.de> |  | ||||||
| L:	netdev@vger.kernel.org |  | ||||||
| S:	Maintained |  | ||||||
| F:	drivers/net/ethernet/racal/ni5010.* |  | ||||||
| 
 |  | ||||||
| NILFS2 FILESYSTEM | NILFS2 FILESYSTEM | ||||||
| M:	KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp> | M:	KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp> | ||||||
| L:	linux-nilfs@vger.kernel.org | L:	linux-nilfs@vger.kernel.org | ||||||
|  | @ -5778,15 +5782,6 @@ L:	linux-i2c@vger.kernel.org | ||||||
| S:	Maintained | S:	Maintained | ||||||
| F:	drivers/i2c/muxes/i2c-mux-pca9541.c | F:	drivers/i2c/muxes/i2c-mux-pca9541.c | ||||||
| 
 | 
 | ||||||
| PCA9564/PCA9665 I2C BUS DRIVER |  | ||||||
| M:	Wolfram Sang <w.sang@pengutronix.de> |  | ||||||
| L:	linux-i2c@vger.kernel.org |  | ||||||
| S:	Maintained |  | ||||||
| F:	drivers/i2c/algos/i2c-algo-pca.c |  | ||||||
| F:	drivers/i2c/busses/i2c-pca-* |  | ||||||
| F:	include/linux/i2c-algo-pca.h |  | ||||||
| F:	include/linux/i2c-pca-platform.h |  | ||||||
| 
 |  | ||||||
| PCDP - PRIMARY CONSOLE AND DEBUG PORT | PCDP - PRIMARY CONSOLE AND DEBUG PORT | ||||||
| M:	Khalid Aziz <khalid@gonehiking.org> | M:	Khalid Aziz <khalid@gonehiking.org> | ||||||
| S:	Maintained | S:	Maintained | ||||||
|  | @ -6598,7 +6593,7 @@ F:	drivers/dma/dw_dmac_regs.h | ||||||
| F:	drivers/dma/dw_dmac.c | F:	drivers/dma/dw_dmac.c | ||||||
| 
 | 
 | ||||||
| TIMEKEEPING, NTP | TIMEKEEPING, NTP | ||||||
| M:	John Stultz <johnstul@us.ibm.com> | M:	John Stultz <john.stultz@linaro.org> | ||||||
| M:	Thomas Gleixner <tglx@linutronix.de> | M:	Thomas Gleixner <tglx@linutronix.de> | ||||||
| T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core | T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core | ||||||
| S:	Supported | S:	Supported | ||||||
|  | @ -7178,6 +7173,7 @@ F:	drivers/clk/spear/ | ||||||
| 
 | 
 | ||||||
| SPI SUBSYSTEM | SPI SUBSYSTEM | ||||||
| M:	Grant Likely <grant.likely@secretlab.ca> | M:	Grant Likely <grant.likely@secretlab.ca> | ||||||
|  | M:	Mark Brown <broonie@opensource.wolfsonmicro.com> | ||||||
| L:	spi-devel-general@lists.sourceforge.net | L:	spi-devel-general@lists.sourceforge.net | ||||||
| Q:	http://patchwork.kernel.org/project/spi-devel-general/list/ | Q:	http://patchwork.kernel.org/project/spi-devel-general/list/ | ||||||
| T:	git git://git.secretlab.ca/git/linux-2.6.git | T:	git git://git.secretlab.ca/git/linux-2.6.git | ||||||
|  | @ -7536,13 +7532,18 @@ S:	Maintained | ||||||
| F:	drivers/media/tuners/tea5767.* | F:	drivers/media/tuners/tea5767.* | ||||||
| 
 | 
 | ||||||
| TEAM DRIVER | TEAM DRIVER | ||||||
| M:	Jiri Pirko <jpirko@redhat.com> | M:	Jiri Pirko <jiri@resnulli.us> | ||||||
| L:	netdev@vger.kernel.org | L:	netdev@vger.kernel.org | ||||||
| S:	Supported | S:	Supported | ||||||
| F:	drivers/net/team/ | F:	drivers/net/team/ | ||||||
| F:	include/linux/if_team.h | F:	include/linux/if_team.h | ||||||
| F:	include/uapi/linux/if_team.h | F:	include/uapi/linux/if_team.h | ||||||
| 
 | 
 | ||||||
|  | TECHNOLOGIC SYSTEMS TS-5500 PLATFORM SUPPORT | ||||||
|  | M:	Savoir-faire Linux Inc. <kernel@savoirfairelinux.com> | ||||||
|  | S:	Maintained | ||||||
|  | F:	arch/x86/platform/ts5500/ | ||||||
|  | 
 | ||||||
| TECHNOTREND USB IR RECEIVER | TECHNOTREND USB IR RECEIVER | ||||||
| M:	Sean Young <sean@mess.org> | M:	Sean Young <sean@mess.org> | ||||||
| L:	linux-media@vger.kernel.org | L:	linux-media@vger.kernel.org | ||||||
|  | @ -7617,6 +7618,22 @@ F:	Documentation/backlight/lp855x-driver.txt | ||||||
| F:	drivers/video/backlight/lp855x_bl.c | F:	drivers/video/backlight/lp855x_bl.c | ||||||
| F:	include/linux/platform_data/lp855x.h | F:	include/linux/platform_data/lp855x.h | ||||||
| 
 | 
 | ||||||
|  | TI LP8727 CHARGER DRIVER | ||||||
|  | M:	Milo Kim <milo.kim@ti.com> | ||||||
|  | S:	Maintained | ||||||
|  | F:	drivers/power/lp8727_charger.c | ||||||
|  | F:	include/linux/platform_data/lp8727.h | ||||||
|  | 
 | ||||||
|  | TI LP8788 MFD DRIVER | ||||||
|  | M:	Milo Kim <milo.kim@ti.com> | ||||||
|  | S:	Maintained | ||||||
|  | F:	drivers/iio/adc/lp8788_adc.c | ||||||
|  | F:	drivers/leds/leds-lp8788.c | ||||||
|  | F:	drivers/mfd/lp8788*.c | ||||||
|  | F:	drivers/power/lp8788-charger.c | ||||||
|  | F:	drivers/regulator/lp8788-*.c | ||||||
|  | F:	include/linux/mfd/lp8788*.h | ||||||
|  | 
 | ||||||
| TI TWL4030 SERIES SOC CODEC DRIVER | TI TWL4030 SERIES SOC CODEC DRIVER | ||||||
| M:	Peter Ujfalusi <peter.ujfalusi@ti.com> | M:	Peter Ujfalusi <peter.ujfalusi@ti.com> | ||||||
| L:	alsa-devel@alsa-project.org (moderated for non-subscribers) | L:	alsa-devel@alsa-project.org (moderated for non-subscribers) | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -1,7 +1,7 @@ | ||||||
| VERSION = 3 | VERSION = 3 | ||||||
| PATCHLEVEL = 8 | PATCHLEVEL = 8 | ||||||
| SUBLEVEL = 0 | SUBLEVEL = 0 | ||||||
| EXTRAVERSION = -rc7 | EXTRAVERSION = | ||||||
| NAME = Unicycling Gorilla | NAME = Unicycling Gorilla | ||||||
| 
 | 
 | ||||||
| # *DOCUMENTATION*
 | # *DOCUMENTATION*
 | ||||||
|  | @ -165,7 +165,8 @@ export srctree objtree VPATH | ||||||
| # then ARCH is assigned, getting whatever value it gets normally, and 
 | # then ARCH is assigned, getting whatever value it gets normally, and 
 | ||||||
| # SUBARCH is subsequently ignored.
 | # SUBARCH is subsequently ignored.
 | ||||||
| 
 | 
 | ||||||
| SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
 | SUBARCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/x86_64/x86/ \
 | ||||||
|  | 				  -e s/sun4u/sparc64/ \
 | ||||||
| 				  -e s/arm.*/arm/ -e s/sa110/arm/ \
 | 				  -e s/arm.*/arm/ -e s/sa110/arm/ \
 | ||||||
| 				  -e s/s390x/s390/ -e s/parisc64/parisc/ \
 | 				  -e s/s390x/s390/ -e s/parisc64/parisc/ \
 | ||||||
| 				  -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
 | 				  -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
 | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								arch/Kconfig
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								arch/Kconfig
									
										
									
									
									
								
							|  | @ -76,6 +76,15 @@ config OPTPROBES | ||||||
| 	depends on KPROBES && HAVE_OPTPROBES | 	depends on KPROBES && HAVE_OPTPROBES | ||||||
| 	depends on !PREEMPT | 	depends on !PREEMPT | ||||||
| 
 | 
 | ||||||
|  | config KPROBES_ON_FTRACE | ||||||
|  | 	def_bool y | ||||||
|  | 	depends on KPROBES && HAVE_KPROBES_ON_FTRACE | ||||||
|  | 	depends on DYNAMIC_FTRACE_WITH_REGS | ||||||
|  | 	help | ||||||
|  | 	 If function tracer is enabled and the arch supports full | ||||||
|  | 	 passing of pt_regs to function tracing, then kprobes can | ||||||
|  | 	 optimize on top of function tracing. | ||||||
|  | 
 | ||||||
| config UPROBES | config UPROBES | ||||||
| 	bool "Transparent user-space probes (EXPERIMENTAL)" | 	bool "Transparent user-space probes (EXPERIMENTAL)" | ||||||
| 	depends on UPROBE_EVENT && PERF_EVENTS | 	depends on UPROBE_EVENT && PERF_EVENTS | ||||||
|  | @ -158,6 +167,9 @@ config HAVE_KRETPROBES | ||||||
| config HAVE_OPTPROBES | config HAVE_OPTPROBES | ||||||
| 	bool | 	bool | ||||||
| 
 | 
 | ||||||
|  | config HAVE_KPROBES_ON_FTRACE | ||||||
|  | 	bool | ||||||
|  | 
 | ||||||
| config HAVE_NMI_WATCHDOG | config HAVE_NMI_WATCHDOG | ||||||
| 	bool | 	bool | ||||||
| # | # | ||||||
|  |  | ||||||
|  | @ -5,7 +5,6 @@ config ALPHA | ||||||
| 	select HAVE_IDE | 	select HAVE_IDE | ||||||
| 	select HAVE_OPROFILE | 	select HAVE_OPROFILE | ||||||
| 	select HAVE_SYSCALL_WRAPPERS | 	select HAVE_SYSCALL_WRAPPERS | ||||||
| 	select HAVE_IRQ_WORK |  | ||||||
| 	select HAVE_PCSPKR_PLATFORM | 	select HAVE_PCSPKR_PLATFORM | ||||||
| 	select HAVE_PERF_EVENTS | 	select HAVE_PERF_EVENTS | ||||||
| 	select HAVE_DMA_ATTRS | 	select HAVE_DMA_ATTRS | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| #define SO_BROADCAST	0x0020 | #define SO_BROADCAST	0x0020 | ||||||
| #define SO_LINGER	0x0080 | #define SO_LINGER	0x0080 | ||||||
| #define SO_OOBINLINE	0x0100 | #define SO_OOBINLINE	0x0100 | ||||||
| /* To add :#define SO_REUSEPORT 0x0200 */ | #define SO_REUSEPORT	0x0200 | ||||||
| 
 | 
 | ||||||
| #define SO_TYPE		0x1008 | #define SO_TYPE		0x1008 | ||||||
| #define SO_ERROR	0x1007 | #define SO_ERROR	0x1007 | ||||||
|  | @ -77,5 +77,6 @@ | ||||||
| /* Instruct lower device to use last 4-bytes of skb data as FCS */ | /* Instruct lower device to use last 4-bytes of skb data as FCS */ | ||||||
| #define SO_NOFCS		43 | #define SO_NOFCS		43 | ||||||
| 
 | 
 | ||||||
|  | #define SO_LOCK_FILTER		44 | ||||||
| 
 | 
 | ||||||
| #endif /* _UAPI_ASM_SOCKET_H */ | #endif /* _UAPI_ASM_SOCKET_H */ | ||||||
|  |  | ||||||
|  | @ -1139,6 +1139,7 @@ struct rusage32 { | ||||||
| SYSCALL_DEFINE2(osf_getrusage, int, who, struct rusage32 __user *, ru) | SYSCALL_DEFINE2(osf_getrusage, int, who, struct rusage32 __user *, ru) | ||||||
| { | { | ||||||
| 	struct rusage32 r; | 	struct rusage32 r; | ||||||
|  | 	cputime_t utime, stime; | ||||||
| 
 | 
 | ||||||
| 	if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN) | 	if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN) | ||||||
| 		return -EINVAL; | 		return -EINVAL; | ||||||
|  | @ -1146,8 +1147,9 @@ SYSCALL_DEFINE2(osf_getrusage, int, who, struct rusage32 __user *, ru) | ||||||
| 	memset(&r, 0, sizeof(r)); | 	memset(&r, 0, sizeof(r)); | ||||||
| 	switch (who) { | 	switch (who) { | ||||||
| 	case RUSAGE_SELF: | 	case RUSAGE_SELF: | ||||||
| 		jiffies_to_timeval32(current->utime, &r.ru_utime); | 		task_cputime(current, &utime, &stime); | ||||||
| 		jiffies_to_timeval32(current->stime, &r.ru_stime); | 		jiffies_to_timeval32(utime, &r.ru_utime); | ||||||
|  | 		jiffies_to_timeval32(stime, &r.ru_stime); | ||||||
| 		r.ru_minflt = current->min_flt; | 		r.ru_minflt = current->min_flt; | ||||||
| 		r.ru_majflt = current->maj_flt; | 		r.ru_majflt = current->maj_flt; | ||||||
| 		break; | 		break; | ||||||
|  |  | ||||||
|  | @ -36,7 +36,6 @@ config ARM | ||||||
| 	select HAVE_GENERIC_HARDIRQS | 	select HAVE_GENERIC_HARDIRQS | ||||||
| 	select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) | 	select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) | ||||||
| 	select HAVE_IDE if PCI || ISA || PCMCIA | 	select HAVE_IDE if PCI || ISA || PCMCIA | ||||||
| 	select HAVE_IRQ_WORK |  | ||||||
| 	select HAVE_KERNEL_GZIP | 	select HAVE_KERNEL_GZIP | ||||||
| 	select HAVE_KERNEL_LZMA | 	select HAVE_KERNEL_LZMA | ||||||
| 	select HAVE_KERNEL_LZO | 	select HAVE_KERNEL_LZO | ||||||
|  | @ -1620,6 +1619,16 @@ config HOTPLUG_CPU | ||||||
| 	  Say Y here to experiment with turning CPUs off and on.  CPUs | 	  Say Y here to experiment with turning CPUs off and on.  CPUs | ||||||
| 	  can be controlled through /sys/devices/system/cpu. | 	  can be controlled through /sys/devices/system/cpu. | ||||||
| 
 | 
 | ||||||
|  | config ARM_PSCI | ||||||
|  | 	bool "Support for the ARM Power State Coordination Interface (PSCI)" | ||||||
|  | 	depends on CPU_V7 | ||||||
|  | 	help | ||||||
|  | 	  Say Y here if you want Linux to communicate with system firmware | ||||||
|  | 	  implementing the PSCI specification for CPU-centric power | ||||||
|  | 	  management operations described in ARM document number ARM DEN | ||||||
|  | 	  0022A ("Power State Coordination Interface System Software on | ||||||
|  | 	  ARM processors"). | ||||||
|  | 
 | ||||||
| config LOCAL_TIMERS | config LOCAL_TIMERS | ||||||
| 	bool "Use local timer interrupts" | 	bool "Use local timer interrupts" | ||||||
| 	depends on SMP | 	depends on SMP | ||||||
|  | @ -1637,7 +1646,7 @@ config ARCH_NR_GPIO | ||||||
| 	default 355 if ARCH_U8500 | 	default 355 if ARCH_U8500 | ||||||
| 	default 264 if MACH_H4700 | 	default 264 if MACH_H4700 | ||||||
| 	default 512 if SOC_OMAP5 | 	default 512 if SOC_OMAP5 | ||||||
| 	default 288 if ARCH_VT8500 | 	default 288 if ARCH_VT8500 || ARCH_SUNXI | ||||||
| 	default 0 | 	default 0 | ||||||
| 	help | 	help | ||||||
| 	  Maximum number of GPIOs in the system. | 	  Maximum number of GPIOs in the system. | ||||||
|  | @ -1655,6 +1664,9 @@ config HZ | ||||||
| 	default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE | 	default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE | ||||||
| 	default 100 | 	default 100 | ||||||
| 
 | 
 | ||||||
|  | config SCHED_HRTICK | ||||||
|  | 	def_bool HIGH_RES_TIMERS | ||||||
|  | 
 | ||||||
| config THUMB2_KERNEL | config THUMB2_KERNEL | ||||||
| 	bool "Compile the kernel in Thumb-2 mode" | 	bool "Compile the kernel in Thumb-2 mode" | ||||||
| 	depends on CPU_V7 && !CPU_V6 && !CPU_V6K | 	depends on CPU_V7 && !CPU_V6 && !CPU_V6K | ||||||
|  | @ -2322,3 +2334,5 @@ source "security/Kconfig" | ||||||
| source "crypto/Kconfig" | source "crypto/Kconfig" | ||||||
| 
 | 
 | ||||||
| source "lib/Kconfig" | source "lib/Kconfig" | ||||||
|  | 
 | ||||||
|  | source "arch/arm/kvm/Kconfig" | ||||||
|  |  | ||||||
|  | @ -252,6 +252,7 @@ core-$(CONFIG_FPE_NWFPE)	+= arch/arm/nwfpe/ | ||||||
| core-$(CONFIG_FPE_FASTFPE)	+= $(FASTFPE_OBJ) | core-$(CONFIG_FPE_FASTFPE)	+= $(FASTFPE_OBJ) | ||||||
| core-$(CONFIG_VFP)		+= arch/arm/vfp/ | core-$(CONFIG_VFP)		+= arch/arm/vfp/ | ||||||
| core-$(CONFIG_XEN)		+= arch/arm/xen/ | core-$(CONFIG_XEN)		+= arch/arm/xen/ | ||||||
|  | core-$(CONFIG_KVM_ARM_HOST) 	+= arch/arm/kvm/ | ||||||
| 
 | 
 | ||||||
| # If we have a machine-specific directory, then include it in the build.
 | # If we have a machine-specific directory, then include it in the build.
 | ||||||
| core-y				+= arch/arm/kernel/ arch/arm/mm/ arch/arm/common/ | core-y				+= arch/arm/kernel/ arch/arm/mm/ arch/arm/common/ | ||||||
|  |  | ||||||
|  | @ -170,10 +170,9 @@ | ||||||
| 			gpio-bank = <8>; | 			gpio-bank = <8>; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		pinctrl@80157000 { | 		pinctrl { | ||||||
| 			// This is actually the PRCMU base address | 			compatible = "stericsson,nmk-pinctrl"; | ||||||
| 			reg = <0x80157000 0x2000>; | 			prcm = <&prcmu>; | ||||||
| 			compatible = "stericsson,nmk_pinctrl"; |  | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		usb@a03e0000 { | 		usb@a03e0000 { | ||||||
|  | @ -190,9 +189,10 @@ | ||||||
| 			interrupts = <0 25 0x4>; | 			interrupts = <0 25 0x4>; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		prcmu@80157000 { | 		prcmu: prcmu@80157000 { | ||||||
| 			compatible = "stericsson,db8500-prcmu"; | 			compatible = "stericsson,db8500-prcmu"; | ||||||
| 			reg = <0x80157000 0x1000>; | 			reg = <0x80157000 0x1000>; | ||||||
|  | 			reg-names = "prcmu"; | ||||||
| 			interrupts = <0 47 0x4>; | 			interrupts = <0 47 0x4>; | ||||||
| 			#address-cells = <1>; | 			#address-cells = <1>; | ||||||
| 			#size-cells = <1>; | 			#size-cells = <1>; | ||||||
|  |  | ||||||
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
	
	 Ralf Baechle
				Ralf Baechle