00001
00038 #include <usb/dev_mux.h>
00039 #include <usb/udi_msc_bulk.h>
00040 #include <block/dataflash.h>
00041 #include "xplain-bc.h"
00042
00051 void dataflash_init(struct app_usb_mode_task *usb_mode_task)
00052 {
00053 struct udm_config *config;
00054 struct udm_interface *iface;
00055 struct block_device *bdev;
00056 struct spi_master *master =
00057 spi_master_get_base(SPI_ID, &usb_mode_task->master);
00058 struct spi_device *device =
00059 spi_device_get_base(SPI_ID, &usb_mode_task->device);
00060
00061 config = udm_create_config(1, 1);
00062
00063 spi_enable(SPI_ID);
00064 spi_master_init(SPI_ID, master);
00065 spi_master_setup_device(SPI_ID, master, device, SPI_MODE_0,
00066 CONFIG_CPU_HZ, BOARD_DATAFLASH_SS);
00067 bdev = dataflash_blkdev_init(SPI_ID, master, device,
00068 &usb_mode_task->task);
00069
00070 udm_config_set_bus_powered(config);
00071 udm_config_set_max_power(config, 42);
00072
00073 iface = udi_msc_create_iface(bdev);
00074 udm_config_add_interface(config, iface);
00075 }