What:		/sys/class/extcon/.../
Date:		February 2012
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		Provide a place in sysfs for the extcon objects.
		This allows accessing extcon specific variables.
		The name of extcon object denoted as ... is the name given
		with extcon_dev_register.

		One extcon device denotes a single external connector
		port. An external connector may have multiple cables
		attached simultaneously. Many of docks, cradles, and
		accessory cables have such capability. For example,
		the 30-pin port of Nuri board (/arch/arm/mach-exynos)
		may have both HDMI and Charger attached, or analog audio,
		video, and USB cables attached simultaneously.

		If there are cables mutually exclusive with each other,
		such binary relations may be expressed with extcon_dev's
		mutually_exclusive array.

What:		/sys/class/extcon/.../name
Date:		February 2012
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		The /sys/class/extcon/.../name shows the name of the extcon
		object. If the extcon object has an optional callback
		"show_name" defined, the callback will provide the name with
		this sysfs node.

What:		/sys/class/extcon/.../state
Date:		February 2012
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		The /sys/class/extcon/.../state shows and stores the cable
		attach/detach information of the corresponding extcon object.
		If the extcon object has an optional callback "show_state"
		defined, the showing function is overridden with the optional
		callback.

		If the default callback for showing function is used, the
		format is like this:
		# cat state
		USB_OTG=1
		HDMI=0
		TA=1
		EAR_JACK=0
		#
		In this example, the extcon device has USB_OTG and TA
		cables attached and HDMI and EAR_JACK cables detached.

		In order to update the state of an extcon device, enter a hex
		state number starting with 0x:
		# echo 0xHEX > state

		This updates the whole state of the extcon device.
		Inputs of all the methods are required to meet the
		mutually_exclusive conditions if they exist.

		It is recommended to use this "global" state interface if
		you need to set the value atomically. The later state
		interface associated with each cable cannot update
		multiple cable states of an extcon device simultaneously.

What:		/sys/class/extcon/.../cable.x/name
Date:		February 2012
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		The /sys/class/extcon/.../cable.x/name shows the name of cable
		"x" (integer between 0 and 31) of an extcon device.

What:		/sys/class/extcon/.../cable.x/state
Date:		February 2012
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		The /sys/class/extcon/.../cable.x/state shows and stores the
		state of cable "x" (integer between 0 and 31) of an extcon
		device. The state value is either 0 (detached) or 1
		(attached).

What:		/sys/class/extcon/.../mutually_exclusive/...
Date:		December 2011
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		Shows the relations of mutually exclusiveness. For example,
		if the mutually_exclusive array of extcon device is
		{0x3, 0x5, 0xC, 0x0}, then the output is:
		# ls mutually_exclusive/
		0x3
		0x5
		0xc
		#

		Note that mutually_exclusive is a sub-directory of the extcon
		device and the file names under the mutually_exclusive
		directory show the mutually-exclusive sets, not the contents
		of the files.
