From patchwork Mon May 20 09:03:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 426 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 5081B3F36B for ; Mon, 20 May 2019 11:08:01 +0200 (CEST) Received: by mail-pf1-f198.google.com with SMTP id g11sf9531536pfq.7 for ; Mon, 20 May 2019 02:08:01 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343280; cv=pass; d=google.com; s=arc-20160816; b=RZfVGVmuzRE8qf7hKgLBswUIXr4dUhz3J4KKVGsz16BJgWTTIACeg44idMhmOBIjdA xiX3ooqWf9250cc9p6+j49C00LM5ccCqwstKjcToyfLgLZeQYkQVdjSdIugmEuTG8dUF akbw6+H5q5pCrgqidXOFe3lHkE2MVkdqxVi12XzJG/vCd3x/MC6ALczVrs0sz5+NdoBY O2fOp1/NbQLCf6ApEtZKSpi7TvB0vlx2kZ0zYmKMTgLgsL8/ZY/RP2KZ1bhKqpHR3WSS TJTr0HZySfWBec5tWRhR1ACkR58vIOtP29Gd1wUsoOjtnb0iYGICudo/qd+7v+0Wm3uH 8Fvw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=DFIr7fBWvrZfUcwGCU/hA7iubwbmoZFE31K5OcZtKgs=; b=MZ9KWbacVgi4MGc6zxY4J8jMWTSCGDJRvgHSq2q9nojenStsRy59V87BH9wD3Ql9dM 05+6ro6s/z8Lept1kI5OJzJ5Dw7hHamW5iyywfpRhFASxAPMnk5L7UsRRG1vjVFykEeX MjW1KRtVLEx1sOytV2LtaW3wrpJbR1csJSoXoiultF1co8YiBOcaCcmRiyQOD2DvEl7s fabcpFzffhbQLGWfMfJGntjPbEW3SHtayxOY9MeYZR5TPuYqPBEGpKiEV9XpGbEzDk45 Z0d0RcHfOi+C8kMOjaxXi2Oi7b/H09asAlXpCvC055kLbmiMSaCXHQSeC6nXO7uL7pMd mtbg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pkRCUHr3; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com 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:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=DFIr7fBWvrZfUcwGCU/hA7iubwbmoZFE31K5OcZtKgs=; b=WMUvg9MOP7T7DOwolPJW4VVHVyNYQ2WEpwvVSugNcoHu1y7YUJIFORfFUG7aRdFNJE TaKdRxOXfTWZDIex/6i04kbVQ+rWgkl2mC/j1iiOAOpFGHCUkHMN/rh5LyEs+itPjR7r F7cJ62W3AOtjSJco1FbOEf7CNTHMRpXfg779I= 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:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=DFIr7fBWvrZfUcwGCU/hA7iubwbmoZFE31K5OcZtKgs=; b=PffGYU6c8uuvmv+ReM/bPRubzh2m3YRTd7DCx3sazcdVOuApsFhG9eafGMRzYC0in2 bgxvS33T/ij1mlsvwLqw5mPRTynBd0h+q+Blzk69lZ3re/wvGBXfuUZybqnG+6UnnQvn ndAaTGZS01SP5Rb1U+umq1yQwgsqukeERw9lp6x8YrAi+VR/IbMPM5AIGnbsGR/qFkok oLR0zHI9/2l+8Q7yCpz6+oCTYvayLg6qfm0aWkfI3ROIKUgIoUhW8OewVdpmCvXgH2Ct fF3XWkCbIFZyN9eFvZckV4Uy2CVoUVry0XZeKpqPfXN5jSg3VVPUmug3xVkzJ0VHkbrs VEOg== X-Gm-Message-State: APjAAAW2ppMyVzJSbi4OHEsHc08TLufvgDt7k3Axlcwcu8LTguwL4gEw JdJH7QzcC00YZHONCnO+9Oqsyt3d X-Google-Smtp-Source: APXvYqyo0WgYJAKINZJ9Td23w9Cu+IK3R+VwUMhkqEziRa8i8daBTnfEc9JnIllrSd2iymf8aEXiOw== X-Received: by 2002:aa7:90ce:: with SMTP id k14mr77710600pfk.239.1558343280165; Mon, 20 May 2019 02:08:00 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a63:6cc1:: with SMTP id h184ls4114446pgc.9.gmail; Mon, 20 May 2019 02:07:59 -0700 (PDT) X-Received: by 2002:a63:4006:: with SMTP id n6mr74952446pga.424.1558343279833; Mon, 20 May 2019 02:07:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343279; cv=none; d=google.com; s=arc-20160816; b=0wQzzqy11XO62HEeYbXZIKSqN1IG9kysTJy8pD94ErP6BZCAg+ljpAqozd0GTZtqOr ML18bcUJcAHCDALpNQJzPTmq2jiYsElBBBhgN7m1xhX55YKmVgoWRL7Q6nR5q8dv4S1d HUhybzj989gERwbUL0DpWIncMj2+iIj+omNKNusEtz+kYwUyQF//9SL7TuuWFp5MHaSF /nYmHI5TL3BksYBCvBHXWHHLD6r6nPq1/4zEQ2p3sHJpqxahreP97aUdtK72YgoHgfc9 eArv04DfI7t5utSscpIsvjM9X/YZQX4S1e2S145PSiDNn2LGE3bdeyzUwfXSYCB+Cbtq HSIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=xEFhsAjZ+Xzcbx2mHUcUiTH2Zxcv+pD6TtDJ+37nOCw=; b=G2ryrpAZ9g87ZddilwbzOcn+66SlA2TKYv/t1dfmT6omVnJK7vcICIujKo6c5PUyyk QpsoOhkAX1eb0TxInGeGdomz/xlOzPSk9DSX/CrKyfe9LAyYT9VGIIc1Y9je9oh8L9Ty xmq74Gwcqy3v5SIYf3kI7eXqas0bG5vCdco0fZ0QAxt3WV/9Axl+XR++HouHHVTbtwtg zAkvjLVFQ+L49FHUAm2jE523XTeRImCsqQcKX4kE8bIJ7TcOrzDmYw+lz4pc1qYRcUC1 Kx6Z6i6OJ1mlNiWMerhyYXUq5TBANngork1y79NckGV8a9GfcGz+kolHfmvfmVvghgV+ Mitg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pkRCUHr3; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id l1sor17007021pgq.1.2019.05.20.02.07.59 for (Google Transport Security); Mon, 20 May 2019 02:07:59 -0700 (PDT) Received-SPF: pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; X-Received: by 2002:a63:3ece:: with SMTP id l197mr36282516pga.268.1558343279532; Mon, 20 May 2019 02:07:59 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:59 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: bshah@mykolab.com, Vasily Khoruzhick , powerpan@qq.com, michael@amarulasolutions.com, linux-amarula@amarulasolutions.com, linux-sunxi@googlegroups.com, Jagan Teki Subject: [PATCH v10 09/11] drm/sun4i: sun6i_mipi_dsi: Add VCC-DSI regulator support Date: Mon, 20 May 2019 14:33:16 +0530 Message-Id: <20190520090318.27570-10-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190520090318.27570-1-jagan@amarulasolutions.com> References: <20190520090318.27570-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: jagan@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pkRCUHr3; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Allwinner MIPI DSI controllers are supplied with SoC DSI power rails via VCC-DSI pin. Add support for this supply pin by adding voltage regulator handling code to MIPI DSI driver. Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 14 ++++++++++++++ drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index 5584e9c2f8bd..a5d73a283ed7 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -1150,6 +1150,12 @@ static int sun6i_dsi_probe(struct platform_device *pdev) return PTR_ERR(base); } + dsi->regulator = devm_regulator_get(dev, "vcc-dsi"); + if (IS_ERR(dsi->regulator)) { + dev_err(dev, "Couldn't get VCC-DSI supply\n"); + return PTR_ERR(dsi->regulator); + } + dsi->regs = devm_regmap_init_mmio_clk(dev, "bus", base, &sun6i_dsi_regmap_config); if (IS_ERR(dsi->regs)) { @@ -1223,6 +1229,13 @@ static int sun6i_dsi_remove(struct platform_device *pdev) static int __maybe_unused sun6i_dsi_runtime_resume(struct device *dev) { struct sun6i_dsi *dsi = dev_get_drvdata(dev); + int err; + + err = regulator_enable(dsi->regulator); + if (err) { + dev_err(dsi->dev, "failed to enable VCC-DSI supply: %d\n", err); + return err; + } reset_control_deassert(dsi->reset); clk_prepare_enable(dsi->mod_clk); @@ -1255,6 +1268,7 @@ static int __maybe_unused sun6i_dsi_runtime_suspend(struct device *dev) clk_disable_unprepare(dsi->mod_clk); reset_control_assert(dsi->reset); + regulator_disable(dsi->regulator); return 0; } diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h index 156523859d82..c76b71259d2e 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h @@ -13,6 +13,8 @@ #include #include +#include + struct sun6i_dsi { struct drm_connector connector; struct drm_encoder encoder; @@ -21,6 +23,7 @@ struct sun6i_dsi { struct clk *bus_clk; struct clk *mod_clk; struct regmap *regs; + struct regulator *regulator; struct reset_control *reset; struct phy *dphy;