1. 程式人生 > >[RK3288][Android7.1.2] kernel移植 : rk808+edp

[RK3288][Android7.1.2] kernel移植 : rk808+edp

平臺:Rockchip
處理器:rk3288 Android版本:Android 7.1.2 核心版本:Linux 4.4.71 第一步:將最接近的dts拷貝一份並重新命名。 rk3288\kernel\arch\arm\boot\dts\rk3288-evb-android-rk818-edp.dts
拷貝一份並命名如下: rk3288\kernel\arch\arm\boot\dts\rk3288-evb-android-rk808-edp.dts
第二步:修改對應的PMU,根據第一步拷貝而來的PMU是RK818,我們平板所用的PMU是RK808 所以做以下的幾個修改:
//compatible = "rockchip,rk3288-evb-android-rk818", "rockchip,rk3288";
compatible = "rockchip,rk3288-evb-android-rk808", "rockchip,rk3288";
sdio_pwrseq: sdio-pwrseq {
  compatible = "mmc-pwrseq-simple";
  //clocks = <&rk818 1>;
    clocks = <&rk808 1>;//rk818 1>;
wireless-bluetooth {
  //clocks = <&rk818 1>;
  clocks = <&rk808 1>;//rk818 1>;
  clock-names = "ext_clock";
};

&i2c0 {
clock-frequency = <400000>;
//rk818: 
[email protected]
{ rk808: [email protected] { }

第三步:注意保留 vcc_lcd 即可,注意pmu裡面也有一個vcc_lcd相關的應該捨去
vcc_lcd: vcc-lcd {
  compatible = "regulator-fixed";
  regulator-boot-on;
  enable-active-high;
  gpio = <&gpio7 3 GPIO_ACTIVE_HIGH>;
  pinctrl-names = "default";
  pinctrl-0 = <&lcd_en>;
  regulator-name = "vcc_lcd";
  vin-supply = <&vcc_io>;
};

至此,pmic相關的就已經配置好了。我們再來根據edp相關的配置點亮螢幕。檢查下dts以下四個與edp相關的選擇是否正確,如下:
&edp {
status = "okay";
};

&edp_panel {
compatible ="lg,lp079qx1-sp0v", "simple-panel";
enable-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&lcd_cs>;
power-supply = <&vcc_lcd>;
delay,prepare = <120>;
status = "okay";
disp_timings: display-timings {
  native-mode = <&timing0>;
  timing0: timing0 {
  clock-frequency = <200000000>;
  hactive = <1536>;
  vactive = <2048>;
  hfront-porch = <12>;
  hsync-len = <16>;
  hback-porch = <48>;
  vfront-porch = <8>;
  vsync-len = <4>;
  vback-porch = <8>;
  hsync-active = <0>;
  vsync-active = <0>;
  de-active = <0>;
  pixelclk-active = <0>;
  };
};

&edp_phy {
status = "okay";
};

&route_edp {
status = "okay";
};

在Android5.1的SDK裡面,Rockchip是這樣用一個dtsi包裹起來的引數:
/ {
disp_timings: display-timings {
  native-mode = <&timing0>;
  timing0: timing0 {
    screen-type = <SCREEN_EDP>;
    out-face    = <OUT_P666>;
    clock-frequency = <205000000>;
    hactive = <1536>;
    vactive = <2048>;
    hback-porch = <5>;
    hfront-porch = <150>;
    vback-porch = <9>;
    vfront-porch = <3>;
    hsync-len = <5>;
    vsync-len = <1>;
    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <0>;
    pixelclk-active = <1>;
    swap-rb = <0>;
    swap-rg = <0>;
    swap-gb = <0>;
   };
  };
};

如今應該在驅動檔案:rk3288\kernel\drivers\gpu\drm\panel\panel-simple.c
static const struct of_device_id platform_of_match[] = 
{
  {
  .compatible = "simple-panel",
  .data = NULL,
  }, {
  }, {
  .compatible = "lg,lp079qx1-sp0v",
  .data = &lg_lp079qx1_sp0v,
  }, 
}

對應的dts裡面的相容:
compatible ="lg,lp079qx1-sp0v", "simple-panel";
static const struct drm_display_mode lg_lp079qx1_sp0v_mode = {
// .clock = 200000,
// .hdisplay = 1536,
// .hsync_start = 1536 + 12,
// .hsync_end = 1536 + 12 + 16,
// .htotal = 1536 + 12 + 16 + 48,
// .vdisplay = 2048,
// .vsync_start = 2048 + 8,
// .vsync_end = 2048 + 8 + 4,
// .vtotal = 2048 + 8 + 4 + 8,
// .vrefresh = 60,
.clock = 205000,
.hdisplay = 1536,
.hsync_start = 1536 + 150,
.hsync_end = 1536 + 150 + 5,
.htotal = 1536 + 150 + 5 + 5,
.vdisplay = 2048,
.vsync_start = 2048 + 3,
.vsync_end = 2048 + 3 + 9,
.vtotal = 2048 + 3 + 9 + 1,
.vrefresh = 60,
.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
};
static const struct panel_desc lg_lp079qx1_sp0v = {
  .modes = &lg_lp079qx1_sp0v_mode,
  .num_modes = 1,
  .size = {
    .width = 129,
    .height = 171,
  },
  .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
};


相關推薦

[RK3288][Android7.1.2] kernel移植 : rk808+edp

平臺:Rockchip 處理器:rk3288 Android版本:Android 7.1.2 核心版本:Linux 4.4.71 第一步:將最接近的dts拷貝一份並重新命名。 rk3288

[RK3288][Android7.1.2] 系統背光亮度顛倒

平臺:RK3288 Android系統:7.1.2 Linux版本:4.4.71 在點亮edp屏幕後,發現在Setting應用裡調節亮度是相反的: #include "rk3288-evb.dtsi" #include "rk3288-android.dtsi" 即最大

[RK3288][Android7.1] 除錯筆記 --- 24bit bmp 轉成 8bit bmp

Platform: RK3288 OS: Android 7.1 Kernel: v4.4.83 背景: 在rk3288平臺上uboot logo發現24bit bmp不能正常顯示,參考原始logo.bmp是8bit. 然後使用命令 convert -compress rle -

[RK3288][Android7.1] 除錯筆記 --- 24bit bmp 轉成 8bit bmp

Platform: RK3288 OS: Android 7.1 Kernel: v4.4.83 背景: 在rk3288平臺上uboot logo發現24bit bmp不能正常顯示,參考原始logo.b

RK3288 Android7.1 開機logo和開機動畫的修改

開機logo和開機動畫的修改## 開機logo修改: 需要修改開機logo的圖片或者logo解析度,直接替換kernel目錄下的logo.bmp 開機動畫修改: 在vendor/rockchip/common/etc目錄下,有bootanimation.zip和

INPUT 系統log Android7.1.2

01-01 22:11:47.014  1982  1982 I MSM-irqbalance: Decided to move IRQ3 from CPU2 [P:0] to CPU4 [P:1] (banned) 01-01 22:11:47.017  1982 

Android7.1.2原始碼解析系列】實戰分析init.rc檔案

實戰分析init.rc檔案 前言:經過上一篇的/system/core/init/readme.txt檔案的翻譯,對於init.rc的語法也有了一定的瞭解,這一篇就對/system/core/rootdir/init.rc檔案進行一個分析,希望能夠藉此對android的開

[RK3288][Android7.1] Android7.1 nougat source code下載

#mkdir rk3288_nougat; cd rk3288_nougat #git clone ssh://[email protected]/repo/rk/tools/repo #

Android7.1.2原始碼解析系列】android init目錄下的Android.mk編譯檔案分析

上一篇文章對於原始碼中的安卓編譯系統文件進行了翻譯,本文就以android當中的init模組作為例子,對其中的Android.mk檔案進行分析,讀者可以在閱讀本文的同時檢視我的譯文:http://blog.csdn.net/class_brick/article/detai

[RK3288][Android5.1] 移植筆記 --- eDP顯示屏新增

Platform: RK3288 OS: Android 5.1Kernel: 3.10.79 原理圖屏相關部分: dts配置: eDP的配置相當簡單, 只要配置display-timing即可,另外,前面的LCD_EN引腳

hfrk2410_a1.1開發板移植linux-2.6.32.27--網絡卡篇(cs8900)

硬體:恆豐銳科開發板hfrk2410_A1.1 軟體:linux-2.6.32.27 cs8900網絡卡移植: 將cs8900驅動原始碼檔案拷貝至drivers/net/,修改drivers/net/Kconfig檔案 config ARM_CS8900

[RK3288][Android5.1] 移植筆記 --- gsl3673 觸控驅動

# #obj-$(CONFIG_TOUCHSCREEN_GSLX680)    += rockchip_gslX680_firefly.o #obj-$(CONFIG_TOUCHSCREEN_GSLX680) += gsl_point_id.o #$(obj)/gsl_point_id.o: $(srctre

[RK3399][Android7.1] Display中的edp驅動呼叫流程

OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55 edp驅動被分成兩個檔案,一個是rk驅動檔案: analogix_dp-rockchip.c, 另一個是drm驅動檔案analogix_dp_c

移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d(編譯篇)

#PS:要轉載請註明出處,本人版權所有 #PS:這個只是 《 我自己 》理解,如果和你的 #原則相沖突,請諒解,勿噴 HOST: Linux 4.10.0-35-generic #39~16.04.1-Ubuntu SMP Wed Sep

Android5.1系統應用移植Android7.1報錯

Android5.1 apk移植到Android7.1呼叫so庫失敗解決 錯誤日誌: 03-20 18:51:11.075 19704 19704 E linker : library “/system/lib/libserial_portlib.so”

在Sql中將 varchar 值 '1,2,3,4,5,6' 轉換成數據類型 int

給定 序列 顯示 結果 空格 sel -方法 一個表 affect --問題:將aa轉換為Int類型失敗 string aa="3,5,11,56,88,45,23"; select * from ERPBuMen where ID in(aa) ; --方法sel

1.2 C語言---數組

c語言---數組1.2 C語言---數組 1.2.1 為什麽引入數組? 數組就是數組成的一個組,數就是一個特定數據類型的變量,組就是說好多數放在了一起。 1.2.2 怎麽定義數組? in

【轉載】Hadoop 2.7.3 和Hbase 1.2.4安裝教程

啟動 運行 property new rop net 文本文 .tar.gz cor 轉載地址:http://blog.csdn.net/napoay/article/details/54136398 目錄(?)[+] 一、機器環境

confluence6.1.2 安裝及破解(理論上來講此方法支持所有版本)

破解 confluence 此次使用的是confluence版本為6.1.2。1.安裝confluence。confluence安裝比較簡單,因為可以從官網下載一鍵安裝包直接安裝。chmod +x atlassian-confluence-6.1.3-x64.bin ./atlassian-confl

TLS升級為1.2

provider property cnblogs ons powers 升級 計算 prior new 管理員身份運行 PowerShell命令進入PowerShell界面 執行面的命令重啟計算機就可以了 # Enables TLS 1.2 on windows Ser