Firefly开源社区

[硬件交流] [已解决]AIO3399c ai (未贴npu) 适配新屏幕

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2021-3-3 15:38:02     
本帖最后由 糖炒栗子 于 2021-3-9 13:25 编辑

我想给AIO3399c 配置一块新屏幕,但是panel-init-sequence参数无法确定,找了一圈也没有什么文档,请问该如何生成该参数.
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2021-3-4 16:44:47     
找到了一个配置工具,但是dsi 参数去哪儿找啊.原理图嘛?
回复

使用道具 举报

3342

积分

17

威望

18

贡献

高级创客

Rank: 6Rank: 6

积分
3342
QQ
发表于 2021-3-4 19:39:01     
糖炒栗子 发表于 2021-3-4 16:44
找到了一个配置工具,但是dsi 参数去哪儿找啊.原理图嘛?

sdk 里面有包含800x1280单lvds  和 1920x1080 双lvds 配置
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2021-3-5 19:52:36     
jpchen 发表于 2021-3-4 19:39
sdk 里面有包含800x1280单lvds  和 1920x1080 双lvds 配置

我找到那个示例了,使用生成工具生成了一个init-param,现在点亮屏幕后会闪一下,然后就一直黑着?大概会是那个部分配置错误了?
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2021-3-5 19:58:53     
dts文件
  1. #include "rk3399-firefly-aioc-ai.dtsi"        
  2. / {
  3.         model = "AIO-3399C(AI) 10.1 inches LVDS HSX101H40C (Android)";
  4.         compatible = "rockchip,android", "rockchip,rk3399-firefly-lvds", "rockchip,rk3399";
  5. };
  6. &backlight {
  7.     status = "okay";
  8.     pwms = <&pwm0 0 50000 1>;
  9.     enable-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
  10.                 default-brightness-level = <200>;
  11.                 polarity = <1>;
  12.                 brightness-levels = <36  37  38  39
  13.                          40  41  42  43  44  45  46  47
  14.                          48  49  50  51  52  53  54  55
  15.                          56  57  58  59  60  61  62  63
  16.                          64  65  66  67  68  69  70  71
  17.                          72  73  74  75  76  77  78  79
  18.                          80  81  82  83  84  85  86  87
  19.                          88  89  90  91  92  93  94  95
  20.                          96  97  98  99 100 101 102 103
  21.                         104 105 106 107 108 109 110 111
  22.                         112 113 114 115 116 117 118 119
  23.                         120 121 122 123 124 125 126 127
  24.                         128 129 130 131 132 133 134 135
  25.                         136 137 138 139 140 141 142 143
  26.                         144 145 146 147 148 149 150 151
  27.                         152 153 154 155 156 157 158 159
  28.                         160 161 162 163 164 165 166 167
  29.                         168 169 170 171 172 173 174 175
  30.                         176 177 178 179 180 181 182 183
  31.                         184 185 186 187 188 189 190 191
  32.                         192 193 194 195 196 197 198 199
  33.                         200 201 202 203 204 205 206 207
  34.                         208 209 210 211 212 213 214 215
  35.                         216 217 218 219 220 221 222 223
  36.                         224 225 226 227 228 229 230 231
  37.                         232 233 234 235 236 237 238 239
  38.                         240 241 242 243 244 245 246 247
  39.                         248 249 250 251 252 253 254 255>;
  40. };

  41. &dsi {
  42.         status = "okay";
  43.         rockchip,lane-rate = <530>;  //lvds_clock*6*2
  44.          dsi_panel: panel {
  45.                         compatible ="simple-panel-dsi";
  46.                         reg = <0>;
  47.                         //ddc-i2c-bu
  48.                         //power-supply = <&vcc_lcd>;
  49.                         //pinctrl-0 = <&lcd_panel_reset &lcd_panel_enable>;
  50.                         backlight = <&backlight>;
  51.                         /*
  52.                         enable-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
  53.                         reset-gpios = <&gpio4 29 GPIO_ACTIVE_LOW>;
  54.                         */
  55.                         dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
  56.                         dsi,format = <MIPI_DSI_FMT_RGB888>;
  57.                         //bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;
  58.                         //dsi,lvds-force-clk = <800>; // 800/2/3 ~= 65Mhz
  59.                         dsi,lanes = <4>;

  60.                 dsi,channel = <0>;

  61.                 enable-delay-ms = <35>;
  62.                 prepare-delay-ms = <6>;

  63.                 unprepare-delay-ms = <0>;
  64.                 disable-delay-ms = <20>;

  65.                 size,width = <120>;
  66.                 size,height = <170>;

  67.                 status = "okay";

  68.                 panel-init-sequence = [
  69.                         29 02 06 3C 01 09 00 07 00        //PPI_TX_RX_TA,[10:0]=1.5*PPI_LPTXTIMECNT=9,[26:16]=(5*PPI_LPTXTIMECNT-3)*4=7
  70.                         29 02 06 14 01 06 00 00 00        //PPI_LPTXTIMECNT=6
  71.                         29 02 06 64 01 0B 00 00 00                //PPI_D0S_CLRSIPOCOUNT
  72.                         29 02 06 68 01 0B 00 00 00                //PPI_D1S_CLRSIPOCOUNT
  73.                         29 02 06 6C 01 0B 00 00 00                //PPI_D2S_CLRSIPOCOUNT
  74.                         29 02 06 70 01 0B 00 00 00                //PPI_D3S_CLRSIPOCOUNT
  75.                         29 02 06 34 01 0F 00 00 00        //OK //PPI_LANEENABLE 1F
  76.                         29 02 06 10 02 0F 00 00 00        //OK //DSI_LANEENABLE  1F
  77.                         29 02 06 04 01 01 00 00 00        //OK //PPI_STARTPPI
  78.                         29 02 06 04 02 01 00 00 00                //DSI_START,has removed
  79.                         29 02 06 50 04 20 01 F0 03        //OK //VPCTRL, 00000011 11110000 00000001 00100000 = bit0(0:msf disable),bit8(1:RGB888),bit17,18,19(0:hs,de,vs active Low),bit29:20(3F:vs delay 63)
  80.        //1280*800
  81.                         29 02 06 54 04 04 00 1A 00        //OK //HTIM1, 00000000 10110100 00000000 00110010 = bit8:0(0x14:hs pulse width 20pixel),bit24:16(0xf0: h back porch 240pixel)
  82.                         29 02 06 58 04 00 05 14 00        //OK //HTIM2, 00000000 01001000 00000111 10000000 = bit10:0(0x400:h active 1024pixel),bit24:16(0x3c: h front porch 60pixel)
  83.                         29 02 06 5C 04 01 00 06 00        //OK //VTIM1, 00000000 00011001 00000000 00001010 = bit7:0(0x0c:vs pulse width 12pixel),bit23:16(0x14: v back porch 20pixel)
  84.                         29 02 06 60 04 20 03 03 00        //OK //VTIM2, 00000000 00001010 00000100 00111000 = bit10:0(0x258:v active 600pixel),bit23:16(0x0c: v front porch 12pixel)
  85.                         29 02 06 64 04 01 00 00 00        //OK //VFUEN, 1 update timing parameters(HTIM1,HTIM2...)
  86.                         29 02 06 A0 04 06 80 44 00        //OK //LVPHY0, 00000000 01000100 10000000 00000110 = bit4:0(00110:vf 60~85MHZ),bit6:5(00:60~85Mhz),bit10(1:reduced range)
  87.                         29 02 06 A0 04 06 80 04 00        //OK //LVPHY0, bit22(0:normal ,1:reset)
  88.                         29 02 06 04 05 04 00 00 00        //OK //SYSRST,
  89.                         29 02 06 80 04 00 01 02 03        //R0,R1,R2,R3
  90.                         29 02 06 84 04 04 07 05 08        //R4,R7,R5,G0
  91.                         29 02 06 88 04 09 0A 0E 0F        //G1,G2,G6,G7
  92.                         29 02 06 8C 04 0B 0C 0D 10        //G3,G4,G5,B0
  93.                         29 02 06 90 04 16 17 11 12        //B6,B7,B1,B2
  94.                         29 02 06 94 04 13 14 15 1B        //B3,B4,B5,0
  95.                         29 02 06 98 04 18 19 1A 06        //HS,VS,DE,R6
  96.                         29 02 06 9C 04 31 04 00 00                   //LVCFG, 00000000 00000000 00000100 00110001 = bit0(1:lvds enbale),bit1(0:singlelvds,1:duallvds),bit7:4(3:pclk divide option divide by 3),bit11:10(01:DCLK=DSI_CLK/2)

  97.                 ];
  98.                 panel-exit-sequence = [
  99.                      05 05 01 28
  100.                      05 78 01 10
  101.                 ];

  102.                 power_ctr: power_ctr {
  103.                                 rockchip,debug = <0>;
  104.                                 power_enable = <1>;
  105.                                 lcd_en:lcd_en {
  106.                                        gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
  107.                                        pinctrl-names = "default";
  108.                                        pinctrl-0 = <&lcd_panel_lcd_en>;
  109.                                        rockchip,delay = <10>;
  110.                                 };
  111.                                lcd_pwr_en: lcd-pwr-en {
  112.                                        gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
  113.                                        pinctrl-names = "default";
  114.                                        pinctrl-0 = <&lcd_panel_pwr_en>;
  115.                                        rockchip,delay = <10>;
  116.                                };

  117.                                lcd_rst: lcd-rst {
  118.                                        gpios = <&gpio4 25 GPIO_ACTIVE_HIGH>;
  119.                                                            pinctrl-names = "default";
  120.                                                            pinctrl-0 = <&lcd_panel_reset>;
  121.                                        rockchip,delay = <6>;
  122.                                };
  123.                 };

  124.                 disp_timings: display-timings {
  125.                      native-mode = <&timing0>;
  126.                      timing0: timing0 {
  127.                         clock-frequency = <65000000>;
  128.                         hactive = <1280>;
  129.                         vactive = <800>;
  130.                         hback-porch = <26>;
  131.                         hfront-porch = <20>;
  132.                         vback-porch = <6>;
  133.                         vfront-porch = <3>;
  134.                         hsync-len = <4>;
  135.                         vsync-len = <1>;
  136.                         hsync-active = <0>;
  137.                         vsync-active = <0>;
  138.                         de-active = <00>;
  139.                         pixelclk-active = <0>;
  140.                  };
  141.             };
  142.         };
  143. };
