]> git.sur5r.net Git - u-boot/blob - board/samsung/common/ums.c
ums: remove ums_disk_init()
[u-boot] / board / samsung / common / ums.c
1 /*
2  * Copyright (C) 2013 Samsung Electronics
3  * Lukasz Majewski <l.majewski@samsung.com>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #include <common.h>
9 #include <usb_mass_storage.h>
10 #include <mmc.h>
11 #include <part.h>
12
13 static int ums_read_sector(struct ums *ums_dev,
14                            ulong start, lbaint_t blkcnt, void *buf)
15 {
16         block_dev_desc_t *block_dev = ums_dev->block_dev;
17         lbaint_t blkstart = start + ums_dev->start_sector;
18         int dev_num = block_dev->dev;
19
20         return block_dev->block_read(dev_num, blkstart, blkcnt, buf);
21 }
22
23 static int ums_write_sector(struct ums *ums_dev,
24                             ulong start, lbaint_t blkcnt, const void *buf)
25 {
26         block_dev_desc_t *block_dev = ums_dev->block_dev;
27         lbaint_t blkstart = start + ums_dev->start_sector;
28         int dev_num = block_dev->dev;
29
30         return block_dev->block_write(dev_num, blkstart, blkcnt, buf);
31 }
32
33 static struct ums ums_dev = {
34         .read_sector = ums_read_sector,
35         .write_sector = ums_write_sector,
36         .name = "UMS disk",
37 };
38
39 struct ums *ums_init(unsigned int dev_num)
40 {
41         struct mmc *mmc = NULL;
42
43         mmc = find_mmc_device(dev_num);
44         if (!mmc || mmc_init(mmc))
45                 return NULL;
46
47         ums_dev.block_dev = &mmc->block_dev;
48         ums_dev.start_sector = 0;
49         ums_dev.num_sectors = mmc->capacity / SECTOR_SIZE;
50
51         printf("UMS: disk start sector: %#x, count: %#x\n",
52                ums_dev.start_sector, ums_dev.num_sectors);
53
54         return &ums_dev;
55 }