From patchwork Thu Nov 14 13:15:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 11243717 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AE15514ED for ; Thu, 14 Nov 2019 13:15:35 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9629E2071F for ; Thu, 14 Nov 2019 13:15:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9629E2071F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 58A016E231; Thu, 14 Nov 2019 13:15:33 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x144.google.com (mail-lf1-x144.google.com [IPv6:2a00:1450:4864:20::144]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2603C6E231 for ; Thu, 14 Nov 2019 13:15:32 +0000 (UTC) Received: by mail-lf1-x144.google.com with SMTP id q5so5012431lfo.10 for ; Thu, 14 Nov 2019 05:15:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=9z7rkpJrlLoeMh05t6y+nlPabQrExaTPME734tIxvFk=; b=C7fNuRUPiGqHr5psgYVhJUSRha3xjvx3fs1l6Iv2SS16f/3tgf4Jv9eUIAEsSsLjkB 5r5uQBexHT23gAD0cSAjPlyHGs/WeHMwAn3WgiN1FGUjAyMHpKkr2X5pR43rtfs6GVNJ ua+/omBzNWa8t4AMiFbnGXaOsyii8aqChvGcdIjbuQkU110NIvV1U8hCPFPbLrwCj2+4 11xKwg4QQ9WMfO4IbJbj+oX/chaf7deQp9+8XjN4SmWs+3RnFX6l+gIIQe//MT5Y//0k rFptSnSS4JoBShg7AE7eLyquq8XzSGNPjhZosmGwMSJZmYuItAMhqFNA4IDxKKWAT12w DZ1A== X-Gm-Message-State: APjAAAVXsmWQqeJWP0vJb7VvdsCrkjTTXOuI+WocRYrYF7tFHvBdrl3N hVqOTPpcwdFNWVLrE/1YV2Pmo1Q+tJQ= X-Google-Smtp-Source: APXvYqyLvQwj/9KZhmJKicBOORuxSGsmg5QitV8pjk7lCdvZe6Eq79RBq4cmVB6dAzMCrExjfmFEYA== X-Received: by 2002:ac2:498a:: with SMTP id f10mr6832516lfl.170.1573737330426; Thu, 14 Nov 2019 05:15:30 -0800 (PST) Received: from genomnajs.ideon.se ([85.235.10.227]) by smtp.gmail.com with ESMTPSA id r7sm2283515ljc.74.2019.11.14.05.15.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2019 05:15:28 -0800 (PST) From: Linus Walleij To: Thierry Reding , Sam Ravnborg , dri-devel@lists.freedesktop.org, Rob Herring Subject: [PATCH 1/2 v6] drm/panel: Add DT bindings for Sony ACX424AKP Date: Thu, 14 Nov 2019 14:15:24 +0100 Message-Id: <20191114131525.3988-1-linus.walleij@linaro.org> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=9z7rkpJrlLoeMh05t6y+nlPabQrExaTPME734tIxvFk=; b=md/291ChpFviyMAUZIlcGt3q0RQpQVAPh1nV50LkwPIHao9OcbRJZ6W/TvXCoWfYA5 2njAgUZZlrUYnZW9brNA+ODs3TAytW5uIjZA7/NZtLWdvgiFccEoyfXr2/Ntlo8D+WoR KzSlKVtwPNxYWB5fdxwpLRy3VdnnIfPExb/FqEXK8JcqonZJjq+eqM1Rie+dPqPuOzTz 1gboA7mZlGXDBzGSoSYIdgg5oZzxEQQf4WXLSFJbSf6k5eHlvKVnMHtP73KIYWdSu6DC /kUJssZ2/Dp9tv6BpEQhJgWvYA2Own2Q+gBp7IIxJbqlsXQO4sKidSulAHOce0ZwykGP OSAQ== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This adds device tree bindings for the Sony ACX424AKP panel. Let's use YAML. Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij Reviewed-by: Rob Herring --- ChangeLog v5->v6: - Fix the binding by simply not referencing the display controller bindings from a panel binding. ChangeLog v4->v5: - Fix up all warnings etc incurred from the now working schema check and DTS compilation. - I still have a vert annoying error message in the Sony panel bindings that uses this schema: sony,acx424akp.example.dt.yaml: panel@0: $nodename:0: 'panel@0' does not match '^dsi-controller(@.*)?$' As this is modeled very closely to Documentation/devicetree/bindings/net/mdio.yaml and that one doesn't emit this type of warning for its ethernet-phy@0 etc I am pretty much clueless and just can't see what the problem is. - If I can't figure this out the only viable next step is to drop the ambition to create yaml bindings simply because I'm unable to do it, and go back to traditional text bindings :( ChangeLog v3->v4: - Adjust to adjusted DSI bindings. ChangeLog v2->v3: - Put the example inside a dsi-controller so we have a complete example that verifies to the DSI panel generic binding. ChangeLog v1->v2: - Suggest a stand-alone YAML bindings file for DSI panels in a separate patch, and use that to reference the boolean "enforce-video-mode" attribute for DSI panels --- .../display/panel/sony,acx424akp.yaml | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/sony,acx424akp.yaml diff --git a/Documentation/devicetree/bindings/display/panel/sony,acx424akp.yaml b/Documentation/devicetree/bindings/display/panel/sony,acx424akp.yaml new file mode 100644 index 000000000000..185dcc8fd1f9 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/sony,acx424akp.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/panel/sony,acx424akp.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Sony ACX424AKP 4" 480x864 AMOLED panel + +maintainers: + - Linus Walleij + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: + const: sony,acx424akp + reg: true + reset-gpios: true + vddi-supply: + description: regulator that supplies the vddi voltage + enforce-video-mode: true + +required: + - compatible + - reg + - reset-gpios + +additionalProperties: false + +examples: + - | + #include + + dsi-controller@a0351000 { + compatible = "ste,mcde-dsi"; + reg = <0xa0351000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + + panel@0 { + compatible = "sony,acx424akp"; + reg = <0>; + vddi-supply = <&foo>; + reset-gpios = <&foo_gpio 0 GPIO_ACTIVE_LOW>; + }; + }; + +... From patchwork Thu Nov 14 13:15:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 11243719 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3646E13BD for ; Thu, 14 Nov 2019 13:15:38 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1EAEE2071B for ; Thu, 14 Nov 2019 13:15:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1EAEE2071B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9B4746E258; Thu, 14 Nov 2019 13:15:36 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by gabe.freedesktop.org (Postfix) with ESMTPS id 48F5E6E2C7 for ; Thu, 14 Nov 2019 13:15:34 +0000 (UTC) Received: by mail-lf1-x143.google.com with SMTP id x22so881383lfa.3 for ; Thu, 14 Nov 2019 05:15:34 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vrYNWZKVDdctkiL8VeF9vvo4uBCjPTCOEtoL4cULlKo=; b=Mr12m6n6M0IyMJOXvHHh9m7PcTP1YYc6It9cYhWrGrdImhTKMhIkLpqOVUxOqHb+pW mXCqu2a7UvHwKy/0TCIkQtSrkAq02g7nWyUDNVH5X6D9DXSRvVde4ApXt3R91Mx7yhEn LzNyCAOPdLtg+CXHg6wN2HF0mDLtUkFxIjVUfSDl6ck4IM9pMdMugpXRrd62+LCYArkf Yuddf5pzvg+nqEAoTK3++RlLTK0KX7TQbjgERpZ3ep5lqBZ/CqHP++edNCjTx1/mrxF7 pXs8vgkI59kSBwSHlfHHBCLFEPJX1mtksPyluHUxT5BpId4sIkxeAqXU4aWNpmMlV8SP KI+A== X-Gm-Message-State: APjAAAX8l2CnZTaV2ZVMXHmX6TLIsw/KWtLpDPs3Syrsc1jw3VwU6Ev0 7GUBfSCKObv7CR2dBd1No/iJmQ== X-Google-Smtp-Source: APXvYqy46vd3gfbiefnHcKHThDTL8g/lyJvy64oySfPxbZkRDFp0SQW6nToqnnqzmgf4gJxTwt+QkQ== X-Received: by 2002:ac2:4a8a:: with SMTP id l10mr6691528lfp.185.1573737332417; Thu, 14 Nov 2019 05:15:32 -0800 (PST) Received: from genomnajs.ideon.se ([85.235.10.227]) by smtp.gmail.com with ESMTPSA id r7sm2283515ljc.74.2019.11.14.05.15.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2019 05:15:31 -0800 (PST) From: Linus Walleij To: Thierry Reding , Sam Ravnborg , dri-devel@lists.freedesktop.org, Rob Herring Subject: [PATCH 2/2 v6] drm/panel: Add driver for Sony ACX424AKP panel Date: Thu, 14 Nov 2019 14:15:25 +0100 Message-Id: <20191114131525.3988-2-linus.walleij@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191114131525.3988-1-linus.walleij@linaro.org> References: <20191114131525.3988-1-linus.walleij@linaro.org> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vrYNWZKVDdctkiL8VeF9vvo4uBCjPTCOEtoL4cULlKo=; b=Dj8bRnrlIaNGMmRamxgpnZmPTwp4ob/pCJ3PMQ4hoivA3WhRuZV58+ILGqtZhsggEy Glap1eDIlzyxPdLhMHX72GQysV3EVOQ5mqN+ULauQ52JhmDaLeEVcQPcimal5bxzff2y /tSnzc3Ngm+V1EscHtL1DXYOhAvmN7x38u/HIw6gyqvRk/jlCEGIZGIPafkDH/4CW6IU 4EbPvwjoOm93C4ilTLKKJv9Re646WG5O0CYGpCpzHlfIM5m+8ljvGkTe+wKMnXpVCUH/ ZqIPBJKT2i+CMQkT2QBeIqxUXGvRk6u8qHftT2Vt+DoBtufN9bCtwxwbq2HFx8zFDOtH rZmA== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stephan Gerhold Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The Sony ACX424AKP is a command/videomode DSI panel for mobile devices. It is used on the ST-Ericsson HREF520 reference design. We support video mode by default, but it is possible to switch the panel into command mode by using the bool property "dsi-command-mode". Cc: Stephan Gerhold Signed-off-by: Linus Walleij --- ChangeLog v4->v5: - Bindings were iterated separately so a jump in versioning. - Add Stephan as reviewer. ChangeLog v3->v4: - No changes just resending with the new binding updates. ChangeLog v2->v3: - No changes just resending with the new binding updates. ChangeLog v1->v2: - Fix up the ID read function to split into reading header, version and ID, store the version in the struct. - Get rid of a surplus semicolon found by the build robot while rewriting the above code. - Use unsigned int in probe() loop. - Set vrefresh to 60Hz, as good as any, the measured vrefresh in continous command mode is ~117 Hz. - Use a different for() idiom while retrying to read ID 5 times. - Drop the sync pulse setting, we are not using this, this panel uses an event. - Use the generic "enforce-video-mode" for video mode enforcement. --- drivers/gpu/drm/panel/Kconfig | 7 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-sony-acx424akp.c | 540 +++++++++++++++++++ include/video/mipi_display.h | 1 + 4 files changed, 549 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-sony-acx424akp.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index f152bc4eeb53..959df5bea7d2 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -316,6 +316,13 @@ config DRM_PANEL_SITRONIX_ST7789V Say Y here if you want to enable support for the Sitronix ST7789V controller for 240x320 LCD panels +config DRM_PANEL_SONY_ACX424AKP + tristate "Sony ACX424AKP DSI command mode panel" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + select VIDEOMODE_HELPERS + config DRM_PANEL_SONY_ACX565AKM tristate "Sony ACX565AKM panel" depends on GPIOLIB && OF && SPI diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index b6cd39fe0f20..0b51793e3b43 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -33,6 +33,7 @@ obj-$(CONFIG_DRM_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o obj-$(CONFIG_DRM_PANEL_SHARP_LS043T1LE01) += panel-sharp-ls043t1le01.o obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7701) += panel-sitronix-st7701.o obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7789V) += panel-sitronix-st7789v.o +obj-$(CONFIG_DRM_PANEL_SONY_ACX424AKP) += panel-sony-acx424akp.o obj-$(CONFIG_DRM_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o obj-$(CONFIG_DRM_PANEL_TPO_TD028TTEC1) += panel-tpo-td028ttec1.o obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o diff --git a/drivers/gpu/drm/panel/panel-sony-acx424akp.c b/drivers/gpu/drm/panel/panel-sony-acx424akp.c new file mode 100644 index 000000000000..2382b608b67b --- /dev/null +++ b/drivers/gpu/drm/panel/panel-sony-acx424akp.c @@ -0,0 +1,540 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * MIPI-DSI Sony ACX424AKP panel driver. This is a 480x864 + * AMOLED panel with a command-only DSI interface. + * + * Copyright (C) Linaro Ltd. 2019 + * Author: Linus Walleij + * Based on code and know-how from Marcus Lorentzon + * Copyright (C) ST-Ericsson SA 2010 + */ + +#include +#include +#include +#include +#include