From patchwork Fri Apr 10 05:55:19 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hyungwon Hwang X-Patchwork-Id: 6191741 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id B33E39F2E9 for ; Fri, 10 Apr 2015 05:55:52 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 96AA3203DB for ; Fri, 10 Apr 2015 05:55:50 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 5D8FF2035D for ; Fri, 10 Apr 2015 05:55:48 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2CE3B6E88C; Thu, 9 Apr 2015 22:55:40 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by gabe.freedesktop.org (Postfix) with ESMTP id 74F5B6E88C for ; Thu, 9 Apr 2015 22:55:38 -0700 (PDT) Received: from epcpsbgr1.samsung.com (u141.gpu120.samsung.co.kr [203.254.230.141]) by mailout3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NMK00491TSO1920@mailout3.samsung.com> for dri-devel@lists.freedesktop.org; Fri, 10 Apr 2015 14:55:36 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.112]) by epcpsbgr1.samsung.com (EPCPMTA) with SMTP id 0E.5E.18889.7D567255; Fri, 10 Apr 2015 14:55:35 +0900 (KST) X-AuditID: cbfee68d-f79266d0000049c9-e7-552765d7af4a Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id DB.D3.25346.7D567255; Fri, 10 Apr 2015 14:55:35 +0900 (KST) Received: from localhost.localdomain ([10.252.82.145]) by mmp1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0NMK00MM0TSKKM40@mmp1.samsung.com>; Fri, 10 Apr 2015 14:55:35 +0900 (KST) From: Hyungwon Hwang To: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, inki.dae@samsung.com, daniel@fooishbar.org Subject: [PATCH v5 01/12] drm/exynos: add Exynos5433 decon driver Date: Fri, 10 Apr 2015 14:55:19 +0900 Message-id: <1428645330-1043-2-git-send-email-human.hwang@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1428645330-1043-1-git-send-email-human.hwang@samsung.com> References: <1428645330-1043-1-git-send-email-human.hwang@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrALMWRmVeSWpSXmKPExsWyRsSkQPd6qnqoQc8ZK4vrX56zWlxpnc5q Mf/IOVaL6+ftLK58fc9msXRGH6vFpPsTWCxe3LvIYjFj8ks2B06PF1+3MXvc7z7O5NG3ZRWj x+dNcgEsUVw2Kak5mWWpRfp2CVwZ17e1MhdcvctYcfT5GaYGxs5tjF2MHBwSAiYSV/86dTFy ApliEhfurWcDsYUEljJKXGmVgoibSPz41cjexcgFFF/EKNF+7SIzhPODUeJN314mkCo2AT2J Bdd+sIPYIgK5Ev0vXjCBFDEL9DBKNF6ZzAKSEBZwlHi3pYERxGYRUJX4sOYyWAOvgJvEpV23 2CDWyUmcPDaZFeQ6TgF3iaNbUyEucpP4uGcbK8hMCYFl7BJvF/xlh5gjIPFt8iEWiG9kJTYd YIYYIylxcMUNlgmMwgsYGVYxiqYWJBcUJ6UXGeoVJ+YWl+al6yXn525iBAb86X/Pencw3j5g fYhRgINRiYe3IVY9VIg1say4MvcQoynQhonMUqLJ+cC4yiuJNzQ2M7IwNTE1NjK3NFMS51WU +hksJJCeWJKanZpakFoUX1Sak1p8iJGJg1OqgfGsr5poZLSgniBH6xGGtxJhNZJTd75dLMk2 mW2Owqf3QQ+WKrBsiJvLVLedx2Sd703DXqvipu0xDefeaC1Nfep1ecFhf9MDAWs2CLP8Or5f J891oeXvN4/KP62f7DbrQamW6rLvq28YLZ93Zs1jB67UU8IJsudKV3NcCSzoDjh192HzrX0H 3/YpsRRnJBpqMRcVJwIAFxJ433MCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrDIsWRmVeSWpSXmKPExsVy+t9jAd3rqeqhBo9faFhc//Kc1eJK63RW i/lHzrFaXD9vZ3Hl63s2i6Uz+lgtJt2fwGLx4t5FFosZk1+yOXB6vPi6jdnjfvdxJo++LasY PT5vkgtgiWpgtMlITUxJLVJIzUvOT8nMS7dV8g6Od443NTMw1DW0tDBXUshLzE21VXLxCdB1 y8wBukVJoSwxpxQoFJBYXKykb4dpQmiIm64FTGOErm9IEFyPkQEaSFjDmHF9WytzwdW7jBVH n59hamDs3MbYxcjJISFgIvHjVyM7hC0mceHeerYuRi4OIYFFjBLt1y4yQzg/GCXe9O1lAqli E9CTWHDtB1iHiECuRP+LF0wgRcwCPYwSjVcms4AkhAUcJd5taQBbwSKgKvFhzWWwBl4BN4lL u26xQayTkzh5bDJrFyMHB6eAu8TRrakgYSGgko97trFOYORdwMiwilE0tSC5oDgpPddQrzgx t7g0L10vOT93EyM4pp5J7WBc2WBxiFGAg1GJh/dGvHqoEGtiWXFl7iFGCQ5mJRHeyligEG9K YmVValF+fFFpTmrxIUZToKMmMkuJJucD4z2vJN7Q2MTMyNLI3NDCyNhcSZx3jq5cqJBAemJJ anZqakFqEUwfEwenVAPj+XcXSt+IqGvPNn+qbjG1d9IqX+2FiROD7x/Zwx7l6Z6neLp0+evr QtPfvtj6W6h4XXbX2qpHWz9JiyrrtLrsauaUnfVYKfuSUUZNOFPgwY0hr/mZPM78Eqq6eu+u TMqMFl1Gbe+UwL6rvEKVz2p5J/+5M8sv6FBsiFoCN4/8zetbv1/1OMGlxFKckWioxVxUnAgA xurc8L8CAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Cc: dh09.lee@samsung.com, sw0312.kim@samsung.com, Hyungwon Hwang , cw00.choi@samsung.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,FUZZY_XPILL, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Joonyoung Shim DECON(Display and Enhancement Controller) is new IP replacing FIMD in Exynos5433. This patch adds Exynos5433 decon driver. Signed-off-by: Joonyoung Shim Signed-off-by: Hyungwon Hwang --- Changes for v2: - change file names and variable names of decon to represnt exynos5433 instead of exynos to distinguish them from exynos7 decon Changes for v3: - fail fast when the proper image format is not set - remove unnecessary checking code - add and modify the function to make DPMS work well Changes for v4: - rebased to exynos-drm-next with the clean-up patchset by Gustavo Padovan. Changes for v5: - None .../devicetree/bindings/video/exynos5433-decon.txt | 65 +++ drivers/gpu/drm/exynos/Kconfig | 6 + drivers/gpu/drm/exynos/Makefile | 1 + drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 617 +++++++++++++++++++++ drivers/gpu/drm/exynos/exynos_drm_drv.c | 3 + drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 + include/video/exynos5433_decon.h | 163 ++++++ 7 files changed, 856 insertions(+) create mode 100644 Documentation/devicetree/bindings/video/exynos5433-decon.txt create mode 100644 drivers/gpu/drm/exynos/exynos5433_drm_decon.c create mode 100644 include/video/exynos5433_decon.h diff --git a/Documentation/devicetree/bindings/video/exynos5433-decon.txt b/Documentation/devicetree/bindings/video/exynos5433-decon.txt new file mode 100644 index 0000000..377afbf --- /dev/null +++ b/Documentation/devicetree/bindings/video/exynos5433-decon.txt @@ -0,0 +1,65 @@ +Device-Tree bindings for Samsung Exynos SoC display controller (DECON) + +DECON (Display and Enhancement Controller) is the Display Controller for the +Exynos series of SoCs which transfers the image data from a video memory +buffer to an external LCD interface. + +Required properties: +- compatible: value should be "samsung,exynos5433-decon"; +- reg: physical base address and length of the DECON registers set. +- interrupts: should contain a list of all DECON IP block interrupts in the + order: VSYNC, LCD_SYSTEM. The interrupt specifier format + depends on the interrupt controller used. +- interrupt-names: should contain the interrupt names: "vsync", "lcd_sys" + in the same order as they were listed in the interrupts + property. +- clocks: must include clock specifiers corresponding to entries in the + clock-names property. +- clock-names: list of clock names sorted in the same order as the clocks + property. Must contain "aclk_decon", "aclk_smmu_decon0x", + "aclk_xiu_decon0x", "pclk_smmu_decon0x", clk_decon_vclk", + "sclk_decon_eclk" +- ports: contains a port which is connected to mic node. address-cells and + size-cells must 1 and 0, respectively. +- port: contains an endpoint node which is connected to the endpoint in the mic + node. The reg value muset be 0. +- i80-if-timings: specify whether the panel which is connected to decon uses + i80 lcd interface or mipi video interface. This node contains + no timing information as that of fimd does. Because there is + no register in decon to specify i80 interface timing value, + it is not needed, but make it remain to use same kind of node + in fimd and exynos7 decon. + +Example: +SoC specific DT entry: +decon: decon@13800000 { + compatible = "samsung,exynos5433-decon"; + reg = <0x13800000 0x2104>; + clocks = <&cmu_disp CLK_ACLK_DECON>, <&cmu_disp CLK_ACLK_SMMU_DECON0X>, + <&cmu_disp CLK_ACLK_XIU_DECON0X>, + <&cmu_disp CLK_PCLK_SMMU_DECON0X>, + <&cmu_disp CLK_SCLK_DECON_VCLK>, + <&cmu_disp CLK_SCLK_DECON_ECLK>; + clock-names = "aclk_decon", "aclk_smmu_decon0x", "aclk_xiu_decon0x", + "pclk_smmu_decon0x", "sclk_decon_vclk", "sclk_decon_eclk"; + interrupt-names = "vsync", "lcd_sys"; + interrupts = <0 202 0>, <0 203 0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + decon_to_mic: endpoint { + remote-endpoint = <&mic_to_decon>; + }; + }; + }; +}; + +Board specific DT entry: +&decon { + i80-if-timings { + }; +}; diff --git a/drivers/gpu/drm/exynos/Kconfig b/drivers/gpu/drm/exynos/Kconfig index 0a67803..dd6ae21 100644 --- a/drivers/gpu/drm/exynos/Kconfig +++ b/drivers/gpu/drm/exynos/Kconfig @@ -24,6 +24,12 @@ config DRM_EXYNOS_FIMD help Choose this option if you want to use Exynos FIMD for DRM. +config DRM_EXYNOS5433_DECON + bool "Exynos5433 DRM DECON" + depends on DRM_EXYNOS + help + Choose this option if you want to use Exynos5433 DECON for DRM. + config DRM_EXYNOS7_DECON bool "Exynos DRM DECON" depends on DRM_EXYNOS diff --git a/drivers/gpu/drm/exynos/Makefile b/drivers/gpu/drm/exynos/Makefile index cc90679..fbd084d 100644 --- a/drivers/gpu/drm/exynos/Makefile +++ b/drivers/gpu/drm/exynos/Makefile @@ -10,6 +10,7 @@ exynosdrm-y := exynos_drm_drv.o exynos_drm_encoder.o \ exynosdrm-$(CONFIG_DRM_EXYNOS_IOMMU) += exynos_drm_iommu.o exynosdrm-$(CONFIG_DRM_EXYNOS_FIMD) += exynos_drm_fimd.o +exynosdrm-$(CONFIG_DRM_EXYNOS5433_DECON) += exynos5433_drm_decon.o exynosdrm-$(CONFIG_DRM_EXYNOS7_DECON) += exynos7_drm_decon.o exynosdrm-$(CONFIG_DRM_EXYNOS_DPI) += exynos_drm_dpi.o exynosdrm-$(CONFIG_DRM_EXYNOS_DSI) += exynos_drm_dsi.o diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c new file mode 100644 index 0000000..4cc2842 --- /dev/null +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -0,0 +1,617 @@ +/* drivers/gpu/drm/exynos5433_drm_decon.c + * + * Copyright (C) 2015 Samsung Electronics Co.Ltd + * Authors: + * Joonyoung Shim + * Hyungwon Hwang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundationr + */ + +#include +#include +#include +#include + +#include