Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp233937imd; Fri, 26 Oct 2018 07:47:02 -0700 (PDT) X-Google-Smtp-Source: AJdET5e5Bo0obJQkZiH6MVj3MsDsJ/J5kg/gzHxmd598ArT5vr+EDNoA21sTg/9BtzBAYMkfhI4l X-Received: by 2002:a63:1d10:: with SMTP id d16-v6mr3636229pgd.228.1540565222619; Fri, 26 Oct 2018 07:47:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540565222; cv=none; d=google.com; s=arc-20160816; b=grFLw7vTddJWSIegv3shMJxU7MU1VEVXA7cq+3rKHv9/Q96YSySQ4uNb9wHjgvilqM pl8No62+Nhle84YR3MjAra4A/Vg9wZX27H+yQBoI7JzWMC9Glz0FudvgfNlwMt1hFghJ /Pt1TKIa/OzB+vu9CtGwwi1MIZkln1nC9+1AXVTOGsozs2Q/QP3RBkCfWWoOMngK9gae lf8YwFTJW2dpgY3Fv62Fn/8DppIA6azZzzpiAj2Hc9lD+hp5p97ILZdQaKNaQyzY6lwT AWN43Z8lBc5cUudv5ZKLonnP1zwzfg4gWAlHZnmrNdGNBdqdNmmJCQK0aHrDVUN3IuIl mupw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=hFXSuNqrssYbWTTz3HCAz9AYQlGBmTmtTIlmYuYmHlg=; b=rZlnL7P2R/+sZo8gG0wnFf5nmBCa+dPTF/jJUAjd2ZQCifzUAUeC/j5uVKZ5iwvytY I2yI6cf2TPbOLwNrppqNT/R0PvI6em4ennocw+VgmTxUG1XR2mi1wHvExoMzAKlf64pt E5ra8td8WgVDfFLOJwOOffCoIEbI7Ycrd41IrF0dP+7mSwbxScDj/Afue8LV4CtO16xH GzNRv3sIZYGqerGHZTb0q/3eW+COEU9i0AbrFiKBg2HjPOh5PxypLGATMSDlqNrOFQpd EK6WMdwQVV/sjynZJo8I/EsUthPLEGhP0IKT6g6pCh0bq0qx8Jz0QDaDGI38Rwqz/Pdu ts6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=HRHXdaLJ; 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 124-v6si10055144pgi.237.2018.10.26.07.46.46; Fri, 26 Oct 2018 07:47:02 -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; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=HRHXdaLJ; 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 S1728131AbeJZXXE (ORCPT + 99 others); Fri, 26 Oct 2018 19:23:04 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:38942 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727687AbeJZXXD (ORCPT ); Fri, 26 Oct 2018 19:23:03 -0400 Received: by mail-pg1-f195.google.com with SMTP id r9-v6so643973pgv.6 for ; Fri, 26 Oct 2018 07:45: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=hFXSuNqrssYbWTTz3HCAz9AYQlGBmTmtTIlmYuYmHlg=; b=HRHXdaLJr2Aa2ePTF//BjBnnaaBcSB3te5TQbG7wiyI5IATlUrGSxvl60Wx3DdV34y woQuW34ue5NMJVWLSXFEOcQDjtO4ubgwevclD3cql3YCrDgF3c7BO3jvUmT9SLoXAye9 qrYY3ZZ4e6b68avKeliw6yWlzKElFu94zYy/c= 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=hFXSuNqrssYbWTTz3HCAz9AYQlGBmTmtTIlmYuYmHlg=; b=My+8ueR17KHIZ8MMJqI/ShSc0SoxnYqy02reJo0tLhdUTcKksOYuGBEChTqHubk8c9 gbnyVADO5czGpfme5GK0RrDCGGxWDvfT++385+HPmN6znTwHRRKrjrQoSAYhr7xWA5su 7e5wUW95VRtktX00qqI6bdn0qZE8Zq7HkQT5FFjB7pIDp/PoC+Ov9iJrkT+oAXw250KW YzU9iEF6g/kyTL0zOXY3qc9/lrnXUb/xzAbUmUeAJ7N6jaiWCRa1vxi+pcZcjXrkd/L8 oFq5k+GBf9NHZuN/5yGrTEzxW56y/YDyUZJ+wjGeYLQyfHFAltnZ7980v8DL0g9q9Qs1 j96g== X-Gm-Message-State: AGRZ1gIj/hIwuQTsXkHcHrwOIIFCzJzkDNUWR5frroc2CLl/pF8M+949 iAmyV9qm9LnvGyix/JMzVQdwTQ== X-Received: by 2002:a63:df03:: with SMTP id u3-v6mr3640604pgg.362.1540565142552; Fri, 26 Oct 2018 07:45:42 -0700 (PDT) Received: from localhost.localdomain ([27.7.51.1]) by smtp.gmail.com with ESMTPSA id z22-v6sm12044467pgv.24.2018.10.26.07.45.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 26 Oct 2018 07:45:42 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Chen-Yu Tsai , Icenowy Zheng , Jernej Skrabec , Vasily Khoruzhick , Rob Herring , Mark Rutland , Catalin Marinas , Will Deacon , David Airlie , dri-devel@lists.freedesktop.org, Michael Turquette , Stephen Boyd , linux-clk@vger.kernel.org, Michael Trimarchi , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com Cc: Jagan Teki Subject: [PATCH v3 16/25] drm/sun4i: sun6i_mipi_dsi: Add support for VCC-DSI voltage regulator Date: Fri, 26 Oct 2018 20:13:35 +0530 Message-Id: <20181026144344.27778-17-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20181026144344.27778-1-jagan@amarulasolutions.com> References: <20181026144344.27778-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some boards have VCC-DSI pin connected to voltage regulator which may not be turned on by default. Add support for such boards by adding voltage regulator handling code to MIPI DSI driver. Signed-off-by: Jagan Teki Tested-by: Jagan Teki --- Changes for v3: - new patch Changes for v2: - none 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 42bd7506abaf..bc57343592e0 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -949,6 +949,12 @@ static int sun6i_dsi_bind(struct device *dev, struct device *master, dsi->drv = drv; + ret = regulator_enable(dsi->regulator); + if (ret) { + dev_err(dev, "Failed to enable regulator\n"); + return ret; + } + drm_encoder_helper_add(&dsi->encoder, &sun6i_dsi_enc_helper_funcs); ret = drm_encoder_init(drm, @@ -980,6 +986,7 @@ static int sun6i_dsi_bind(struct device *dev, struct device *master, err_cleanup_connector: drm_encoder_cleanup(&dsi->encoder); + regulator_disable(dsi->regulator); return ret; } @@ -989,6 +996,7 @@ static void sun6i_dsi_unbind(struct device *dev, struct device *master, struct sun6i_dsi *dsi = dev_get_drvdata(dev); drm_panel_detach(dsi->panel); + regulator_disable(dsi->regulator); } static const struct component_ops sun6i_dsi_ops = { @@ -1022,6 +1030,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 regulator\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)) { diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h index 597b62227019..0df60f84bab3 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_dphy { struct clk *bus_clk; struct clk *mod_clk; @@ -32,6 +34,7 @@ struct sun6i_dsi { struct clk *bus_clk; struct clk *mod_clk; struct regmap *regs; + struct regulator *regulator; struct reset_control *reset; struct sun6i_dphy *dphy; -- 2.18.0.321.gffc6fa0e3