コード例 #1
0
ファイル: usb.c プロジェクト: digidotcom/yocto-uboot
int usb_init(void)
{
	int result;

	running = 0;
	dev_index = 0;
	asynch_allowed = 1;
	usb_hub_reset();
	/* init low_level USB */
	printf("USB:   ");
	result = usb_lowlevel_init();
	/* if lowlevel init is OK, scan the bus for devices
	 * i.e. search HUBs and configure them */
	if (result == 0) {
		printf("scanning bus for devices... ");
		running = 1;
		usb_scan_devices();
		usb_started = 1;
		return 0;
	} else {
		printf("Error, couldn't init Lowlevel part\n");
		usb_started = 0;
		return -1;
	}
}
コード例 #2
0
ファイル: usb.c プロジェクト: RAR/apc-8750
int usb_init(void)
{
	int result;
	running = 0;
	dev_index = 0;
	asynch_allowed = 1;
	usb_hub_reset();
	/* init low_level USB */
	result = usb_lowlevel_init();
 	/* if lowlevel init is OK, scan the bus for devices i.e. search HUBs and configure them */
	if(result == 0) {
		printf("scanning bus for devices...\n ");
		running = 1;
		/*empty port not scan*/
		/*printf("port_connect_status:%x,usb_sel:%x\n",port_connect_status,usb_sel);*/
		if (port_connect_status != usb_sel) {
			printf("Error, couldn't init Lowlevel part\n");
			return -1;
		}
		result = usb_scan_devices();
		if (result < 0 )
			return -1;
		else 
			return 0;
	} else {
		printf("Error, couldn't init Lowlevel part\n");
		return -1;
	}
}
コード例 #3
0
ファイル: usb.c プロジェクト: nightcap79/kogan-tv-gpl
int usb_post_init(int port)
{
    int result=0;

#if 0
    //#if defined (CONFIG_TITANIA8) || defined(CONFIG_JANUS2)
    // Force USB to use MIU0.
    *((unsigned char volatile *)(0xBF200000+0x600*2+0xF0*2+1)) =  (*((unsigned char volatile *)(0xBF200000+0x600*2+0xF0*2+1))
              & 0xF1) ;
    *((unsigned char volatile *)(0xBF200000+0x1200*2+0xF0*2+1)) =  (*((unsigned char volatile *)(0xBF200000+0x1200*2+0xF0*2+1))
              & 0xF1) ;
#endif

    if ((port==0)||(port==1)||(port==2))
        UsbPortSelect=port;
    else
        UsbPortSelect=0;

    //running=0;
    dev_index=0;
    asynch_allowed=1;
    printf("Check USB port[%d]:\n", port);
    //usb_hub_reset();
    /* init low_level USB */
    //retry:
    result = usb_lowlevel_postinit();
    /* if lowlevel init is OK, scan the bus for devices i.e. search HUBs and configure them */
    if(result==0) {
        printf("scanning bus for devices... ");
        //running=1;
        result=usb_scan_devices();
        if(result) {
            printf("Error, bad or unsupported device...\n");
            usb_started = 0;
            return -1;
        }
        usb_started = 1;
#if (CONFIG_COMMANDS & CFG_CMD_FAT)
        {
            char cmd_buf[32];
            extern int snprintf(char *str, size_t size, const char *fmt, ...);
            memset(cmd_buf, 0 , sizeof(cmd_buf));
            snprintf(cmd_buf, sizeof(cmd_buf), "setenv %s", ENV_PARTNO);
            run_command(cmd_buf, 0);
        }
#endif
        return 0;
    }
    else {
        printf("Error, couldn't init Lowlevel part\n");
        usb_started = 0;
        return -1;
    }
}
コード例 #4
0
ファイル: usb.c プロジェクト: nightcap79/kogan-tv-gpl
int usb_preinit(int port)
{
    int result=0;

#if 0
    //#if defined (CONFIG_TITANIA8) || defined(CONFIG_JANUS2)
    // Force USB to use MIU0.
    *((unsigned char volatile *)(0xBF200000+0x600*2+0xF0*2+1)) =  (*((unsigned char volatile *)(0xBF200000+0x600*2+0xF0*2+1))
              & 0xF1) ;
    *((unsigned char volatile *)(0xBF200000+0x1200*2+0xF0*2+1)) =  (*((unsigned char volatile *)(0xBF200000+0x1200*2+0xF0*2+1))
              & 0xF1) ;
#endif

    if ((port==0)||(port==1)||(port==2))
        UsbPortSelect=port;
    else
        UsbPortSelect=0;

    //running=0;
    dev_index=0;
    asynch_allowed=1;
    printf("Preinit USB port[%d]:\n", port);
    usb_hub_reset();
    /* init low_level USB */
    //retry:
    result = usb_lowlevel_preinit();
    /* if lowlevel init is OK, scan the bus for devices i.e. search HUBs and configure them */
    if(result==0) {
        printf("scanning bus for devices... ");
        //running=1;
        result=usb_scan_devices();
        if(result) {
            printf("Error, bad or unsupported device...\n");
            usb_started = 0;
            return -1;
        }
        usb_started = 1;
        return 0;
    }
    else {
        //printf("Error, couldn't init Lowlevel part\n");
        usb_started = 0;
        return -1;
    }
}
コード例 #5
0
ファイル: usbchmod.c プロジェクト: Joel397/Ongoing_work_files
int
main(int argc, char** argv)
{
    int         bus, dev;
    int         actual_bus, actual_dev;
    char        devname[_POSIX_PATH_MAX];
    long        strtol_tmp1;
    char*       strtol_tmp2;
    
    if (3 != argc) {
        fprintf(stderr, "usb_chmod: wrong number of arguments\n");
        fprintf(stderr, "         : usage, usb_chmod <bus> <dev>\n");
        exit(EXIT_FAILURE);
    }
    if (('\0' == argv[1][0]) || ('\0' == argv[2][0])) {
        fprintf(stderr, "usb_chmod: invalid arguments\n");
        exit(EXIT_FAILURE);
    }
                                 
    strtol_tmp1 = strtol(argv[1], &strtol_tmp2, 10);
    if ('\0' != *strtol_tmp2) {
        fprintf(stderr, "usbchmod: invalid first argument, not a number\n");
        exit(EXIT_FAILURE);
    }
    if (strtol_tmp1 > INT_MAX) {
        fprintf(stderr, "usbchmod: invalid first argument, number too large\n");
        exit(EXIT_FAILURE);
    }
    bus = (int) strtol_tmp1;

    strtol_tmp1 = strtol(argv[2], &strtol_tmp2, 10);
    if ('\0' != *strtol_tmp2) {
        fprintf(stderr, "usbchmod: invalid second argument, not a number\n");
        exit(EXIT_FAILURE);
    }
    if (strtol_tmp1 > INT_MAX) {
        fprintf(stderr, "usbchmod: invalid second argument, number too large\n");
        exit(EXIT_FAILURE);
    }
    dev = (int) strtol_tmp1;
        
    if (!usb_scan_devices(&actual_bus, &actual_dev)) {
        fprintf(stderr, "usb_chmod: failed to find eCos USB test application\n");
        exit(EXIT_FAILURE);
    }
    if ((bus != actual_bus) || (dev != actual_dev)) {
        fprintf(stderr, "usbchmod: mismatch between specified and actual USB identifiers.\n");
        fprintf(stderr, "         : eCos test application is at %03d/%03d, not %03d/%03d\n",
                actual_bus, actual_dev, bus, dev);
        exit(EXIT_FAILURE);
    }
    
    if (_POSIX_PATH_MAX == snprintf(devname, _POSIX_PATH_MAX, "/proc/bus/usb/" "%03d/%03d", actual_bus, actual_dev)) {
        fprintf(stderr, "usbchmod: internal error, buffer overflow\n");
        exit(EXIT_FAILURE);
    }

    if (0 != chmod(devname, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)) {
        int old_errno = errno;
        fprintf(stderr, "usbchmod: failed to modify access rights on %s\n", devname);
        if ((old_errno >= 0) && (old_errno < sys_nerr)) {
            fprintf(stderr, "         : %s\n", sys_errlist[old_errno]);
        }
        exit(EXIT_FAILURE);
    }

    return EXIT_SUCCESS;
}