From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754222AbcC2B7Q (ORCPT ); Mon, 28 Mar 2016 21:59:16 -0400 Received: from mail.kmu-office.ch ([178.209.48.109]:59806 "EHLO mail.kmu-office.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751733AbcC2B7O (ORCPT ); Mon, 28 Mar 2016 21:59:14 -0400 From: Stefan Agner To: dri-devel@lists.freedesktop.org, shawnguo@kernel.org, stefan@agner.ch Cc: kernel@pengutronix.de, airlied@linux.ie, daniel.vetter@ffwll.ch, jianwei.wang.chn@gmail.com, alison.wang@freescale.com, meng.yi@nxp.com, alexander.stein@systec-electronic.com, mturquette@baylibre.com, sboyd@codeaurora.org, mark.rutland@arm.com, robh+dt@kernel.org, pawel.moll@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 0/8] add TCON and Vybrid support Date: Mon, 28 Mar 2016 18:59:54 -0700 Message-Id: <1459216802-32094-1-git-send-email-stefan@agner.ch> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patchset adds the missing pieces to make the Freescale DCU DRM driver work on Freescale Vybrid. Foremost, it adds support for the timing controller (TCON) module. The module is between the Display Controller and the actual output pins. It allows to alter the timings for RAW TFT displays, but can also operate in a bypass mode. This change has only support for the bypass mode. Earlier variants of the DCU DRM driver configured the TCON module in bypass mode, however this has been removed and postponed. The last variant with the TCON code was v9: https://lkml.org/lkml/2015/7/13/242 The patchset also fixes the DCU related clocks in the Vybrid clock tree and makes use of the common clock framework for the pixelclock divider. Testing on LS1021a welcomeing! Changes since v1: - Properly disable clocks on errors - Create clear seperation of pixel clock and bus clock - Simplified TCON driver by removing suspend/resume capabilities (encoder disable/enable makes sure that TCON bypass gets disabled/reenabled on suspend) - Use common clock framework to create a divider clock which represents the DCU internal pixel clock divider Stefan Agner (8): ARM: imx: clk-vf610: fix DCU clock tree ARM: imx: clk-vf610: add TCON ipg clock drm/fsl-dcu: disable clock on initialization failure and remove drm/fsl-dcu: add extra clock for pixel clock drm/fsl-dcu: use common clock framework for pixel clock divider drm/fsl-dcu: add TCON driver ARM: dts: vf610: add display nodes ARM: dts: vf610-colibri: enable display controller .../devicetree/bindings/display/fsl,dcu.txt | 6 ++ .../devicetree/bindings/display/fsl,tcon.txt | 18 ++++ arch/arm/boot/dts/vf-colibri-eval-v3.dtsi | 16 +++ arch/arm/boot/dts/vf-colibri.dtsi | 33 +++++++ arch/arm/boot/dts/vfxxx.dtsi | 19 ++++ drivers/clk/imx/clk-vf610.c | 7 +- drivers/gpu/drm/fsl-dcu/Makefile | 3 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 7 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 73 ++++++++++---- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 2 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 11 +++ drivers/gpu/drm/fsl-dcu/fsl_tcon.c | 108 +++++++++++++++++++++ drivers/gpu/drm/fsl-dcu/fsl_tcon.h | 33 +++++++ include/dt-bindings/clock/vf610-clock.h | 4 +- 14 files changed, 311 insertions(+), 29 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/fsl,tcon.txt create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_tcon.c create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_tcon.h -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Agner Subject: [PATCH v2 0/8] add TCON and Vybrid support Date: Mon, 28 Mar 2016 18:59:54 -0700 Message-ID: <1459216802-32094-1-git-send-email-stefan@agner.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, shawnguo@kernel.org, stefan@agner.ch Cc: meng.yi@nxp.com, pawel.moll@arm.com, alison.wang@freescale.com, daniel.vetter@ffwll.ch, mturquette@baylibre.com, ijc+devicetree@hellion.org.uk, sboyd@codeaurora.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, robh+dt@kernel.org, kernel@pengutronix.de, galak@codeaurora.org, mark.rutland@arm.com, linux-arm-kernel@lists.infradead.org, alexander.stein@systec-electronic.com List-Id: devicetree@vger.kernel.org VGhpcyBwYXRjaHNldCBhZGRzIHRoZSBtaXNzaW5nIHBpZWNlcyB0byBtYWtlIHRoZSBGcmVlc2Nh bGUKRENVIERSTSBkcml2ZXIgd29yayBvbiBGcmVlc2NhbGUgVnlicmlkLgoKRm9yZW1vc3QsIGl0 IGFkZHMgc3VwcG9ydCBmb3IgdGhlIHRpbWluZyBjb250cm9sbGVyIChUQ09OKQptb2R1bGUuIFRo ZSBtb2R1bGUgaXMgYmV0d2VlbiB0aGUgRGlzcGxheSBDb250cm9sbGVyIGFuZCB0aGUKYWN0dWFs IG91dHB1dCBwaW5zLiBJdCBhbGxvd3MgdG8gYWx0ZXIgdGhlIHRpbWluZ3MgZm9yIFJBVwpURlQg ZGlzcGxheXMsIGJ1dCBjYW4gYWxzbyBvcGVyYXRlIGluIGEgYnlwYXNzIG1vZGUuIFRoaXMKY2hh bmdlIGhhcyBvbmx5IHN1cHBvcnQgZm9yIHRoZSBieXBhc3MgbW9kZS4KCkVhcmxpZXIgdmFyaWFu dHMgb2YgdGhlIERDVSBEUk0gZHJpdmVyIGNvbmZpZ3VyZWQgdGhlIFRDT04KbW9kdWxlIGluIGJ5 cGFzcyBtb2RlLCBob3dldmVyIHRoaXMgaGFzIGJlZW4gcmVtb3ZlZCBhbmQKcG9zdHBvbmVkLiBU aGUgbGFzdCB2YXJpYW50IHdpdGggdGhlIFRDT04gY29kZSB3YXMgdjk6Cmh0dHBzOi8vbGttbC5v cmcvbGttbC8yMDE1LzcvMTMvMjQyCgpUaGUgcGF0Y2hzZXQgYWxzbyBmaXhlcyB0aGUgRENVIHJl bGF0ZWQgY2xvY2tzIGluIHRoZSBWeWJyaWQKY2xvY2sgdHJlZSBhbmQgbWFrZXMgdXNlIG9mIHRo ZSBjb21tb24gY2xvY2sgZnJhbWV3b3JrIGZvcgp0aGUgcGl4ZWxjbG9jayBkaXZpZGVyLgoKVGVz dGluZyBvbiBMUzEwMjFhIHdlbGNvbWVpbmchCgpDaGFuZ2VzIHNpbmNlIHYxOgotIFByb3Blcmx5 IGRpc2FibGUgY2xvY2tzIG9uIGVycm9ycwotIENyZWF0ZSBjbGVhciBzZXBlcmF0aW9uIG9mIHBp eGVsIGNsb2NrIGFuZCBidXMgY2xvY2sKLSBTaW1wbGlmaWVkIFRDT04gZHJpdmVyIGJ5IHJlbW92 aW5nIHN1c3BlbmQvcmVzdW1lCiAgY2FwYWJpbGl0aWVzIChlbmNvZGVyIGRpc2FibGUvZW5hYmxl IG1ha2VzIHN1cmUgdGhhdAogIFRDT04gYnlwYXNzIGdldHMgZGlzYWJsZWQvcmVlbmFibGVkIG9u IHN1c3BlbmQpCi0gVXNlIGNvbW1vbiBjbG9jayBmcmFtZXdvcmsgdG8gY3JlYXRlIGEgZGl2aWRl ciBjbG9jawogIHdoaWNoIHJlcHJlc2VudHMgdGhlIERDVSBpbnRlcm5hbCBwaXhlbCBjbG9jayBk aXZpZGVyCgpTdGVmYW4gQWduZXIgKDgpOgogIEFSTTogaW14OiBjbGstdmY2MTA6IGZpeCBEQ1Ug Y2xvY2sgdHJlZQogIEFSTTogaW14OiBjbGstdmY2MTA6IGFkZCBUQ09OIGlwZyBjbG9jawogIGRy bS9mc2wtZGN1OiBkaXNhYmxlIGNsb2NrIG9uIGluaXRpYWxpemF0aW9uIGZhaWx1cmUgYW5kIHJl bW92ZQogIGRybS9mc2wtZGN1OiBhZGQgZXh0cmEgY2xvY2sgZm9yIHBpeGVsIGNsb2NrCiAgZHJt L2ZzbC1kY3U6IHVzZSBjb21tb24gY2xvY2sgZnJhbWV3b3JrIGZvciBwaXhlbCBjbG9jayBkaXZp ZGVyCiAgZHJtL2ZzbC1kY3U6IGFkZCBUQ09OIGRyaXZlcgogIEFSTTogZHRzOiB2ZjYxMDogYWRk IGRpc3BsYXkgbm9kZXMKICBBUk06IGR0czogdmY2MTAtY29saWJyaTogZW5hYmxlIGRpc3BsYXkg Y29udHJvbGxlcgoKIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvZnNsLGRjdS50eHQg ICAgICAgIHwgICA2ICsrCiAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2ZzbCx0Y29u LnR4dCAgICAgICB8ICAxOCArKysrCiBhcmNoL2FybS9ib290L2R0cy92Zi1jb2xpYnJpLWV2YWwt djMuZHRzaSAgICAgICAgICB8ICAxNiArKysKIGFyY2gvYXJtL2Jvb3QvZHRzL3ZmLWNvbGlicmku ZHRzaSAgICAgICAgICAgICAgICAgIHwgIDMzICsrKysrKysKIGFyY2gvYXJtL2Jvb3QvZHRzL3Zm eHh4LmR0c2kgICAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrKysKIGRyaXZlcnMvY2xrL2lt eC9jbGstdmY2MTAuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBkcml2ZXJzL2dw dS9kcm0vZnNsLWRjdS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogZHJpdmVy cy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fY3J0Yy5jICAgICAgICAgfCAgIDcgKy0KIGRy aXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2Rydi5jICAgICAgICAgIHwgIDczICsr KysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9kcnYuaCAg ICAgICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2Iu YyAgICAgICAgICB8ICAxMSArKysKIGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF90Y29uLmMg ICAgICAgICAgICAgICAgIHwgMTA4ICsrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUv ZHJtL2ZzbC1kY3UvZnNsX3Rjb24uaCAgICAgICAgICAgICAgICAgfCAgMzMgKysrKysrKwogaW5j bHVkZS9kdC1iaW5kaW5ncy9jbG9jay92ZjYxMC1jbG9jay5oICAgICAgICAgICAgfCAgIDQgKy0K IDE0IGZpbGVzIGNoYW5nZWQsIDMxMSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxh eS9mc2wsdGNvbi50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZnNsLWRj dS9mc2xfdGNvbi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3Uv ZnNsX3Rjb24uaAoKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: stefan@agner.ch (Stefan Agner) Date: Mon, 28 Mar 2016 18:59:54 -0700 Subject: [PATCH v2 0/8] add TCON and Vybrid support Message-ID: <1459216802-32094-1-git-send-email-stefan@agner.ch> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org This patchset adds the missing pieces to make the Freescale DCU DRM driver work on Freescale Vybrid. Foremost, it adds support for the timing controller (TCON) module. The module is between the Display Controller and the actual output pins. It allows to alter the timings for RAW TFT displays, but can also operate in a bypass mode. This change has only support for the bypass mode. Earlier variants of the DCU DRM driver configured the TCON module in bypass mode, however this has been removed and postponed. The last variant with the TCON code was v9: https://lkml.org/lkml/2015/7/13/242 The patchset also fixes the DCU related clocks in the Vybrid clock tree and makes use of the common clock framework for the pixelclock divider. Testing on LS1021a welcomeing! Changes since v1: - Properly disable clocks on errors - Create clear seperation of pixel clock and bus clock - Simplified TCON driver by removing suspend/resume capabilities (encoder disable/enable makes sure that TCON bypass gets disabled/reenabled on suspend) - Use common clock framework to create a divider clock which represents the DCU internal pixel clock divider Stefan Agner (8): ARM: imx: clk-vf610: fix DCU clock tree ARM: imx: clk-vf610: add TCON ipg clock drm/fsl-dcu: disable clock on initialization failure and remove drm/fsl-dcu: add extra clock for pixel clock drm/fsl-dcu: use common clock framework for pixel clock divider drm/fsl-dcu: add TCON driver ARM: dts: vf610: add display nodes ARM: dts: vf610-colibri: enable display controller .../devicetree/bindings/display/fsl,dcu.txt | 6 ++ .../devicetree/bindings/display/fsl,tcon.txt | 18 ++++ arch/arm/boot/dts/vf-colibri-eval-v3.dtsi | 16 +++ arch/arm/boot/dts/vf-colibri.dtsi | 33 +++++++ arch/arm/boot/dts/vfxxx.dtsi | 19 ++++ drivers/clk/imx/clk-vf610.c | 7 +- drivers/gpu/drm/fsl-dcu/Makefile | 3 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 7 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 73 ++++++++++---- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 2 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 11 +++ drivers/gpu/drm/fsl-dcu/fsl_tcon.c | 108 +++++++++++++++++++++ drivers/gpu/drm/fsl-dcu/fsl_tcon.h | 33 +++++++ include/dt-bindings/clock/vf610-clock.h | 4 +- 14 files changed, 311 insertions(+), 29 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/fsl,tcon.txt create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_tcon.c create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_tcon.h -- 2.7.4