From patchwork Fri Mar 15 13:08:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 10854697 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C20FC17EF for ; Fri, 15 Mar 2019 13:08:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A80E62A9B0 for ; Fri, 15 Mar 2019 13:08:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9C0482A9B1; Fri, 15 Mar 2019 13:08:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7F6102A9B5 for ; Fri, 15 Mar 2019 13:08:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LTENb67sdYbthmpYBa6rHWVWqq67zqsjPtrlhKiYTug=; b=Zoq7FwFeB7Jizh /8fGV71L+vLywikIui/Fhy5bSaNLZ9o0DRB8VDmKXCiu3+UsMrPfeM1fobIs6jOXiommVbPsM11uf HE3KfWhVq26NICSLspKxeIk9ZX12FOjE6LXkrnMMdsDbATRpvi+eE4iecyYfBoX1EMFzuM7JX+fU4 eTqar+dDaXbVT8f3lfYuWprwQCtEI9G3ll79ofPQuIDOuAw4ui4TXljl3AsnQBNz+S/fvYnwbd2p3 GqAM3de8S8xTbOgda5ITJceYsylErPX1XteZhxEBzA4BqM1MEPOnmiQdB05SdfJMpOv3d97QWsvDO Ord/J8FjOKSJY/XHbhTQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4mZx-0005n2-4X; Fri, 15 Mar 2019 13:08:53 +0000 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4mZm-0005aW-Db for linux-arm-kernel@lists.infradead.org; Fri, 15 Mar 2019 13:08:43 +0000 Received: by mail-pg1-x544.google.com with SMTP id a22so6418591pgg.13 for ; Fri, 15 Mar 2019 06:08:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NP9T09HEiV9lz6LnHjqB2XMYT7hhusLm/ZYVSxXup6g=; b=EEr7kbm4JScUqx4A4oujEtivANfVxlny5trpDbvGToZFduknY7uvBJOGtUXvUklyyI mYgVuKZ2qnBMvEqSEhwLq8+13FQza7H/G5r3CunAF3cviHpE3qt9hySo0/QVFTa7cy4s Rp7lpHcP2UhE2EDfJbptquEjM91CAHVTzwNOg= 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=NP9T09HEiV9lz6LnHjqB2XMYT7hhusLm/ZYVSxXup6g=; b=ed89oCfr3M2bwysr15B7J0w1kNYYYUqQ2zIKCL4EmMw+1p+RYutaxM1JVG5Tqk/GPs k6TUjeKm3FQJhDVne2zvOcpfbSZHKAzkV1CK2fX2heeevPg/YMN2c2JWsP7RffEoL4WF pnOul7QPAgYa4srf5sr8wTNxmykCHjCvn2cIBAgit0KU6wzE/Shm5utkE2tk6hP28OSH wQGMlxrFRJQODuZO1vC1W0ki0G/k7sgDe1xwGLYtjHJKr17Dmu1cBY7bzLbDg1g4xU3P Z3dFNwBBUZq2Yh9KtRT6FqguhpC8aSy4DFO/pMDhMdOeg7PlI/GTzK0lF6sd33/bKKdX dvCw== X-Gm-Message-State: APjAAAWwAridPftjFu2oTx2pR9mTPS0k4ieqYv1SE1eWmLmiibGG+T26 N0tRvDBtPtntjca/UhXgy35k6w== X-Google-Smtp-Source: APXvYqwL+qZQkIGf8dCF8nSsgFBq32iO5p+TWJ2TYpdyylmsFWb0ti61kcJ07cVPtUKJfRHTzxxLPw== X-Received: by 2002:aa7:85cc:: with SMTP id z12mr4016902pfn.196.1552655321804; Fri, 15 Mar 2019 06:08:41 -0700 (PDT) Received: from localhost.localdomain ([183.82.230.185]) by smtp.gmail.com with ESMTPSA id e2sm854008pfa.64.2019.03.15.06.08.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Mar 2019 06:08:41 -0700 (PDT) From: Jagan Teki To: Andrzej Hajda , Laurent Pinchart , Chen-Yu Tsai , Maxime Ripard , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Subject: [PATCH 1/6] drm/bridge: Export drm_bridge_detach Date: Fri, 15 Mar 2019 18:38:20 +0530 Message-Id: <20190315130825.9005-2-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190315130825.9005-1-jagan@amarulasolutions.com> References: <20190315130825.9005-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190315_060842_491599_4CD0E4BD X-CRM114-Status: GOOD ( 10.70 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, Jagan Teki , Michael Trimarchi , linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Export drm_bridge_detach from drm bridge core so-that it can use on respective interface or bridge driver while detaching the bridge. Signed-off-by: Jagan Teki --- drivers/gpu/drm/drm_bridge.c | 1 + include/drm/drm_bridge.h | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index 138b2711d389..569d4f345429 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -159,6 +159,7 @@ void drm_bridge_detach(struct drm_bridge *bridge) bridge->dev = NULL; } +EXPORT_SYMBOL(drm_bridge_detach); /** * DOC: bridge callbacks diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 9da8c93f7976..4955e3e50fa4 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -301,6 +301,7 @@ void drm_bridge_remove(struct drm_bridge *bridge); struct drm_bridge *of_drm_find_bridge(struct device_node *np); int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, struct drm_bridge *previous); +void drm_bridge_detach(struct drm_bridge *bridge); bool drm_bridge_mode_fixup(struct drm_bridge *bridge, const struct drm_display_mode *mode, From patchwork Fri Mar 15 13:08:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 10854707 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A835615AC for ; Fri, 15 Mar 2019 13:09:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8DA7A289C5 for ; Fri, 15 Mar 2019 13:09:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 816F72931D; Fri, 15 Mar 2019 13:09:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 376B0289C5 for ; Fri, 15 Mar 2019 13:09:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2LHg5XZEVrZZ0BIv8G41q0MxRAJ6CjHfhL8ll3Uur5U=; b=hS2Z9UqKQPnh24 mHv70Yj9l5JLOE1JStrWP0eCpjK9dIhVTYV/lXDr5lGNljMOwjkx1ImchmlBssOUIyIAbOGPAD3fC bBjBK8UQi2ScVTqWShIEgPs3aS55bRckRPwgFi5GTOBOk1Likl6Ti6SnsKNi98TiswvF95tbTBs3v QarKLFzmqqx8ETdHMtcLSMfVoX2jlXewUFYQRmbnlf+e0S0gCBmBLj307EdaMbEUgBdQLx8MuMu8N TOx1+vQ3ajL0e3Oln9822JyazpzC27A0PjeFbbnR7gh68PcMFlshUmKGlZazoe1K82pECN7NRQgCU 2zlbc++9m2UZz7pibiBQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4maD-000682-Nq; Fri, 15 Mar 2019 13:09:09 +0000 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4mZs-0005i3-8N for linux-arm-kernel@lists.infradead.org; Fri, 15 Mar 2019 13:08:52 +0000 Received: by mail-pg1-x541.google.com with SMTP id r124so6463009pgr.3 for ; Fri, 15 Mar 2019 06:08:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iy5X5nQ4JgXGLF8UMM2hZ+8DxyqREPSMFw8EUbSF9/Y=; b=pO8ssjEaKNDM2gxwo2eZOJi3BFaU6Z7wYIQ4I1OHhb5JrmiQNN0ar47vhmtlIHkIIS RWpk/5+cRl/iPVEgCzavRKeDJR9Reyhu/r0oLuNT3v4gMsylvwqauvz+kHlcHWDVmVAi l7EbSBu8e14tkwTzn5igylZZLTf6sv4LmqOw4= 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=iy5X5nQ4JgXGLF8UMM2hZ+8DxyqREPSMFw8EUbSF9/Y=; b=gePRmhJDss+pxFEo0oOEVJRXmGEaIEjzi2mkjS27srCZv6ZfNL5dt6hdNLLaA/fVLq 7mOTCgYqtX+x5BmKic2vf/dDgVoSpT3dUBe+IjvswLsV0qjgLSrOcyoZAVV98O2fiYQh 4yHhji6Bf8tF1N6YmeXpAbU6McFW10ObMnwMp1LdXsRj6LVEPyjBUMUqdQ1GcmSfWhGf hVRHO+DRG5Eg1C8ToSbBVPztchERemnGaVRSNzUd7Ha72u34pmAQmxhPDw1B+0NqPw8l f/1RqDif5ZJAdpN1/uudBtBmDK+DGy5PWI9SKxm1tRPsD2hDTbfcpT8+3RVIxfPJKwf5 G8Ag== X-Gm-Message-State: APjAAAWDgI0kVW+Akl29iFKK3DeCQMrJsR2XrXcZGdFmycce6P1cCWUp Qztm365GhkM2AFiZwav4Pv+eRg== X-Google-Smtp-Source: APXvYqydZg7PQXvS2Bgd7RPRfKpHQih5xMbZt34Kjaiwt0O75Jd/UYNWjPeusZb2G04Eq0ACxQjnWA== X-Received: by 2002:a62:48c1:: with SMTP id q62mr3983492pfi.113.1552655327466; Fri, 15 Mar 2019 06:08:47 -0700 (PDT) Received: from localhost.localdomain ([183.82.230.185]) by smtp.gmail.com with ESMTPSA id e2sm854008pfa.64.2019.03.15.06.08.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Mar 2019 06:08:46 -0700 (PDT) From: Jagan Teki To: Andrzej Hajda , Laurent Pinchart , Chen-Yu Tsai , Maxime Ripard , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Subject: [PATCH 2/6] drm/exynos: dsi: Use drm_bridge_detach Date: Fri, 15 Mar 2019 18:38:21 +0530 Message-Id: <20190315130825.9005-3-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190315130825.9005-1-jagan@amarulasolutions.com> References: <20190315130825.9005-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190315_060848_430130_6F3BC397 X-CRM114-Status: GOOD ( 14.28 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Joonyoung Shim , Seung-Woo Kim , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Dae , linux-sunxi@googlegroups.com, Jagan Teki , Kyungmin Park , Michael Trimarchi , linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP drm_bridge_detach now available to use while detaching bridge, use this core wrapper instead of explicitly pointing the bridge funcs. Cc: Dae Cc: Joonyoung Shim Cc: Seung-Woo Kim Cc: Kyungmin Park Signed-off-by: Jagan Teki Acked-by: Inki Dae --- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c index a4253dd55f86..5daf43d02768 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c @@ -1583,8 +1583,7 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host, dsi->connector.status = connector_status_disconnected; mutex_unlock(&drm->mode_config.mutex); } else { - if (dsi->out_bridge->funcs->detach) - dsi->out_bridge->funcs->detach(dsi->out_bridge); + drm_bridge_detach(dsi->out_bridge); dsi->out_bridge = NULL; } From patchwork Fri Mar 15 13:08:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 10854709 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B00D217EF for ; Fri, 15 Mar 2019 13:09:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9391728B58 for ; Fri, 15 Mar 2019 13:09:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 87E3C2A0E8; Fri, 15 Mar 2019 13:09:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 15F1028B58 for ; Fri, 15 Mar 2019 13:09:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=RjqcxTDYzbElrUmkUtxEDxubC3MJjmTK/5Pxcg8Gdo8=; b=di2cAhfWWIN/Bq SEJcCwPrr6NfPOfq3az50gunTpAypxONVZlzvRyNmza3QZj5eC/n1/dh81EjNpI5tVjkak26rsG2z 8vOFz2vRqdZ/MrzAOnrTkiOxrCWV2q7Y9ftiNPs1W+b0XohpYuL2G3JB+DeucpIJMunkJFEx6OILY HAUwzsr5l0mWrs6NHE6uCNyuKDmeuMDGHuHI2E6TbbtP7Q0nd4+HHLO7nOAUgq545046qlz2bkYDU 9h221RlEfVM6czhkjeVSxGnYipNHn6Rf42gUIVDk17URUXSpjP/InO17Mj9aqUOvYcRuMeuUM4TpI HazH+5QFPiySIcVPNqoQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4maN-0006Ja-5z; Fri, 15 Mar 2019 13:09:19 +0000 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4mZw-0005nw-T2 for linux-arm-kernel@lists.infradead.org; Fri, 15 Mar 2019 13:08:59 +0000 Received: by mail-pf1-x441.google.com with SMTP id v64so6337627pfb.1 for ; Fri, 15 Mar 2019 06:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MUOsJO/ekVDHiTmtCVq8d27ElQS89ZxoIWk8a+ZsNC8=; b=B2hki3AVn28hYRpt5WblRY/Vca49463pFaNwvrqpHWdi3Q+mwBSfv1Vs2vjfcAGpRm 7h24qEjbfhNQ/C15zsOs0GEucNfdebhmiBYEC71Sl8tHFCMhamO1C/BCjEuHSy5LPNdX 22yifrbUWp3bv2AUBl5Qu6ljUpOc/zESnsyIQ= 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=MUOsJO/ekVDHiTmtCVq8d27ElQS89ZxoIWk8a+ZsNC8=; b=KTWE//CLwanzgD5h4swZl5i33P/YJAnF//ZcCKzq6IF5VvvMME+W5FMVMDxChivFHH FUqGtlvat+3dSxf8xkD9mcGqFN6+f8M/KC/lmCzMIed3a37LR0mUV9NfcPN6E9Do2lDC /ADEQMDCYju8DuOi3IRsZmdgqemjCyW/G5/q7ePg9G1Cn1HyXbMoO55PAbjdHLXMAGaF 7vLr6EyJ+DI30+3BoHv/Ip1+ofwA+x54vmAQtA7P4jDIm8YDnmW9seaQgsGwF3VHF16S M1wGK+kjGW0e0+++R9Hh/XcoqfPO648OWrl1qoI2Q3bI12wfieJFQdkQN2GFLfrdCIe3 Xikg== X-Gm-Message-State: APjAAAXD4AKRW92bozBRgvkCTlbFHTCQyTBYOPjYONSB51/VZG9/76IJ ZbWi9jD6MU87qfpALYsx70wXHQ== X-Google-Smtp-Source: APXvYqyPmR5Date1E23A+mrwxJzoBMabdA1BAZmkp5dMCISLQ8NpBn1aclAupLxAkrJgT0eBGNdF0A== X-Received: by 2002:a63:5321:: with SMTP id h33mr3378181pgb.168.1552655332222; Fri, 15 Mar 2019 06:08:52 -0700 (PDT) Received: from localhost.localdomain ([183.82.230.185]) by smtp.gmail.com with ESMTPSA id e2sm854008pfa.64.2019.03.15.06.08.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Mar 2019 06:08:51 -0700 (PDT) From: Jagan Teki To: Andrzej Hajda , Laurent Pinchart , Chen-Yu Tsai , Maxime Ripard , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Subject: [PATCH 3/6] drm/sun4i: dsi: Add bridge support Date: Fri, 15 Mar 2019 18:38:22 +0530 Message-Id: <20190315130825.9005-4-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190315130825.9005-1-jagan@amarulasolutions.com> References: <20190315130825.9005-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190315_060853_547637_F05A4020 X-CRM114-Status: GOOD ( 18.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, Jagan Teki , Michael Trimarchi , linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Some display panels would come up with a non-DSI output which can have an option to connect DSI interface by means of bridge convertor. This DSI to non-DSI bridge convertor would require a bridge driver that would communicate the DSI controller for bridge functionalities. So, add support for bridge functionalities in Allwinner DSI controller. Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 65 +++++++++++++++++++------- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 1 + 2 files changed, 49 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index 0960b96b62cc..64d74313b842 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -781,6 +781,9 @@ static void sun6i_dsi_encoder_enable(struct drm_encoder *encoder) if (!IS_ERR(dsi->panel)) drm_panel_prepare(dsi->panel); + if (!IS_ERR(dsi->bridge)) + drm_bridge_pre_enable(dsi->bridge); + /* * FIXME: This should be moved after the switch to HS mode. * @@ -796,6 +799,9 @@ static void sun6i_dsi_encoder_enable(struct drm_encoder *encoder) if (!IS_ERR(dsi->panel)) drm_panel_enable(dsi->panel); + if (!IS_ERR(dsi->bridge)) + drm_bridge_enable(dsi->bridge); + sun6i_dsi_start(dsi, DSI_START_HSC); udelay(1000); @@ -812,6 +818,9 @@ static void sun6i_dsi_encoder_disable(struct drm_encoder *encoder) if (!IS_ERR(dsi->panel)) { drm_panel_disable(dsi->panel); drm_panel_unprepare(dsi->panel); + } else if (!IS_ERR(dsi->bridge)) { + drm_bridge_disable(dsi->bridge); + drm_bridge_post_disable(dsi->bridge); } phy_power_off(dsi->dphy); @@ -973,11 +982,16 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host, struct sun6i_dsi *dsi = host_to_sun6i_dsi(host); dsi->device = device; - dsi->panel = of_drm_find_panel(device->dev.of_node); - if (IS_ERR(dsi->panel)) - return PTR_ERR(dsi->panel); - dev_info(host->dev, "Attached device %s\n", device->name); + dsi->bridge = of_drm_find_bridge(device->dev.of_node); + if (!dsi->bridge) { + dsi->panel = of_drm_find_panel(device->dev.of_node); + if (IS_ERR(dsi->panel)) + return PTR_ERR(dsi->panel); + } + + dev_info(host->dev, "Attached %s %s\n", + dsi->bridge ? "bridge" : "panel", device->name); return 0; } @@ -1055,8 +1069,10 @@ static int sun6i_dsi_bind(struct device *dev, struct device *master, struct sun4i_tcon *tcon0 = sun4i_get_tcon0(drm); int ret; - if (!dsi->panel) + if (!(dsi->panel || dsi->bridge)) { + dev_info(drm->dev, "No panel or bridge found... DSI output disabled\n"); return -EPROBE_DEFER; + } dsi->drv = drv; @@ -1078,19 +1094,29 @@ static int sun6i_dsi_bind(struct device *dev, struct device *master, } dsi->encoder.possible_crtcs = BIT(0); - drm_connector_helper_add(&dsi->connector, - &sun6i_dsi_connector_helper_funcs); - ret = drm_connector_init(drm, &dsi->connector, - &sun6i_dsi_connector_funcs, - DRM_MODE_CONNECTOR_DSI); - if (ret) { - dev_err(dsi->dev, - "Couldn't initialise the DSI connector\n"); - goto err_cleanup_connector; + if (dsi->panel) { + drm_connector_helper_add(&dsi->connector, + &sun6i_dsi_connector_helper_funcs); + ret = drm_connector_init(drm, &dsi->connector, + &sun6i_dsi_connector_funcs, + DRM_MODE_CONNECTOR_DSI); + if (ret) { + dev_err(dsi->dev, + "Couldn't initialise the DSI connector\n"); + goto err_cleanup_connector; + } + + drm_connector_attach_encoder(&dsi->connector, &dsi->encoder); + drm_panel_attach(dsi->panel, &dsi->connector); } - drm_connector_attach_encoder(&dsi->connector, &dsi->encoder); - drm_panel_attach(dsi->panel, &dsi->connector); + if (dsi->bridge) { + ret = drm_bridge_attach(&dsi->encoder, dsi->bridge, NULL); + if (ret) { + dev_err(dsi->dev, "Couldn't attach the DSI bridge\n"); + goto err_cleanup_connector; + } + } return 0; @@ -1104,7 +1130,12 @@ static void sun6i_dsi_unbind(struct device *dev, struct device *master, { struct sun6i_dsi *dsi = dev_get_drvdata(dev); - drm_panel_detach(dsi->panel); + if (dsi->panel) + drm_panel_detach(dsi->panel); + + if (dsi->bridge) + drm_bridge_detach(dsi->bridge); + } static const struct component_ops sun6i_dsi_ops = { diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h index 5c4983212f89..76874ff8e3ef 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h @@ -36,6 +36,7 @@ struct sun6i_dsi { struct sun4i_tcon *tcon; struct mipi_dsi_device *device; struct drm_panel *panel; + struct drm_bridge *bridge; const struct sun6i_dsi_variant *variant; }; From patchwork Fri Mar 15 13:08:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 10854711 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2AF2E15AC for ; Fri, 15 Mar 2019 13:09:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0F43F2A78E for ; Fri, 15 Mar 2019 13:09:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 019C22A7BD; Fri, 15 Mar 2019 13:09:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A0C862A78E for ; Fri, 15 Mar 2019 13:09:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=tU3k5BbnjeSMfHJkslwYid1AD1dmZircaLKU4kXPVhU=; b=Eyt9SfaVRmNA89 iIKsgqjyoSvr9EaVKOmZHh/MyGcgjaUfIjTiPMV4KaxQc/svP85Y9l/1LKRRuQnhVrH0saTxoHH3V p6GANy7eqyocDPPe/Nkm5zl731sk76OF2YR+kL2ncwQBlIwCuZ0k0mz171je/r/PBhPF2tM6WfC09 90hIUgijQOgQXFLA+/O4ltsW0fLWQaJHXyAoiuo2a5LfEYEYVG5EKHbaCggsdpn4LEmf2sMhiNmog I6tj0Fd8K4j9dpaB8PgZNPpCruXCymDdpTe1cf+++c7OH+MQl2voc1VQH+839wY664nI14r8oPqJJ k+b2R/5xObUhAilzz5dg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4maa-0006XW-6M; Fri, 15 Mar 2019 13:09:32 +0000 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4ma1-0005v8-OY for linux-arm-kernel@lists.infradead.org; Fri, 15 Mar 2019 13:09:03 +0000 Received: by mail-pf1-x442.google.com with SMTP id d25so6315862pfn.8 for ; Fri, 15 Mar 2019 06:08:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AAGhTSDHAoMycmwWhiYuqV20infnrcRGhVpZHstA2bg=; b=MBPaO0Zlx6KmpReudelpodsNyJVUCGSCpbLXUCDBE4Gk4lNLmH9Q962W2iZrzcb1kI p7uKF6K4R+IWlpYpsYu7ulJfwNAANlIB7a9ergDTeD5hLXTBPi4l5SDkuwl0PPCAhJ17 2+842mCm9/OLFiH12q0RCeoQIFTZ2ilmfrjjA= 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=AAGhTSDHAoMycmwWhiYuqV20infnrcRGhVpZHstA2bg=; b=eVahd0EEb81BoqEg2mrPvHkcNqiuclRdXmKZp/l8HSB2Pq68FBj/mQEraRaucwKF4Y xMuod/UNAMawsStElj8KpeyE0kROVNfHeHewrtvo+IWKAnrr31jCBFIF4IDkKq71sTM0 zDzjKHhhQ6LR3NQCM5y1GKemwO2hoEKF/uEEMwEVcoJG459Blcs3Py50Xvs3hML+x771 iNo2RYPkBPJhpdHXJZ94ghcFiOp9ZR+Y2HRaI1XLcjqj1tuFFH41RxFaMZgtKo/xOSxd KdmnqZoFh6joE2G/5NA99Ev1oosnuMdzUiH3hN36v2p0Z+0yzt8uPk58ik36Tmm4WQeT kM1Q== X-Gm-Message-State: APjAAAVhaCuwWQWtCY+e8spKcqz7frvRh7Uln7sxvtmQPQRc5kLLt76d tkgEf8s3Sa+ZqK5BikyVjdMwlg== X-Google-Smtp-Source: APXvYqwcggiwzRNyL5wb9wjvS6uJ2yZ3aXzKDLXnQmN7h6tse4rgW0S1r+UhaABSrbJyIOG6jy4rwg== X-Received: by 2002:a17:902:234b:: with SMTP id n11mr4218595plg.89.1552655336942; Fri, 15 Mar 2019 06:08:56 -0700 (PDT) Received: from localhost.localdomain ([183.82.230.185]) by smtp.gmail.com with ESMTPSA id e2sm854008pfa.64.2019.03.15.06.08.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Mar 2019 06:08:56 -0700 (PDT) From: Jagan Teki To: Andrzej Hajda , Laurent Pinchart , Chen-Yu Tsai , Maxime Ripard , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Subject: [PATCH 4/6] dt-bindings: display: bridge: Add ICN6211 MIPI-DSI to RGB convertor bridge Date: Fri, 15 Mar 2019 18:38:23 +0530 Message-Id: <20190315130825.9005-5-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190315130825.9005-1-jagan@amarulasolutions.com> References: <20190315130825.9005-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190315_060858_387000_481BF130 X-CRM114-Status: GOOD ( 12.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, Jagan Teki , Michael Trimarchi , linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP ICN6211 is MIPI-DSI/RGB converter bridge from chipone. It has a flexible configuration of MIPI DSI signal input and produce RGB565, RGB666, RGB888 output format. Add dt-bingings for it. Signed-off-by: Jagan Teki --- .../display/bridge/chipone,icn6211.txt | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/bridge/chipone,icn6211.txt diff --git a/Documentation/devicetree/bindings/display/bridge/chipone,icn6211.txt b/Documentation/devicetree/bindings/display/bridge/chipone,icn6211.txt new file mode 100644 index 000000000000..7f13efd7ee7f --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/chipone,icn6211.txt @@ -0,0 +1,36 @@ +Chipone ICN6211 MIPI-DSI to RGB Convertor Bridge + +ICN6211 is MIPI-DSI/RGB converter bridge from chipone. +It has a flexible configuration of MIPI DSI signal input +and produce RGB565, RGB666, RGB888 output format. + +Required properties for RGB: +- compatible: must be "chipone,icn6211" and one of: + * "bananapi,icn6211" +- reg: the virtual channel number of a DSI peripheral +- reset-gpios: a GPIO phandle for the reset pin + +The device node can contain following 'port' child nodes, +according to the OF graph bindings defined in [1]: + 0: DSI Input, not required, if the bridge is DSI controlled + 1: RGB Output, mandatory + +[1]: Documentation/devicetree/bindings/media/video-interfaces.txt + +Example: + + bridge@0 { + compatible = "bananapi,icn6211", "chipone,icn6211"; + reg = <0>; + reset-gpios = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* LCD-RST: PD6 */ + #address-cells = <1>; + #size-cells = <0>; + + port@1 { + reg = <1>; + + bridge_out_ep: endpoint { + remote-endpoint = <&panel_ep>; + }; + }; + }; From patchwork Fri Mar 15 13:08:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 10854713 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0E94015AC for ; Fri, 15 Mar 2019 13:09:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E51922A7BD for ; Fri, 15 Mar 2019 13:09:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D95492A86A; Fri, 15 Mar 2019 13:09:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1EBD92A7BD for ; Fri, 15 Mar 2019 13:09:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZSurRpXgKypAZmr4sLJwq5vrIc2K9T3ESsPazE5Ef2E=; b=cSXcplOqWvmtoM XglpRH8dM8Qf+ElytWkkinhJQ2cFFg+kEEkzYphljWWTbMoCWS4Xpm4NmDLqwOTGEkPEYIiuY6zaH SPWf1nxh3J7lH9gjwNNi/pxi7inGRVHPZJuklcB4Dj7FnQr6PkO6CI0yl/TwgKibRGol8Kwq2nmPq JSnBvJC2aSd6j+DP6/iTP/VnIJWUyoH63j49TCYOCXMtSpbaBToENpd5qblQW5LEtXn2L5pSJGuvT FeS17HZGVIgL3N+ACiajMlGDvdk4a6RVdFsTzWBOaHELub55DdHXxFCgZCntK/HcRAkVigWtKVAIG dlNiL9vaf97QoL8HP9iQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4mav-0006uU-2h; Fri, 15 Mar 2019 13:09:53 +0000 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4ma6-00062D-BH for linux-arm-kernel@lists.infradead.org; Fri, 15 Mar 2019 13:09:14 +0000 Received: by mail-pf1-x441.google.com with SMTP id 8so2916929pfr.4 for ; Fri, 15 Mar 2019 06:09:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l7jDKekA1zKlo/xV9xtxEUytM5+wSMRdUwycfkyRP+g=; b=dD9jLFn+eWX5ZemwH/7VZLAS4Z1aRh0G6t9F2/w3RcHu1j8rqeWZKNROXUS3Q4Thiq y+RR/YsM9RzeKUlMKWywHgtLvyVaXLkSL/VTlle6m/Z2pbJ4ka04vOvtYZy4avqdeEkv sK2GwJknCURcb4T+dS9GvTYOdNgoE3BzUrO6M= 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=l7jDKekA1zKlo/xV9xtxEUytM5+wSMRdUwycfkyRP+g=; b=Hx3Huf7eWJh8kuvMPe9wJ/VCGHlvzVYJNbN7lDyWpaoahy+It/6q1K3q5lx5SGqJBk zGBaF0MP1TMYpgB1oqyCx1DuQMlIPqoO3vH+2SniXsv7D1hVAPkPuthznP/pyGmy22Ah Un+876NDnEtlB+Jg8KXqiPkCdGASdJWMIJAc9KQ8yAobEMXdgtjfyuRuf3Rpkg+mAocg YIGWsUCgz1oeawqpULgRzRLoyCSldcnWtaNQ64bHJ804qSoxrz7XtB+Tj9eq+Rhb+kHV kIwJSGvHmmmhDXwmwEHDjEPTzPM0vn8UOaPeSirq12+qJJI2006/OEPduJzonniZYtaJ sbAw== X-Gm-Message-State: APjAAAUN9BT50WHccynHy8UDTI974GR5HHbNKsF5WgIs7je/TTXb2W// hK80/KQK5BROaYN4dNAUsWP2mg== X-Google-Smtp-Source: APXvYqypv/Smqvslg2YxlLM5fRm478mf9x7+17zGZcTMm96oI5CPCDsw3xFIdx+nWU2L6p4l6Kwdag== X-Received: by 2002:a63:e40b:: with SMTP id a11mr3347314pgi.259.1552655341691; Fri, 15 Mar 2019 06:09:01 -0700 (PDT) Received: from localhost.localdomain ([183.82.230.185]) by smtp.gmail.com with ESMTPSA id e2sm854008pfa.64.2019.03.15.06.08.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Mar 2019 06:09:01 -0700 (PDT) From: Jagan Teki To: Andrzej Hajda , Laurent Pinchart , Chen-Yu Tsai , Maxime Ripard , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Subject: [PATCH 5/6] drm/bridge: Add Chipone ICN6211 MIPI-DSI/RGB convertor bridge Date: Fri, 15 Mar 2019 18:38:24 +0530 Message-Id: <20190315130825.9005-6-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190315130825.9005-1-jagan@amarulasolutions.com> References: <20190315130825.9005-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190315_060902_893426_0D789E28 X-CRM114-Status: GOOD ( 19.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, Jagan Teki , Michael Trimarchi , linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP ICN6211 is MIPI-DSI/RGB converter bridge from chipone. It has a flexible configuration of MIPI DSI signal input and produce RGB565, RGB666, RGB888 output format. Add bridge driver for it. Signed-off-by: Jagan Teki --- MAINTAINERS | 6 + drivers/gpu/drm/bridge/Kconfig | 10 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/chipone-icn6211.c | 275 +++++++++++++++++++++++ 4 files changed, 292 insertions(+) create mode 100644 drivers/gpu/drm/bridge/chipone-icn6211.c diff --git a/MAINTAINERS b/MAINTAINERS index 4de80222cffb..e529addd30f5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4897,6 +4897,12 @@ T: git git://anongit.freedesktop.org/drm/drm-misc S: Maintained F: drivers/gpu/drm/bochs/ +DRM DRIVER FOR CHIPONE ICN6211 MIPI-DSI to RGB CONVERTOR BRIDGE +M: Jagan Teki +S: Maintained +F: drivers/gpu/drm/bridge/chipone-icn6211.c +F: Documentation/devicetree/bindings/display/bridge/chipone,icn6211.txt + DRM DRIVER FOR FARADAY TVE200 TV ENCODER M: Linus Walleij T: git git://anongit.freedesktop.org/drm/drm-misc diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index 8840f396a7b6..cd314572e4ed 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -36,6 +36,16 @@ config DRM_CDNS_DSI Support Cadence DPI to DSI bridge. This is an internal bridge and is meant to be directly embedded in a SoC. +config DRM_CHIPONE_ICN6211 + tristate "Chipone ICN6211 MIPI-DSI/RGB converter bridge" + depends on DRM && DRM_PANEL + depends on OF + select DRM_MIPI_DSI + help + ICN6211 is MIPI-DSI/RGB converter bridge from chipone. + It has a flexible configuration of MIPI DSI signal input + and produce RGB565, RGB666, RGB888 output format. + config DRM_DUMB_VGA_DAC tristate "Dumb VGA DAC Bridge support" depends on OF diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile index 4934fcf5a6f8..541fdccad10b 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_DRM_ANALOGIX_ANX78XX) += analogix-anx78xx.o obj-$(CONFIG_DRM_CDNS_DSI) += cdns-dsi.o +obj-$(CONFIG_DRM_CHIPONE_ICN6211) += chipone-icn6211.o obj-$(CONFIG_DRM_DUMB_VGA_DAC) += dumb-vga-dac.o obj-$(CONFIG_DRM_LVDS_ENCODER) += lvds-encoder.o obj-$(CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW) += megachips-stdpxxxx-ge-b850v3-fw.o diff --git a/drivers/gpu/drm/bridge/chipone-icn6211.c b/drivers/gpu/drm/bridge/chipone-icn6211.c new file mode 100644 index 000000000000..cd2f3505f845 --- /dev/null +++ b/drivers/gpu/drm/bridge/chipone-icn6211.c @@ -0,0 +1,275 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2018 Amarula Solutions + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#define ICN6211_INIT_CMD_LEN 2 + +struct chipone { + struct device *dev; + struct drm_bridge bridge; + struct drm_connector connector; + struct drm_panel *panel; + + struct gpio_desc *reset; +}; + +static inline struct chipone *bridge_to_chipone(struct drm_bridge *bridge) +{ + return container_of(bridge, struct chipone, bridge); +} + +static inline +struct chipone *connector_to_chipone(struct drm_connector *connector) +{ + return container_of(connector, struct chipone, connector); +} + +struct icn6211_init_cmd { + u8 data[ICN6211_INIT_CMD_LEN]; +}; + +static const struct icn6211_init_cmd icn6211_init_cmds[] = { + { .data = { 0x7A, 0xC1 } }, + { .data = { 0x20, 0x20 } }, + { .data = { 0x21, 0xE0 } }, + { .data = { 0x22, 0x13 } }, + { .data = { 0x23, 0x28 } }, + { .data = { 0x24, 0x30 } }, + { .data = { 0x25, 0x28 } }, + { .data = { 0x26, 0x00 } }, + { .data = { 0x27, 0x0D } }, + { .data = { 0x28, 0x03 } }, + { .data = { 0x29, 0x1D } }, + { .data = { 0x34, 0x80 } }, + { .data = { 0x36, 0x28 } }, + { .data = { 0xB5, 0xA0 } }, + { .data = { 0x5C, 0xFF } }, + { .data = { 0x2A, 0x01 } }, + { .data = { 0x56, 0x92 } }, + { .data = { 0x6B, 0x71 } }, + { .data = { 0x69, 0x2B } }, + { .data = { 0x10, 0x40 } }, + { .data = { 0x11, 0x98 } }, + { .data = { 0xB6, 0x20 } }, + { .data = { 0x51, 0x20 } }, + { .data = { 0x09, 0x10 } }, +}; + +static int chipone_get_modes(struct drm_connector *connector) +{ + struct chipone *icn = connector_to_chipone(connector); + + return drm_panel_get_modes(icn->panel); +} + +static const +struct drm_connector_helper_funcs chipone_connector_helper_funcs = { + .get_modes = chipone_get_modes, +}; + +static const struct drm_connector_funcs chipone_connector_funcs = { + .fill_modes = drm_helper_probe_single_connector_modes, + .destroy = drm_connector_cleanup, + .reset = drm_atomic_helper_connector_reset, + .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, + .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, +}; + +static void chipone_disable(struct drm_bridge *bridge) +{ + struct chipone *icn = bridge_to_chipone(bridge); + int ret = drm_panel_disable(bridge_to_chipone(bridge)->panel); + + if (ret < 0) + DRM_DEV_ERROR(icn->dev, "error disabling panel (%d)\n", ret); +} + +static void chipone_post_disable(struct drm_bridge *bridge) +{ + struct chipone *icn = bridge_to_chipone(bridge); + int ret; + + ret = drm_panel_unprepare(icn->panel); + if (ret < 0) + DRM_DEV_ERROR(icn->dev, "error unpreparing panel (%d)\n", ret); + + msleep(50); + + gpiod_set_value(icn->reset, 0); +} + +static void chipone_pre_enable(struct drm_bridge *bridge) +{ + struct chipone *icn = bridge_to_chipone(bridge); + struct mipi_dsi_device *dsi = to_mipi_dsi_device(icn->dev); + unsigned int i; + int ret; + + gpiod_set_value(icn->reset, 0); + msleep(20); + + gpiod_set_value(icn->reset, 1); + msleep(50); + + for (i = 0; i < ARRAY_SIZE(icn6211_init_cmds); i++) { + const struct icn6211_init_cmd *cmd = &icn6211_init_cmds[i]; + + ret = mipi_dsi_generic_write(dsi, cmd->data, + ICN6211_INIT_CMD_LEN); + if (ret < 0) { + DRM_DEV_ERROR(icn->dev, + "failed to write cmd %d: %d\n", i, ret); + return; + } + } + + ret = drm_panel_prepare(icn->panel); + if (ret < 0) + DRM_DEV_ERROR(icn->dev, "error preparing panel (%d)\n", ret); +} + +static void chipone_enable(struct drm_bridge *bridge) +{ + struct chipone *icn = bridge_to_chipone(bridge); + int ret = drm_panel_enable(icn->panel); + + if (ret < 0) + DRM_DEV_ERROR(icn->dev, "error enabling panel (%d)\n", ret); +} + +static int chipone_attach(struct drm_bridge *bridge) +{ + struct chipone *icn = bridge_to_chipone(bridge); + struct drm_device *drm = bridge->dev; + int ret; + + icn->connector.polled = DRM_CONNECTOR_POLL_HPD; + ret = drm_connector_init(drm, &icn->connector, + &chipone_connector_funcs, + DRM_MODE_CONNECTOR_Unknown); + if (ret) { + DRM_ERROR("Failed to initialize connector\n"); + return ret; + } + + drm_connector_helper_add(&icn->connector, + &chipone_connector_helper_funcs); + drm_connector_attach_encoder(&icn->connector, bridge->encoder); + drm_panel_attach(icn->panel, &icn->connector); + icn->connector.funcs->reset(&icn->connector); + drm_fb_helper_add_one_connector(drm->fb_helper, &icn->connector); + drm_connector_register(&icn->connector); + + return 0; +} + +static void chipone_detach(struct drm_bridge *bridge) +{ + struct chipone *icn = bridge_to_chipone(bridge); + struct drm_device *drm = bridge->dev; + + drm_connector_unregister(&icn->connector); + drm_fb_helper_remove_one_connector(drm->fb_helper, &icn->connector); + drm_panel_detach(icn->panel); + icn->panel = NULL; + drm_connector_put(&icn->connector); +} + +static const struct drm_bridge_funcs chipone_bridge_funcs = { + .disable = chipone_disable, + .post_disable = chipone_post_disable, + .enable = chipone_enable, + .pre_enable = chipone_pre_enable, + .attach = chipone_attach, + .detach = chipone_detach, +}; + +static int chipone_probe(struct mipi_dsi_device *dsi) +{ + struct device *dev = &dsi->dev; + struct chipone *icn; + int ret; + + icn = devm_kzalloc(dev, sizeof(struct chipone), GFP_KERNEL); + if (!icn) + return -ENOMEM; + + mipi_dsi_set_drvdata(dsi, icn); + + icn->dev = dev; + dsi->lanes = 4; + dsi->format = MIPI_DSI_FMT_RGB888; + dsi->mode_flags = MIPI_DSI_MODE_VIDEO_SYNC_PULSE; + + icn->reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); + if (IS_ERR(icn->reset)) { + DRM_DEV_ERROR(dev, "no reset GPIO pin provided\n"); + return PTR_ERR(icn->reset); + } + + ret = drm_of_find_panel_or_bridge(icn->dev->of_node, 1, 0, + &icn->panel, NULL); + if (ret && ret != -EPROBE_DEFER) { + DRM_DEV_ERROR(dev, "failed to find panel (ret = %d)\n", ret); + return ret; + } + + icn->bridge.funcs = &chipone_bridge_funcs; + icn->bridge.of_node = dev->of_node; + + drm_bridge_add(&icn->bridge); + + ret = mipi_dsi_attach(dsi); + if (ret < 0) { + drm_bridge_remove(&icn->bridge); + DRM_DEV_ERROR(dev, "failed to attach dsi (ret = %d)\n", ret); + } + + return ret; +} + +static int chipone_remove(struct mipi_dsi_device *dsi) +{ + struct chipone *icn = mipi_dsi_get_drvdata(dsi); + + mipi_dsi_detach(dsi); + drm_bridge_remove(&icn->bridge); + + return 0; +} + +static const struct of_device_id chipone_of_match[] = { + { .compatible = "bananapi,icn6211" }, + { } +}; +MODULE_DEVICE_TABLE(of, chipone_of_match); + +static struct mipi_dsi_driver chipone_driver = { + .probe = chipone_probe, + .remove = chipone_remove, + .driver = { + .name = "chipone-icn6211", + .owner = THIS_MODULE, + .of_match_table = chipone_of_match, + }, +}; +module_mipi_dsi_driver(chipone_driver); + +MODULE_AUTHOR("Jagan Teki "); +MODULE_DESCRIPTION("Chipone ICN6211 MIPI-DSI to RGB Convertor Bridge"); +MODULE_LICENSE("GPL v2"); From patchwork Fri Mar 15 13:08:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 10854715 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1594E15AC for ; Fri, 15 Mar 2019 13:10:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ED9142A78E for ; Fri, 15 Mar 2019 13:10:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E1AE72A875; Fri, 15 Mar 2019 13:10:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 79C092A78E for ; Fri, 15 Mar 2019 13:10:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AvZMygex22y5lCkMspsfkTwJpQPTVKAbZT6oxmNv4f8=; b=SXnvK9mbK21Thh zvylstolJR9OLydAO6aW3z09P5+dGzy0+MVa5M/wiwzr7aNsklJu0glradlVy+DSCzpDojkKLZe3g mZIKhhkmUJG9EfeJw1rO4X5xuhkBmOAqvfpyc74Rv0SoVaaqaaVk27PQbKwRJ6WbDcRyMJpIPaPVQ lovRcAaUr+xpvofqWLVbqCqYuMBuNj3y5uKcuJUH0P7Qbr7nVwZhOmsE1QsRUxFQRYu5rN7SdaU/P lOTozNRHjVNi+y91DmqY7yx+bEAuQUTeZ5lNYuhbbSIiEZ3YUoOMXAo6CBu/XtUDxfmcos1Yput27 WSgXVQ0N4N6oU84O5C+g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4mb7-0007MR-Jk; Fri, 15 Mar 2019 13:10:05 +0000 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4maB-00067N-MI for linux-arm-kernel@lists.infradead.org; Fri, 15 Mar 2019 13:09:16 +0000 Received: by mail-pg1-x544.google.com with SMTP id b2so6426739pgl.9 for ; Fri, 15 Mar 2019 06:09:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fgjvITMSu4P9dEIyxGHg+50sb9yJF4/343qaf5B+0M4=; b=BTB4zVgub30H5MtT6pq8TsVFBePGZEx5YhRKZGDqnCan9mHIf4Nf9ntbuNLWrMnCNP UZXuk3m3T73k7UuXMkeGkEPq7xUGm5i6aswJRXmBp5prmiBa3VgnDq/pUVd5m8wIKckT 30fG/0/QtZ1VcM3c6j6xmBgz8ZDGLqNvODj0Q= 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=fgjvITMSu4P9dEIyxGHg+50sb9yJF4/343qaf5B+0M4=; b=LlMTL/J7L/CHVz9sx2sDHHaE9eNvWUiBswqSukgxQx1JKXYIvJfwbaQzUUW89T2cpG uPv81eakACZYhU0P/Np0mgYD1RwMsMfY+8VIjx0IRDMS5EYdyqn+lSQ2X+O+5eGMDWxA xSNBSMr4wRd5HnquXAVoUfPbi5OcDHXV5OmoFHVFZRKeuVWhZMD8JSxGxfCB0jsU5dk1 m70UdFs8MAUsYPLN+1CXhgtIhWen8obRllHzrYz7Y/iFpbb16XrkjZQmXi+HkFtWs99K q8RMXMVw0SGm0HYoA3X2mDISMgkWVH6T7O8/oQsjlUHlRsYu9Uct3KLTSgVgtv+I1RNQ /+Zw== X-Gm-Message-State: APjAAAVkP/6YbK0Yl3gcOUGWZ8RvIkXqNx1SZBkaRo+UpgtxdIyCqtDR 3v0vvwaGcsodwCDH+PbJf1pQeg== X-Google-Smtp-Source: APXvYqxVc/fKWezAMXctlfIKXy+8b2DkfDBT/ADV0Gwx2+8aTtr1GEODEGakDg6K+Luj6lxZ1BZEmA== X-Received: by 2002:aa7:9102:: with SMTP id 2mr3913621pfh.179.1552655346407; Fri, 15 Mar 2019 06:09:06 -0700 (PDT) Received: from localhost.localdomain ([183.82.230.185]) by smtp.gmail.com with ESMTPSA id e2sm854008pfa.64.2019.03.15.06.09.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Mar 2019 06:09:05 -0700 (PDT) From: Jagan Teki To: Andrzej Hajda , Laurent Pinchart , Chen-Yu Tsai , Maxime Ripard , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Subject: [PATCH 6/6] arm64: dts: allwinner: bananapi-m64: Enable S070WV20-CT16 DSI panel Date: Fri, 15 Mar 2019 18:38:25 +0530 Message-Id: <20190315130825.9005-7-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190315130825.9005-1-jagan@amarulasolutions.com> References: <20190315130825.9005-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190315_060907_723304_64399174 X-CRM114-Status: GOOD ( 13.01 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, Jagan Teki , Michael Trimarchi , linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP This patch add support for Bananapi S070WV20-CT16 DSI panel to BPI-M64 board. Bananapi S070WV20-CT16 is a pure RGB output panel with ICN6211 DSI/RGB convertor bridge, so enable bridge along with associated panel. DSI panel connected via board DSI port with, - DLDO1 as VCC-DSI supply - PD6 gpio for reset pin - PD5 gpio for backlight enable pin - PD7 gpio for backlight vdd supply Signed-off-by: Jagan Teki --- .../dts/allwinner/sun50i-a64-bananapi-m64.dts | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts index 7793ebb5d2b8..f31083aa4521 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts @@ -45,6 +45,7 @@ #include "sun50i-a64.dtsi" #include +#include / { model = "BananaPi-M64"; @@ -56,6 +57,15 @@ serial1 = &uart1; }; + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>; + brightness-levels = <1 2 4 8 16 32 64 128 512>; + default-brightness-level = <2>; + enable-gpios = <&pio 3 5 GPIO_ACTIVE_HIGH>; /* LCD-BL-EN: PD5 */ + power-supply = <®_vdd_backlight>; + }; + chosen { stdout-path = "serial0:115200n8"; }; @@ -91,6 +101,26 @@ }; }; + panel-connector { + compatible = "bananapi,s070wv20-ct16", "simple-panel"; + + port { + backlight = <&backlight>; + panel_ep: endpoint { + remote-endpoint = <&bridge_out_ep>; + }; + }; + }; + + reg_vdd_backlight: vdd-backlight { + compatible = "regulator-fixed"; + regulator-name = "vdd-backlight"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&pio 3 7 GPIO_ACTIVE_HIGH>; /* LCD-PWR-EN: PD7 */ + enable-active-high; + }; + wifi_pwrseq: wifi_pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ @@ -116,6 +146,33 @@ status = "okay"; }; +&dphy { + status = "okay"; +}; + +&dsi { + vcc-dsi-supply = <®_dldo1>; /* VCC3V3-DSI */ + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + bridge@0 { + compatible = "bananapi,icn6211", "chipone, icn6211"; + reg = <0>; + reset-gpios = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* LCD-RST: PD6 */ + #address-cells = <1>; + #size-cells = <0>; + + port@1 { + reg = <1>; + + bridge_out_ep: endpoint { + remote-endpoint = <&panel_ep>; + }; + }; + }; +}; + &ehci0 { status = "okay"; }; @@ -208,6 +265,12 @@ status = "okay"; }; +&r_pwm { + pinctrl-names = "default"; + pinctrl-0 = <&r_pwm_pin>; + status = "okay"; +}; + &r_rsb { status = "okay";