@ -5,6 +5,7 @@
* SPDX - License - Identifier : GPL - 2.0 +
*/
# include <common.h>
# include <dm.h>
# include <netdev.h>
# include <ahci.h>
# include <scsi.h>
@ -73,10 +74,9 @@
# define DRV_NAME "ahci-ceva"
# define CEVA_FLAG_BROKEN_GEN2 1
int init_sata ( int dev )
static int ceva_ init_sata( ulong mmio )
{
ulong tmp ;
ulong mmio = ZYNQMP_SATA_BASEADDR ;
int i ;
/*
@ -111,3 +111,40 @@ int init_sata(int dev)
}
return 0 ;
}
static int sata_ceva_probe ( struct udevice * dev )
{
struct scsi_platdata * plat = dev_get_platdata ( dev ) ;
ceva_init_sata ( plat - > base ) ;
return 0 ;
}
static const struct udevice_id sata_ceva_ids [ ] = {
{ . compatible = " ceva,ahci-1v84 " } ,
{ }
} ;
static int sata_ceva_ofdata_to_platdata ( struct udevice * dev )
{
struct scsi_platdata * plat = dev_get_platdata ( dev ) ;
plat - > base = dev_get_addr ( dev ) ;
if ( plat - > base = = FDT_ADDR_T_NONE )
return - EINVAL ;
/* Hardcode number for ceva sata controller */
plat - > max_lun = 1 ; /* Actually two but untested */
plat - > max_id = 2 ;
return 0 ;
}
U_BOOT_DRIVER ( ceva_host_blk ) = {
. name = " ceva_sata " ,
. id = UCLASS_SCSI ,
. of_match = sata_ceva_ids ,
. probe = sata_ceva_probe ,
. ofdata_to_platdata = sata_ceva_ofdata_to_platdata ,
. platdata_auto_alloc_size = sizeof ( struct scsi_platdata ) ,
} ;