kernel升级

来源:互联网 发布:华为p10如何开启4g网络 编辑:程序博客网 时间:2024/05/01 17:07

前面一段时间一直在搞kernel的升级,开始是把4.1的升级到4.2,后面是根据相应的一些硬件修改更改一些原来的设置,搞的比较纠结,4.1升级到4.2还好,但是根据相应的硬件来同步相应的驱动就比较麻烦了,因为很多的引脚什么的东西要改,这些都没怎么弄过,做的比较纠结。

以前一直想做驱动,现在真正有机会了,做驱动了,确实在不太想做,也许是过了这么久,对做这个也没什么兴趣了,哎,后面还是跟老大说了下做应用 ,以后应该也是做应用 了。

这里记录下这段时间 做kernel升级的一点记录,以备以后可能 用的着的时候。

1、使用make rk3188_ds1006h_v1_1_defconfig(查看arch/arm/configs/)


2、i2c无反应的,先在arch/arm/mach-rk30/board-rk3168-ds1006h.c中注掉相应的i2c设备


2、液晶屏
drivers\video\display\screen\lcd_LG_LD089WU1.c
drivers\video\display\screen\Kconfig
drivers\video\display\screen\Makefile
drivers\video\display\transmitter\ssd2828.c
drivers\video\display\transmitter\mipi_dsi.c
drivers\video\backlight\rk29_backlight.c
kernel配置CONFIG_SSD2828_RGB2MIPI  否则修改了ssd2828.c不会编译
i2c

修改arch\arm\mach-rk3188\board-rk3188-ds1006h.c
LCD_CS_PIN、LCD_EN_PIN、lcdc0_screen_info(EXTEND-HDMI)

3、开机logo  drivers\video\logo


4、互容式触控芯片
drivers\input\touchscreen\ct36x_ts
i2c

5、背景
drivers\video\backlight\rk29_backlight.c

6、wifi、蓝牙(一般对比原来的kernel就可以了)
wifi:Device Drivers  --->Network device support  --->   Wireless LAN  --->  Select the wifi module (AP6210)  --->
board文件rfkill_rk_platdata GPIO口设置
board-rk3168-tb-sdmmc-conifg添加
#elif defined(CONFIG_AP6210)
#define RK30SDK_WIFI_GPIO_POWER_N                  RK30_PIN3_PD0   
  #define RK30SDK_WIFI_GPIO_POWER_ENABLE_VALUE GPIO_HIGH


  #define RK30SDK_WIFI_GPIO_WIFI_INT_B   RK30_PIN3_PD1
  #define RK30SDK_WIFI_GPIO_WIFI_INT_B_ENABLE_VALUE GPIO_HIGH




7、电源
drivers\power\oz8806_battery.c
drivers\power\rk29_charger_display.c //开机进入充电模式
include\linux\power_supply.h
CHG_M0_PIN  CHG_M1_PIN  dc_det_pin
paramter.c  design_capacity  调节电池容量
硬件测试是否有问题(电流,电压)

i2c

8、摄像头
drivers\media\video\nt99340_RK3066.c
drivers\media\video\nt99252.c
arch\arm\plat-rk\include\plat\rk_camera.h
include\media\v4l2-chip-ident.h
arch\arm\mach-rk30\board-rk3168-tb-camera.c
rk_register_camera_devices-->platform_device_register
soc_camera_probe-->soc_camera_init_i2c-->v4l2_i2c_new_subdev_board-->i2c_new_device

方向:board-rk3168-tb-camera.c  CONFIG_SENSOR_ORIENTATION_0

9、usb
drivers\usb\core\config.c
drivers\usb\dwc_otg\dwc_otg_hcd.c
drivers\usb\serial\option.c


10、音频
sound\soc\codecs\rt5616.c
i2c


11、HDMI
修改内核配置
board文件确认相应的引脚
RK_HDMI_RST_PIN---> hdmi_rst
RK_HDMI_POWER_PIN ---> hdmi_en
irq ---> hdmi_int
i2c连接是否正确
HDMI方向不正确:Device Drivers  --->  Graphics support  ---><*> Frame buffer support for Rockchip   --->  (180)   rotate orientation


12、按键


board文件
kernel\drivers\input\keyboard

13、振动
board文件 搜索‘timed’
修改timed_gpios对应的gpio(对照电路图)
 
14、otg
/driver/usb
不行的话看下ic是否有问题  


15、霍而开关
kernel\kernel\power\earlysuspend.c
kernel\drivers\input\hal
注意同步:
1、arch\arm\mach-rk3188\board-rk3188-ds1006h.c否则可能某些设备未注册,加了驱动也没用
2、硬件是否连接正常、i2c地址,应答是否成功、选择的总线是否正确
3、设备初始化失败:设备是否已经正常连接好了
4、屏幕方向不正确:
1)、gsensor方向mma8452_info、lis3dh_info 修改 0 1 

arch\arm\mach-rk30\board-rk3168-ds1006h-camera.c
arch\arm\mach-rk30\ddr.c
arch\arm\plat-rk\include\plat\ddr.h
arch\arm\mach-rk3188\clock_data.c

待机,卡机闪白条:
rk_fb_io_init enable disable 、backlight 加延时 、背光是不是强拉高了(硬件)rk29_backlight_pwm_resume

屏驱动:
board文件:LCD_CS_PIN、LCD_EN_PIN

原创粉丝点击