What:		/sys/class/ata_...
Date:		August 2008
Contact:	Gwendal Grignou<gwendal@google.com>
Description:

Provide a place in sysfs for storing the ATA topology of the system.  This allows
retrieving various information about ATA objects.

Files under /sys/class/ata_port
-------------------------------

	For each port, a directory ataX is created where X is the ata_port_id of
	the port. The device parent is the ata host device.

idle_irq (read)

	Number of IRQ received by the port while idle [some ata HBA only].

nr_pmp_links (read)

	If a SATA Port Multiplier (PM) is connected, number of link behind it.

Files under /sys/class/ata_link
-------------------------------

	Behind each port, there is a ata_link. If there is a SATA PM in the
	topology, 15 ata_link objects are created.

	If a link is behind a port, the directory name is linkX, where X is
	ata_port_id of the port.
	If a link is behind a PM, its name is linkX.Y where X is ata_port_id
	of the parent port and Y the PM port.

hw_sata_spd_limit

	Maximum speed supported by the connected SATA device.

sata_spd_limit

	Maximum speed imposed by libata.

sata_spd

	Current speed of the link [1.5, 3Gps,...].

Files under /sys/class/ata_device
---------------------------------

	Behind each link, up to two ata device are created.
	The name of the directory is devX[.Y].Z where:
	- X is ata_port_id of the port where the device is connected,
	- Y the port of the PM if any, and
	- Z the device id: for PATA, there is usually 2 devices [0,1],
	only 1 for SATA.

class
	Device class. Can be "ata" for disk, "atapi" for packet device,
	"pmp" for PM, or "none" if no device was found behind the link.

dma_mode

	Transfer modes supported by the device when in DMA mode.
	Mostly used by PATA device.

pio_mode

	Transfer modes supported by the device when in PIO mode.
	Mostly used by PATA device.

xfer_mode

	Current transfer mode.

id

	Cached result of IDENTIFY command, as described in ATA8 7.16 and 7.17.
	Only valid if the device is not a PM.

gscr

	Cached result of the dump of PM GSCR register.
	Valid registers are:
	0: 	SATA_PMP_GSCR_PROD_ID,
	1: 	SATA_PMP_GSCR_REV,
	2: 	SATA_PMP_GSCR_PORT_INFO,
	32:	SATA_PMP_GSCR_ERROR,
	33:	SATA_PMP_GSCR_ERROR_EN,
	64:	SATA_PMP_GSCR_FEAT,
	96:	SATA_PMP_GSCR_FEAT_EN,
	130:	SATA_PMP_GSCR_SII_GPIO
	Only valid if the device is a PM.

spdn_cnt

	Number of time libata decided to lower the speed of link due to errors.

ering

	Formatted output of the error ring of the device.
