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: [v3,04/12] usb: typec: add API to get typec basic port power and data config From: Heikki Krogerus Message-Id: <20180314095902.GF30868@kuha.fi.intel.com> Date: Wed, 14 Mar 2018 11:59:02 +0200 To: Li Jun Cc: robh+dt@kernel.org, mark.rutland@arm.com, gregkh@linuxfoundation.org, a.hajda@samsung.com, linux@roeck-us.net, yueyao@google.com, shufan_lee@richtek.com, o_leveque@orange.fr, linux-usb@vger.kernel.org, linux-imx@nxp.com List-ID: SGksCgpPbiBUdWUsIE1hciAxMywgMjAxOCBhdCAwNTozNDozMFBNICswODAwLCBMaSBKdW4gd3Jv dGU6Cj4gKy8qKgo+ICsgKiB0eXBlY19nZXRfcG93ZXJfdHlwZSAtIEdldCB0aGUgdHlwZWMgcG9y dCBwb3dlciB0eXBlCj4gKyAqIEBmd25vZGU6IEZpcm13YXJlIG5vZGUgdG8gZ2V0IHRoZSBwcm9w ZXJ0eSBvZgo+ICsgKgo+ICsgKiBUaGlzIHJvdXRpbmUgaXMgdXNlZCBieSB0eXBlYyBoYXJkd2Fy ZSBkcml2ZXIgdG8gcmVhZCBwcm9wZXJ0eQo+ICsgKiBwb3J0IHBvd2VyIHR5cGUgZnJvbSB0aGUg ZGV2aWNlIGZpcm13YXJlIGRlc2NyaXB0aW9uLgo+ICsgKgo+ICsgKiBSZXR1cm5zIHR5cGVjX3Bv cnRfdHlwZSBpZiBzdWNjZXNzLCBvdGhlcndpc2UgbmVnYXRpdmUgZXJyb3IgY29kZS4KPiArICov Cj4gK2ludCB0eXBlY19nZXRfcG93ZXJfdHlwZShzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2Rl KQo+ICt7Cj4gKwljb25zdCBjaGFyICp0eXBlX3N0cjsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYg KCFmd25vZGUpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcmV0ID0gZndub2RlX3Byb3Bl cnR5X3JlYWRfc3RyaW5nKGZ3bm9kZSwgInBvd2VyLXR5cGUiLCAmdHlwZV9zdHIpOwo+ICsJaWYg KHJldCA8IDApCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXR1cm4gbWF0Y2hfc3RyaW5nKHR5 cGVjX3BvcnRfdHlwZXMsIEFSUkFZX1NJWkUodHlwZWNfcG9ydF90eXBlcyksCj4gKwkJCSAgICB0 eXBlX3N0cik7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwodHlwZWNfZ2V0X3Bvd2VyX3R5cGUp Owo+IAo+ICsvKioKPiArICogdHlwZWNfZ2V0X3ByZWZlcnJlZF9yb2xlIC0gR2V0IHRoZSB0eXBl YyBwcmVmZXJyZWQgcG93ZXIgcm9sZQo+ICsgKiBAZndub2RlOiBGaXJtd2FyZSBub2RlIHRvIGdl dCB0aGUgcHJvcGVydHkgb2YKPiArICoKPiArICogVGhpcyByb3V0aW5lIGlzIHVzZWQgYnkgdHlw ZWMgaGFyZHdhcmUgZHJpdmVyIHRvIHJlYWQgcHJvcGVydHkKPiArICogdHJ5LXBvd2VyLXJvbGUg ZnJvbSB0aGUgZGV2aWNlIGZpcm13YXJlIGRlc2NyaXB0aW9uIHRvIGRlY2lkZQo+ICsgKiBpZiB0 aGUgcG9ydCBjYW4gc3VwcG9ydCBUcnkuU1JDIG9yIFRyeS5TTksuCj4gKyAqCj4gKyAqIFJldHVy bnMgdHlwZWNfcm9sZSBpZiBzdWNjZXNzLCBvdGhlcndpc2UgbmVnYXRpdmUgZXJyb3IgY29kZS4K PiArICovCj4gK2ludCB0eXBlY19nZXRfcHJlZmVycmVkX3JvbGUoc3RydWN0IGZ3bm9kZV9oYW5k bGUgKmZ3bm9kZSkKPiArewo+ICsJY29uc3QgY2hhciAqdHlwZV9zdHI7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCWlmICghZndub2RlKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXJldCA9IGZ3 bm9kZV9wcm9wZXJ0eV9yZWFkX3N0cmluZyhmd25vZGUsICJ0cnktcG93ZXItcm9sZSIsICZ0eXBl X3N0cik7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXJldHVybiBt YXRjaF9zdHJpbmcodHlwZWNfcm9sZXMsIEFSUkFZX1NJWkUodHlwZWNfcm9sZXMpLCB0eXBlX3N0 cik7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwodHlwZWNfZ2V0X3ByZWZlcnJlZF9yb2xlKTsK PiArCj4gKy8qKgo+ICsgKiB0eXBlY19nZXRfZGF0YV90eXBlIC0gR2V0IHRoZSB0eXBlYyBwb3J0 IGRhdGEgdHlwZQo+ICsgKiBAZndub2RlOiBGaXJtd2FyZSBub2RlIHRvIGdldCB0aGUgcHJvcGVy dHkgb2YKPiArICoKPiArICogVGhpcyByb3V0aW5lIGlzIHVzZWQgYnkgdHlwZWMgaGFyZHdhcmUg ZHJpdmVyIHRvIHJlYWQgcHJvcGVydHkKPiArICogcG9ydCBkYXRhIHR5cGUgZnJvbSB0aGUgZGV2 aWNlIGZpcm13YXJlIGRlc2NyaXB0aW9uLgo+ICsgKgo+ICsgKiBSZXR1cm5zIHR5cGVjX2RhdGFf dHlwZSBpZiBzdWNjZXNzLCBvdGhlcndpc2UgbmVnYXRpdmUgZXJyb3IgY29kZS4KPiArICovCj4g K2ludCB0eXBlY19nZXRfZGF0YV90eXBlKHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpCj4g K3sKPiArCWNvbnN0IGNoYXIgKnR5cGVfc3RyOwo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAoIWZ3 bm9kZSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlyZXQgPSBmd25vZGVfcHJvcGVydHlf cmVhZF9zdHJpbmcoZndub2RlLCAiZGF0YS10eXBlIiwgJnR5cGVfc3RyKTsKPiArCWlmIChyZXQg PCAwKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0dXJuIG1hdGNoX3N0cmluZyh0eXBlY19k YXRhX3R5cGVzLCBBUlJBWV9TSVpFKHR5cGVjX2RhdGFfdHlwZXMpLAo+ICsJCQkgICAgdHlwZV9z dHIpOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKHR5cGVjX2dldF9kYXRhX3R5cGUpOwoKSSBi ZWVuIHRoaW5raW5nIGFib3V0IHRoaXMuIFBlcmhhcHMgaXQncyBiZXR0ZXIgdGhhdCB3ZSBkb24n dCByZWFkCmFueSBwcm9wZXJ0aWVzIGluIHRoZXNlIGhlbHBlcnMuIFRoZXNlIGhlbHBlcnMgYmVj b21lIG1vcmUgdXNlZnVsIHRoYXQKd2F5LCBhbmQgd2UgY2FuIHVzZSB0aGUgaW4gb3RoZXIgcGxh Y2VzIGFzIHdlbGwgaWYgbmVlZGVkLgoKU28gbXkgcHJvcG9zYWwgaXMgdGhhdCB0aGUgY2FsbGVy cyBvZiB0aGVzZSBmdW5jdGlvbnMgYXJlIHJlc3BvbnNpYmxlCm9mIHJlYWRpbmcgdGhlIHByb3Bl cnR5IHZhbHVlcy4gSGVyZSB3ZSBqdXN0IGNvbnZlcnQgdGhlIHN0cmluZ3MgdG8KdmFsdWVzOgoK aW50IHR5cGVjX2ZpbmRfcHJlZmVycmVkX3JvbGUoY29uc3QgY2hhciAqbmFtZSkKewoJcmV0dXJu IG1hdGNoX3N0cmluZyh0eXBlY19yb2xlcywgQVJSQVlfU0laRSh0eXBlY19yb2xlcyksIG5hbWUp Owp9CkVYUE9SVF9TWU1CT0xfR1BMKHR5cGVjX2ZpbmRfcHJlZmVycmVkX3JvbGUpOwoKaW50IHR5 cGVjX2ZpbmRfcG93ZXJfcm9sZShjb25zdCBjaGFyICpuYW1lKQp7CglyZXR1cm4gbWF0Y2hfc3Ry aW5nKHR5cGVjX3BvcnRfdHlwZXMsIEFSUkFZX1NJWkUodHlwZWNfZGF0YV90eXBlcyksCgkJCSAg ICBuYW1lKTsKfQpFWFBPUlRfU1lNQk9MX0dQTCh0eXBlY19maW5kX2RhdGFfcm9sZSk7CgppbnQg dHlwZWNfZmluZF9kYXRhX3JvbGUoY29uc3QgY2hhciAqbmFtZSkKewoJcmV0dXJuIG1hdGNoX3N0 cmluZyh0eXBlY19kYXRhX3R5cGVzLCBBUlJBWV9TSVpFKHR5cGVjX2RhdGFfdHlwZXMpLAoJCQkg ICAgbmFtZSk7Cn0KRVhQT1JUX1NZTUJPTF9HUEwodHlwZWNfZmluZF9kYXRhX3JvbGUpOwoKClRo YW5rcywK