最近有点闲,想做点小东西来配合上个世纪的电视机。
但在调试F1C200S的tv-out输出的时候,没有任何办法和头绪,还是太菜。
在linux内核启动的时候,启动信息看到tv-encoder了,dev有fb0和dri/card0,但始终差临门一脚。
望各位大佬指点一下小弟,感激不尽。
启动的部分信息
[ 1.059740] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
[ 1.071758] sun4i-drm soc:display-engine: bound 1e00000.display-frontend (ops 0xc083b2c0)
[ 1.080737] sun4i-drm soc:display-engine: bound 1e60000.display-backend (ops 0xc083ab00)
[ 1.090389] sun4i-drm soc:display-engine: bound 1c0c000.lcd-controller (ops 0xc08396a0)
[ 1.098997] sun4i-drm soc:display-engine: bound 1c0a000.tv-encoder (ops 0xc083a3c0)
[ 1.106775] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.113429] [drm] No driver support for vblank timestamp query.
[ 1.121605] [drm] Initialized sun4i-drm 1.0.0 20150629 for soc:display-engine on minor 0
[ 1.130550] [drm] kms: can't enable cloning when we probably wanted to.
[ 1.187122] Console: switching to colour frame buffer device 60x34
[ 1.239317] sun4i-drm soc:display-engine: fb0: sun4i-drmdrmfb frame buffer device
modeprint 信息
trying to open device 'sun4i-drm'
count_connectors : 2
count_encoders : 2
count_crtcs : 1
count_fbs : 0
Connector: unknown-1
id : 49
encoder id : 48
conn : connected
size : 95x53 (mm)
count_modes : 1
count_props : 5
props : 1 2 5 6 4
count_encoders : 1
encoders : 48
Mode: "480x272" 480x272 60
Connector: composite-1
id : 51
encoder id : 0
conn : connected
size : 0x0 (mm)
count_modes : 2
count_props : 5
props : 1 2 5 6 4
count_encoders : 1
encoders : 50
Mode: "PAL" 720x576 50
Mode: "NTSC" 720x480 60
Encoder: none
id :48
crtc_id :47
type :0
possible_crtcs :0x1
possible_clones :0x0
Encoder: TVDAC
id :50
crtc_id :0
type :4
possible_crtcs :0x1
possible_clones :0x0
Crtc
id : 47
x : 0
y : 0
width : 480
height : 272
mode : 0x256cc
gamma size : 0
Ok
设备树部分相关设置
tve0: tv-encoder@1c0a000 {
compatible = "allwinner,suniv-f1c100s-tv-encoder",
"allwinner,sun4i-a10-tv-encoder";
reg = <0x01c0a000 0x1000>;
clocks = <&ccu CLK_BUS_TVE>;
resets = <&ccu RST_BUS_TVE>;
status = "okay";
port {
tve0_in_tcon0: endpoint {
remote-endpoint = <&tcon0_out_tve0>;
};
};
};
tcon0: lcd-controller@1c0c000 {
compatible = "allwinner,suniv-f1c100s-tcon",
"allwinner,sun4i-a10-tcon";
reg = <0x01c0c000 0x1000>;
interrupts = <29>;
clocks = <&ccu CLK_BUS_LCD>,
<&ccu CLK_TCON>,
<&ccu CLK_TVE1_CLK>;
clock-names = "ahb",
"tcon-ch0",
"tcon-ch1";
clock-output-names = "tcon-pixel-clock";
resets = <&ccu RST_BUS_LCD>;
reset-names = "lcd";
assigned-clocks = <&ccu CLK_TCON>;
assigned-clock-rates = <297000000>;
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
tcon0_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
tcon0_in_be0: endpoint@0 {
reg = <0>;
remote-endpoint = <&be0_out_tcon0>;
};
};
tcon0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
tcon0_out_tve0: endpoint@1 {
reg = <1>;
remote-endpoint = <&tve0_in_tcon0>;
allwinner,tcon-channel = <1>;
};
};
};
};
最近编辑记录 genyhwang (2024-07-07 16:13:58)
离线
使用libdrm编写程序能搞出视频信号,但画面是错的,像参数配置不正确。
然后尝试直接在drm内核代码修改相关的寄存器能强制输出正常的彩条信号。
貌似是defe、debe问题吧~~
暂时还不能输出正常画面。。。
继续研究中。。。。。。
最近编辑记录 genyhwang (2024-07-09 14:03:12)
离线
还有虽然是输出了视频信号,但就是不知道为什么没有色彩。。。。一大堆坑啊
离线
楼主知道怎么配置i8080接口?我用i8080接口也是有fb0和dri/card0,但是没有输出。
先用gpio模式初始化了屏幕,刷了一屏蓝色。之后加载显示驱动后显示没有变化
我没有驱动过i8080接口。不过你既然已经能刷蓝色,说明驱动应该是正确的了。“显示没有变化”可能是需要刷新输出吧?你遇到的问题具体怎么回事我也不太清楚,我也是小白菜哈。
最近编辑记录 genyhwang (2024-07-09 23:32:41)
离线