@ -25,17 +25,18 @@ struct dwc_ahci_priv {
void * wrapper_base ;
void * wrapper_base ;
} ;
} ;
static int dwc_ahci_bind ( struct udevice * dev )
{
struct udevice * scsi_dev ;
return ahci_bind_scsi ( dev , & scsi_dev ) ;
}
static int dwc_ahci_ofdata_to_platdata ( struct udevice * dev )
static int dwc_ahci_ofdata_to_platdata ( struct udevice * dev )
{
{
struct dwc_ahci_priv * priv = dev_get_priv ( dev ) ;
struct dwc_ahci_priv * priv = dev_get_priv ( dev ) ;
struct scsi_platdata * plat = dev_get_uclass_platdata ( dev ) ;
fdt_addr_t addr ;
fdt_addr_t addr ;
plat - > max_id = fdtdec_get_uint ( gd - > fdt_blob , dev_of_offset ( dev ) ,
" max-id " , CONFIG_SYS_SCSI_MAX_SCSI_ID ) ;
plat - > max_lun = fdtdec_get_uint ( gd - > fdt_blob , dev_of_offset ( dev ) ,
" max-lun " , CONFIG_SYS_SCSI_MAX_LUN ) ;
priv - > base = map_physmem ( devfdt_get_addr ( dev ) , sizeof ( void * ) ,
priv - > base = map_physmem ( devfdt_get_addr ( dev ) , sizeof ( void * ) ,
MAP_NOCACHE ) ;
MAP_NOCACHE ) ;
@ -81,11 +82,7 @@ static int dwc_ahci_probe(struct udevice *dev)
writel ( val , priv - > wrapper_base + TI_SATA_SYSCONFIG ) ;
writel ( val , priv - > wrapper_base + TI_SATA_SYSCONFIG ) ;
}
}
ret = ahci_init_dm ( dev , priv - > base ) ;
return ahci_probe_scsi ( dev , ( ulong ) priv - > base ) ;
if ( ret )
return ret ;
return ahci_start_ports_dm ( dev ) ;
}
}
static const struct udevice_id dwc_ahci_ids [ ] = {
static const struct udevice_id dwc_ahci_ids [ ] = {
@ -95,11 +92,11 @@ static const struct udevice_id dwc_ahci_ids[] = {
U_BOOT_DRIVER ( dwc_ahci ) = {
U_BOOT_DRIVER ( dwc_ahci ) = {
. name = " dwc_ahci " ,
. name = " dwc_ahci " ,
. id = UCLASS_SCS I ,
. id = UCLASS_AHC I ,
. of_match = dwc_ahci_ids ,
. of_match = dwc_ahci_ids ,
. bind = dwc_ahci_bind ,
. ofdata_to_platdata = dwc_ahci_ofdata_to_platdata ,
. ofdata_to_platdata = dwc_ahci_ofdata_to_platdata ,
. ops = & scsi_ops ,
. ops = & scsi_ops ,
. probe = dwc_ahci_probe ,
. probe = dwc_ahci_probe ,
. priv_auto_alloc_size = sizeof ( struct dwc_ahci_priv ) ,
. priv_auto_alloc_size = sizeof ( struct dwc_ahci_priv ) ,
. flags = DM_FLAG_ALLOC_PRIV_DMA ,
} ;
} ;