Skip to content

Instantly share code, notes, and snippets.

@artizirk
Created June 11, 2020 10:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save artizirk/636e3fe9320bb0f6af9c419a79157346 to your computer and use it in GitHub Desktop.
Save artizirk/636e3fe9320bb0f6af9c419a79157346 to your computer and use it in GitHub Desktop.
Cubietruck Allwinner A20 VGA output on mainline Armbian
/dts-v1/;
/plugin/;
/* Based on https://github.com/wens/linux/commits/sun4i-drm-tve-vga-wip */
/* Tested with Cubetruck */
/* save it somewhere and run sudo armbian-add-overlay vga.dts */
/ {
compatible = "allwinner,sun4i-a10", "allwinner,sun7i-a20", "allwinner,sun8i-h3", "allwinner,sun50i-a64", "allwinner,sun50i-h5";
fragment@0 {
target-path = "/soc";
__overlay__ {
tve0: tv-encoder@1c0a000 {
compatible = "allwinner,sun4i-a10-tv-encoder";
reg = <0x01c0a000 0x1000>;
clocks = <&ccu 54>; /* #define CLK_AHB_TVE0 54 */
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
tve0_in_tcon0: endpoint {
remote-endpoint = <&tcon0_out_tve0>;
};
};
tve0_out: port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
/* endpoint number denotes the TVOUT on the SoC used */
tve0_out_g: endpoint@0 {
reg = <0>; /* TVOUT 0 */
allwinner,tve-source = <4>; /* Y/G */
remote-endpoint = <&vga_connector_in_g>;
};
tve0_out_b: endpoint@1 {
reg = <1>; /* TVOUT 1 */
allwinner,tve-source = <5>; /* U/Pb/B */
remote-endpoint = <&vga_connector_in_b>;
};
tve0_out_r: endpoint@2 {
reg = <2>; /* TVOUT 2 */
allwinner,tve-source = <6>; /* V/Pr/R */
remote-endpoint = <&vga_connector_in_r>;
};
};
};
};
};
};
fragment@1 {
target-path = "/soc/lcd-controller@1c0c000/ports/port@1";
__overlay__ {
tcon0_out_tve0: endpoint@2 {
reg = <2>;
remote-endpoint = <&tve0_in_tcon0>;
allwinner,tcon-channel = <1>;
};
};
};
fragment@2 {
target-path = "/";
__overlay__ {
vga-connector {
compatible = "vga-connector";
label = "vga";
ddc-i2c-bus = <&i2c2>;
port {
#address-cells = <1>;
#size-cells = <0>;
vga_connector_in_r: endpoint@0 {
reg = <0>;
remote-endpoint = <&tve0_out_r>;
};
vga_connector_in_g: endpoint@1 {
reg = <1>;
remote-endpoint = <&tve0_out_g>;
};
vga_connector_in_b: endpoint@2 {
reg = <2>;
remote-endpoint = <&tve0_out_r>;
};
/* usage of tve0 implies h/v sync from tcon0 */
};
};
};
};
};
@pingvincible
Copy link

Thank you, it would be great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment