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: [v5,01/14] dt-bindings: connector: add properties for typec From: Mats Karrman Message-Id: Date: Fri, 11 May 2018 21:49:02 +0200 To: Li Jun , robh+dt@kernel.org, gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: a.hajda@samsung.com, cw00.choi@samsung.com, shufan_lee@richtek.com, peter.chen@nxp.com, gsomlo@gmail.com, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-imx@nxp.com List-ID: SGkgTGkgSnVuLAoKT24gMjAxOC0wNS0wMyAwMjoyNCwgTGkgSnVuIHdyb3RlOgoKPiBBZGQgYmlu Z2RpbmdzIHN1cHBvcnRlZCBieSBjdXJyZW50IHR5cGVjIGRyaXZlciwgc28gdXNlciBjYW4gcGFz cwo+IGFsbCB0aG9zZSBwcm9wZXJ0aWVzIHZpYSBkdC4KPgo+IFNpZ25lZC1vZmYtYnk6IExpIEp1 biA8anVuLmxpQG54cC5jb20+Cj4gLS0tCj4gICAuLi4vYmluZGluZ3MvY29ubmVjdG9yL3VzYi1j b25uZWN0b3IudHh0ICAgICAgICAgICB8IDQ0ICsrKysrKysrKysrKysrKwo+ICAgaW5jbHVkZS9k dC1iaW5kaW5ncy91c2IvcGQuaCAgICAgICAgICAgICAgICAgICAgICAgfCA2MiArKysrKysrKysr KysrKysrKysrKysrCj4gICAyIGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspCj4KPiBk aWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nvbm5lY3Rvci91 c2ItY29ubmVjdG9yLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jb25u ZWN0b3IvdXNiLWNvbm5lY3Rvci50eHQKPiBpbmRleCBlMTQ2M2YxLi40YjE5ZGU2ZDAgMTAwNjQ0 Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nvbm5lY3Rvci91c2It Y29ubmVjdG9yLnR4dAo+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9j b25uZWN0b3IvdXNiLWNvbm5lY3Rvci50eHQKPiBAQCAtMTUsNiArMTUsMzMgQEAgT3B0aW9uYWwg cHJvcGVydGllczoKPiAgIC0gdHlwZTogc2l6ZSBvZiB0aGUgY29ubmVjdG9yLCBzaG91bGQgYmUg c3BlY2lmaWVkIGluIGNhc2Ugb2YgVVNCLUEsIFVTQi1CCj4gICAgIG5vbi1mdWxsc2l6ZSBjb25u ZWN0b3JzOiAibWluaSIsICJtaWNybyIuCj4gICAKPiArT3B0aW9uYWwgcHJvcGVydGllcyBmb3Ig dXNiLWMtY29ubmVjdG9yOgo+ICstIHBvd2VyLXJvbGU6IHNob3VsZCBiZSBvbmUgb2YgInNvdXJj ZSIsICJzaW5rIiBvciAiZHVhbCIoRFJQKSBpZiB0eXBlYwo+ICsgIGNvbm5lY3RvciBoYXMgcG93 ZXIgc3VwcG9ydC4KPiArLSB0cnktcG93ZXItcm9sZTogcHJlZmVycmVkIHBvd2VyIHJvbGUgaWYg ImR1YWwiKERSUCkgY2FuIHN1cHBvcnQgVHJ5LlNOSwo+ICsgIG9yIFRyeS5TUkMsIHNob3VsZCBi ZSAic2luayIgZm9yIFRyeS5TTksgb3IgInNvdXJjZSIgZm9yIFRyeS5TUkMuCj4gKy0gZGF0YS1y b2xlOiBzaG91bGQgYmUgb25lIG9mICJob3N0IiwgImRldmljZSIsICJkdWFsIihEUkQpIGlmIHR5 cGVjCj4gKyAgY29ubmVjdG9yIHN1cHBvcnRzIFVTQiBkYXRhLgo+ICsKPiArUmVxdWlyZWQgcHJv cGVydGllcyBmb3IgdXNiLWMtY29ubmVjdG9yIHdpdGggcG93ZXIgZGVsaXZlcnkgc3VwcG9ydDoK PiArLSBzb3VyY2UtcGRvczogQW4gYXJyYXkgb2YgdTMyIHdpdGggZWFjaCBlbnRyeSBwcm92aWRp bmcgc3VwcG9ydGVkIHBvd2VyCj4gKyAgc291cmNlIGRhdGEgb2JqZWN0KFBETyksIHRoZSBkZXRh aWxlZCBiaXQgZGVmaW5pdGlvbnMgb2YgUERPIGNhbiBiZSBmb3VuZAo+ICsgIGluICJVbml2ZXJz YWwgU2VyaWFsIEJ1cyBQb3dlciBEZWxpdmVyeSBTcGVjaWZpY2F0aW9uIiBjaGFwdGVyIDYuNC4x LjIKPiArICBTb3VyY2VfQ2FwYWJpbGl0aWVzIE1lc3NhZ2UsIHRoZSBvcmRlciBvZiBlYWNoIGVu dHJ5KFBETykgc2hvdWxkIGZvbGxvdwo+ICsgIHRoZSBQRCBzcGVjIGNoYXB0ZXIgNi40LjEuIFJl cXVpcmVkIGZvciBwb3dlciBzb3VyY2UgYW5kIHBvd2VyIGR1YWwgcm9sZS4KPiArICBVc2VyIGNh biBzcGVjaWZ5IHRoZSBzb3VyY2UgUERPIGFycmF5IHZpYSBQRE9fRklYRUQvQkFUVC9WQVIoKSBk ZWZpbmVkIGluCj4gKyAgZHQtYmluZGluZ3MvdXNiL3BkLmguCj4gKy0gc2luay1wZG9zOiBBbiBh cnJheSBvZiB1MzIgd2l0aCBlYWNoIGVudHJ5IHByb3ZpZGluZyBzdXBwb3J0ZWQgcG93ZXIKPiAr ICBzaW5rIGRhdGEgb2JqZWN0KFBETyksIHRoZSBkZXRhaWxlZCBiaXQgZGVmaW5pdGlvbnMgb2Yg UERPIGNhbiBiZSBmb3VuZAo+ICsgIGluICJVbml2ZXJzYWwgU2VyaWFsIEJ1cyBQb3dlciBEZWxp dmVyeSBTcGVjaWZpY2F0aW9uIiBjaGFwdGVyIDYuNC4xLjMKPiArICBTaW5rIENhcGFiaWxpdGll cyBNZXNzYWdlLCB0aGUgb3JkZXIgb2YgZWFjaCBlbnRyeShQRE8pIHNob3VsZCBmb2xsb3cKPiAr ICB0aGUgUEQgc3BlYyBjaGFwdGVyIDYuNC4xLiBSZXF1aXJlZCBmb3IgcG93ZXIgc2luayBhbmQg cG93ZXIgZHVhbCByb2xlLgo+ICsgIFVzZXIgY2FuIHNwZWNpZnkgdGhlIHNpbmsgUERPIGFycmF5 IHZpYSBQRE9fRklYRUQvQkFUVC9WQVIoKSBkZWZpbmVkIGluCj4gKyAgZHQtYmluZGluZ3MvdXNi L3BkLmguCj4gKy0gb3Atc2luay1taWNyb3dhdHQ6IFNpbmsgcmVxdWlyZWQgb3BlcmF0aW5nIHBv d2VyIGluIG1pY3Jvd2F0dCwgaWYgc291cmNlCj4gKyAgY2FuJ3Qgb2ZmZXIgdGhlIHBvd2VyLCBD YXBhYmlsaXR5IE1pc21hdGNoIGlzIHNldCwgcmVxdWlyZWQgZm9yIHBvd2VyCgouLi5zZXQuIFJl cXVpcmVkLi4uCihuZXcgc2VudGVuY2UsIG90aGVyd2lzZSBpdCdzIHVuY2xlYXIgd2hhdCBpcyBy ZXF1aXJlZDsgb3Atc2luay1taWNyb3dhdHQgb3IKQ2FwYWJpbGl0eSBNaXNtYXRjaCBzZXQpCgpC UiAvLyBNYXRzCgo+ICsgIHNpbmsgYW5kIHBvd2VyIGR1YWwgcm9sZS4KPiArCj4gICBSZXF1aXJl ZCBub2RlczoKPiAgIC0gYW55IGRhdGEgYnVzIHRvIHRoZSBjb25uZWN0b3Igc2hvdWxkIGJlIG1v ZGVsZWQgdXNpbmcgdGhlIE9GIGdyYXBoIGJpbmRpbmdzCj4gICAgIHNwZWNpZmllZCBpbiBiaW5k aW5ncy9ncmFwaC50eHQsIHVubGVzcyB0aGUgYnVzIGlzIGJldHdlZW4gcGFyZW50IG5vZGUgYW5k Cj4gQEAgLTczLDMgKzEwMCwyMCBAQCBjY2ljOiBzMm1tMDA1QDMzIHsKPiAgIAkJfTsKPiAgIAl9 Owo+ICAgfTsKPiArCj4gKzMuIFVTQi1DIGNvbm5lY3RvciBhdHRhY2hlZCB0byBhIHR5cGVjIHBv cnQgY29udHJvbGxlcihwdG41MTEwKSwgd2hpY2ggaGFzCj4gK3Bvd2VyIGRlbGl2ZXJ5IHN1cHBv cnQgYW5kIGVuYWJsZXMgZHJwLgo+ICsKPiArdHlwZWM6IHB0bjUxMTBANTAgewo+ICsJLi4uCj4g Kwl1c2JfY29uOiBjb25uZWN0b3Igewo+ICsJCWNvbXBhdGlibGUgPSAidXNiLWMtY29ubmVjdG9y IjsKPiArCQlsYWJlbCA9ICJVU0ItQyI7Cj4gKwkJcG93ZXItcm9sZSA9ICJkdWFsIjsKPiArCQl0 cnktcG93ZXItcm9sZSA9ICJzaW5rIjsKPiArCQlzb3VyY2UtcGRvcyA9IDxQRE9fRklYRUQoNTAw MCwgMjAwMCwgUERPX0ZJWEVEX1VTQl9DT01NKT47Cj4gKwkJc2luay1wZG9zID0gPFBET19GSVhF RCg1MDAwLCAyMDAwLCBQRE9fRklYRURfVVNCX0NPTU0pCj4gKwkJCSAgICAgUERPX1ZBUig1MDAw LCAxMjAwMCwgMjAwMCk+Owo+ICsJCW9wLXNpbmstbWljcm93YXR0ID0gPDEwMDAwMDAwPjsKPiAr CX07Cj4gK307Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvdXNiL3BkLmggYi9p bmNsdWRlL2R0LWJpbmRpbmdzL3VzYi9wZC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMDAwMDAwLi43YjdhOTJmCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1ZGUvZHQtYmlu ZGluZ3MvdXNiL3BkLmgKPiBAQCAtMCwwICsxLDYyIEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wICovCj4gKyNpZm5kZWYgX19EVF9QT1dFUl9ERUxJVkVSWV9ICj4gKyNk ZWZpbmUgX19EVF9QT1dFUl9ERUxJVkVSWV9ICj4gKwo+ICsvKiBQb3dlciBkZWxpdmVyeSBQb3dl ciBEYXRhIE9iamVjdCBkZWZpbml0aW9ucyAqLwo+ICsjZGVmaW5lIFBET19UWVBFX0ZJWEVECQkw Cj4gKyNkZWZpbmUgUERPX1RZUEVfQkFUVAkJMQo+ICsjZGVmaW5lIFBET19UWVBFX1ZBUgkJMgo+ ICsjZGVmaW5lIFBET19UWVBFX0FQRE8JCTMKPiArCj4gKyNkZWZpbmUgUERPX1RZUEVfU0hJRlQJ CTMwCj4gKyNkZWZpbmUgUERPX1RZUEVfTUFTSwkJMHgzCj4gKwo+ICsjZGVmaW5lIFBET19UWVBF KHQpCSgodCkgPDwgUERPX1RZUEVfU0hJRlQpCj4gKwo+ICsjZGVmaW5lIFBET19WT0xUX01BU0sJ CTB4M2ZmCj4gKyNkZWZpbmUgUERPX0NVUlJfTUFTSwkJMHgzZmYKPiArI2RlZmluZSBQRE9fUFdS X01BU0sJCTB4M2ZmCj4gKwo+ICsjZGVmaW5lIFBET19GSVhFRF9EVUFMX1JPTEUJKDEgPDwgMjkp IC8qIFBvd2VyIHJvbGUgc3dhcCBzdXBwb3J0ZWQgKi8KPiArI2RlZmluZSBQRE9fRklYRURfU1VT UEVORAkoMSA8PCAyOCkgLyogVVNCIFN1c3BlbmQgc3VwcG9ydGVkIChTb3VyY2UpICovCj4gKyNk ZWZpbmUgUERPX0ZJWEVEX0hJR0hFUl9DQVAJKDEgPDwgMjgpIC8qIFJlcXVpcmVzIG1vcmUgdGhh biB2U2FmZTVWIChTaW5rKSAqLwo+ICsjZGVmaW5lIFBET19GSVhFRF9FWFRQT1dFUgkoMSA8PCAy NykgLyogRXh0ZXJuYWxseSBwb3dlcmVkICovCj4gKyNkZWZpbmUgUERPX0ZJWEVEX1VTQl9DT01N CSgxIDw8IDI2KSAvKiBVU0IgY29tbXVuaWNhdGlvbnMgY2FwYWJsZSAqLwo+ICsjZGVmaW5lIFBE T19GSVhFRF9EQVRBX1NXQVAJKDEgPDwgMjUpIC8qIERhdGEgcm9sZSBzd2FwIHN1cHBvcnRlZCAq Lwo+ICsjZGVmaW5lIFBET19GSVhFRF9WT0xUX1NISUZUCTEwCS8qIDUwbVYgdW5pdHMgKi8KPiAr I2RlZmluZSBQRE9fRklYRURfQ1VSUl9TSElGVAkwCS8qIDEwbUEgdW5pdHMgKi8KPiArCj4gKyNk ZWZpbmUgUERPX0ZJWEVEX1ZPTFQobXYpCSgoKChtdikgLyA1MCkgJiBQRE9fVk9MVF9NQVNLKSA8 PCBQRE9fRklYRURfVk9MVF9TSElGVCkKPiArI2RlZmluZSBQRE9fRklYRURfQ1VSUihtYSkJKCgo KG1hKSAvIDEwKSAmIFBET19DVVJSX01BU0spIDw8IFBET19GSVhFRF9DVVJSX1NISUZUKQo+ICsK PiArI2RlZmluZSBQRE9fRklYRUQobXYsIG1hLCBmbGFncykJCQlcCj4gKwkoUERPX1RZUEUoUERP X1RZUEVfRklYRUQpIHwgKGZsYWdzKSB8CQlcCj4gKwkgUERPX0ZJWEVEX1ZPTFQobXYpIHwgUERP X0ZJWEVEX0NVUlIobWEpKQo+ICsKPiArI2RlZmluZSBWU0FGRTVWIDUwMDAgLyogbXYgdW5pdHMg Ki8KPiArCj4gKyNkZWZpbmUgUERPX0JBVFRfTUFYX1ZPTFRfU0hJRlQJMjAJLyogNTBtViB1bml0 cyAqLwo+ICsjZGVmaW5lIFBET19CQVRUX01JTl9WT0xUX1NISUZUCTEwCS8qIDUwbVYgdW5pdHMg Ki8KPiArI2RlZmluZSBQRE9fQkFUVF9NQVhfUFdSX1NISUZUCTAJLyogMjUwbVcgdW5pdHMgKi8K PiArCj4gKyNkZWZpbmUgUERPX0JBVFRfTUlOX1ZPTFQobXYpICgoKChtdikgLyA1MCkgJiBQRE9f Vk9MVF9NQVNLKSA8PCBQRE9fQkFUVF9NSU5fVk9MVF9TSElGVCkKPiArI2RlZmluZSBQRE9fQkFU VF9NQVhfVk9MVChtdikgKCgoKG12KSAvIDUwKSAmIFBET19WT0xUX01BU0spIDw8IFBET19CQVRU X01BWF9WT0xUX1NISUZUKQo+ICsjZGVmaW5lIFBET19CQVRUX01BWF9QT1dFUihtdykgKCgoKG13 KSAvIDI1MCkgJiBQRE9fUFdSX01BU0spIDw8IFBET19CQVRUX01BWF9QV1JfU0hJRlQpCj4gKwo+ ICsjZGVmaW5lIFBET19CQVRUKG1pbl9tdiwgbWF4X212LCBtYXhfbXcpCQkJXAo+ICsJKFBET19U WVBFKFBET19UWVBFX0JBVFQpIHwgUERPX0JBVFRfTUlOX1ZPTFQobWluX212KSB8CVwKPiArCSBQ RE9fQkFUVF9NQVhfVk9MVChtYXhfbXYpIHwgUERPX0JBVFRfTUFYX1BPV0VSKG1heF9tdykpCj4g Kwo+ICsjZGVmaW5lIFBET19WQVJfTUFYX1ZPTFRfU0hJRlQJMjAJLyogNTBtViB1bml0cyAqLwo+ ICsjZGVmaW5lIFBET19WQVJfTUlOX1ZPTFRfU0hJRlQJMTAJLyogNTBtViB1bml0cyAqLwo+ICsj ZGVmaW5lIFBET19WQVJfTUFYX0NVUlJfU0hJRlQJMAkvKiAxMG1BIHVuaXRzICovCj4gKwo+ICsj ZGVmaW5lIFBET19WQVJfTUlOX1ZPTFQobXYpICgoKChtdikgLyA1MCkgJiBQRE9fVk9MVF9NQVNL KSA8PCBQRE9fVkFSX01JTl9WT0xUX1NISUZUKQo+ICsjZGVmaW5lIFBET19WQVJfTUFYX1ZPTFQo bXYpICgoKChtdikgLyA1MCkgJiBQRE9fVk9MVF9NQVNLKSA8PCBQRE9fVkFSX01BWF9WT0xUX1NI SUZUKQo+ICsjZGVmaW5lIFBET19WQVJfTUFYX0NVUlIobWEpICgoKChtYSkgLyAxMCkgJiBQRE9f Q1VSUl9NQVNLKSA8PCBQRE9fVkFSX01BWF9DVVJSX1NISUZUKQo+ICsKPiArI2RlZmluZSBQRE9f VkFSKG1pbl9tdiwgbWF4X212LCBtYXhfbWEpCQkJCVwKPiArCShQRE9fVFlQRShQRE9fVFlQRV9W QVIpIHwgUERPX1ZBUl9NSU5fVk9MVChtaW5fbXYpIHwJXAo+ICsJIFBET19WQVJfTUFYX1ZPTFQo bWF4X212KSB8IFBET19WQVJfTUFYX0NVUlIobWF4X21hKSkKPiArCj4gKyAjZW5kaWYgLyogX19E VF9QT1dFUl9ERUxJVkVSWV9IICovCi0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDog c2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1l c3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0 ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: Re: [PATCH v5 01/14] dt-bindings: connector: add properties for typec References: <1525307094-27402-1-git-send-email-jun.li@nxp.com> <1525307094-27402-2-git-send-email-jun.li@nxp.com> From: Mats Karrman Message-ID: Date: Fri, 11 May 2018 21:49:02 +0200 MIME-Version: 1.0 In-Reply-To: <1525307094-27402-2-git-send-email-jun.li@nxp.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US To: Li Jun , robh+dt@kernel.org, gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: a.hajda@samsung.com, cw00.choi@samsung.com, shufan_lee@richtek.com, peter.chen@nxp.com, gsomlo@gmail.com, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-imx@nxp.com List-ID: Hi Li Jun, On 2018-05-03 02:24, Li Jun wrote: > Add bingdings supported by current typec driver, so user can pass > all those properties via dt. > > Signed-off-by: Li Jun > --- > .../bindings/connector/usb-connector.txt | 44 +++++++++++++++ > include/dt-bindings/usb/pd.h | 62 ++++++++++++++++++++++ > 2 files changed, 106 insertions(+) > > diff --git a/Documentation/devicetree/bindings/connector/usb-connector.txt b/Documentation/devicetree/bindings/connector/usb-connector.txt > index e1463f1..4b19de6d0 100644 > --- a/Documentation/devicetree/bindings/connector/usb-connector.txt > +++ b/Documentation/devicetree/bindings/connector/usb-connector.txt > @@ -15,6 +15,33 @@ Optional properties: > - type: size of the connector, should be specified in case of USB-A, USB-B > non-fullsize connectors: "mini", "micro". > > +Optional properties for usb-c-connector: > +- power-role: should be one of "source", "sink" or "dual"(DRP) if typec > + connector has power support. > +- try-power-role: preferred power role if "dual"(DRP) can support Try.SNK > + or Try.SRC, should be "sink" for Try.SNK or "source" for Try.SRC. > +- data-role: should be one of "host", "device", "dual"(DRD) if typec > + connector supports USB data. > + > +Required properties for usb-c-connector with power delivery support: > +- source-pdos: An array of u32 with each entry providing supported power > + source data object(PDO), the detailed bit definitions of PDO can be found > + in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2 > + Source_Capabilities Message, the order of each entry(PDO) should follow > + the PD spec chapter 6.4.1. Required for power source and power dual role. > + User can specify the source PDO array via PDO_FIXED/BATT/VAR() defined in > + dt-bindings/usb/pd.h. > +- sink-pdos: An array of u32 with each entry providing supported power > + sink data object(PDO), the detailed bit definitions of PDO can be found > + in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3 > + Sink Capabilities Message, the order of each entry(PDO) should follow > + the PD spec chapter 6.4.1. Required for power sink and power dual role. > + User can specify the sink PDO array via PDO_FIXED/BATT/VAR() defined in > + dt-bindings/usb/pd.h. > +- op-sink-microwatt: Sink required operating power in microwatt, if source > + can't offer the power, Capability Mismatch is set, required for power ...set. Required... (new sentence, otherwise it's unclear what is required; op-sink-microwatt or Capability Mismatch set) BR // Mats > + sink and power dual role. > + > Required nodes: > - any data bus to the connector should be modeled using the OF graph bindings > specified in bindings/graph.txt, unless the bus is between parent node and > @@ -73,3 +100,20 @@ ccic: s2mm005@33 { > }; > }; > }; > + > +3. USB-C connector attached to a typec port controller(ptn5110), which has > +power delivery support and enables drp. > + > +typec: ptn5110@50 { > + ... > + usb_con: connector { > + compatible = "usb-c-connector"; > + label = "USB-C"; > + power-role = "dual"; > + try-power-role = "sink"; > + source-pdos = ; > + sink-pdos = + PDO_VAR(5000, 12000, 2000)>; > + op-sink-microwatt = <10000000>; > + }; > +}; > diff --git a/include/dt-bindings/usb/pd.h b/include/dt-bindings/usb/pd.h > new file mode 100644 > index 0000000..7b7a92f > --- /dev/null > +++ b/include/dt-bindings/usb/pd.h > @@ -0,0 +1,62 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef __DT_POWER_DELIVERY_H > +#define __DT_POWER_DELIVERY_H > + > +/* Power delivery Power Data Object definitions */ > +#define PDO_TYPE_FIXED 0 > +#define PDO_TYPE_BATT 1 > +#define PDO_TYPE_VAR 2 > +#define PDO_TYPE_APDO 3 > + > +#define PDO_TYPE_SHIFT 30 > +#define PDO_TYPE_MASK 0x3 > + > +#define PDO_TYPE(t) ((t) << PDO_TYPE_SHIFT) > + > +#define PDO_VOLT_MASK 0x3ff > +#define PDO_CURR_MASK 0x3ff > +#define PDO_PWR_MASK 0x3ff > + > +#define PDO_FIXED_DUAL_ROLE (1 << 29) /* Power role swap supported */ > +#define PDO_FIXED_SUSPEND (1 << 28) /* USB Suspend supported (Source) */ > +#define PDO_FIXED_HIGHER_CAP (1 << 28) /* Requires more than vSafe5V (Sink) */ > +#define PDO_FIXED_EXTPOWER (1 << 27) /* Externally powered */ > +#define PDO_FIXED_USB_COMM (1 << 26) /* USB communications capable */ > +#define PDO_FIXED_DATA_SWAP (1 << 25) /* Data role swap supported */ > +#define PDO_FIXED_VOLT_SHIFT 10 /* 50mV units */ > +#define PDO_FIXED_CURR_SHIFT 0 /* 10mA units */ > + > +#define PDO_FIXED_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_FIXED_VOLT_SHIFT) > +#define PDO_FIXED_CURR(ma) ((((ma) / 10) & PDO_CURR_MASK) << PDO_FIXED_CURR_SHIFT) > + > +#define PDO_FIXED(mv, ma, flags) \ > + (PDO_TYPE(PDO_TYPE_FIXED) | (flags) | \ > + PDO_FIXED_VOLT(mv) | PDO_FIXED_CURR(ma)) > + > +#define VSAFE5V 5000 /* mv units */ > + > +#define PDO_BATT_MAX_VOLT_SHIFT 20 /* 50mV units */ > +#define PDO_BATT_MIN_VOLT_SHIFT 10 /* 50mV units */ > +#define PDO_BATT_MAX_PWR_SHIFT 0 /* 250mW units */ > + > +#define PDO_BATT_MIN_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MIN_VOLT_SHIFT) > +#define PDO_BATT_MAX_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MAX_VOLT_SHIFT) > +#define PDO_BATT_MAX_POWER(mw) ((((mw) / 250) & PDO_PWR_MASK) << PDO_BATT_MAX_PWR_SHIFT) > + > +#define PDO_BATT(min_mv, max_mv, max_mw) \ > + (PDO_TYPE(PDO_TYPE_BATT) | PDO_BATT_MIN_VOLT(min_mv) | \ > + PDO_BATT_MAX_VOLT(max_mv) | PDO_BATT_MAX_POWER(max_mw)) > + > +#define PDO_VAR_MAX_VOLT_SHIFT 20 /* 50mV units */ > +#define PDO_VAR_MIN_VOLT_SHIFT 10 /* 50mV units */ > +#define PDO_VAR_MAX_CURR_SHIFT 0 /* 10mA units */ > + > +#define PDO_VAR_MIN_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MIN_VOLT_SHIFT) > +#define PDO_VAR_MAX_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MAX_VOLT_SHIFT) > +#define PDO_VAR_MAX_CURR(ma) ((((ma) / 10) & PDO_CURR_MASK) << PDO_VAR_MAX_CURR_SHIFT) > + > +#define PDO_VAR(min_mv, max_mv, max_ma) \ > + (PDO_TYPE(PDO_TYPE_VAR) | PDO_VAR_MIN_VOLT(min_mv) | \ > + PDO_VAR_MAX_VOLT(max_mv) | PDO_VAR_MAX_CURR(max_ma)) > + > + #endif /* __DT_POWER_DELIVERY_H */