Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb127b79 authored by Stefan Agner's avatar Stefan Agner
Browse files

drm/fsl-dcu: add TCON driver



Add driver for the TCON (timing controller) module. The TCON module
is a separate module attached after the DCU (display controller
unit). Each DCU instance has its own, directly connected TCON
instance. The DCU's RGB and timing signals are passing through
the TCON module. TCON can provide timing signals for raw TFT panels
or operate in a bypass mode which leaves all signals unaltered.

The driver currently only supports the bypass mode.

Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarStefan Agner <stefan@agner.ch>
parent 2d701449
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -14,6 +14,9 @@ Required properties:
- big-endian		Boolean property, LS1021A DCU registers are big-endian.
- fsl,panel:		The phandle to panel node.

Optional properties:
- fsl,tcon:		The phandle to the timing controller node.

Examples:
dcu: dcu@2ce0000 {
	compatible = "fsl,ls1021a-dcu";
@@ -22,4 +25,5 @@ dcu: dcu@2ce0000 {
	clock-names = "dcu", "pix";
	big-endian;
	fsl,panel = <&panel>;
	fsl,tcon = <&tcon>;
};
+18 −0
Original line number Diff line number Diff line
Device Tree bindings for Freescale TCON Driver

Required properties:
- compatible:		Should be one of
	* "fsl,vf610-tcon".

- reg:			Address and length of the register set for tcon.
- clocks:		From common clock binding: handle to tcon ipg clock.
- clock-names:		From common clock binding: Shall be "ipg".

Examples:
timing-controller@4003d000 {
	compatible = "fsl,vf610-tcon";
	reg = <0x4003d000 0x1000>;
	clocks = <&clks VF610_CLK_TCON0>;
	clock-names = "ipg";
	status = "okay";
};
+1 −0
Original line number Diff line number Diff line
@@ -3822,6 +3822,7 @@ L: dri-devel@lists.freedesktop.org
S:	Supported
F:	drivers/gpu/drm/fsl-dcu/
F:	Documentation/devicetree/bindings/display/fsl,dcu.txt
F:	Documentation/devicetree/bindings/display/fsl,tcon.txt
F:	Documentation/devicetree/bindings/display/panel/nec,nl4827hc19_05b.txt

DRM DRIVERS FOR FREESCALE IMX
+2 −1
Original line number Diff line number Diff line
@@ -3,5 +3,6 @@ fsl-dcu-drm-y := fsl_dcu_drm_drv.o \
		 fsl_dcu_drm_rgb.o \
		 fsl_dcu_drm_plane.o \
		 fsl_dcu_drm_crtc.o \
		 fsl_dcu_drm_fbdev.o
		 fsl_dcu_drm_fbdev.o \
		 fsl_tcon.o
obj-$(CONFIG_DRM_FSL_DCU)	+= fsl-dcu-drm.o
+3 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@

#include "fsl_dcu_drm_crtc.h"
#include "fsl_dcu_drm_drv.h"
#include "fsl_tcon.h"

static bool fsl_dcu_drm_is_volatile_reg(struct device *dev, unsigned int reg)
{
@@ -357,6 +358,8 @@ static int fsl_dcu_drm_probe(struct platform_device *pdev)
		goto unregister_pix_clk;
	}

	fsl_dev->tcon = fsl_tcon_init(dev);

	drm = drm_dev_alloc(driver, dev);
	if (!drm) {
		ret = -ENOMEM;
Loading