コード例 #1
0
ファイル: fb_watterott.c プロジェクト: 020gzh/linux
static int init_display(struct fbtft_par *par)
{
	int ret;
	unsigned version;
	u8 save_mode;

	/* enable SPI interface by having CS and MOSI low during reset */
	save_mode = par->spi->mode;
	par->spi->mode |= SPI_CS_HIGH;
	ret = spi_setup(par->spi); /* set CS inactive low */
	if (ret) {
		dev_err(par->info->device, "Could not set SPI_CS_HIGH\n");
		return ret;
	}
	write_reg(par, 0x00); /* make sure mode is set */

	mdelay(50);
	par->fbtftops.reset(par);
	mdelay(1000);
	par->spi->mode = save_mode;
	ret = spi_setup(par->spi);
	if (ret) {
		dev_err(par->info->device, "Could not restore SPI mode\n");
		return ret;
	}
	write_reg(par, 0x00);

	version = firmware_version(par);
	fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "Firmware version: %x.%02x\n",
						version >> 8, version & 0xFF);

	if (mode == 332)
		par->fbtftops.write_vmem = write_vmem_8bit;
	return 0;
}
コード例 #2
0
ファイル: hostecho.c プロジェクト: sharkpp/unagi_kazzo
int main(int c, char **v)
{
	usb_init();
	usb_dev_handle *handle = device_open();
	
	if(handle == NULL){
		return 0;
	}
	switch(c){
	case 1:
		echo(handle);
		printf("work time %3.1f second\n", ((double) clock() / (double) CLOCKS_PER_SEC));
		fflush(stdout);
		system("pause");
		break;
	case 2:
		firmware_version(handle);
		break;
	case 3:
		switch(v[1][0]){
		case 'w':
			firmware_update(handle, v[2]);
			break;
		case 'r':
			firmware_download(handle, v[2]);
			break;
		case 'v':
			firmware_verify(handle, v[2]);
			break;
		case 'p':{
			if(DEBUG == 0){
				break;
			}
			int i = 0x1000;
			const char *ret = "test ok";
			while(i != 0){
				if(ppu_read(handle, i) == false){
					ret = "test ng";
					break;
				}
				if((i+1) % 100 == 0){
					fprintf(stderr, "\r%05d", i+1);
					fflush(stderr);
				}
				i--;
			}
			puts(ret);
			}break;
		case 'd':
			if(DEBUG == 1){
				write_memory(handle, REQUEST_FIRMWARE_PROGRAM, 0x200, 0x0000, 0, NULL);
			}
			break;
		}
		break;
	}
	usb_close(handle);
	return 0;
}