sata: dwc_ahsata: implement sata_port_status
Define the new common function sata_port_status() which can be used to query the sata driver for the state of ports, and implement it for dwc_ahsata. Cc: Stefano Babic <sbabic@denx.de> Cc: Tom Rini <trini@ti.com> Cc: Marek Vasut <marex@denx.de> Reviewed-by: Marek Vasut <marex@denx.de> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
This commit is contained in:
parent
52658fda7a
commit
dc383dd583
2 changed files with 18 additions and 0 deletions
|
@ -864,6 +864,23 @@ u32 ata_low_level_rw_lba28(int dev, u32 blknr, lbaint_t blkcnt,
|
|||
return blkcnt;
|
||||
}
|
||||
|
||||
int sata_port_status(int dev, int port)
|
||||
{
|
||||
struct sata_port_regs *port_mmio;
|
||||
struct ahci_probe_ent *probe_ent = NULL;
|
||||
|
||||
if (dev < 0 || dev > (CONFIG_SYS_SATA_MAX_DEVICE - 1))
|
||||
return -EINVAL;
|
||||
|
||||
if (sata_dev_desc[dev].priv == NULL)
|
||||
return -ENODEV;
|
||||
|
||||
probe_ent = (struct ahci_probe_ent *)sata_dev_desc[dev].priv;
|
||||
port_mmio = (struct sata_port_regs *)probe_ent->port[port].port_mmio;
|
||||
|
||||
return readl(&(port_mmio->ssts)) && SATA_PORT_SSTS_DET_MASK;
|
||||
}
|
||||
|
||||
/*
|
||||
* SATA interface between low level driver and command layer
|
||||
*/
|
||||
|
|
|
@ -9,6 +9,7 @@ ulong sata_write(int dev, ulong blknr, lbaint_t blkcnt, const void *buffer);
|
|||
|
||||
int sata_initialize(void);
|
||||
int __sata_initialize(void);
|
||||
int sata_port_status(int dev, int port);
|
||||
|
||||
extern block_dev_desc_t sata_dev_desc[];
|
||||
|
||||
|
|
Loading…
Reference in a new issue