From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v7,05/14] usb: typec: add API to get typec basic port power and data config From: Jun Li Message-Id: <1529914126-22550-6-git-send-email-jun.li@nxp.com> Date: Mon, 25 Jun 2018 16:08:37 +0800 To: robh+dt@kernel.org, gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: a.hajda@samsung.com, jun.li@nxp.com, cw00.choi@samsung.com, shufan_lee@richtek.com, peter.chen@nxp.com, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-imx@nxp.com List-ID: VGhpcyBwYXRjaCBhZGRzIDMgQVBJcyB0byBnZXQgdGhlIHR5cGVjIHBvcnQgcG93ZXIgYW5kIGRh dGEgdHlwZSwKYW5kIHByZWZlcnJlZCBwb3dlciByb2xlIGJ5IGl0cyBuYW1lIHN0cmluZy4KClNp Z25lZC1vZmYtYnk6IExpIEp1biA8anVuLmxpQG54cC5jb20+Ci0tLQogZHJpdmVycy91c2IvdHlw ZWMvY2xhc3MuYyB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tCiBpbmNsdWRlL2xpbnV4L3VzYi90eXBlYy5oIHwgIDMgKysrCiAyIGZpbGVzIGNoYW5n ZWQsIDU3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2IvdHlwZWMvY2xhc3MuYyBiL2RyaXZlcnMvdXNiL3R5cGVjL2NsYXNzLmMKaW5kZXggNTNk ZjEwZC4uNjMzMTA1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvdHlwZWMvY2xhc3MuYworKysg Yi9kcml2ZXJzL3VzYi90eXBlYy9jbGFzcy5jCkBAIC03OTYsMTIgKzc5NiwxOCBAQCBzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IHR5cGVjX2RhdGFfcm9sZXNbXSA9IHsKIAlbVFlQRUNfSE9TVF0J PSAiaG9zdCIsCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHR5cGVjX3BvcnRfdHlw ZXNbXSA9IHsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHlwZWNfcG9ydF9wb3dlcl9yb2xl c1tdID0gewogCVtUWVBFQ19QT1JUX1NSQ10gPSAic291cmNlIiwKIAlbVFlQRUNfUE9SVF9TTktd ID0gInNpbmsiLAogCVtUWVBFQ19QT1JUX0RSUF0gPSAiZHVhbCIsCiB9OwogCitzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IHR5cGVjX3BvcnRfZGF0YV9yb2xlc1tdID0geworCVtUWVBFQ19QT1JU X0RGUF0gPSAiaG9zdCIsCisJW1RZUEVDX1BPUlRfVUZQXSA9ICJkZXZpY2UiLAorCVtUWVBFQ19Q T1JUX0RSRF0gPSAiZHVhbCIsCit9OworCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHR5cGVj X3BvcnRfdHlwZXNfZHJwW10gPSB7CiAJW1RZUEVDX1BPUlRfU1JDXSA9ICJkdWFsIFtzb3VyY2Vd IHNpbmsiLAogCVtUWVBFQ19QT1JUX1NOS10gPSAiZHVhbCBzb3VyY2UgW3NpbmtdIiwKQEAgLTkz Miw3ICs5MzgsNyBAQCBzdGF0aWMgc3NpemVfdCBwb3dlcl9yb2xlX3N0b3JlKHN0cnVjdCBkZXZp Y2UgKmRldiwKIAltdXRleF9sb2NrKCZwb3J0LT5wb3J0X3R5cGVfbG9jayk7CiAJaWYgKHBvcnQt PnBvcnRfdHlwZSAhPSBUWVBFQ19QT1JUX0RSUCkgewogCQlkZXZfZGJnKGRldiwgInBvcnQgdHlw ZSBmaXhlZCBhdCBcIiVzXCIiLAotCQkJICAgICB0eXBlY19wb3J0X3R5cGVzW3BvcnQtPnBvcnRf dHlwZV0pOworCQkJICAgICB0eXBlY19wb3J0X3Bvd2VyX3JvbGVzW3BvcnQtPnBvcnRfdHlwZV0p OwogCQlyZXQgPSAtRU9QTk9UU1VQUDsKIAkJZ290byB1bmxvY2tfYW5kX3JldDsKIAl9CkBAIC05 NzMsNyArOTc5LDcgQEAgcG9ydF90eXBlX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKLQly ZXQgPSBzeXNmc19tYXRjaF9zdHJpbmcodHlwZWNfcG9ydF90eXBlcywgYnVmKTsKKwlyZXQgPSBz eXNmc19tYXRjaF9zdHJpbmcodHlwZWNfcG9ydF9wb3dlcl9yb2xlcywgYnVmKTsKIAlpZiAocmV0 IDwgMCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMTAwNyw3ICsxMDEzLDcgQEAgcG9ydF90eXBlX3No b3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJ cmV0dXJuIHNwcmludGYoYnVmLCAiJXNcbiIsCiAJCQkgICAgICAgdHlwZWNfcG9ydF90eXBlc19k cnBbcG9ydC0+cG9ydF90eXBlXSk7CiAKLQlyZXR1cm4gc3ByaW50ZihidWYsICJbJXNdXG4iLCB0 eXBlY19wb3J0X3R5cGVzW3BvcnQtPmNhcC0+dHlwZV0pOworCXJldHVybiBzcHJpbnRmKGJ1Ziwg Ilslc11cbiIsIHR5cGVjX3BvcnRfcG93ZXJfcm9sZXNbcG9ydC0+Y2FwLT50eXBlXSk7CiB9CiBz dGF0aWMgREVWSUNFX0FUVFJfUlcocG9ydF90eXBlKTsKIApAQCAtMTI1Miw2ICsxMjU4LDUwIEBA IHZvaWQgdHlwZWNfc2V0X3B3cl9vcG1vZGUoc3RydWN0IHR5cGVjX3BvcnQgKnBvcnQsCiB9CiBF WFBPUlRfU1lNQk9MX0dQTCh0eXBlY19zZXRfcHdyX29wbW9kZSk7CiAKKy8qKgorICogdHlwZWNf ZmluZF9wb3J0X3Bvd2VyX3JvbGUgLSBHZXQgdGhlIHR5cGVjIHBvcnQgcG93ZXIgY2FwYWJpbGl0 eQorICogQG5hbWU6IHBvcnQgcG93ZXIgY2FwYWJpbGl0eSBzdHJpbmcKKyAqCisgKiBUaGlzIHJv dXRpbmUgaXMgdXNlZCB0byBmaW5kIHRoZSB0eXBlY19wb3J0X3R5cGUgYnkgaXRzIHN0cmluZyBu YW1lLgorICoKKyAqIFJldHVybnMgdHlwZWNfcG9ydF90eXBlIGlmIHN1Y2Nlc3MsIG90aGVyd2lz ZSBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICovCitpbnQgdHlwZWNfZmluZF9wb3J0X3Bvd2VyX3Jv bGUoY29uc3QgY2hhciAqbmFtZSkKK3sKKwlyZXR1cm4gbWF0Y2hfc3RyaW5nKHR5cGVjX3BvcnRf cG93ZXJfcm9sZXMsCisJCQkgICAgQVJSQVlfU0laRSh0eXBlY19wb3J0X3Bvd2VyX3JvbGVzKSwg bmFtZSk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh0eXBlY19maW5kX3BvcnRfcG93ZXJfcm9sZSk7 CisKKy8qKgorICogdHlwZWNfZmluZF9wb3dlcl9yb2xlIC0gRmluZCB0aGUgdHlwZWMgb25lIHNw ZWNpZmljIHBvd2VyIHJvbGUKKyAqIEBuYW1lOiBwb3dlciByb2xlIHN0cmluZworICoKKyAqIFRo aXMgcm91dGluZSBpcyB1c2VkIHRvIGZpbmQgdGhlIHR5cGVjX3JvbGUgYnkgaXRzIHN0cmluZyBu YW1lLgorICoKKyAqIFJldHVybnMgdHlwZWNfcm9sZSBpZiBzdWNjZXNzLCBvdGhlcndpc2UgbmVn YXRpdmUgZXJyb3IgY29kZS4KKyAqLworaW50IHR5cGVjX2ZpbmRfcG93ZXJfcm9sZShjb25zdCBj aGFyICpuYW1lKQoreworCXJldHVybiBtYXRjaF9zdHJpbmcodHlwZWNfcm9sZXMsIEFSUkFZX1NJ WkUodHlwZWNfcm9sZXMpLCBuYW1lKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHR5cGVjX2ZpbmRf cG93ZXJfcm9sZSk7CisKKy8qKgorICogdHlwZWNfZmluZF9wb3J0X2RhdGFfcm9sZSAtIEdldCB0 aGUgdHlwZWMgcG9ydCBkYXRhIGNhcGFiaWxpdHkKKyAqIEBuYW1lOiBwb3J0IGRhdGEgY2FwYWJp bGl0eSBzdHJpbmcKKyAqCisgKiBUaGlzIHJvdXRpbmUgaXMgdXNlZCB0byBmaW5kIHRoZSB0eXBl Y19wb3J0X2RhdGEgYnkgaXRzIHN0cmluZyBuYW1lLgorICoKKyAqIFJldHVybnMgdHlwZWNfcG9y dF9kYXRhIGlmIHN1Y2Nlc3MsIG90aGVyd2lzZSBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICovCitp bnQgdHlwZWNfZmluZF9wb3J0X2RhdGFfcm9sZShjb25zdCBjaGFyICpuYW1lKQoreworCXJldHVy biBtYXRjaF9zdHJpbmcodHlwZWNfcG9ydF9kYXRhX3JvbGVzLAorCQkJICAgIEFSUkFZX1NJWkUo dHlwZWNfcG9ydF9kYXRhX3JvbGVzKSwgbmFtZSk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh0eXBl Y19maW5kX3BvcnRfZGF0YV9yb2xlKTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICovCiAvKiBBUEkgZm9yIE11bHRpcGxleGVyL0RlTXVsdGlwbGV4ZXIg U3dpdGNoZXMgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC91c2IvdHlwZWMuaCBiL2lu Y2x1ZGUvbGludXgvdXNiL3R5cGVjLmgKaW5kZXggNjcyYjM5Yi4uMTVmOGQ5YSAxMDA2NDQKLS0t IGEvaW5jbHVkZS9saW51eC91c2IvdHlwZWMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3VzYi90eXBl Yy5oCkBAIC0yNjcsNCArMjY3LDcgQEAgaW50IHR5cGVjX3NldF9vcmllbnRhdGlvbihzdHJ1Y3Qg dHlwZWNfcG9ydCAqcG9ydCwKIAkJCSAgZW51bSB0eXBlY19vcmllbnRhdGlvbiBvcmllbnRhdGlv bik7CiBpbnQgdHlwZWNfc2V0X21vZGUoc3RydWN0IHR5cGVjX3BvcnQgKnBvcnQsIGludCBtb2Rl KTsKIAoraW50IHR5cGVjX2ZpbmRfcG9ydF9wb3dlcl9yb2xlKGNvbnN0IGNoYXIgKm5hbWUpOwor aW50IHR5cGVjX2ZpbmRfcG93ZXJfcm9sZShjb25zdCBjaGFyICpuYW1lKTsKK2ludCB0eXBlY19m aW5kX3BvcnRfZGF0YV9yb2xlKGNvbnN0IGNoYXIgKm5hbWUpOwogI2VuZGlmIC8qIF9fTElOVVhf VVNCX1RZUEVDX0ggKi8K