USB模式下控制器驱动
0赞
发表于 8/4/2012 1:06:14 AM
阅读(3338)
struct string_descriptor product_string_descriptor = {
sizeof(struct string_descriptor),
STRING_DESCRIPTOR,
's',
0,
't',
0,
'a',
0,
'r',
0,
't',
0,
'-',
0,
'k',
0,
'i',
0,
't',
0,
};
struct usb_dev {
void *controler;
struct device_request dev_request;
void *priv_data;
void (*set_address)(void *controler, int addr);
void (*enable_address)(void *controler);
};
static void dc_set_address(struct isp1362 *isp1362, int addr)
{
int tmp = 0;
tmp = isp1362_read_reg16(isp1362, DC_RD_ADDR_REG);
tmp &= 0x80;
tmp |= addr;
isp1362_write_reg16(isp1362, DC_WR_ADDR_REG, tmp);
}
static void dc_enable_address(struct isp1362 *isp1362)
{
int tmp = 0;
tmp = isp1362_read_reg16(isp1362, DC_RD_ADDR_REG);
tmp |= 0x80;
isp1362_write_reg16(isp1362, DC_WR_ADDR_REG, tmp);
}
static void dc_disable_address(struct isp1362 *isp1362)
{
int tmp = 0;
tmp = isp1362_read_reg16(isp1362, DC_RD_ADDR_REG);
tmp &= ~0x80;
isp1362_write_reg16(isp1362, DC_WR_ADDR_REG, tmp);
}
static void dc_soft_connect(struct isp1362 *isp1362)
{
int tmp = 0;
tmp = isp1362_read_reg16(isp1362, DC_RD_MODE);
tmp |= 0x09;//enable all interrupt
isp1362_write_reg16(isp1362, DC_WR_MODE, tmp);
}
