Lines Matching +full:ahci +full:- +full:port

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * ahci.h - Common AHCI SATA definitions and declarations
6 * Please ALWAYS copy linux-ide@vger.kernel.org
9 * Copyright 2004-2005 Red Hat, Inc.
12 * as Documentation/driver-api/libata.rst
14 * AHCI hardware documentation:
74 HOST_VERSION = 0x10, /* AHCI spec. version compliancy */
80 HOST_RESET = BIT(0), /* reset controller; self-clear */
83 HOST_AHCI_EN = BIT(31), /* AHCI enabled */
92 HOST_CAP_FBS = BIT(16), /* FIS-based switching support */
93 HOST_CAP_PMP = BIT(17), /* Port Multiplier support */
94 HOST_CAP_ONLY = BIT(18), /* Supports AHCI mode only */
98 HOST_CAP_SSS = BIT(27), /* Staggered Spin-up */
102 HOST_CAP_64 = BIT(31), /* PCI DAC (64-bit DMA) support */
112 /* registers for each SATA port */
119 PORT_CMD = 0x18, /* port command */
128 PORT_FBS = 0x40, /* FIS-based Switching */
137 PORT_IRQ_IF_NONFATAL = BIT(26), /* interface non-fatal error */
139 PORT_IRQ_BAD_PMP = BIT(23), /* incorrect port multiplier */
143 PORT_IRQ_CONNECT = BIT(6), /* port connect change status */
168 PORT_CMD_FBSCP = BIT(22), /* FBS Capable Port */
169 PORT_CMD_ESP = BIT(21), /* External Sata Port */
172 PORT_CMD_HPCP = BIT(18), /* HotPlug Capable Port */
180 PORT_CMD_START = BIT(0), /* Enable port DMA engine */
209 /* hpriv->flags bits */
217 AHCI_HFLAG_MV_PATA = BIT(4), /* PATA port */
229 port start (wait until
230 error-handling stage) */
235 AHCI_HFLAG_MULTI_MSI = BIT(20), /* per-port MSI(-X) */
250 /* ap->flags bits */
256 PCS_6 = 0x92, /* 6 port PCS */
257 PCS_7 = 0x94, /* 7+ port PCS (Denverton) */
271 EM_CTL_SES = BIT(18), /* SES-2 messages supported */
272 EM_CTL_SAFTE = BIT(17), /* SAF-TE messages supported */
277 EM_MSG_TYPE_SAFTE = BIT(1), /* SAF-TE */
278 EM_MSG_TYPE_SES2 = BIT(2), /* SES-2 */
333 void __iomem * mmio; /* bus-independent mem map */
337 u32 port_map; /* port map to use */
355 * If platform uses PHYs. There is a 1:1 relation between the port number and
377 /* only required for per-port MSI(-X) support */
379 int port);
383 * Return true if a port should be ignored because it is excluded from
384 * the host port map.
389 if (portid >= hpriv->nports) in ahci_ignore_port()
392 if (!hpriv->mask_port_map) in ahci_ignore_port()
394 return !(hpriv->mask_port_map & (1 << portid)); in ahci_ignore_port()
454 void __iomem *mmio = hpriv->mmio; in __ahci_port_base()
461 struct ahci_host_priv *hpriv = ap->host->private_data; in ahci_port_base()
463 return __ahci_port_base(hpriv, ap->port_no); in ahci_port_base()