熟悉高通平台mipi panel kernel讀包方法,我想我們可以是的同一客戶要是使用2塊mipi panel的話我想我們可以通過讀取id來下不同序列而不用更換boot.img,還有能否讀id可以說明mipi通訊是否正常。
還有我們只需在lk下面讀一次id再對全域性變數賦值通過lk傳遞到kernel裡面,通過不同賦值傳送不同初始化序列,至於時序clk則調整好相容2塊屏的,也可以通過全域性變數來區分。
在mipi_***.c中加入下面函式即可,很好用的!關鍵時候起作用。注意所讀的暫存器必須是可讀的,之前好幾次讀失敗了原因就是這個。
static u32 mipi_truely_read_reg(struct msm_fb_data_type *mfd, u16 reg)
;mipi_dsi_buf_init(&truly_tx_buf);
mipi_dsi_buf_init(&truly_rx_buf);
/* mutex had been acquried at dsi_on */
len = mipi_dsi_cmds_rx(mfd, &truly_tx_buf, &truly_rx_buf,
&cmd_read_reg, len);
data = *(u32 *)truly_rx_buf.data;
if (len != 4)
printk("%s: invalid rlen=%d, expecting 4.\n", __func__, len);
printk("%s: reg=0x%x.data=0x%08x.\n", __func__, reg, data);
return data;
}static int mipi_truly_lcd_on(struct platform_device *pdev)
msleep(20);
mipi_dsi_cmds_tx(mfd, &truly_tx_buf,
truly_video_display_on_cmds,array_size(truly_video_display_on_cmds));
printk("mipi_dsi_cmds_tx called here");
mdelay(20);
//add for testdata=mipi_truely_read_reg(mfd,0xe1);
printk("data =0x%x",data);
}display_n = true;
return 0;
}static char a13[5]=;
static char a14[2]=;
static char
a15[17]=;
log:
<4>[ 5.672508] [(1980-01-06 05:56:05.862078335 utc)]
mipi_truely_read_reg: reg=0xc1.data=0x260e3017.
<4>[ 5.672588] [(1980-01-06 05:56:05.862156668 utc)]
mipi_truely_read_reg: reg=0x5f.data=0x00000055.
<4>[ 5.672733] [(1980-01-06 05:56:05.862301668 utc)]
mipi_truely_read_reg: reg=0xe1.data=0x13140b00.
還有乙個函式也可以寫法不一樣而已:
static struct dsi_cmd_desc novatek_manufacture_id_cmd = ;
static uint32 mipi_novatek_manufacture_id(struct msm_fb_data_type *mfd)
;static struct mipi_dsi_cmd otm9601a_panel_manufacture_id_cmd =
;static uint32_t mipi_otm_manufacture_id(void ){
char rec_buf[32];
char *rp = rec_buf;
uint32_t *lp, data;
mipi_dsi_cmds_tx(&otm9601a_panel_manufacture_id_cmd, 1);
mipi_dsi_cmds_rx(&rp, 2);
lp = (uint32_t *) rp;
data = (uint32_t) * lp;
data = ntohl(data);
data = data >> 8;
otm_lcd_id = data;
dprintf(spew, "[%s] lcd id = %d = %x\n",__func__,otm_lcd_id,otm_lcd_id);
高通平台Bring up
3.2.amss 部分編譯 主要由以下部分構成 adsp,boot,debug,modem,rpm,trustzone,wcnss,分別根據高通的說明編譯這些模組,不過其中有些模組我們不會改,直接用release的binary檔案就行,比如 debug,rpm,trustzone,wcnss。3.3...
高通平台 USB OTG功能
1 什麼是otg?usb otg 是usbon the go 的縮寫,即 otg技術就是實現在沒有 host 的情況下,實現裝置間的資料傳送。2 硬體介面 5根線 usb hs id usb hs d p usb hs d m usb vbus in gnd3 otg線 otg通訊的乙個關鍵是如何判...
高通平台 USB OTG功能
1 什麼是otg?usb otg 是usbon the go 的縮寫,即 otg技術就是實現在沒有 host 的情況下,實現裝置間的資料傳送。2 硬體介面 5根線usb hs id usb hs d p usb hs d m usb vbus in gnd3 otg線 otg通訊的乙個關鍵是如何判斷...