【展讯平台】Android 驱动(Kernel)、系统(framework) 定制,调试日志,持续更新中..

前言

            【展讯平台】Android 4.4 驱动(Kernel)、系统(framework) 定制,调试日志

正文

1:提高串口日志等级

查看

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

2:默认LCD配置

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,否则会出现卡顿的情况

2:驱动U-boot - IO配置

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>;

3:展讯平台耳机驱动调试

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

4:展讯SC9820E驱动配置之LCD配置 

 

android平台的LCD配置主要配置两个方面:Uboot配置及Kernel.
一.Uboot配置
1.增加驱动文件,以st7789v2为例.添加lcd_st7789v2_spi.c在如下路径:
u-boot15/drivers/video/sprdfb/lcd/lcd_st7789v2_spi.c

2.增加编译规则
在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_WHTLED

4.关联到内核
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
        >;

你可能感兴趣的:(framework,Linux,android)