[U-Boot] [PATCH 4/4] arm:goni: Add support for USB mass storage
Minkyu Kang
promsoft at gmail.com
Mon Jul 8 14:25:17 CEST 2013
On Monday, July 8, 2013, Minkyu Kang wrote:
> On 04/07/13 19:52, Lukasz Majewski wrote:
> > From: Arkadiusz Wlodarczyk <a.wlodarczyk at samsung.com <javascript:;>>
> >
> > This commit enables support for USB mass storage composite function.
> > It defines platform code and enables it at config file.
> >
> > Signed-off-by: Arkadiusz Wlodarczyk <a.wlodarczyk at samsung.com<javascript:;>
> >
> > Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com <javascript:;>>
> > Tested-by: Arkadiusz Wlodarczyk <a.wlodarczyk at samsung.com <javascript:;>
> >
> > Cc: Minkyu Kang <mk7.kang at samsung.com <javascript:;>>
> > ---
> > board/samsung/goni/goni.c | 68
> ++++++++++++++++++++++++++++++++++++++++++++
> > include/configs/s5p_goni.h | 5 ++++
> > 2 files changed, 73 insertions(+)
> >
>
> please run checkpatch before submitting.
>
> CHECK: Alignment should match open parenthesis
> #51: FILE: board/samsung/goni/goni.c:173:
> + if (ums_dev->mmc->block_dev.block_read(ums_dev->dev_num,
> + start + ums_dev->offset, blkcnt, buf) != blkcnt)
>
> CHECK: Alignment should match open parenthesis
> #61: FILE: board/samsung/goni/goni.c:183:
> + if (ums_dev->mmc->block_dev.block_write(ums_dev->dev_num,
> + start + ums_dev->offset, blkcnt, buf) != blkcnt)
>
> total: 0 errors, 0 warnings, 2 checks, 86 lines checked
>
> > diff --git a/board/samsung/goni/goni.c b/board/samsung/goni/goni.c
> > index 3c53106..a09daca 100644
> > --- a/board/samsung/goni/goni.c
> > +++ b/board/samsung/goni/goni.c
> > @@ -29,6 +29,7 @@
> > #include <usb/s3c_udc.h>
> > #include <asm/arch/cpu.h>
> > #include <power/max8998_pmic.h>
> > +#include <usb_mass_storage.h>
> > DECLARE_GLOBAL_DATA_PTR;
> >
> > static struct s5pc110_gpio *s5pc110_gpio;
> > @@ -163,3 +164,70 @@ void board_usb_init(void)
> > }
> >
> > #endif
> > +
> > +#ifdef CONFIG_USB_GADGET_MASS_STORAGE
> > +static int ums_read_sector(struct ums_device *ums_dev,
> > + ulong start, lbaint_t blkcnt, void *buf)
> > +{
> > + if (ums_dev->mmc->block_dev.block_read(ums_dev->dev_num,
> > + start + ums_dev->offset, blkcnt, buf) != blkcnt)
> > + return -1;
> > +
> > + return 0;
> > +}
> > +
> > +static int ums_write_sector(struct ums_device *ums_dev,
> > + ulong start, lbaint_t blkcnt, const void
> *buf)
> > +{
> > + if (ums_dev->mmc->block_dev.block_write(ums_dev->dev_num,
> > + start + ums_dev->offset, blkcnt, buf) != blkcnt)
> > + return -1;
>
> indentation error.
>
> > +
> > + return 0;
> > +}
> > +
> > +static void ums_get_capacity(struct ums_device *ums_dev,
> > + long long int *capacity)
> > +{
> > + long long int tmp_capacity;
> > +
> > + tmp_capacity = (long long int) ((ums_dev->offset +
> ums_dev->part_size)
> > + * SECTOR_SIZE);
> > + *capacity = ums_dev->mmc->capacity - tmp_capacity;
> > +}
> > +
> > +static struct ums_board_info ums_board = {
> > + .read_sector = ums_read_sector,
> > + .write_sector = ums_write_sector,
> > + .get_capacity = ums_get_capacity,
> > + .name = "GONI UMS disk",
> > + .ums_dev = {
> > + .mmc = NULL,
> > + .dev_num = 0,
> > + .offset = 0,
> > + .part_size = 0.
> > + },
> > +};
> > +
> > +struct ums_board_info *board_ums_init(unsigned int dev_num, unsigned
> int offset,
> > + unsigned int part_size)
> > +{
> > + struct mmc *mmc;
> > +
> > + mmc = find_mmc_device(dev_num);
> > + /* mmc initialization is necessary prior to the ums command usage
> > + * due to fact that on goni target environment is read from oneNand
> > + * memory, so the mmc remains uninitialized whenu-boot prompt
> appears
> > + * */
please fix multiline comment style.
> > + if (!mmc || mmc_init(mmc))
> > + return NULL;
> > +
> > + ums_board.ums_dev.mmc = mmc;
> > + ums_board.ums_dev.dev_num = dev_num;
> > + ums_board.ums_dev.offset = offset;
> > + ums_board.ums_dev.part_size = part_size;
> > +
> > + return &ums_board;
> > +}
> > +
> > +#endif
> > diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
> > index e8f2639..1cfbb88 100644
> > --- a/include/configs/s5p_goni.h
> > +++ b/include/configs/s5p_goni.h
> > @@ -269,4 +269,9 @@
> > #define CONFIG_USB_GADGET_DUALSPEED
> > #define CONFIG_USB_GADGET_VBUS_DRAW 2
> >
> > +#define CONFIG_CMD_USB_MASS_STORAGE
> > +#if defined(CONFIG_CMD_USB_MASS_STORAGE)
>
> unnecessary ifdef.
> this file is board specific and we already knew that
> CONFIG_CMD_USB_MASS_STORAGE is defined.
>
> > +#define CONFIG_USB_GADGET_MASS_STORAGE
> > +#endif
> > +
> > #endif /* __CONFIG_H */
> >
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de <javascript:;>
> http://lists.denx.de/mailman/listinfo/u-boot
>
--
Thanks.
Minkyu Kang.
More information about the U-Boot
mailing list