From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933229AbaLBNBi (ORCPT ); Tue, 2 Dec 2014 08:01:38 -0500 Received: from metis.ext.pengutronix.de ([92.198.50.35]:43389 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754622AbaLBNBg (ORCPT ); Tue, 2 Dec 2014 08:01:36 -0500 Message-ID: <1417525257.3411.12.camel@pengutronix.de> Subject: Re: [PATCH v15 12/12] drm: bridge/dw_hdmi: add rockchip rk3288 support From: Philipp Zabel To: Andy Yan Cc: airlied@linux.ie, heiko@sntech.de, fabio.estevam@freescale.com, rmk+kernel@arm.linux.org.uk, Greg Kroah-Hartman , Grant Likely , Rob Herring , Shawn Guo , Josh Boyer , Sean Paul , Inki Dae , Dave Airlie , Arnd Bergmann , Lucas Stach , Zubair.Kakakhel@imgtec.com, djkurtz@google.com, ykk@rock-chips.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devel@driverdev.osuosl.org, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, jay.xu@rock-chips.com, Pawel Moll , mark.yao@rock-chips.com, Mark Rutland , vladimir_zapolskiy@mentor.com, Ian Campbell , Kumar Gala Date: Tue, 02 Dec 2014 14:00:57 +0100 In-Reply-To: <547DB1ED.7000409@rock-chips.com> References: <1417505778-18341-1-git-send-email-andy.yan@rock-chips.com> <1417506327-18908-1-git-send-email-andy.yan@rock-chips.com> <1417515882.3411.8.camel@pengutronix.de> <547DB1ED.7000409@rock-chips.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.7-1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:100:96de:80ff:fec2:9969 X-SA-Exim-Mail-From: p.zabel@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Andy, Am Dienstag, den 02.12.2014, 20:34 +0800 schrieb Andy Yan: > Hi Philipp: > On 2014年12月02日 18:24, Philipp Zabel wrote: > > Hi Andy, > > > > Am Dienstag, den 02.12.2014, 15:45 +0800 schrieb Andy Yan: > > [...] > >> +static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, > >> + void *data) > >> +{ > >> + struct platform_device *pdev = to_platform_device(dev); > >> + const struct dw_hdmi_plat_data *plat_data; > >> + const struct of_device_id *match; > >> + struct drm_device *drm = data; > >> + struct drm_encoder *encoder; > >> + struct rockchip_hdmi *hdmi; > >> + int ret; > >> + > >> + if (!pdev->dev.of_node) > >> + return -ENODEV; > >> + > >> + hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); > >> + if (!hdmi) > >> + return -ENOMEM; > >> + > >> + match = of_match_node(dw_hdmi_rockchip_ids, pdev->dev.of_node); > >> + plat_data = match->data; > >> + hdmi->dev = &pdev->dev; > >> + encoder = &hdmi->encoder; > >> + platform_set_drvdata(pdev, hdmi); > >> + > >> + ret = rockchip_hdmi_parse_dt(hdmi); > >> + if (ret) { > >> + dev_err(hdmi->dev, "Unable to parse OF data\n"); > >> + return ret; > >> + } > >> + > >> + ret = clk_prepare_enable(hdmi->clk); > >> + if (ret) { > >> + dev_err(hdmi->dev, "Cannot enable HDMI clock: %d\n", ret); > >> + return ret; > >> + } > >> + > >> + ret = clk_prepare_enable(hdmi->hdcp_clk); > >> + if (ret) { > >> + dev_err(hdmi->dev, "Cannot enable HDMI hdcp clock: %d\n", ret); > >> + return ret; > >> + } > > Could we have a look at the clocks again? Basically the Rockchip clock > > handling is exactly the same, except the clocks are called by other > > names. > > > > On i.MX6, according to the reference manual, the HDMI TX module has four > > clock inputs: "iahbclk" (bus clock), "icecclk" (32 kHz CEC clock), > > "ihclk" (module clock), and "isfrclk" (27 MHz internal SFR clock). > > The "iahbclk" and "ihclk" are both sourced from the SoC AHB root clock, > > the 32 kHz reference input can't be gated, and the "isfrclk" has its own > > gate. > > > > Does the HDMI TX implementation on Rockchip still have the separate > > external sfr bus and module clock inputs? I assume that your "clk" input > > is a single gate bit for bus and module clocks at the same time? > > If possible, I'd prefer to find a common binding for the clocks with > > some of the clocks being optional, but for that we need to know the > > actual clock inputs to the HDMI TX module. > > > > regards > > Philipp > > > There are three individual clock inputs on Rockchip RK3288 HDMI: > "hdmi_ctrl_clk", > "hdmi_cec_clk", "hdmi_hdcp_clk", the three clocks are responsible > for different > functions as their name described, and have their own private gate > bit. That is > to say, the cec_clk and hdcp_clk can all be disabled if we don't > need hdcp and cec > function. > So I think it's better to make the clk control platform independent. My question is not about the available gates at the SoC level, but about the actual clock inputs from point of view of the HDMI TX IP. It could be that the hdmi_ctrl_clk gates all inputs to the module and bus clocks together. If so, you could just reuse "isfr" and "iahb" and set it to the same clock. If not, we'd need to think of something else. Unfortunately I don't have any Synopsys documentation of the HDMI TX at that level. regards Philipp From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Zabel Subject: Re: [PATCH v15 12/12] drm: bridge/dw_hdmi: add rockchip rk3288 support Date: Tue, 02 Dec 2014 14:00:57 +0100 Message-ID: <1417525257.3411.12.camel@pengutronix.de> References: <1417505778-18341-1-git-send-email-andy.yan@rock-chips.com> <1417506327-18908-1-git-send-email-andy.yan@rock-chips.com> <1417515882.3411.8.camel@pengutronix.de> <547DB1ED.7000409@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <547DB1ED.7000409@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: Andy Yan Cc: Mark Rutland , heiko@sntech.de, airlied@linux.ie, dri-devel@lists.freedesktop.org, ykk@rock-chips.com, devel@driverdev.osuosl.org, Pawel Moll , linux-rockchip@lists.infradead.org, Grant Likely , Dave Airlie , jay.xu@rock-chips.com, devicetree@vger.kernel.org, Zubair.Kakakhel@imgtec.com, Arnd Bergmann , Ian Campbell , Inki Dae , Rob Herring , Sean Paul , rmk+kernel@arm.linux.org.uk, mark.yao@rock-chips.com, fabio.estevam@freescale.com, Josh Boyer , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, djkurtz@google.com, Kumar Gala , Shawn Guo , vladimir_zapolskiy@mentor.com List-Id: devicetree@vger.kernel.org SGkgQW5keSwKCkFtIERpZW5zdGFnLCBkZW4gMDIuMTIuMjAxNCwgMjA6MzQgKzA4MDAgc2Nocmll YiBBbmR5IFlhbjoKPiBIaSBQaGlsaXBwOgo+IE9uIDIwMTTlubQxMuaciDAy5pelIDE4OjI0LCBQ aGlsaXBwIFphYmVsIHdyb3RlOgo+ID4gSGkgQW5keSwKPiA+Cj4gPiBBbSBEaWVuc3RhZywgZGVu IDAyLjEyLjIwMTQsIDE1OjQ1ICswODAwIHNjaHJpZWIgQW5keSBZYW46Cj4gPiBbLi4uXQo+ID4+ ICtzdGF0aWMgaW50IGR3X2hkbWlfcm9ja2NoaXBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBkZXZpY2UgKm1hc3RlciwKPiA+PiArCQkJCSB2b2lkICpkYXRhKQo+ID4+ICt7Cj4gPj4g KwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldik7 Cj4gPj4gKwljb25zdCBzdHJ1Y3QgZHdfaGRtaV9wbGF0X2RhdGEgKnBsYXRfZGF0YTsKPiA+PiAr CWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoOwo+ID4+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRybSA9IGRhdGE7Cj4gPj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gPj4g KwlzdHJ1Y3Qgcm9ja2NoaXBfaGRtaSAqaGRtaTsKPiA+PiArCWludCByZXQ7Cj4gPj4gKwo+ID4+ ICsJaWYgKCFwZGV2LT5kZXYub2Zfbm9kZSkKPiA+PiArCQlyZXR1cm4gLUVOT0RFVjsKPiA+PiAr Cj4gPj4gKwloZG1pID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqaGRtaSksIEdG UF9LRVJORUwpOwo+ID4+ICsJaWYgKCFoZG1pKQo+ID4+ICsJCXJldHVybiAtRU5PTUVNOwo+ID4+ ICsKPiA+PiArCW1hdGNoID0gb2ZfbWF0Y2hfbm9kZShkd19oZG1pX3JvY2tjaGlwX2lkcywgcGRl di0+ZGV2Lm9mX25vZGUpOwo+ID4+ICsJcGxhdF9kYXRhID0gbWF0Y2gtPmRhdGE7Cj4gPj4gKwlo ZG1pLT5kZXYgPSAmcGRldi0+ZGV2Owo+ID4+ICsJZW5jb2RlciA9ICZoZG1pLT5lbmNvZGVyOwo+ ID4+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgaGRtaSk7Cj4gPj4gKwo+ID4+ICsJcmV0 ID0gcm9ja2NoaXBfaGRtaV9wYXJzZV9kdChoZG1pKTsKPiA+PiArCWlmIChyZXQpIHsKPiA+PiAr CQlkZXZfZXJyKGhkbWktPmRldiwgIlVuYWJsZSB0byBwYXJzZSBPRiBkYXRhXG4iKTsKPiA+PiAr CQlyZXR1cm4gcmV0Owo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCXJldCA9IGNsa19wcmVwYXJlX2Vu YWJsZShoZG1pLT5jbGspOwo+ID4+ICsJaWYgKHJldCkgewo+ID4+ICsJCWRldl9lcnIoaGRtaS0+ ZGV2LCAiQ2Fubm90IGVuYWJsZSBIRE1JIGNsb2NrOiAlZFxuIiwgcmV0KTsKPiA+PiArCQlyZXR1 cm4gcmV0Owo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZSho ZG1pLT5oZGNwX2Nsayk7Cj4gPj4gKwlpZiAocmV0KSB7Cj4gPj4gKwkJZGV2X2VycihoZG1pLT5k ZXYsICJDYW5ub3QgZW5hYmxlIEhETUkgaGRjcCBjbG9jazogJWRcbiIsIHJldCk7Cj4gPj4gKwkJ cmV0dXJuIHJldDsKPiA+PiArCX0KPiA+IENvdWxkIHdlIGhhdmUgYSBsb29rIGF0IHRoZSBjbG9j a3MgYWdhaW4/IEJhc2ljYWxseSB0aGUgUm9ja2NoaXAgY2xvY2sKPiA+IGhhbmRsaW5nIGlzIGV4 YWN0bHkgdGhlIHNhbWUsIGV4Y2VwdCB0aGUgY2xvY2tzIGFyZSBjYWxsZWQgYnkgb3RoZXIKPiA+ IG5hbWVzLgo+ID4KPiA+IE9uIGkuTVg2LCBhY2NvcmRpbmcgdG8gdGhlIHJlZmVyZW5jZSBtYW51 YWwsIHRoZSBIRE1JIFRYIG1vZHVsZSBoYXMgZm91cgo+ID4gY2xvY2sgaW5wdXRzOiAiaWFoYmNs ayIgKGJ1cyBjbG9jayksICJpY2VjY2xrIiAoMzIga0h6IENFQyBjbG9jayksCj4gPiAiaWhjbGsi IChtb2R1bGUgY2xvY2spLCBhbmQgImlzZnJjbGsiICgyNyBNSHogaW50ZXJuYWwgU0ZSIGNsb2Nr KS4KPiA+IFRoZSAiaWFoYmNsayIgYW5kICJpaGNsayIgYXJlIGJvdGggc291cmNlZCBmcm9tIHRo ZSBTb0MgQUhCIHJvb3QgY2xvY2ssCj4gPiB0aGUgMzIga0h6IHJlZmVyZW5jZSBpbnB1dCBjYW4n dCBiZSBnYXRlZCwgYW5kIHRoZSAiaXNmcmNsayIgaGFzIGl0cyBvd24KPiA+IGdhdGUuCj4gPgo+ ID4gRG9lcyB0aGUgSERNSSBUWCBpbXBsZW1lbnRhdGlvbiBvbiBSb2NrY2hpcCBzdGlsbCBoYXZl IHRoZSBzZXBhcmF0ZQo+ID4gZXh0ZXJuYWwgc2ZyIGJ1cyBhbmQgbW9kdWxlIGNsb2NrIGlucHV0 cz8gSSBhc3N1bWUgdGhhdCB5b3VyICJjbGsiIGlucHV0Cj4gPiBpcyBhIHNpbmdsZSBnYXRlIGJp dCBmb3IgYnVzIGFuZCBtb2R1bGUgY2xvY2tzIGF0IHRoZSBzYW1lIHRpbWU/Cj4gPiBJZiBwb3Nz aWJsZSwgSSdkIHByZWZlciB0byBmaW5kIGEgY29tbW9uIGJpbmRpbmcgZm9yIHRoZSBjbG9ja3Mg d2l0aAo+ID4gc29tZSBvZiB0aGUgY2xvY2tzIGJlaW5nIG9wdGlvbmFsLCBidXQgZm9yIHRoYXQg d2UgbmVlZCB0byBrbm93IHRoZQo+ID4gYWN0dWFsIGNsb2NrIGlucHV0cyB0byB0aGUgSERNSSBU WCBtb2R1bGUuCj4gPgo+ID4gcmVnYXJkcwo+ID4gUGhpbGlwcAo+ID4KPiAgICAgIFRoZXJlIGFy ZSB0aHJlZSAgaW5kaXZpZHVhbCBjbG9jayBpbnB1dHMgb24gUm9ja2NoaXAgUkszMjg4IEhETUk6 IAo+ICJoZG1pX2N0cmxfY2xrIiwKPiAgICAgICJoZG1pX2NlY19jbGsiLCAiaGRtaV9oZGNwX2Ns ayIsIHRoZSB0aHJlZSBjbG9ja3MgYXJlIHJlc3BvbnNpYmxlIAo+IGZvciBkaWZmZXJlbnQKPiAg ICAgICBmdW5jdGlvbnMgYXMgdGhlaXIgbmFtZSBkZXNjcmliZWQsIGFuZCBoYXZlIHRoZWlyIG93 biBwcml2YXRlIGdhdGUgCj4gYml0LiBUaGF0IGlzCj4gICAgICAgdG8gc2F5LCB0aGUgY2VjX2Ns ayBhbmQgaGRjcF9jbGsgY2FuIGFsbCBiZSBkaXNhYmxlZCBpZiB3ZSBkb24ndCAKPiBuZWVkIGhk Y3AgYW5kIGNlYwo+ICAgICAgIGZ1bmN0aW9uLgo+ICAgICAgIFNvIEkgdGhpbmsgaXQncyBiZXR0 ZXIgdG8gbWFrZSB0aGUgY2xrIGNvbnRyb2wgcGxhdGZvcm0gaW5kZXBlbmRlbnQuCgpNeSBxdWVz dGlvbiBpcyBub3QgYWJvdXQgdGhlIGF2YWlsYWJsZSBnYXRlcyBhdCB0aGUgU29DIGxldmVsLCBi dXQgYWJvdXQKdGhlIGFjdHVhbCBjbG9jayBpbnB1dHMgZnJvbSBwb2ludCBvZiB2aWV3IG9mIHRo ZSBIRE1JIFRYIElQLgoKSXQgY291bGQgYmUgdGhhdCB0aGUgaGRtaV9jdHJsX2NsayBnYXRlcyBh bGwgaW5wdXRzIHRvIHRoZSBtb2R1bGUgYW5kCmJ1cyBjbG9ja3MgdG9nZXRoZXIuIElmIHNvLCB5 b3UgY291bGQganVzdCByZXVzZSAiaXNmciIgYW5kICJpYWhiIiBhbmQKc2V0IGl0IHRvIHRoZSBz YW1lIGNsb2NrLiBJZiBub3QsIHdlJ2QgbmVlZCB0byB0aGluayBvZiBzb21ldGhpbmcgZWxzZS4K VW5mb3J0dW5hdGVseSBJIGRvbid0IGhhdmUgYW55IFN5bm9wc3lzIGRvY3VtZW50YXRpb24gb2Yg dGhlIEhETUkgVFggYXQKdGhhdCBsZXZlbC4KCnJlZ2FyZHMKUGhpbGlwcAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZGV2ZWwgbWFpbGluZyBsaXN0CmRl dmVsQGxpbnV4ZHJpdmVycHJvamVjdC5vcmcKaHR0cDovL2RyaXZlcmRldi5saW51eGRyaXZlcnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vZHJpdmVyZGV2LWRldmVsCg==