+Simon On Mon, Jan 18, 2016 at 4:47 PM, Mugunthan V N <mugunthan...@ti.com> wrote: > Implement a SATA uclass that can represent a SATA controller. > > Signed-off-by: Mugunthan V N <mugunthan...@ti.com> > --- > drivers/block/Kconfig | 10 +++++++ > drivers/block/Makefile | 2 ++ > drivers/block/sata-uclass.c | 69 > +++++++++++++++++++++++++++++++++++++++++++++ > include/dm/uclass-id.h | 1 + > 4 files changed, 82 insertions(+) > create mode 100644 drivers/block/sata-uclass.c > > diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig > index e69de29..44d8a6b 100644 > --- a/drivers/block/Kconfig > +++ b/drivers/block/Kconfig > @@ -0,0 +1,10 @@ > +menu "SATA Device Support" > + > +config SATA > + bool "Enable driver model for SATA drivers" > + depends on DM > + help > + Enable driver model for block devices like SCSI. It uses the > + same API as block, but now implemented by the uclass. > + > +endmenu > diff --git a/drivers/block/Makefile b/drivers/block/Makefile > index eb8bda9..c2dae17 100644 > --- a/drivers/block/Makefile > +++ b/drivers/block/Makefile > @@ -5,6 +5,8 @@ > # SPDX-License-Identifier: GPL-2.0+ > # > > +obj-$(CONFIG_SATA) += sata-uclass.o > + > obj-$(CONFIG_SCSI_AHCI) += ahci.o > obj-$(CONFIG_DWC_AHSATA) += dwc_ahsata.o > obj-$(CONFIG_FSL_SATA) += fsl_sata.o > diff --git a/drivers/block/sata-uclass.c b/drivers/block/sata-uclass.c > new file mode 100644 > index 0000000..62773b6 > --- /dev/null > +++ b/drivers/block/sata-uclass.c > @@ -0,0 +1,69 @@ > +/* > + * SATA device U-Class driver > + * > + * (C) Copyright 2016 > + * Texas Instruments Incorporated, <www.ti.com> > + * > + * Author: Mugunthan V N <mugunthan...@ti.com> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <common.h> > +#include <dm.h> > +#include <dm/uclass-internal.h> > +#include <dm/device-internal.h> > +#include <errno.h> > +#include <scsi.h> > + > +DECLARE_GLOBAL_DATA_PTR; > + > +/* > + * struct mmc_uclass_priv - Holds information about a device used by the > uclass > + */
Please use single-line comment when it fits just one line. Also it's not mmc. > +struct sata_uclass_priv { > + struct block_dev_desc_t *block_dev; > +}; > + > +int scsi_get_device(int index, struct udevice **devp) > +{ > + struct udevice *dev; > + int ret; > + > + ret = uclass_find_device(UCLASS_SATA, index, &dev); > + if (ret || !dev) { > + printf("%d device not found\n", index); > + return ret; > + } > + > + ret = device_probe(dev); > + if (ret) { > + error("device probe error\n"); > + return ret; > + } > + > + *devp = dev; > + > + return ret; > +} > + > +void scsi_init(void) > +{ > + struct udevice *dev; > + int ret; > + > + ret = scsi_get_device(0, &dev); > + if (ret || !dev) { > + error("scsi device not found\n"); > + return; > + } > + > + scsi_scan(1); > +} > + > +UCLASS_DRIVER(sata) = { > + .id = UCLASS_SATA, > + .name = "sata", > + .flags = DM_UC_FLAG_SEQ_ALIAS, > + .per_device_auto_alloc_size = sizeof(struct sata_uclass_priv), > +}; > diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h > index 27fa0b6..80977ca 100644 > --- a/include/dm/uclass-id.h > +++ b/include/dm/uclass-id.h > @@ -55,6 +55,7 @@ enum uclass_id { > UCLASS_RESET, /* Reset device */ > UCLASS_REMOTEPROC, /* Remote Processor device */ > UCLASS_RTC, /* Real time clock device */ > + UCLASS_SATA, /* SATA devices */ > UCLASS_SERIAL, /* Serial UART */ > UCLASS_SPI, /* SPI bus */ > UCLASS_SPI_FLASH, /* SPI flash */ > -- I would like to see a full DM conversion of the SCSI codes. But this patch looks to me it's just a place holder? Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot