From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: [PATCH v10 09/17] phy: Add driver for rockchip Display Port PHY Date: Mon, 7 Dec 2015 14:39:44 +0800 Message-ID: <1449470384-31239-1-git-send-email-ykk@rock-chips.com> References: <1449470239-30667-1-git-send-email-ykk@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1449470239-30667-1-git-send-email-ykk@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , Mark Yao , Jingoo Han , Heiko Stuebner Cc: devicetree@vger.kernel.org, Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, Russell King , javier@osg.samsung.com, emil.l.velikov@gmail.com, Seung-Woo Kim , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Kishon Vijay Abraham I , linux-rockchip@lists.infradead.org, Andrzej Hajda , Kyungmin Park , Rob Herring , ajaynumb@gmail.com, Andy Yan , Thierry Reding , Gustavo Padovan , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org QWRkIHBoeSBkcml2ZXIgZm9yIHRoZSBSb2NrY2hpcCBEaXNwbGF5UG9ydCBQSFkgbW9kdWxlLiBU aGlzCmlzIHJlcXVpcmVkIHRvIGdldCBEaXNwbGF5UG9ydCB3b3JraW5nIGluIFJvY2tjaGlwIFNv Q3MuCgpTaWduZWQtb2ZmLWJ5OiBZYWtpciBZYW5nIDx5a2tAcm9jay1jaGlwcy5jb20+ClJldmll d2VkLWJ5OiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPgotLS0KQ2hhbmdlcyBpbiB2 MTA6Ci0gRml4IHRoZSB3cm9uZyBtYWNybyB2YWx1ZSBvZiBHUkZfRURQX1JFRl9DTEtfU0VMX0lO VEVSX0hJV09SRF9NQVNLCiAgICBCSVQoNCkgLT4gQklUKDIwKQoKQ2hhbmdlcyBpbiB2OToKLSBS ZW1vdmVkIHRoZSB1bnVzZWQgdGhlIHZhcmlhYmxlICJyZXMiIGluIHByb2JlIGZ1bmN0aW9uLiAo SGVpa28pCi0gUmVtb3ZlZCB0aGUgdW51c2VkIGhlYWQgZmlsZS4KCkNoYW5nZXMgaW4gdjg6Ci0g Rml4IHRoZSBtaXhlZCBzcGFjZXJzIG9uIG1hY3JvIGRlZmluaXRpb25zLiAoSGVpa28pCi0gUmVt b3ZlIHRoZSB1bm5lY2Vzc2FyeSBlbXB0eSBsaW5lIGFmdGVyIGNsa19wcmVwYXJlX2VuYWJsZS4g KEhlaWtvKQoKQ2hhbmdlcyBpbiB2NzoKLSBTaW1wbHkgdGhlIGNvbW1pdCBtZXNzYWdlLiAoS2lz aG9uKQotIFN5bW1ldHJpY2FsIGVuYWJsZS9kaXNiYWxlIHRoZSBwaHkgY2xvY2sgYW5kIHBvd2Vy LiAoS2lzaG9uKQoKQ2hhbmdlcyBpbiB2NjogTm9uZQpDaGFuZ2VzIGluIHY1OgotIFJlbW92ZSAi cmVnIiBEVCBwcm9wZXJ0eSwgY2F1c2UgZHJpdmVyIGNvdWxkIHBvd2Vyb24vcG93ZXJvZmYgcGh5 IHZpYQogIHRoZSBleGlzdCAiZ3JmIiBzeXNjb24gYWxyZWFkeS4gQW5kIHJlbmFtZSB0aGUgZXhh bXBsZSBEVCBub2RlIGZyb20KICAiZWRwX3BoeTogcGh5QGZmNzcwMjc0IiB0byAiZWRwX3BoeTog ZWRwLXBoeSIgZGlyZWN0bHkuIChIZWlrbykKLSBBZGQgZGVpdmNlX25vZGUgYXQgdGhlIGZyb250 IG9mIGRyaXZlciwgdXBkYXRlIHBoeV9vcHMgdHlwZSBmcm9tICJzdGF0aWMKICBzdHJ1Y3QiIHRv ICJzdGF0aWMgY29uc3Qgc3RydWN0Ii4gQW5kIGNvcnJlY3QgdGhlIGlucHV0IHBhcmFtdGVycyBv ZgogIGRldm1fcGh5X2NyZWF0ZSgpIGludGVyZmFjZXMuIChIZWlrbykKCkNoYW5nZXMgaW4gdjQ6 Ci0gQWRkIGNvbW1pdCBtZXNzYWdlLCBhbmQgcmVtb3ZlIHRoZSByZWR1bmRhbnQgcm9ja2NoaXBf ZHBfcGh5X2luaXQoKQogIGZ1bmN0aW9uLCBtb3ZlIHRob3NlIGNvZGUgdG8gcHJvYmUoKSBtZXRo b2QuIEFuZCByZW1vdmUgZHJpdmVyIC5vd25lcgogIG51bWJlci4gKEtpc2hvbikKCkNoYW5nZXMg aW4gdjM6Ci0gU3VnZ2VzdCwgYWRkIHJvY2tjaGlwIGRwIHBoeSBkcml2ZXIsIGNvbGxlY3QgdGhl IHBoeSBjbG9ja3MgYW5kCiAgcG93ZXIgY29udHJvbC4gKEhlaWtvKQoKQ2hhbmdlcyBpbiB2Mjog Tm9uZQoKIGRyaXZlcnMvcGh5L0tjb25maWcgICAgICAgICAgIHwgICA3ICsrCiBkcml2ZXJzL3Bo eS9NYWtlZmlsZSAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL3BoeS9waHktcm9ja2NoaXAtZHAu YyB8IDE1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmls ZXMgY2hhbmdlZCwgMTU5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L3BoeS9waHktcm9ja2NoaXAtZHAuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L0tjb25maWcg Yi9kcml2ZXJzL3BoeS9LY29uZmlnCmluZGV4IDdlYjU4NTlkLi43MzU1ODE5IDEwMDY0NAotLS0g YS9kcml2ZXJzL3BoeS9LY29uZmlnCisrKyBiL2RyaXZlcnMvcGh5L0tjb25maWcKQEAgLTMxOSw2 ICszMTksMTMgQEAgY29uZmlnIFBIWV9ST0NLQ0hJUF9VU0IKIAloZWxwCiAJICBFbmFibGUgdGhp cyB0byBzdXBwb3J0IHRoZSBSb2NrY2hpcCBVU0IgMi4wIFBIWS4KIAorY29uZmlnIFBIWV9ST0NL Q0hJUF9EUAorCXRyaXN0YXRlICJSb2NrY2hpcCBEaXNwbGF5IFBvcnQgUEhZIERyaXZlciIKKwlk ZXBlbmRzIG9uIEFSQ0hfUk9DS0NISVAgJiYgT0YKKwlzZWxlY3QgR0VORVJJQ19QSFkKKwloZWxw CisJICBFbmFibGUgdGhpcyB0byBzdXBwb3J0IHRoZSBSb2NrY2hpcCBEaXNwbGF5IFBvcnQgUEhZ LgorCiBjb25maWcgUEhZX1NUX1NQRUFSMTMxMF9NSVBIWQogCXRyaXN0YXRlICJTVCBTUEVBUjEz MTAtTUlQSFkgZHJpdmVyIgogCXNlbGVjdCBHRU5FUklDX1BIWQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9waHkvTWFrZWZpbGUgYi9kcml2ZXJzL3BoeS9NYWtlZmlsZQppbmRleCAwNzVkYjFhLi5iMTcw MGNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BoeS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3BoeS9N YWtlZmlsZQpAQCAtMzUsNiArMzUsNyBAQCBwaHktZXh5bm9zLXVzYjItJChDT05GSUdfUEhZX1M1 UFYyMTBfVVNCMikJKz0gcGh5LXM1cHYyMTAtdXNiMi5vCiBvYmotJChDT05GSUdfUEhZX0VYWU5P UzVfVVNCRFJEKQkrPSBwaHktZXh5bm9zNS11c2JkcmQubwogb2JqLSQoQ09ORklHX1BIWV9RQ09N X0FQUTgwNjRfU0FUQSkJKz0gcGh5LXFjb20tYXBxODA2NC1zYXRhLm8KIG9iai0kKENPTkZJR19Q SFlfUk9DS0NISVBfVVNCKSArPSBwaHktcm9ja2NoaXAtdXNiLm8KK29iai0kKENPTkZJR19QSFlf Uk9DS0NISVBfRFApCQkrPSBwaHktcm9ja2NoaXAtZHAubwogb2JqLSQoQ09ORklHX1BIWV9RQ09N X0lQUTgwNlhfU0FUQSkJKz0gcGh5LXFjb20taXBxODA2eC1zYXRhLm8KIG9iai0kKENPTkZJR19Q SFlfU1RfU1BFQVIxMzEwX01JUEhZKQkrPSBwaHktc3BlYXIxMzEwLW1pcGh5Lm8KIG9iai0kKENP TkZJR19QSFlfU1RfU1BFQVIxMzQwX01JUEhZKQkrPSBwaHktc3BlYXIxMzQwLW1pcGh5Lm8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvcGh5L3BoeS1yb2NrY2hpcC1kcC5jIGIvZHJpdmVycy9waHkvcGh5 LXJvY2tjaGlwLWRwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NiM2Jm OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcGh5L3BoeS1yb2NrY2hpcC1kcC5jCkBAIC0w LDAgKzEsMTUxIEBACisvKgorICogUm9ja2NoaXAgRFAgUEhZIGRyaXZlcgorICoKKyAqIENvcHly aWdodCAoQykgMjAxNSBGdVpob3UgUm9ja2NoaXAgQ28uLCBMdGQuCisgKiBBdXRob3I6IFlha2ly IFlhbmcgPHlra0BAcm9jay1jaGlwcy5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy IG9mIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNs dWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4 L3BoeS9waHkuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9t ZmQvc3lzY29uLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNkZWZp bmUgR1JGX1NPQ19DT04xMiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI3NAorCisjZGVm aW5lIEdSRl9FRFBfUkVGX0NMS19TRUxfSU5URVJfSElXT1JEX01BU0sgICBCSVQoMjApCisjZGVm aW5lIEdSRl9FRFBfUkVGX0NMS19TRUxfSU5URVIgICAgICAgICAgICAgICBCSVQoNCkKKworI2Rl ZmluZSBHUkZfRURQX1BIWV9TSUREUV9ISVdPUkRfTUFTSyAgICAgICAgICAgQklUKDIxKQorI2Rl ZmluZSBHUkZfRURQX1BIWV9TSUREUV9PTiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBH UkZfRURQX1BIWV9TSUREUV9PRkYgICAgICAgICAgICAgICAgICAgQklUKDUpCisKK3N0cnVjdCBy b2NrY2hpcF9kcF9waHkgeworCXN0cnVjdCBkZXZpY2UgICpkZXY7CisJc3RydWN0IHJlZ21hcCAg KmdyZjsKKwlzdHJ1Y3QgY2xrICAgICAqcGh5XzI0bTsKK307CisKK3N0YXRpYyBpbnQgcm9ja2No aXBfc2V0X3BoeV9zdGF0ZShzdHJ1Y3QgcGh5ICpwaHksIGJvb2wgZW5hYmxlKQoreworCXN0cnVj dCByb2NrY2hpcF9kcF9waHkgKmRwID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7CisJaW50IHJldDsK KworCWlmIChlbmFibGUpIHsKKwkJcmV0ID0gcmVnbWFwX3dyaXRlKGRwLT5ncmYsIEdSRl9TT0Nf Q09OMTIsCisJCQkJICAgR1JGX0VEUF9QSFlfU0lERFFfSElXT1JEX01BU0sgfAorCQkJCSAgIEdS Rl9FRFBfUEhZX1NJRERRX09OKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWRldl9lcnIoZHAtPmRl diwgIkNhbid0IGVuYWJsZSBQSFkgcG93ZXIgJWRcbiIsIHJldCk7CisJCQlyZXR1cm4gcmV0Owor CQl9CisKKwkJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGRwLT5waHlfMjRtKTsKKwl9IGVsc2Ug eworCQljbGtfZGlzYWJsZV91bnByZXBhcmUoZHAtPnBoeV8yNG0pOworCisJCXJldCA9IHJlZ21h cF93cml0ZShkcC0+Z3JmLCBHUkZfU09DX0NPTjEyLAorCQkJCSAgIEdSRl9FRFBfUEhZX1NJRERR X0hJV09SRF9NQVNLIHwKKwkJCQkgICBHUkZfRURQX1BIWV9TSUREUV9PRkYpOworCX0KKworCXJl dHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcm9ja2NoaXBfZHBfcGh5X3Bvd2VyX29uKHN0cnVj dCBwaHkgKnBoeSkKK3sKKwlyZXR1cm4gcm9ja2NoaXBfc2V0X3BoeV9zdGF0ZShwaHksIHRydWUp OworfQorCitzdGF0aWMgaW50IHJvY2tjaGlwX2RwX3BoeV9wb3dlcl9vZmYoc3RydWN0IHBoeSAq cGh5KQoreworCXJldHVybiByb2NrY2hpcF9zZXRfcGh5X3N0YXRlKHBoeSwgZmFsc2UpOworfQor CitzdGF0aWMgY29uc3Qgc3RydWN0IHBoeV9vcHMgcm9ja2NoaXBfZHBfcGh5X29wcyA9IHsKKwku cG93ZXJfb24JPSByb2NrY2hpcF9kcF9waHlfcG93ZXJfb24sCisJLnBvd2VyX29mZgk9IHJvY2tj aGlwX2RwX3BoeV9wb3dlcl9vZmYsCisJLm93bmVyCQk9IFRISVNfTU9EVUxFLAorfTsKKworc3Rh dGljIGludCByb2NrY2hpcF9kcF9waHlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBkZXZpY2Vf bm9kZSAqbnAgPSBkZXYtPm9mX25vZGU7CisJc3RydWN0IHBoeV9wcm92aWRlciAqcGh5X3Byb3Zp ZGVyOworCXN0cnVjdCByb2NrY2hpcF9kcF9waHkgKmRwOworCXN0cnVjdCBwaHkgKnBoeTsKKwlp bnQgcmV0OworCisJaWYgKCFucCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlkcCA9IGRldm1fa3ph bGxvYyhkZXYsIHNpemVvZigqZHApLCBHRlBfS0VSTkVMKTsKKwlpZiAoSVNfRVJSKGRwKSkKKwkJ cmV0dXJuIC1FTk9NRU07CisKKwlkcC0+ZGV2ID0gZGV2OworCisJZHAtPnBoeV8yNG0gPSBkZXZt X2Nsa19nZXQoZGV2LCAiMjRtIik7CisJaWYgKElTX0VSUihkcC0+cGh5XzI0bSkpIHsKKwkJZGV2 X2VycihkZXYsICJjYW5ub3QgZ2V0IGNsb2NrIDI0bVxuIik7CisJCXJldHVybiBQVFJfRVJSKGRw LT5waHlfMjRtKTsKKwl9CisKKwlyZXQgPSBjbGtfc2V0X3JhdGUoZHAtPnBoeV8yNG0sIDI0MDAw MDAwKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKGRwLT5kZXYsICJjYW5ub3Qgc2V0IGNs b2NrIHBoeV8yNG0gJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJZHAtPmdyZiA9 IHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUobnAsICJyb2NrY2hpcCxncmYiKTsKKwlp ZiAoSVNfRVJSKGRwLT5ncmYpKSB7CisJCWRldl9lcnIoZGV2LCAicmszMjg4LWRwIG5lZWRzIHJv Y2tjaGlwLGdyZiBwcm9wZXJ0eVxuIik7CisJCXJldHVybiBQVFJfRVJSKGRwLT5ncmYpOworCX0K KworCXJldCA9IHJlZ21hcF93cml0ZShkcC0+Z3JmLCBHUkZfU09DX0NPTjEyLCBHUkZfRURQX1JF Rl9DTEtfU0VMX0lOVEVSIHwKKwkJCSAgIEdSRl9FRFBfUkVGX0NMS19TRUxfSU5URVJfSElXT1JE X01BU0spOworCWlmIChyZXQgIT0gMCkgeworCQlkZXZfZXJyKGRwLT5kZXYsICJDb3VsZCBub3Qg Y29uZmlnIEdSRiBlZHAgcmVmIGNsazogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQor CisJcGh5ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgbnAsICZyb2NrY2hpcF9kcF9waHlfb3BzKTsK KwlpZiAoSVNfRVJSKHBoeSkpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gY3JlYXRlIHBo eVxuIik7CisJCXJldHVybiBQVFJfRVJSKHBoeSk7CisJfQorCXBoeV9zZXRfZHJ2ZGF0YShwaHks IGRwKTsKKworCXBoeV9wcm92aWRlciA9IGRldm1fb2ZfcGh5X3Byb3ZpZGVyX3JlZ2lzdGVyKGRl diwgb2ZfcGh5X3NpbXBsZV94bGF0ZSk7CisKKwlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHBoeV9w cm92aWRlcik7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJvY2tjaGlw X2RwX3BoeV9kdF9pZHNbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInJvY2tjaGlwLHJrMzI4OC1k cC1waHkiIH0sCisJe30KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJvY2tjaGlwX2Rw X3BoeV9kdF9pZHMpOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciByb2NrY2hpcF9k cF9waHlfZHJpdmVyID0geworCS5wcm9iZQkJPSByb2NrY2hpcF9kcF9waHlfcHJvYmUsCisJLmRy aXZlcgkJPSB7CisJCS5uYW1lCT0gInJvY2tjaGlwLWRwLXBoeSIsCisJCS5vZl9tYXRjaF90YWJs ZSA9IHJvY2tjaGlwX2RwX3BoeV9kdF9pZHMsCisJfSwKK307CisKK21vZHVsZV9wbGF0Zm9ybV9k cml2ZXIocm9ja2NoaXBfZHBfcGh5X2RyaXZlcik7CisKK01PRFVMRV9BVVRIT1IoIllha2lyIFlh bmcgPHlra0Byb2NrLWNoaXBzLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiUm9ja2NoaXAg RFAgUEhZIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotLSAKMS45LjEKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=