|
发表于 2018-6-24 03:51:29
只看该作者
34#
我将rockchip,screen_init = <0>; 中的0改为1时,系统就会停在kernel进入的界面
下面的是我dtsi
/*
* RockChip. DisplayPort screen LP097QX1
*
*/
/ {
disp_mipi_init: mipi_dsi_init{
compatible = "rockchip,mipi_dsi_init";
rockchip,screen_init = <0>;
rockchip,dsi_lane = <2>;
rockchip,dsi_hs_clk = <280>;
rockchip,mipi_dsi_num = <1>;
};
disp_mipi_init_cmds: screen-on-cmds {
rockchip,cmd_debug = <0>;
compatible = "rockchip,screen-on-cmds";
rockchip,on-cmds1 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xB0 0x04>;
};
rockchip,on-cmds2 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xb3 0x02 0x00>;
};
rockchip,on-cmds3 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xb6 0x52 0x83>;
};
rockchip,on-cmds4 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xb7 0x00 0x00 0x11 0x25>;
};
rockchip,on-cmds5 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xB8 0x00 0x0F 0x0F 0xFF 0xFF 0xC8 0xC8 0x02 0x18 0x10 0x10 0x37 0x5A 0x87 0xBE 0xFF 0x00 0x00 0x00 0x00>;
};
rockchip,on-cmds6 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xB9 0x00 0xFF 0x02 0x08>;
};
rockchip,on-cmds7 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xBD 0x00>;
};
rockchip,on-cmds8 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xC0 0x02 0x87>;
};
rockchip,on-cmds9 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xC1 0x43 0x31 0x00 0x21 0x21 0x32 0x12 0x28 0x4A 0x1E 0xA5 0x0F 0x58 0x21 0x01>;
};
rockchip,on-cmds10 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xC2 0x10 0x06 0x06 0x01 0x03 0x04>;
};
rockchip,on-cmds11 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xC6 0x00>;
};
rockchip,on-cmds12 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xC8 0x00 0x0D 0x1F 0x29 0x36 0x4D 0x37 0x25 0x19 0x11 0x08 0x01 0x00 0x0D 0x1F 0x29 0x36 0x4D 0x37 0x25 0x19 0x11 0x08 0x01>;
};
rockchip,on-cmds13 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xC9 0x00 0x0D 0x1F 0x29 0x36 0x4D 0x37 0x25 0x19 0x11 0x08 0x01 0x00 0x0D 0x1F 0x29 0x36 0x4D 0x37 0x25 0x19 0x11 0x08 0x01>;
};
rockchip,on-cmds14 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xCA 0x00 0x1D 0x1F 0x29 0x36 0x4D 0x37 0x25 0x19 0x11 0x28 0x01 0x00 0x0D 0x1F 0x29 0x36 0x4D 0x37 0x25 0x19 0x11 0x08 0x01>;
};
rockchip,on-cmds15 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xD0 0xA9 0x03 0xCF 0xA7 0x0C 0x71 0x20 0x10 0x01 0x00 0x01 0x01 0x00 0x03 0x01 0x00>;
};
rockchip,on-cmds16 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xD1 0x18 0x0C 0x23 0x03 0x75 0x02 0x50>;
};
rockchip,on-cmds17 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xD3 0x33>;
};
rockchip,on-cmds18 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xD5 0x08 0x08>;
};
rockchip,on-cmds19 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xD6 0xA8>;
};
rockchip,on-cmds20 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xDE 0x01 0x00 0x00>;
};
rockchip,on-cmds21 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xE1 0x00 0x00 0x00 0x00 0x00 0x00>;
rockchip,cmd_delay = <20>;
};
rockchip,on-cmds22 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xE6 0x00>;
rockchip,cmd_delay = <20>;
};
rockchip,on-cmds23 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xFA 0x03>;
rockchip,cmd_delay = <20>;
};
rockchip,on-cmds24 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xE0 0x01 0x00 0x10 0x00>;
};
rockchip,on-cmds25 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0x11>;
rockchip,cmd_delay = <250>;
};
rockchip,on-cmds26 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xE0 0x01 0x40 0x00 0x00>;
};
rockchip,on-cmds27 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0x10>;
rockchip,cmd_delay = <250>;
};
rockchip,on-cmds28 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0xE0 0x00 0x00 0x00 0x00>;
};
rockchip,on-cmds29 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
//dcs_exit_sleep_mode在code中有定义,可以直接使用,包括下面的dcs_set_display_on.
rockchip,cmd = <0x05 dcs_exit_sleep_mode>;
rockchip,cmd_delay = <120>;
};
rockchip,on-cmds30 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type = <LPDT>;
rockchip,dsi_id = <0>;
//只有命令没有参数用0x05.
rockchip,cmd = <0x05 dcs_set_display_on>;
//这个延时很重要.
rockchip,cmd_delay = <120>;
};
};
disp_timings: display-timings
{
native-mode = <&timing0>;
compatible = "rockchip,display-timings";
timing0: timing0
{
screen-type = <SCREEN_MIPI>;
lvds-format = <LVDS_8BIT_2>;
out-face = <OUT_P888>;
clock-frequency = <28000000>;
hactive = <480>;
vactive = <800>;
hback-porch = <32>;
hfront-porch = <20>;
vback-porch = <12>;
vfront-porch = <20>;
hsync-len = <8>;
vsync-len = <8>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
swap-rb = <0>;
swap-rg = <0>;
swap-gb = <0>;
};
};
};
拉高管脚的部分是在dts里面拉
+++ b/kernel/arch/arm/boot/dts/firefly-rk3288.dts
@@ -192,6 +192,11 @@
};
};
+&dsihost0{
+ status = "okay";
+};
+
+
&gmac {
// pmu_regulator = "act_ldo5";
// pmu_enable_level = <1>; //1->HIGH, 0->LOW
@@ -620,25 +625,42 @@
&fb {
rockchip,disp-mode = <DUAL>;
- rockchip,uboot-logo-on = <1>;
- rockchip,disp-policy = <DISPLAY_POLICY_BOX_TEMP>;
+ rockchip,uboot-logo-on = <0>;
+
};
-/*
+
&disp_timings {
- native-mode = <&timing1>;
+ native-mode = <&timing0>;
};
-*/
+
&rk_screen {
display-timings = <&disp_timings>;
};
/*lcdc0 as PRMRY(HDMI),lcdc1 as EXTEND(RK1000)*/
&lcdc0 {
- status = "okay";
- rockchip,iommu-enabled = <1>;
- rockchip,prop = <PRMRY>;
+ status = "okay";
+ rockchip,mirror = <NO_MIRROR>;
+ rockchip,cabc_mode = <0>;
+ power_ctr: power_ctr {
+ rockchip,debug = <0>;
+ lcd_en:lcd_en {
+ rockchip,power_type = <GPIO>;
+ gpios = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;
+ rockchip,delay = <10>;
+ };
+ lcd_cs:lcd_cs {
+ rockchip,power_type = <GPIO>;
+ gpios = <&gpio0 GPIO_C1 GPIO_ACTIVE_HIGH>;
+ rockchip,delay = <10>;
+ };
+
+
+ };
};
+
+
&lcdc1 {
status = "okay";
rockchip,iommu-enabled = <1>;
diff --git a/kernel/arch/arm/configs/firefly_defconfig b/kernel/arch/arm/configs/firefly_defconfig
index e610aac..db23d8b 100644
--- a/kernel/arch/arm/configs/firefly_defconfig
+++ b/kernel/arch/arm/configs/firefly_defconfig
@@ -67,6 +67,9 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_IDLE=y
CONFIG_VFP=y
CONFIG_NEON=y
+CONFIG_LCD_MIPI=y
+CONFIG_MIPI_DSI=y
+CONFIG_RK32_MIPI_DSI=y
请大家帮忙解决一下 |
|