[PATCH 06/10] ARM: dts: Augment panel setting for Versatile

Liviu Dudau liviu.dudau at arm.com
Mon Mar 12 10:37:37 PDT 2018


On Sun, Mar 11, 2018 at 02:53:03PM +0100, Linus Walleij wrote:
> This adds the actual VGA DAC bridge that is used in the
> Versatile AB, and sets the mode to 640x480 VGA.
> 
> The "clcd" clock was incorrectly named, the proper name
> (from bindings) is "clcdclk". So far drivers survived
> by just getting the first clock, but future drivers will
> use named clocks.
> 
> We add the panel connector to the
> "arm,versatile-tft-panel" as well, the signals actually
> fork on the board, reaching both the VGA DAC and the
> display connector.
> 
> Cc: Liviu Dudau <liviu.dudau at arm.com>
> Cc: Mali DP Maintainers <malidp at foss.arm.com>
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>

Reviewed-by: Liviu Dudau <liviu.dudau at arm.com>

> ---
>  arch/arm/boot/dts/versatile-ab.dts | 83 +++++++++++++++++++++++++++++++++++++-
>  1 file changed, 81 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/versatile-ab.dts b/arch/arm/boot/dts/versatile-ab.dts
> index 4a51612996bc..5f61d3609027 100644
> --- a/arch/arm/boot/dts/versatile-ab.dts
> +++ b/arch/arm/boot/dts/versatile-ab.dts
> @@ -30,6 +30,43 @@
>  		clock-frequency = <24000000>;
>  	};
>  
> +	bridge {
> +		compatible = "ti,ths8134b", "ti,ths8134";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port at 0 {
> +				reg = <0>;
> +
> +				vga_bridge_in: endpoint {
> +					remote-endpoint = <&clcd_pads_vga_dac>;
> +				};
> +			};
> +
> +			port at 1 {
> +				reg = <1>;
> +
> +				vga_bridge_out: endpoint {
> +					remote-endpoint = <&vga_con_in>;
> +				};
> +			};
> +		};
> +	};
> +
> +	vga {
> +		compatible = "vga-connector";
> +
> +		port {
> +			vga_con_in: endpoint {
> +				remote-endpoint = <&vga_bridge_out>;
> +			};
> +		};
> +	};
> +
>  	core-module at 10000000 {
>  		compatible = "arm,core-module-versatile", "syscon", "simple-mfd";
>  		reg = <0x10000000 0x200>;
> @@ -230,7 +267,39 @@
>  			reg = <0x10120000 0x1000>;
>  			interrupts = <16>;
>  			clocks = <&osc1>, <&pclk>;
> -			clock-names = "clcd", "apb_pclk";
> +			clock-names = "clcdclk", "apb_pclk";
> +			/* 800x600 16bpp @ 36MHz works fine */
> +			max-memory-bandwidth = <54000000>;
> +
> +			/*
> +			 * This port is routed through a PLD (Programmable
> +			 * Logic Device) that routes the output from the CLCD
> +			 * (after transformations) to the VGA DAC and also an
> +			 * external panel connector. The PLD is essential for
> +			 * supporting RGB565/BGR565.
> +			 *
> +			 * The signals from the port thus reaches two endpoints.
> +			 * The PLD is managed through a few special bits in the
> +			 * FPGA "sysreg".
> +			 *
> +			 * This arrangement can be clearly seen in
> +			 * ARM DUI 0225D, page 3-41, figure 3-19.
> +			 */

If I remember correctly, besides being able to flip outputs via "sysreg"
there was a debug menu on the microcontroller that had options to set
the MUX to the right output before OS boot.

That brings back a lot of memories that I thought I'll never have any
use of :)

Best regards,
Liviu

> +			port at 0 {
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +
> +				clcd_pads_panel: endpoint at 0 {
> +					reg = <0>;
> +					remote-endpoint = <&panel_in>;
> +					arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
> +				};
> +				clcd_pads_vga_dac: endpoint at 1 {
> +					reg = <1>;
> +					remote-endpoint = <&vga_bridge_in>;
> +					arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
> +				};
> +			};
>  		};
>  
>  		sctl at 101e0000 {
> @@ -319,8 +388,18 @@
>  			ranges = <0 0x10000000 0x10000>;
>  
>  			sysreg at 0 {
> -				compatible = "arm,versatile-sysreg", "syscon";
> +				compatible = "arm,versatile-sysreg", "syscon", "simple-mfd";
>  				reg = <0x00000 0x1000>;
> +
> +				panel: display at 0 {
> +					compatible = "arm,versatile-tft-panel";
> +
> +					port {
> +						panel_in: endpoint {
> +							remote-endpoint = <&clcd_pads_panel>;
> +						};
> +					};
> +				};
>  			};
>  
>  			aaci at 4000 {
> -- 
> 2.14.3
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯



More information about the linux-arm-kernel mailing list