复制代码


错误日志
  1. [    0.404292] rockchip-drm display-subsystem: defer getting devfreq
  2. [    0.404584] rockchip-vop ff900000.vop: missing rockchip,grf property
  3. [    0.404836] rockchip-vop ff900000.vop: unable to request PWM
  4. [    0.404866] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
  5. [    0.404910] rockchip-vop ff8f0000.vop: missing rockchip,grf property
  6. [    0.405081] rockchip-vop ff8f0000.vop: unable to request PWM
  7. [    0.405097] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
  8. [    0.405119] rockchip-drm display-subsystem: failed to bind ff960000.dsi (ops dw_mipi_dsi_ops): -517
  9. [    0.405366] rockchip-drm display-subsystem: master bind failed: -517
  10. [    0.407273] ff960000.dsi.0 supply power not found, using dummy regulator
  11. [    0.407987] mali ff9a0000.gpu: Failed to get regulator
  12. [    0.408003] mali ff9a0000.gpu: Power control initialization failed
  13. [    0.408333] Unable to detect cache hierarchy for CPU 0
  14. [    0.416463] brd: module loaded
复制代码
回复

使用道具 举报

3342

积分

17

威望

18

贡献

高级创客

Rank: 6Rank: 6

积分
3342
QQ
发表于 2021-3-6 09:24:01     
在build.prop 里面添加如下
  1. sys.hwc.device.primary=DSI
  2. sys.hwc.device.extend=HDMI-A
复制代码
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2021-3-7 20:36:44     
jpchen 发表于 2021-3-6 09:24
在build.prop 里面添加如下

试过了,不行.我明天拿示波器看看.
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2021-3-8 18:25:18     
最后把 &route_dsi disabled 后就可以显示了.应该uboot部分还有问题.不过我们不需要开机logo,忽略也没关系.以后有功夫再搞.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表