647b965506
Let's continue the implementation of hooks for the parts that change in the BCM2711 SoC with the PHY RNG setup. Signed-off-by: Maxime Ripard <maxime@cerno.tech> Tested-by: Chanwoo Choi <cw00.choi@samsung.com> Tested-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> Tested-by: Stefan Wahren <stefan.wahren@i2se.com> Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com> Link: https://patchwork.freedesktop.org/patch/msgid/216155f1c0b83e622ac60a2f7d00eb707de3acba.1599120059.git-series.maxime@cerno.tech
41 lines
961 B
C
41 lines
961 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright (C) 2015 Broadcom
|
|
* Copyright (c) 2014 The Linux Foundation. All rights reserved.
|
|
* Copyright (C) 2013 Red Hat
|
|
* Author: Rob Clark <robdclark@gmail.com>
|
|
*/
|
|
|
|
#include "vc4_hdmi.h"
|
|
#include "vc4_regs.h"
|
|
#include "vc4_hdmi_regs.h"
|
|
|
|
void vc4_hdmi_phy_init(struct vc4_hdmi *vc4_hdmi, struct drm_display_mode *mode)
|
|
{
|
|
/* PHY should be in reset, like
|
|
* vc4_hdmi_encoder_disable() does.
|
|
*/
|
|
|
|
HDMI_WRITE(HDMI_TX_PHY_RESET_CTL, 0xf << 16);
|
|
HDMI_WRITE(HDMI_TX_PHY_RESET_CTL, 0);
|
|
}
|
|
|
|
void vc4_hdmi_phy_disable(struct vc4_hdmi *vc4_hdmi)
|
|
{
|
|
HDMI_WRITE(HDMI_TX_PHY_RESET_CTL, 0xf << 16);
|
|
}
|
|
|
|
void vc4_hdmi_phy_rng_enable(struct vc4_hdmi *vc4_hdmi)
|
|
{
|
|
HDMI_WRITE(HDMI_TX_PHY_CTL_0,
|
|
HDMI_READ(HDMI_TX_PHY_CTL_0) &
|
|
~VC4_HDMI_TX_PHY_RNG_PWRDN);
|
|
}
|
|
|
|
void vc4_hdmi_phy_rng_disable(struct vc4_hdmi *vc4_hdmi)
|
|
{
|
|
HDMI_WRITE(HDMI_TX_PHY_CTL_0,
|
|
HDMI_READ(HDMI_TX_PHY_CTL_0) |
|
|
VC4_HDMI_TX_PHY_RNG_PWRDN);
|
|
}
|