layer[0]我用来做全屏了,可以忽略,layer[1]-layer[4]做不同区域,就是不知道如何单独控制着4个区域
quanzhi 发布的帖子
-
求助 T113S3如何控制fb区域刷新?
我是参考buildroot/package/auto/sdk_demo/yuv_test/yuvtest.cpp例程这个例程
这个例程代码只有头文件,没有源码,源码是封装的,大体如下:
目前我把硬解码的图像刷到屏幕上四个区域(init -> enable -> open)执行,封装如下
现在显示是正常,我想控制某一个区域停止刷图发现不行,colse就会把全部区域一起colse,变黑屏,请问解决办法
-
回复: T113S3双路 dual lvds驱动不起来
@whycan 已参考,还是点不亮
lvds0_pins_a: lvds0@0 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9"; allwinner,function = "lvds0"; allwinner,muxsel = <3>; allwinner,drive = <3>; allwinner,pull = <0>; }; lvds0_pins_b: lvds0@1 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9"; allwinner,function = "io_disabled"; allwinner,muxsel = <7>; allwinner,drive = <3>; allwinner,pull = <0>; }; lvds1_pins_a: lvds1@0 { allwinner,pins = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19"; allwinner,pname = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19"; allwinner,function = "lvds1"; allwinner,muxsel = <3>; allwinner,drive = <3>; allwinner,pull = <0>; }; lvds1_pins_b: lvds1@1 { allwinner,pins = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19"; allwinner,pname = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19"; allwinner,function = "io_disabled"; allwinner,muxsel = <7>; allwinner,drive = <3>; allwinner,pull = <0>; };
&lcd0 { lcd_used = <1>; lcd_driver_name = "default_lcd"; /* "bp101wx1"; */ lcd_if = <3>; /* 2:ttl; 3:lvds; 4:dsi */ lcd_x = <1280>; lcd_y = <1024>; lcd_width = <338>; lcd_height = <270>; lcd_dclk_freq = <108>; lcd_hbp = <20>; lcd_ht = <1688>; lcd_hspw = <10>; lcd_vbp = <20>; lcd_vt = <1066>; lcd_vspw = <5>; lcd_lvds_if = <1>; lcd_lvds_colordepth = <0>; lcd_lvds_mode = <0>; lcd_frm = <1>; lcd_hv_clk_phase = <0>; lcd_hv_sync_polarity= <0>; lcd_gamma_en = <0>; lcd_bright_curve_en = <0>; lcd_cmap_en = <0>; lcd_pwm_used = <0>; lcd_pwm_ch = <7>; lcd_pwm_freq = <50000>; lcd_pwm_pol = <0>; lcd_pwm_max_limit = <255>; lcd_backlight = <100>; deu_mode = <0>; lcdgamma4iep = <22>; smart_color = <90>; pinctrl-0 = <&lvds0_pins_a &lvds1_pins_a>; pinctrl-1 = <&lvds0_pins_b &lvds1_pins_b>; };
检测PD引脚是全部UNCLAIMED的
root@embedsky:/# mount -t debugfs none /sys/kernel/debug; root@embedsky:/# cat /sys/kernel/debug/pinctrl/pio/pinmux-pins Pinmux settings per pin Format: pin (name): mux_owner|gpio_owner (strict) hog? pin 32 (PB0): UNCLAIMED pin 33 (PB1): device 7040000.s_cir function ir group PB1 pin 34 (PB2): UNCLAIMED pin 35 (PB3): GPIO pio:35 pin 36 (PB4): UNCLAIMED pin 37 (PB5): UNCLAIMED pin 38 (PB6): device 2502c00.twi function gpio_in group PB6 pin 39 (PB7): device 2502c00.twi function gpio_in group PB7 pin 40 (PB8): UNCLAIMED pin 41 (PB9): UNCLAIMED pin 42 (PB10): UNCLAIMED pin 43 (PB11): UNCLAIMED pin 44 (PB12): UNCLAIMED pin 64 (PC0): UNCLAIMED pin 65 (PC1): UNCLAIMED pin 66 (PC2): device 4022000.sdmmc function sdc2 group PC2 pin 67 (PC3): device 4022000.sdmmc function sdc2 group PC3 pin 68 (PC4): device 4022000.sdmmc function sdc2 group PC4 pin 69 (PC5): device 4022000.sdmmc function sdc2 group PC5 pin 70 (PC6): device 4022000.sdmmc function sdc2 group PC6 pin 71 (PC7): device 4022000.sdmmc function sdc2 group PC7 pin 96 (PD0): UNCLAIMED pin 97 (PD1): UNCLAIMED pin 98 (PD2): UNCLAIMED pin 99 (PD3): UNCLAIMED pin 100 (PD4): UNCLAIMED pin 101 (PD5): UNCLAIMED pin 102 (PD6): UNCLAIMED pin 103 (PD7): UNCLAIMED pin 104 (PD8): UNCLAIMED pin 105 (PD9): UNCLAIMED pin 106 (PD10): UNCLAIMED pin 107 (PD11): UNCLAIMED pin 108 (PD12): UNCLAIMED pin 109 (PD13): UNCLAIMED pin 110 (PD14): UNCLAIMED pin 111 (PD15): UNCLAIMED pin 112 (PD16): UNCLAIMED pin 113 (PD17): UNCLAIMED pin 114 (PD18): UNCLAIMED pin 115 (PD19): UNCLAIMED pin 116 (PD20): UNCLAIMED pin 117 (PD21): UNCLAIMED pin 118 (PD22): UNCLAIMED pin 128 (PE0): device 2502400.twi function gpio_in group PE0 pin 129 (PE1): device 2502400.twi function gpio_in group PE1 pin 130 (PE2): device 2500800.uart function uart2 group PE2 pin 131 (PE3): device 2500800.uart function uart2 group PE3 pin 132 (PE4): device 2501000.uart function uart4 group PE4 pin 133 (PE5): device 2501000.uart function uart4 group PE5 pin 134 (PE6): device 2501400.uart function uart5 group PE6 pin 135 (PE7): device 2501400.uart function uart5 group PE7 pin 136 (PE8): device 2500c00.uart function uart3 group PE8 pin 137 (PE9): device 2500c00.uart function uart3 group PE9 pin 138 (PE10): UNCLAIMED pin 139 (PE11): UNCLAIMED pin 140 (PE12): UNCLAIMED pin 141 (PE13): device 3-0024 function irq group PE13 pin 142 (PE14): UNCLAIMED pin 143 (PE15): UNCLAIMED pin 144 (PE16): UNCLAIMED pin 145 (PE17): UNCLAIMED pin 160 (PF0): device 4020000.sdmmc function gpio_in group PF0 pin 161 (PF1): device 4020000.sdmmc function gpio_in group PF1 pin 162 (PF2): device 4020000.sdmmc function gpio_in group PF2 pin 163 (PF3): device 4020000.sdmmc function gpio_in group PF3 pin 164 (PF4): device 4020000.sdmmc function gpio_in group PF4 pin 165 (PF5): device 4020000.sdmmc function gpio_in group PF5 pin 166 (PF6): GPIO pio:166 pin 192 (PG0): device 4500000.eth function gmac0 group PG0 pin 193 (PG1): device 4500000.eth function gmac0 group PG1 pin 194 (PG2): device 4500000.eth function gmac0 group PG2 pin 195 (PG3): device 4500000.eth function gmac0 group PG3 pin 196 (PG4): device 4500000.eth function gmac0 group PG4 pin 197 (PG5): device 4500000.eth function gmac0 group PG5 pin 198 (PG6): device 4500000.eth function gmac0 group PG6 pin 199 (PG7): device 4500000.eth function gmac0 group PG7 pin 200 (PG8): device 4500000.eth function gmac0 group PG8 pin 201 (PG9): device 4500000.eth function gmac0 group PG9 pin 202 (PG10): device 4500000.eth function gmac0 group PG10 pin 203 (PG11): device 4500000.eth function gmac0 group PG11 pin 204 (PG12): device 4500000.eth function gmac0 group PG12 pin 205 (PG13): device 4500000.eth function gmac0 group PG13 pin 206 (PG14): device 4500000.eth function gmac0 group PG14 pin 207 (PG15): device 4500000.eth function gmac0 group PG15 pin 208 (PG16): UNCLAIMED pin 209 (PG17): UNCLAIMED pin 210 (PG18): UNCLAIMED
执行这个命令看到时钟什么的和手册差不多
root@embedsky:/# fbset mode "1280x1024-60" # D: 108.003 MHz, H: 63.983 kHz, V: 60.021 Hz geometry 1280 1024 1280 2048 32 timings 9259 10 388 15 22 10 5 accel false rgba 8/16,8/8,8/0,8/24 endmode
-
回复: T113S3双路 dual lvds驱动不起来
@awwwwa @awwwwa 直接在uboot按原有的lvds0节点方式加节点报错Error:arch/arm/dts/board-ubootdts:96.1-18 Label or path lvds2link pins a not foundError:arch/arm/dts/board-ubootdts:107.1-18 Label or path lvds2link pins b not founc
-
回复: T113S3双路 dual lvds驱动不起来
@awwwwa 在 T113S3双路 dual lvds驱动不起来 中说:
uboot和dtsi里面添加dual link IO的配置
demo: lvds2link_pins_a: lvds2link@0 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", \ "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", \ "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,function = "lvds1"; allwinner,muxsel = <3>; allwinner,drive = <3>; allwinner,pull = <0>; }; lvds2link_pins_b: lvds2link@1 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", \ "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", \ "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,function = "lvds1_suspend"; allwinner,muxsel = <7>; allwinner,drive = <3>; allwinner,pull = <0>; };
dts中 修改为lvds dual link模式,并引用dtsi里配好的dual link IO
&lcd0{ ... lcd_lvds_if = <1>; ... ... pinctrl-0 = <&lvds2link_pins_a>; pinctrl-1 = <&lvds2link_pins_b>; ... }
其他和single link的配置方法无异,如果点不亮请检查时序
这里看到dclk配置是80
但是手册需求的是54
这里提供一套1920x720的时序作为参考
&lcd0 { lcd_used = <1>; lcd_driver_name = "default_lcd"; lcd_backlight = <50>; lcd_if = <3>; lcd_x = <1920>; lcd_y = <720>; lcd_width = <150>; lcd_height = <94>; lcd_dclk_freq = <94>; lcd_pwm_used = <1>; lcd_pwm_ch = <3>; lcd_pwm_freq = <50000>; lcd_pwm_pol = <1>; lcd_pwm_max_limit = <255>; lcd_hbp = <64>; lcd_ht = <2064>; lcd_hspw = <20>; lcd_vbp = <30>; lcd_vt = <760>; lcd_vspw = <10>; lcd_lvds_if = <1>; lcd_lvds_colordepth = <0>; lcd_lvds_mode = <0>; lcd_frm = <1>; lcd_hv_clk_phase = <0>; lcd_hv_sync_polarity= <0>; lcd_gamma_en = <0>; lcd_bright_curve_en = <0>; lcd_cmap_en = <0>; deu_mode = <0>; lcdgamma4iep = <22>; smart_color = <90>; pinctrl-0 = <&lvds2link_pins_a>; pinctrl-1 = <&lvds2link_pins_b>; };
/只有引用才能添加图片,回复图片报错***/
@awwwwa 直接在uboot按原有的lvds0节点方式加节点报错Error:arch/arm/dts/board-ubootdts:96.1-18 Label or path lvds2link pins a not foundError:arch/arm/dts/board-ubootdts:107.1-18 Label or path lvds2link pins b not founc