@ -108,6 +108,7 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
return dm_spi_xfer ( slave - > dev , bitlen , dout , din , flags ) ;
}
# if !CONFIG_IS_ENABLED(OF_PLATDATA)
static int spi_child_post_bind ( struct udevice * dev )
{
struct dm_spi_slave_platdata * plat = dev_get_parent_platdata ( dev ) ;
@ -117,14 +118,16 @@ static int spi_child_post_bind(struct udevice *dev)
return spi_slave_ofdata_to_platdata ( gd - > fdt_blob , dev - > of_offset , plat ) ;
}
# endif
static int spi_post_probe ( struct udevice * bus )
{
# if !CONFIG_IS_ENABLED(OF_PLATDATA)
struct dm_spi_bus * spi = dev_get_uclass_priv ( bus ) ;
spi - > max_hz = fdtdec_get_int ( gd - > fdt_blob , bus - > of_offset ,
" spi-max-frequency " , 0 ) ;
# endif
# if defined(CONFIG_NEEDS_MANUAL_RELOC)
struct dm_spi_ops * ops = spi_get_ops ( bus ) ;
@ -274,7 +277,11 @@ int spi_get_bus_and_cs(int busnum, int cs, int speed, int mode,
bool created = false ;
int ret ;
# if CONFIG_IS_ENABLED(OF_PLATDATA)
ret = uclass_first_device_err ( UCLASS_SPI , & bus ) ;
# else
ret = uclass_get_device_by_seq ( UCLASS_SPI , busnum , & bus ) ;
# endif
if ( ret ) {
printf ( " Invalid bus %d (err=%d) \n " , busnum , ret ) ;
return ret ;
@ -436,14 +443,18 @@ UCLASS_DRIVER(spi) = {
. id = UCLASS_SPI ,
. name = " spi " ,
. flags = DM_UC_FLAG_SEQ_ALIAS ,
# if !CONFIG_IS_ENABLED(OF_PLATDATA)
. post_bind = dm_scan_fdt_dev ,
# endif
. post_probe = spi_post_probe ,
. child_pre_probe = spi_child_pre_probe ,
. per_device_auto_alloc_size = sizeof ( struct dm_spi_bus ) ,
. per_child_auto_alloc_size = sizeof ( struct spi_slave ) ,
. per_child_platdata_auto_alloc_size =
sizeof ( struct dm_spi_slave_platdata ) ,
# if !CONFIG_IS_ENABLED(OF_PLATDATA)
. child_post_bind = spi_child_post_bind ,
# endif
} ;
UCLASS_DRIVER ( spi_generic ) = {