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: [v2,03/12] staging: typec: tcpci: support port config passed via dt From: Heikki Krogerus Message-Id: <20180226140604.GD25535@kuha.fi.intel.com> Date: Mon, 26 Feb 2018 16:06:04 +0200 To: Li Jun Cc: gregkh@linuxfoundation.org, robh+dt@kernel.org, linux@roeck-us.net, a.hajda@samsung.com, mark.rutland@arm.com, yueyao@google.com, peter.chen@nxp.com, garsilva@embeddedor.com, o_leveque@orange.fr, shufan_lee@richtek.com, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-imx@nxp.com List-ID: SGksCgpPbiBNb24sIEZlYiAyNiwgMjAxOCBhdCAwNzo0OToxMFBNICswODAwLCBMaSBKdW4gd3Jv dGU6Cj4gVXNlciBjYW4gZGVmaW5lIHRoZSB0eXBlYyBwb3J0IHByb3BlcnRpZXMgaW4gdGNwY2kg bm9kZSB0byBzZXR1cAo+IHRoZSBwb3J0IGNvbmZpZy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBMaSBK dW4gPGp1bi5saUBueHAuY29tPgo+IC0tLQo+IENoYW5nZXMgZm9yIHYyOgo+IC0gVXNlIGluZnJh IEFQSXMgdG8gZ2V0IHNpbmsgYW5kIHNvdXJjZSBjb25maWcuCj4gLSBJbXByb3ZlIHRoZSBlcnJv ciBtZXNzYWdlLgo+IAo+ICBkcml2ZXJzL3N0YWdpbmcvdHlwZWMvdGNwY2kuYyB8IDcwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgaW5jbHVkZS9saW51eC91 c2IvdGNwbS5oICAgICAgfCAgNiArKy0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9u cygrKSwgMTAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy90 eXBlYy90Y3BjaS5jIGIvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmMKPiBpbmRleCBiNmFi YWY3Li5iZTZlZDE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy90eXBlYy90Y3BjaS5j Cj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmMKPiBAQCAtNDI2LDE3ICs0MjYs NzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHRjcGNpX3JlZ21hcF9jb25m aWcgPSB7Cj4gIAkubWF4X3JlZ2lzdGVyID0gMHg3RiwgLyogMHg4MCAuLiAweEZGIGFyZSB2ZW5k b3IgZGVmaW5lZCAqLwo+ICB9Owo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCB0Y3BjX2NvbmZp ZyB0Y3BjaV90Y3BjX2NvbmZpZyA9IHsKPiAtCS50eXBlID0gVFlQRUNfUE9SVF9ERlAsCj4gLQku ZGVmYXVsdF9yb2xlID0gVFlQRUNfU0lOSywKPiAtfTsKPiAtCj4gKy8qIFBvcHVsYXRlIHN0cnVj dCB0Y3BjX2NvbmZpZyBmcm9tIGRldmljZS10cmVlICovCj4gIHN0YXRpYyBpbnQgdGNwY2lfcGFy c2VfY29uZmlnKHN0cnVjdCB0Y3BjaSAqdGNwY2kpCj4gIHsKPiArCXN0cnVjdCB0Y3BjX2NvbmZp ZyAqdGNmZzsKPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqY2hpbGQ7Cj4gKwlpbnQgcmV0ID0gLUVJ TlZBTDsKPiArCj4gIAl0Y3BjaS0+Y29udHJvbHNfdmJ1cyA9IHRydWU7IC8qIFhYWCAqLwo+ICAK PiAtCS8qIFRPRE86IFBvcHVsYXRlIHN0cnVjdCB0Y3BjX2NvbmZpZyBmcm9tIEFDUEkvZGV2aWNl LXRyZWUgKi8KPiAtCXRjcGNpLT50Y3BjLmNvbmZpZyA9ICZ0Y3BjaV90Y3BjX2NvbmZpZzsKPiAr CXRjcGNpLT50Y3BjLmNvbmZpZyA9IGRldm1fa3phbGxvYyh0Y3BjaS0+ZGV2LCBzaXplb2YoKnRj ZmcpLAo+ICsJCQkJCSAgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXRjcGNpLT50Y3BjLmNvbmZpZykK PiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwl0Y2ZnID0gdGNwY2ktPnRjcGMuY29uZmlnOwo+ ICsKPiArCWNoaWxkID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUodGNwY2ktPmRldi0+b2Zfbm9kZSwg ImNvbm5lY3RvciIpOwo+ICsJaWYgKCFjaGlsZCkgewo+ICsJCWRldl9lcnIodGNwY2ktPmRldiwg ImZhaWxlZCB0byBnZXQgY29ubmVjdG9yIG5vZGUuXG4iKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsK PiArCX0KCldoeSBkbyB5b3UgbmVlZCBzZXBhcmF0ZSBjaGlsZCBub2RlIGZvciB0aGUgY29ubmVj dG9yPyBZb3Ugd2lsbCBhbHdheXMKaGF2ZSBvbmx5IG9uZSBjb25uZWN0b3IgcGVyIHRjcGMsIGku ZS4gdGhlIHRjcGNpIGFscmVhZHkgcmVwcmVzZW50cyB0aGUKY29ubmVjdG9yIGFuZCBhbGwgaXRz IGNhcGFiaWxpdGllcy4KCgpUaGFua3MsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 26 Feb 2018 16:06:04 +0200 From: Heikki Krogerus Subject: Re: [PATCH v2 03/12] staging: typec: tcpci: support port config passed via dt Message-ID: <20180226140604.GD25535@kuha.fi.intel.com> References: <1519645759-12701-1-git-send-email-jun.li@nxp.com> <1519645759-12701-4-git-send-email-jun.li@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1519645759-12701-4-git-send-email-jun.li@nxp.com> To: Li Jun Cc: gregkh@linuxfoundation.org, robh+dt@kernel.org, linux@roeck-us.net, a.hajda@samsung.com, mark.rutland@arm.com, yueyao@google.com, peter.chen@nxp.com, garsilva@embeddedor.com, o_leveque@orange.fr, shufan_lee@richtek.com, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-imx@nxp.com List-ID: Hi, On Mon, Feb 26, 2018 at 07:49:10PM +0800, Li Jun wrote: > User can define the typec port properties in tcpci node to setup > the port config. > > Signed-off-by: Li Jun > --- > Changes for v2: > - Use infra APIs to get sink and source config. > - Improve the error message. > > drivers/staging/typec/tcpci.c | 70 ++++++++++++++++++++++++++++++++++++++----- > include/linux/usb/tcpm.h | 6 ++-- > 2 files changed, 66 insertions(+), 10 deletions(-) > > diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c > index b6abaf7..be6ed16 100644 > --- a/drivers/staging/typec/tcpci.c > +++ b/drivers/staging/typec/tcpci.c > @@ -426,17 +426,73 @@ static const struct regmap_config tcpci_regmap_config = { > .max_register = 0x7F, /* 0x80 .. 0xFF are vendor defined */ > }; > > -static const struct tcpc_config tcpci_tcpc_config = { > - .type = TYPEC_PORT_DFP, > - .default_role = TYPEC_SINK, > -}; > - > +/* Populate struct tcpc_config from device-tree */ > static int tcpci_parse_config(struct tcpci *tcpci) > { > + struct tcpc_config *tcfg; > + struct device_node *child; > + int ret = -EINVAL; > + > tcpci->controls_vbus = true; /* XXX */ > > - /* TODO: Populate struct tcpc_config from ACPI/device-tree */ > - tcpci->tcpc.config = &tcpci_tcpc_config; > + tcpci->tcpc.config = devm_kzalloc(tcpci->dev, sizeof(*tcfg), > + GFP_KERNEL); > + if (!tcpci->tcpc.config) > + return -ENOMEM; > + > + tcfg = tcpci->tcpc.config; > + > + child = of_get_child_by_name(tcpci->dev->of_node, "connector"); > + if (!child) { > + dev_err(tcpci->dev, "failed to get connector node.\n"); > + return -EINVAL; > + } Why do you need separate child node for the connector? You will always have only one connector per tcpc, i.e. the tcpci already represents the connector and all its capabilities. Thanks, -- heikki