Jump to content

artizirk

Members
  • Posts

    3
  • Joined

  • Last visited

Posts posted by artizirk

  1. I still haven't had time to push proper patches to the kernel or Armbian build repo, but here is a working user devicetree overlay that works for me.

     

    https://gist.github.com/artizirk/636e3fe9320bb0f6af9c419a79157346

     

    /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 */
    				};
    			};
    		};
    	};
    };

     

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines