【展讯平台】Android 4.4 驱动(Kernel)、系统(framework) 定制,调试日志
查看
adb shell cat /proc/sys/kernel/printk
修改
adb shell echo 8 >/proc/sys/kernel/printk
在dts利配置:
chosen {
stdout-path = &uart1;
bootargs = "earlycon=sprd_serial,0x70100000,115200n8 console=ttyS1,115200n8 loglevel=7 init=/init root=/dev/ram0 rw androidboot.hardware=sp9820e_2h10";
};等级为:1~7
kernel\arch\arm\boot\dts\xxx-common.dtsi包含的使用的默认屏
u-boot15/drivers/video/sprdfb/lcd/Makefile
u-boot15/drivers/video/sprdfb/sprdfb_panel.c
u-boot15/drivers/video/sprdfb/sprdfb_spi.c(spi的可能需要修改这里的SPI_RS(选择发数据还是命令)脚)
u-boot15/include/configs/xxxx.h
如果使用spi类型的屏,spi这个展讯这里默认是收发用一根线的,当然也可配置成标准的SPI线
如果开启了te脚检测spi_te_gpio,屏也要开启te,否则会出现卡顿的情况
U-boot路径: u-boot15/board/spreadtrum/xxx/pinmap-xxx.c
REG_PIN_(管脚名字) 如gpio88,查找pinmap表格,就可以知道相应的管脚名。
BITS_PIN_AF(n) n=0,1,2,3功能 具体功能可参考SCxxxx_GPIO_Spec_Vxxx.xlsx
BITS_PIN_DS 驱动能力(ata测试中导线长或者高速信号可以调整)
BIT_PIN_WPUS 强上拉(强是指电流,选择阻值较小的电阻)
BIT_PIN_NULL 没强上拉
BIT_PIN_WPU 上拉(初始电平为高)
BIT_PIN_WPD 下拉(初始电平为低)
BIT_PIN_NUL 既不上拉也不下拉
BIT_PIN_SLP_AP 跟随AP休眠
BIT_PIN_SLP_ALL 可能是跟随BP休眠
BIT_PIN_SLP_NONE 不休眠
BIT_PIN_SLP_NUL 休眠时既不上拉也不下拉
BIT_PIN_SLP_WPD 休眠时下拉
BIT_PIN_SLP_WPU 休眠时上拉
BIT_PIN_SLP_OE 休眠时输出
BIT_PIN_SLP_IE 休眠时输入
BIT_PIN_SLP_Z 休眠时高阻
按键
gpio作为按键
配置为BITS_PIN_DS(1)|BIT_PIN_NULL|BIT_PIN_WPU|BIT_PIN_SLP_AP|BIT_PIN_SLP_WPU|BIT_PIN_SLP_IE},这个配置出错可能导致低电流大
keypad模块的按键
KEYIN作为为列
KEYOUT作为行
如KEYOUT0,KEYIN2,那么
sprd,row = <0>;
sprd,column = <2>;gpio和ldo调试
cat /d/gpio可以查看引脚状态,包括gpio_request有没有申请成功,引脚现在的状态(输入或输出,高电平或低电平)
gpio-49 ( |xxxx1 ) in(输入) hi(高电平)
gpio-138 ( |xxxx2 )out(输出) lo(低电平)
/d/regulator可查看ldo的使用情况,以及配置的最大和最小电压EXINT的管脚有硬件去抖的功能,如使用EXINT12,pinmap配置成EXINT12
gpios = <&ap_eic 12 1>;
kernel / arch/arm/boot/dts/sp7731e-common.dtsi
gpio-trigger-levels = <1 1 1 1 1>; //对应硬件电压值
kernel/sound/soc/sprd/codec/sprd/sc2721/sprd-headset-sc2721.c
android平台的LCD配置主要配置两个方面:Uboot配置及Kernel.
一.Uboot配置
1.增加驱动文件,以st7789v2为例.添加lcd_st7789v2_spi.c在如下路径:
u-boot15/drivers/video/sprdfb/lcd/lcd_st7789v2_spi.c2.增加编译规则
在u-boot15/drivers/video/sprdfb/lcd/Makefile文件中增加obj-$(CONFIG_FB_LCD_ST7789V2_SPI) += lcd_st7789v2_spi.o
3.配置LCD编译选项LCD尺寸
#define CONFIG_SPI
#define CONFIG_SPRD_SPI
#define CONFIG_FB_SWDISPC
//#define CONFIG_FB_LCD_GC9305_SPI
#define CONFIG_FB_LCD_ST7789V2_SPI(添加LCD宏开关)
#define CONFIG_FB_LCD_DUMMY_SPI
#define CONFIG_BACKLIGHT_WHTLED4.关联到内核
extern struct panel_spec lcd_st7789v2_spi_spec;#ifdef CONFIG_FB_LCD_ST7789V2_SPI
{
.lcd_id = 0x7789,
.panel = &lcd_st7789v2_spi_spec,
},
#endif二.Kernel配置
1.增加LCD dts文件
kernel/arch/arm/boot/dts/sprd/lcd/目录下参考已有的lcd驱动文件(lcd_gc9305_spi_qvga.dtsi),copy rename添加一份新的,注意里面的 lcd id格式,要和uboot里面传过来的值保持一致,增加lcd_st7789v2_spi_qvga.dtsi文件.2.引用LCD dts文件
在kernel/arch/arm/boot/dts/sp9820e-common.dtsi中添加如下代码:1).#include "lcd/lcd_st7789v2_spi_qvga.dtsi"
2)在panel-drivers里添加lcd_st7789v2_spi_qvga如下:
panel-drivers = <
&lcd_gc9305_spi_qvga
&lcd_gc9306_spi_qvga
&lcd_st7789v2_spi_qvga
&lcd_dummy_spi
>;