From: Tomasz Figa <t.figa@samsung.com>
To: Rahul Sharma <rahul.sharma@samsung.com>,
dri-devel@lists.freedesktop.org,
linux-samsung-soc@vger.kernel.org
Cc: joshi@samsung.com
Subject: Re: [PATCH 2/5] drm/exynos: use regmap interface to set hdmiphy control bit in pmu
Date: Thu, 10 Apr 2014 19:00:42 +0200 [thread overview]
Message-ID: <5346CE3A.4060700@samsung.com> (raw)
In-Reply-To: <1396458826-3051-3-git-send-email-rahul.sharma@samsung.com>
Hi Rahul,
On 02.04.2014 19:13, Rahul Sharma wrote:
> From: Rahul Sharma <Rahul.Sharma@samsung.com>
>
> Hdmiphy control bit needs to be set before setting the resolution
> to hdmi hardware. This was handled using dummy hdmiphy clock which
> is removed now.
>
> PMU is already defined as system controller for exynos SoC. Registers
> of PMU are accessed using regmap interfaces.
>
> Devicetree binding document for hdmi is also updated.
>
> Signed-off-by: Rahul Sharma <Rahul.Sharma@samsung.com>
> ---
> .../devicetree/bindings/video/exynos_hdmi.txt | 2 ++
> drivers/gpu/drm/exynos/exynos_hdmi.c | 17 +++++++++++++++++
> drivers/gpu/drm/exynos/regs-hdmi.h | 4 ++++
> 3 files changed, 23 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/video/exynos_hdmi.txt b/Documentation/devicetree/bindings/video/exynos_hdmi.txt
> index f9187a2..243a499 100644
> --- a/Documentation/devicetree/bindings/video/exynos_hdmi.txt
> +++ b/Documentation/devicetree/bindings/video/exynos_hdmi.txt
> @@ -27,6 +27,7 @@ Required properties:
> "hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy" and "mout_hdmi".
> - ddc: phandle to the hdmi ddc node
> - phy: phandle to the hdmi phy node
> +- samsung,syscon-phandle: phandle for system controller node for PMU.
>
> Example:
>
> @@ -37,4 +38,5 @@ Example:
> hpd-gpio = <&gpx3 7 1>;
> ddc = <&hdmi_ddc_node>;
> phy = <&hdmi_phy_node>;
> + samsung,syscon-phandle = <&pmu_system_controller>;
> };
> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
> index 23abfa0..47b8c06 100644
> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> @@ -36,6 +36,8 @@
> #include <linux/i2c.h>
> #include <linux/of_gpio.h>
> #include <linux/hdmi.h>
> +#include <linux/mfd/syscon.h>
> +#include <linux/regmap.h>
>
> #include <drm/exynos_drm.h>
>
> @@ -194,6 +196,7 @@ struct hdmi_context {
> struct hdmi_resources res;
>
> int hpd_gpio;
> + struct regmap *pmureg;
>
> enum hdmi_type type;
> };
> @@ -1853,6 +1856,9 @@ static void hdmi_poweron(struct exynos_drm_display *display)
> if (regulator_bulk_enable(res->regul_count, res->regul_bulk))
> DRM_DEBUG_KMS("failed to enable regulator bulk\n");
>
> + /* set pmu hdmiphy control bit to enable hdmiphy */
> + regmap_update_bits(hdata->pmureg, PMU_HDMI_PHY_CONTROL,
> + PMU_HDMI_PHY_ENABLE_BIT, 1);
> clk_prepare_enable(res->hdmi);
> clk_prepare_enable(res->sclk_hdmi);
>
> @@ -1879,6 +1885,10 @@ static void hdmi_poweroff(struct exynos_drm_display *display)
>
> clk_disable_unprepare(res->sclk_hdmi);
> clk_disable_unprepare(res->hdmi);
nit: Blank line would beautify the code a bit.
> + /* reset pmu hdmiphy control bit to disable hdmiphy */
> + regmap_update_bits(hdata->pmureg, PMU_HDMI_PHY_CONTROL,
> + PMU_HDMI_PHY_ENABLE_BIT, 0);
> +
> regulator_bulk_disable(res->regul_count, res->regul_bulk);
>
> pm_runtime_put_sync(hdata->dev);
> @@ -2128,6 +2138,13 @@ static int hdmi_probe(struct platform_device *pdev)
> goto err_hdmiphy;
> }
>
> + hdata->pmureg = syscon_regmap_lookup_by_phandle(dev->of_node,
> + "samsung,syscon-phandle");
> + if (IS_ERR_OR_NULL(hdata->pmureg)) {
IS_ERR() is the correct macro to check return value of this function.
> + DRM_ERROR("syscon regmap lookup failed.\n");
> + goto err_hdmiphy;
> + }
> +
> pm_runtime_enable(dev);
>
> hdmi_display.ctx = hdata;
> diff --git a/drivers/gpu/drm/exynos/regs-hdmi.h b/drivers/gpu/drm/exynos/regs-hdmi.h
> index ef1b3eb..9811d6f 100644
> --- a/drivers/gpu/drm/exynos/regs-hdmi.h
> +++ b/drivers/gpu/drm/exynos/regs-hdmi.h
> @@ -578,4 +578,8 @@
> #define HDMI_TG_VACT_ST4_H HDMI_TG_BASE(0x0074)
> #define HDMI_TG_3D HDMI_TG_BASE(0x00F0)
>
> +/* PMU Registers for PHY */
> +#define PMU_HDMI_PHY_CONTROL 0x700
> +#define PMU_HDMI_PHY_ENABLE_BIT (1<<0)
BIT() macro could be used instead of open coding the shift.
Best regards,
Tomasz
next prev parent reply other threads:[~2014-04-10 17:00 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-02 17:13 [PATCH 0/5] drm/exynos: enable support for exynos5420 hdmi Rahul Sharma
2014-04-02 17:13 ` [PATCH 1/5] drm/exynos: remove dummy hdmiphy clock from hdmi driver Rahul Sharma
2014-04-10 15:32 ` Tomasz Figa
2014-04-11 1:49 ` Rahul Sharma
2014-04-02 17:13 ` [PATCH 2/5] drm/exynos: use regmap interface to set hdmiphy control bit in pmu Rahul Sharma
2014-04-03 15:53 ` Inki Dae
2014-04-04 2:21 ` Rahul Sharma
2014-04-10 17:00 ` Tomasz Figa [this message]
2014-04-11 1:52 ` Rahul Sharma
2014-05-19 7:29 ` Rahul Sharma
2014-04-02 17:13 ` [PATCH 3/5] drm/exynos: remove unnecessary read for phy configuration values Rahul Sharma
2014-04-10 17:02 ` Tomasz Figa
2014-04-02 17:13 ` [PATCH 4/5] drm/exynos: add support for apb mapped phys in hdmi driver Rahul Sharma
2014-04-10 17:17 ` Tomasz Figa
2014-04-11 2:36 ` Rahul Sharma
2014-04-02 17:13 ` [PATCH 5/5] drm/exynos: enable support for exynos5420 hdmi device Rahul Sharma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5346CE3A.4060700@samsung.com \
--to=t.figa@samsung.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=joshi@samsung.com \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=rahul.sharma@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox