blob: 6111cf65d9d146a143b0596fd5afef2d4ad59add [file] [log] [blame]
Dave Liuf17c9632008-03-27 18:51:17 +08001#ifndef __SATA_H__
2#define __SATA_H__
Pavel Herrmann9e9f6282012-09-27 23:18:04 +00003#include <part.h>
Dave Liuf17c9632008-03-27 18:51:17 +08004
Simon Glass6c857ad2017-07-29 11:35:13 -06005#if !defined(CONFIG_DM_SCSI) && !defined(CONFIG_AHCI)
Dave Liu76596ba2008-03-26 22:49:44 +08006int init_sata(int dev);
Nikita Kiryanovb9666d62014-11-21 12:47:23 +02007int reset_sata(int dev);
Dave Liu76596ba2008-03-26 22:49:44 +08008int scan_sata(int dev);
Pavel Herrmann9e9f6282012-09-27 23:18:04 +00009ulong sata_read(int dev, ulong blknr, lbaint_t blkcnt, void *buffer);
10ulong sata_write(int dev, ulong blknr, lbaint_t blkcnt, const void *buffer);
Dave Liu76596ba2008-03-26 22:49:44 +080011
12int sata_initialize(void);
Mike Frysingere66dc082009-01-27 16:12:21 -050013int __sata_initialize(void);
Nikita Kiryanov44fd1f92014-11-21 12:47:24 +020014int sata_stop(void);
15int __sata_stop(void);
Nikita Kiryanov66914042014-08-20 15:08:53 +030016int sata_port_status(int dev, int port);
Dave Liuf17c9632008-03-27 18:51:17 +080017
Simon Glasse3394752016-02-29 15:25:34 -070018extern struct blk_desc sata_dev_desc[];
Michal Simekc886f352016-09-08 15:06:45 +020019#endif
Pavel Herrmann9e9f6282012-09-27 23:18:04 +000020
Simon Glass6c857ad2017-07-29 11:35:13 -060021int sata_probe(int devnum);
22int sata_remove(int devnum);
23
Tony Dinha87cbb82023-10-11 13:26:42 -070024/*
25 * Remove existing AHCI SATA device uclass and all of its children,
26 * if any, and probe it again.
27 */
28int sata_rescan(bool verbose);
29
Dave Liuf17c9632008-03-27 18:51:17 +080030#endif