您的位置:首页 > 产品设计 > UI/UE

GT9xx系列------从lk里传递gpio的value到kernel中

2016-04-06 15:04 585 查看
目前由于要针对多种屏幕,所以需要在lk里读取panel id信息传给kernel使用,也就是通过cmd line来做

首先获取gpio信息

lcd_id = (gpio_get(41)<<1) | (gpio_get(48));

这里获取了当前gpio的电平状态

sprintf(cmd_lcd_id, " LCD_ID=%d ", lcd_id);

把值写到cmd_lcd_id里

然后到

Aboot.c (bootloader\lk\app\aboot):extern char cmd_lcd_id[64];

const char *src;

unsigned char *dst;

cmdline_final = (unsigned char*) malloc((cmdline_len + 4) & (~3));

ASSERT(cmdline_final != NULL);

memset((void *)cmdline_final, 0, sizeof(*cmdline_final));

dst = cmdline_final;

cmdline_len += strlen(cmd_lcd_id);

Aboot.c (bootloader\lk\app\aboot): src = cmd_lcd_id;

src = cmd_lcd_id;

if (have_cmdline) --dst;

have_cmdline = 1;

while ((*dst++ = *src++));

然后到了kernel中

char lcd_id[2] = {0};

EXPORT_SYMBOL(lcd_id);

static int get_lcd_id(char *str)

{

strcpy(lcd_id,str);

printk("matt-lcd_id = %s\n ", lcd_id);

return 0;

}

__setup("LCD_ID=", get_lcd_id); //从cmd line中获取参数

然后到具体的driver里使用

extern char asus_lcd_id[2];

ftxxxx_ts->lcd_vendor=lcd_id[0]; //这里传过来的其实是对应的数字的ack||码,也就是说lk里是3的话这边就是3的码0x33.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: