From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Subject: [PATCH v4 4/6] drm/rockchip: dw_hdmi: allow including external phys Date: Mon, 10 Sep 2018 11:22:21 +0200 Message-ID: <20180910092223.1106-5-heiko@sntech.de> References: <20180910092223.1106-1-heiko@sntech.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180910092223.1106-1-heiko@sntech.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: architt@codeaurora.org, hjc@rock-chips.com, a.hajda@samsung.com Cc: Jose.Abreu@synopsys.com, algea.cao@rock-chips.com, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Laurent.pinchart@ideasonboard.com, linux-arm-kernel@lists.infradead.org, zhengyang@rock-chips.com List-Id: linux-rockchip.vger.kernel.org U29tZSB2YXJpYW50cyBvZiB0aGUgZHctaGRtaSBvbiBSb2NrY2hpcCBzb2NzIHVzZSBhIHNlcGFy YXRlIHBoeSBibG9jawphY2Nlc3NlZCB2aWEgdGhlIGdlbmVyaWMgcGh5IGZyYW1ld29yaywgc28g YWxsb3cgdGhlbSB0byBiZSBpbmNsdWRlZAppZiBzdWNoIGEgcGh5IHJlZmVyZW5jZSBpcyBmb3Vu ZC4KClNpZ25lZC1vZmYtYnk6IEhlaWtvIFN0dWVibmVyIDxoZWlrb0BzbnRlY2guZGU+ClRlc3Rl ZC1ieTogUm9iaW4gTXVycGh5IDxyb2Jpbi5tdXJwaHlAYXJtLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jIHwgMTAgKysrKysrKysrKwogMSBmaWxl IGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3 X2hkbWktcm9ja2NoaXAuYwppbmRleCBiMDljMzUzMTMwNWIuLjU3ZTc2ZGZkNWY2ZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jCkBAIC0xMSw2ICsxMSw3 IEBACiAjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4 L3BoeS9waHkuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KIAogI2luY2x1ZGUgPGRybS9k cm1fb2YuaD4KQEAgLTQ5LDYgKzUwLDcgQEAgc3RydWN0IHJvY2tjaGlwX2hkbWkgewogCXN0cnVj dCBjbGsgKnZwbGxfY2xrOwogCXN0cnVjdCBjbGsgKmdyZl9jbGs7CiAJc3RydWN0IGR3X2hkbWkg KmhkbWk7CisJc3RydWN0IHBoeSAqcGh5OwogfTsKIAogI2RlZmluZSB0b19yb2NrY2hpcF9oZG1p KHgpCWNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qgcm9ja2NoaXBfaGRtaSwgeCkKQEAgLTM3Niw2ICsz NzgsMTQgQEAgc3RhdGljIGludCBkd19oZG1pX3JvY2tjaGlwX2JpbmQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCiAJCXJldHVybiByZXQ7CiAJfQogCisJaGRtaS0+ cGh5ID0gZGV2bV9waHlfb3B0aW9uYWxfZ2V0KGRldiwgImhkbWkiKTsKKwlpZiAoSVNfRVJSKGhk bWktPnBoeSkpIHsKKwkJcmV0ID0gUFRSX0VSUihoZG1pLT5waHkpOworCQlpZiAocmV0ICE9IC1F UFJPQkVfREVGRVIpCisJCQlEUk1fREVWX0VSUk9SKGhkbWktPmRldiwgImZhaWxlZCB0byBnZXQg cGh5XG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKIAlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRkKGVu Y29kZXIsICZkd19oZG1pX3JvY2tjaGlwX2VuY29kZXJfaGVscGVyX2Z1bmNzKTsKIAlkcm1fZW5j b2Rlcl9pbml0KGRybSwgZW5jb2RlciwgJmR3X2hkbWlfcm9ja2NoaXBfZW5jb2Rlcl9mdW5jcywK IAkJCSBEUk1fTU9ERV9FTkNPREVSX1RNRFMsIE5VTEwpOwotLSAKMi4xNy4wCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: heiko@sntech.de (Heiko Stuebner) Date: Mon, 10 Sep 2018 11:22:21 +0200 Subject: [PATCH v4 4/6] drm/rockchip: dw_hdmi: allow including external phys In-Reply-To: <20180910092223.1106-1-heiko@sntech.de> References: <20180910092223.1106-1-heiko@sntech.de> Message-ID: <20180910092223.1106-5-heiko@sntech.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Some variants of the dw-hdmi on Rockchip socs use a separate phy block accessed via the generic phy framework, so allow them to be included if such a phy reference is found. Signed-off-by: Heiko Stuebner Tested-by: Robin Murphy --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index b09c3531305b..57e76dfd5f6d 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -49,6 +50,7 @@ struct rockchip_hdmi { struct clk *vpll_clk; struct clk *grf_clk; struct dw_hdmi *hdmi; + struct phy *phy; }; #define to_rockchip_hdmi(x) container_of(x, struct rockchip_hdmi, x) @@ -376,6 +378,14 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, return ret; } + hdmi->phy = devm_phy_optional_get(dev, "hdmi"); + if (IS_ERR(hdmi->phy)) { + ret = PTR_ERR(hdmi->phy); + if (ret != -EPROBE_DEFER) + DRM_DEV_ERROR(hdmi->dev, "failed to get phy\n"); + return ret; + } + drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs); drm_encoder_init(drm, encoder, &dw_hdmi_rockchip_encoder_funcs, DRM_MODE_ENCODER_TMDS, NULL); -- 2.17.0