| What:		/sys/class/ata_... | 
 | 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. | 
 |  | 
 |  | 
 | What:		/sys/class/ata_port/ataX/nr_pmp_links | 
 | What:		/sys/class/ata_port/ataX/idle_irq | 
 | Date:		May, 2010 | 
 | KernelVersion:	v2.6.37 | 
 | Contact:	Gwendal Grignou <gwendal@chromium.org> | 
 | Description: | 
 | 		nr_pmp_links:	(RO) If a SATA Port Multiplier (PM) is | 
 | 				connected, the number of links behind it. | 
 |  | 
 | 		idle_irq:	(RO) Number of IRQ received by the port while | 
 | 				idle [some ata HBA only]. | 
 |  | 
 |  | 
 | What:		/sys/class/ata_port/ataX/port_no | 
 | Date:		May, 2013 | 
 | KernelVersion:	v3.11 | 
 | Contact:	Gwendal Grignou <gwendal@chromium.org> | 
 | Description: | 
 | 		(RO) Host local port number. While registering host controller, | 
 | 		port numbers are tracked based upon number of ports available on | 
 | 		the controller. This attribute is needed by udev for composing | 
 | 		persistent links in /dev/disk/by-path. | 
 |  | 
 | 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. | 
 |  | 
 |  | 
 | What:		/sys/class/ata_link/linkX[.Y]/hw_sata_spd_limit | 
 | What:		/sys/class/ata_link/linkX[.Y]/sata_spd_limit | 
 | What:		/sys/class/ata_link/linkX[.Y]/sata_spd | 
 | Date:		May, 2010 | 
 | KernelVersion:	v2.6.37 | 
 | Contact:	Gwendal Grignou <gwendal@chromium.org> | 
 | Description: | 
 | 		hw_sata_spd_limit:	(RO) Maximum speed supported by the | 
 | 					connected SATA device. | 
 |  | 
 | 		sata_spd_limit:		(RO) Maximum speed imposed by libata. | 
 |  | 
 | 		sata_spd:		(RO) Current speed of the link | 
 | 					eg. 1.5, 3 Gbps etc. | 
 |  | 
 |  | 
 | Files under /sys/class/ata_device | 
 | --------------------------------- | 
 |  | 
 | Behind each link, up to two ata devices 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. | 
 |  | 
 |  | 
 | What:		/sys/class/ata_device/devX[.Y].Z/spdn_cnt | 
 | What:		/sys/class/ata_device/devX[.Y].Z/gscr | 
 | What:		/sys/class/ata_device/devX[.Y].Z/ering | 
 | What:		/sys/class/ata_device/devX[.Y].Z/id | 
 | What:		/sys/class/ata_device/devX[.Y].Z/pio_mode | 
 | What:		/sys/class/ata_device/devX[.Y].Z/xfer_mode | 
 | What:		/sys/class/ata_device/devX[.Y].Z/dma_mode | 
 | What:		/sys/class/ata_device/devX[.Y].Z/class | 
 | Date:		May, 2010 | 
 | KernelVersion:	v2.6.37 | 
 | Contact:	Gwendal Grignou <gwendal@chromium.org> | 
 | Description: | 
 | 		spdn_cnt:	(RO) Number of times libata decided to lower the | 
 | 				speed of link due to errors. | 
 |  | 
 | 		gscr:		(RO) 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. | 
 |  | 
 | 		ering:		(RO) Formatted output of the error ring of the | 
 | 				device. | 
 |  | 
 | 		id:		(RO) Cached result of IDENTIFY command, as | 
 | 				described in ATA8 7.16 and 7.17. Only valid if | 
 | 				the device is not a PM. | 
 |  | 
 | 		pio_mode:	(RO) Transfer modes supported by the device when | 
 | 				in PIO mode. Mostly used by PATA device. | 
 |  | 
 | 		xfer_mode:	(RO) Current transfer mode | 
 |  | 
 | 		dma_mode:	(RO) Transfer modes supported by the device when | 
 | 				in DMA mode. Mostly used by PATA device. | 
 |  | 
 | 		class:		(RO) Device class. Can be "ata" for disk, | 
 | 				"atapi" for packet device, "pmp" for PM, or | 
 | 				"none" if no device was found behind the link. | 
 |  | 
 |  | 
 | What:		/sys/class/ata_device/devX[.Y].Z/trim | 
 | Date:		May, 2015 | 
 | KernelVersion:	v4.10 | 
 | Contact:	Gwendal Grignou <gwendal@chromium.org> | 
 | Description: | 
 | 		(RO) Shows the DSM TRIM mode currently used by the device. Valid | 
 | 		values are: | 
 |  | 
 | 		unsupported:		Drive does not support DSM TRIM | 
 |  | 
 | 		unqueued:               Drive supports unqueued DSM TRIM only | 
 |  | 
 | 		queued:                 Drive supports queued DSM TRIM | 
 |  | 
 | 		forced_unqueued:	Drive's queued DSM support is known to | 
 | 					be buggy and only unqueued TRIM commands | 
 | 					are sent |