static unsigned int lcm_compare_id(void) { unsigned int id1 = 0; unsigned int id2 = 0; unsigned int id = 0; config_gpio(); SET_RESET_PIN(1); MDELAY(20); SET_RESET_PIN(0); MDELAY(20); SET_RESET_PIN(1); MDELAY(120); set_lcm_register(0xF000,0x55); set_lcm_register(0xF001,0xAA); set_lcm_register(0xF002,0x52); set_lcm_register(0xF003,0x08); set_lcm_register(0xF004,0x01); send_ctrl_cmd(0xc500); id1 = spi_read_data(); //spi_read_data(); MDELAY(20); send_ctrl_cmd(0xc501); id2 = spi_read_data(); //spi_read_data(); id = (id1<<8)|id2; return (LCM_ID == id)?1:0; }
// Reads mirf_PAYLOAD bytes into data array void mirf_get_data(uint8_t *data) { mirf_CSN_lo; // Pull down chip select spi_transfer(R_RX_PAYLOAD); // Send cmd to read rx payload spi_read_data(data, mirf_PAYLOAD); // Read payload mirf_CSN_hi; // Pull up chip select mirf_config_register(STATUS,(1<<RX_DR)); // Reset status register }
static unsigned int lcm_compare_id(void) { unsigned int id1 = 0; unsigned int id2 = 0; unsigned int id = 0; //return 1 ;//amy0503 add #if 1 SET_RESET_PIN(1); MDELAY(20); SET_RESET_PIN(0); MDELAY(20); SET_RESET_PIN(1); MDELAY(120);//LK@0314,at least 120ms #endif set_lcm_register(0xF000,0x55); set_lcm_register(0xF001,0xAA); set_lcm_register(0xF002,0x52); set_lcm_register(0xF003,0x08); set_lcm_register(0xF004,0x01); send_ctrl_cmd(0xc500); id1 = spi_read_data(); MDELAY(20); send_ctrl_cmd(0xc501); id2 = spi_read_data(); id = (id1<<8)|id2; #ifdef BUILD_UBOOT printf("lcd_id1=0x%x,lcd_id2=0x%x,lcd_id=0x%x \r\n",id1,id2,id); #else printk("lcd_id1=0x%x,lcd_id2=0x%x,lcd_id=0x%x \r\n",id1,id2,id); #endif return (LCM_ID == id)?1:0; }
// Reads an array of bytes from the MiRF registers. void mirf_read_register(uint8_t reg, uint8_t *value, uint8_t len) { mirf_CSN_lo; spi_transfer(R_REGISTER | (REGISTER_MASK & reg)); spi_read_data(value, len); mirf_CSN_hi; }