static int mddi_tpo_nv_seq_init(void) { if (plat_disp_type) { if (plat_disp_type == TPO_PLAT_DISP) { printk("%s: Found TPO Platform Display\n", __FUNCTION__); disp_init = tpo_nv_plat_init; } else if (plat_disp_type == TMD_PLAT_DISP) { printk("%s: Found TMD Platform Display\n", __FUNCTION__); disp_init = tmd_nv_plat_init; } disp_uninit = tpo_nv_plat_uninit; disp_esd_recovery = tpo_nv_plat_esd_recovery; } else { unsigned userid = 0; unsigned revision = 0; mddi_queue_register_read(USERID, &userid, TRUE, 0); mddi_queue_register_read(REVISIONID, &revision, TRUE, 0); switch(userid) { case TPO_NV_VER_F_USERID: printk("%s: Found TPO vF Display\n", __FUNCTION__); disp_init = tpo_nv_version_F_init; break; #ifdef CONFIG_MACH_MOT case TPO_NV_VER_G_USERID: printk("%s: Found TPO vG Display\n", __FUNCTION__); disp_init = tpo_nv_version_G_init; break; #endif default: printk("%s: Found TPO vE Display\n", __FUNCTION__); disp_init = tpo_nv_version_E_init; break; } disp_uninit = tpo_nv_uninit_defines; } if (!disp_init) { return -EINVAL; } return 0; }
static ssize_t nov_t2_show(struct device *dev, struct device_attribute *attr, char *buf) { struct msm_mddi_client_data *client_data = dev->platform_data; int ret; unsigned val; unsigned v1,v2; mddi_queue_register_read(0xb101, &v1, 0, 0); mddi_queue_register_read(0xb102, &v2, 0, 0); val=(v2 << 8) | v1; ret = sprintf(buf, "T2: d%u, 0x%04xh\n", val, val); return ret; }
void bkl_read_reg(unsigned int addr, unsigned int *data) { static unsigned int val; mddi_queue_register_read(addr, &val, FALSE, 0); msleep(10); *data = val; MSG("Read 0x%04X = 0x%04X",addr,val); }
static ssize_t nov_data_show(struct device *dev, struct device_attribute *attr, char *buf) { struct msm_mddi_client_data *client_data = dev->platform_data; int ret; unsigned val; mddi_queue_register_read(addr, &val, 0, 0); ret = sprintf(buf, "%x: d%u, 0x%02xh\n", addr, val, val); return ret; }
static int __init mddi_nt35560_probe(struct platform_device *pdev) { uint32 id = 0; msm_fb_add_device(pdev); mddi_queue_register_read(0x1F80, &id, TRUE, 0); printk(KERN_INFO "%s user id: 0x%x\n", __func__,id); //Turn on Vsync on 700th line mddi_queue_register_write(0x4400, 0x02, FALSE, 0); mddi_queue_register_write(0x4401, 0xBC, FALSE, 0); mddi_queue_register_write(0x3500, 0x00, FALSE, 0); return 0; }
static void mddi_tpo_nv_esd_poll(void* arg) { #ifdef MDDI_TPO_NV_ESD_DEBUG uint32_t val; #endif struct platform_device *pdev = (struct platform_device *)arg; msm_fb_down(pdev); #ifdef MDDI_TPO_NV_ESD_DEBUG printk(KERN_ERR "TPO NV - ESD register check START\n"); mddi_queue_register_write(ENTRYMODE2 ,0x00C4, 0, 0); mddi_wait(20); for (i = 0;; i++) { if (disp_init[i].reg == TABLE_END) { break; } else if (disp_init[i].reg != MDDI_SLEEP_CMD) { mddi_queue_register_read(disp_init[i].reg, &val, 1, 0); if (disp_init[i].val != val) { printk(KERN_ERR "TPO NV reg 0x%X should be 0x%X, found 0x%X\n", disp_init[i].reg, disp_init[i].val, val); } } } mddi_queue_register_write(ENTRYMODE2 ,0x00C5, 0, 0); mddi_wait(30); printk(KERN_ERR "TPO NV - ESD register check END\n"); #endif /* MDDI_TPO_NV_ESD_DEBUG */ if (disp_esd_recovery) { xmit_panel_seq(disp_esd_recovery); } msm_fb_up(pdev); }