Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp1796148ybn; Wed, 2 Oct 2019 23:57:27 -0700 (PDT) X-Google-Smtp-Source: APXvYqxIw4S1ptXSGYkYzawYa1jhJMyn0WUewh0st+SYIzWk0pbRccQh2Ufe2SZ6X2GLkYy0pa8S X-Received: by 2002:a50:ed17:: with SMTP id j23mr7844909eds.248.1570085847548; Wed, 02 Oct 2019 23:57:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570085847; cv=none; d=google.com; s=arc-20160816; b=twj9gBe/hv0VIbGZXuOLJDTNi7sEzK4BFLTg1u7Q+u/sijEk5pafzRPZtaCH0uUR++ E2DZmU/rEnK/sQi6LkLIoSlh3CXYq3WTmJcWLk0qPQEFXgClRUYHfyXklJ2/kH0VZM5U GcZjOwHjdNb9S73ojeu9MlW24nl43YSeQze0H2LKAnXVVlOA8ZrXGsWW8/EK5KKs7Yuv WYtZk5HUnWSAW548vhoZB59A7TWLqboMV3eTG7kK55KM4DJu/BCF30VuHtf21nDy2kFj 3GHFJCjSJJP87MXugJO8W8i/DInQBvO1+zQ3yNzFf50MwPZPjfRxym4llG441fYKfjVa 9IYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=1O/m2RHGnuqku3yr69v1puhEpk9yyZ7Bn2a9zyF0W0s=; b=WQVwCTff5ZRV8nu1wijYgU5Jv8wc40HbM41EWDqrJ4AEvWFgDjGNUKa3a10rawS3bR Zt+1FViAanpX/dEAh1VmIAJgAu1MYNjhXn3r/Qg4aKocMWJwvbGeeZSg6q5dqRFlPSMe CZzcjeuP8SIab1OaKfaYCSP0TNeesORjBa+Bw2t1YzhhnD1m9VLnFIwZ9SG2xCSS/yA6 x7uC7GnJDyVRjm3tr9H1C053yDOFs49LS6i3NyqFWTbanJCjPnGJLbl0lDXkKAnwi60J ci0+FnhDZIUDBHiHzB4BCKZlAQvxO9jN1fmmg6d5al0ymcUury9tP9aIxmCkqbT1Lnks 3kLg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y2si914162eds.98.2019.10.02.23.57.03; Wed, 02 Oct 2019 23:57:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727308AbfJCG4D (ORCPT + 99 others); Thu, 3 Oct 2019 02:56:03 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:45927 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725879AbfJCG4D (ORCPT ); Thu, 3 Oct 2019 02:56:03 -0400 Received: by mail-ed1-f68.google.com with SMTP id h33so1367419edh.12; Wed, 02 Oct 2019 23:56:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1O/m2RHGnuqku3yr69v1puhEpk9yyZ7Bn2a9zyF0W0s=; b=Hu11fOYWmrM6h2PCR0swbkvcM+gjJlK7O/QNpCXjqQlIsYG+JBa5t+36muvOMRimEi +Qb3XRd8VKzy3a62D7D1oqQtsezweBrLaQd90BDoE2hDaKBH3HoMiGSfK7XpNSixoD+B eE+EqyWyCCqTpgCckXwSc6rAeJ/NIGhgpedOEoo0AIPPAaQq7L4yJo9zISH1dKw15i7L 7mfUvKq3fd0pwHvHNvp3fzUbbzDtd/KwjXuAVPKk4mGFtsqN4idy5nymsKLIKpFmabta ELMwKDv7b6KPLcMRnBtm8D63ZbYnfS43BpxU+dWaWfji/a4PT2QrWzmmImT3vGHyJntf Wj/g== X-Gm-Message-State: APjAAAW38/v6DY0pwGem/gDsP8ViHY/Me6+fT5M33lC/ayUIym1DCkOA 4GiV63x6ymOoY2KFGFQH1WP742hjkGg= X-Received: by 2002:a50:c306:: with SMTP id a6mr8117199edb.108.1570085760331; Wed, 02 Oct 2019 23:56:00 -0700 (PDT) Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com. [209.85.221.49]) by smtp.gmail.com with ESMTPSA id j9sm296744edt.15.2019.10.02.23.55.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Oct 2019 23:56:00 -0700 (PDT) Received: by mail-wr1-f49.google.com with SMTP id p14so691157wro.4; Wed, 02 Oct 2019 23:55:59 -0700 (PDT) X-Received: by 2002:a5d:55c4:: with SMTP id i4mr858936wrw.142.1570085759470; Wed, 02 Oct 2019 23:55:59 -0700 (PDT) MIME-Version: 1.0 References: <20191003064527.15128-1-jagan@amarulasolutions.com> <20191003064527.15128-6-jagan@amarulasolutions.com> In-Reply-To: <20191003064527.15128-6-jagan@amarulasolutions.com> From: Chen-Yu Tsai Date: Thu, 3 Oct 2019 14:55:46 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v11 5/7] drm/sun4i: sun6i_mipi_dsi: Add VCC-DSI regulator support To: Jagan Teki Cc: Maxime Ripard , David Airlie , Daniel Vetter , Michael Trimarchi , Icenowy Zheng , linux-sunxi , dri-devel , linux-arm-kernel , linux-kernel , devicetree Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 3, 2019 at 2:46 PM Jagan Teki wrote: > > 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 | 2 ++ > 2 files changed, 16 insertions(+) > > diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c > index 446dc56cc44b..fe9a3667f3a1 100644 > --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c > +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c > @@ -1110,6 +1110,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)) { > @@ -1183,6 +1189,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); > @@ -1215,6 +1228,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 5c3ad5be0690..a01d44e9e461 100644 > --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h > +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h > @@ -12,6 +12,7 @@ > #include > #include > #include > +#include You don't need to include the header file since you are only including a pointer to the struct, and nothing else. Otherwise, Reviewed-by: Chen-Yu Tsai > > #define SUN6I_DSI_TCON_DIV 4 > > @@ -23,6 +24,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; > > -- > 2.18.0.321.gffc6fa0e3 >