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,02/12] usb: typec: add API to get sink and source config From: Heikki Krogerus Message-Id: <20180226133213.GC25535@kuha.fi.intel.com> Date: Mon, 26 Feb 2018 15:32:13 +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: SGksCgpPbiBNb24sIEZlYiAyNiwgMjAxOCBhdCAwNzo0OTowOVBNICswODAwLCBMaSBKdW4gd3Jv dGU6Cj4gVGhpcyBwYXRjaCBhZGQgMiBBUElzIHRvIGdldCBzaW5rIGFuZCBzb3VyY2UgcG93ZXIg Y29uZmlnIGZyb20gZmlybXdhcmUKPiBkZXNjcmlwdGlvbi4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBM aSBKdW4gPGp1bi5saUBueHAuY29tPgo+IC0tLQo+ICBkcml2ZXJzL3VzYi90eXBlYy90Y3BtLmMg fCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1 ZGUvbGludXgvdXNiL3RjcG0uaCB8ICAyICsrCj4gIDIgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0 aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi90eXBlYy90Y3BtLmMgYi9kcml2 ZXJzL3VzYi90eXBlYy90Y3BtLmMKPiBpbmRleCBmNGQ1NjNlLi40MDlmMWQwIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvdXNiL3R5cGVjL3RjcG0uYwo+ICsrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3Rj cG0uYwo+IEBAIC0xMiw2ICsxMiw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPiAg I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KPiAr I2luY2x1ZGUgPGxpbnV4L29mLmg+CgpObyBuZWVkIGZvciB0aGF0LiBUaGVyZSBpcyBub3RoaW5n IERUIG9ubHkgc3BlY2lmaWMgaGVyZS4KCkFzIGluIDAxLzEyLCB5b3Ugb25seSBoYXZlIGRldmlj ZSBwcm9wZXJ0aWVzIGhlcmUsIHNvIHVzZSB0aGUgdW5pZmllZApkZXZpY2UgcHJvcGVydHkgQVBJ IGluc3RlYWQgb2Ygb2ZfcHJvcGVydHlfKiBmdW5jdGlvbnMuCgo+ICAjaW5jbHVkZSA8bGludXgv cHJvY19mcy5oPgo+ICAjaW5jbHVkZSA8bGludXgvc2NoZWQvY2xvY2suaD4KPiAgI2luY2x1ZGUg PGxpbnV4L3NlcV9maWxlLmg+Cj4gQEAgLTM1ODksNiArMzU5MCw0OCBAQCBzdGF0aWMgaW50IHRj cG1fY29weV92ZG9zKHUzMiAqZGVzdF92ZG8sIGNvbnN0IHUzMiAqc3JjX3ZkbywKPiAgCXJldHVy biBucl92ZG87Cj4gIH0KPiAgCj4gK2ludCB0Y3BtX29mX2dldF9zcmNfY29uZmlnKHN0cnVjdCBk ZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCB0Y3BjX2NvbmZpZyAqdGNmZykKPiArewo+ICsJaW50IHJl dDsKPiArCj4gKwlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3ZhcmlhYmxlX3UzMl9hcnJheShucCwg InNyYy1wZG9zIiwKPiArCQkJCXRjZmctPnNyY19wZG8sIDEsIFBET19NQVhfT0JKRUNUUyk7Cj4g KwlpZiAocmV0ID4gMCkKPiArCQl0Y2ZnLT5ucl9zcmNfcGRvID0gcmV0Owo+ICsKPiArCXJldHVy biByZXQ7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwodGNwbV9vZl9nZXRfcGRvcyk7Cj4gKwo+ ICtpbnQgdGNwbV9vZl9nZXRfc25rX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBzdHJ1 Y3QgdGNwY19jb25maWcgKnRjZmcpCj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gb2Zf cHJvcGVydHlfcmVhZF92YXJpYWJsZV91MzJfYXJyYXkobnAsICJzbmstcGRvcyIsCj4gKwkJCQl0 Y2ZnLT5zbmtfcGRvLCAxLCBQRE9fTUFYX09CSkVDVFMpOwo+ICsJaWYgKHJldCA+IDApCj4gKwkJ dGNmZy0+bnJfc25rX3BkbyA9IHJldDsKPiArCWVsc2UKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAr CXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAibWF4LXNuay1taWNyb3ZvbHQiLCAmdGNm Zy0+bWF4X3Nua19tdik7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0 ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJtYXgtc25rLW1pY3JvYW1wIiwgJnRjZmctPm1h eF9zbmtfbWEpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXJldCA9IG9m X3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAibWF4LXNuay1taWNyb3dhdHQtaG91cnMiLAo+ICsJCQkJ ICAgJnRjZmctPm1heF9zbmtfbXcpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsK PiArCXJldHVybiBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgIm9wLXNuay1taWNyb3dhdHQtaG91 cnMiLAo+ICsJCQkJICAgICZ0Y2ZnLT5vcGVyYXRpbmdfc25rX213KTsKPiArfQo+ICtFWFBPUlRf U1lNQk9MX0dQTCh0Y3BtX29mX2dldF9wZG9zKTsKPiArCj4gIGludCB0Y3BtX3VwZGF0ZV9zb3Vy Y2VfY2FwYWJpbGl0aWVzKHN0cnVjdCB0Y3BtX3BvcnQgKnBvcnQsIGNvbnN0IHUzMiAqcGRvLAo+ ICAJCQkJICAgIHVuc2lnbmVkIGludCBucl9wZG8pCj4gIHsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC91c2IvdGNwbS5oIGIvaW5jbHVkZS9saW51eC91c2IvdGNwbS5oCj4gaW5kZXggY2Ex YzBiNS4uOTYyZWZmMSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3VzYi90Y3BtLmgKPiAr KysgYi9pbmNsdWRlL2xpbnV4L3VzYi90Y3BtLmgKPiBAQCAtMTkxLDYgKzE5MSw4IEBAIGludCB0 Y3BtX3VwZGF0ZV9zaW5rX2NhcGFiaWxpdGllcyhzdHJ1Y3QgdGNwbV9wb3J0ICpwb3J0LCBjb25z dCB1MzIgKnBkbywKPiAgCQkJCSAgdW5zaWduZWQgaW50IG1heF9zbmtfbWEsCj4gIAkJCQkgIHVu c2lnbmVkIGludCBtYXhfc25rX213LAo+ICAJCQkJICB1bnNpZ25lZCBpbnQgb3BlcmF0aW5nX3Nu a19tdyk7Cj4gK2ludCB0Y3BtX29mX2dldF9zcmNfY29uZmlnKHN0cnVjdCBkZXZpY2Vfbm9kZSAq bnAsIHN0cnVjdCB0Y3BjX2NvbmZpZyAqdGNmZyk7Cj4gK2ludCB0Y3BtX29mX2dldF9zbmtfY29u ZmlnKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCB0Y3BjX2NvbmZpZyAqdGNmZyk7Cj4g IAo+ICB2b2lkIHRjcG1fdmJ1c19jaGFuZ2Uoc3RydWN0IHRjcG1fcG9ydCAqcG9ydCk7Cj4gIHZv aWQgdGNwbV9jY19jaGFuZ2Uoc3RydWN0IHRjcG1fcG9ydCAqcG9ydCk7CgpUaGFua3MsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 26 Feb 2018 15:32:13 +0200 From: Heikki Krogerus Subject: Re: [PATCH v2 02/12] usb: typec: add API to get sink and source config Message-ID: <20180226133213.GC25535@kuha.fi.intel.com> References: <1519645759-12701-1-git-send-email-jun.li@nxp.com> <1519645759-12701-3-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-3-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:09PM +0800, Li Jun wrote: > This patch add 2 APIs to get sink and source power config from firmware > description. > > Signed-off-by: Li Jun > --- > drivers/usb/typec/tcpm.c | 43 +++++++++++++++++++++++++++++++++++++++++++ > include/linux/usb/tcpm.h | 2 ++ > 2 files changed, 45 insertions(+) > > diff --git a/drivers/usb/typec/tcpm.c b/drivers/usb/typec/tcpm.c > index f4d563e..409f1d0 100644 > --- a/drivers/usb/typec/tcpm.c > +++ b/drivers/usb/typec/tcpm.c > @@ -12,6 +12,7 @@ > #include > #include > #include > +#include No need for that. There is nothing DT only specific here. As in 01/12, you only have device properties here, so use the unified device property API instead of of_property_* functions. > #include > #include > #include > @@ -3589,6 +3590,48 @@ static int tcpm_copy_vdos(u32 *dest_vdo, const u32 *src_vdo, > return nr_vdo; > } > > +int tcpm_of_get_src_config(struct device_node *np, struct tcpc_config *tcfg) > +{ > + int ret; > + > + ret = of_property_read_variable_u32_array(np, "src-pdos", > + tcfg->src_pdo, 1, PDO_MAX_OBJECTS); > + if (ret > 0) > + tcfg->nr_src_pdo = ret; > + > + return ret; > +} > +EXPORT_SYMBOL_GPL(tcpm_of_get_pdos); > + > +int tcpm_of_get_snk_config(struct device_node *np, struct tcpc_config *tcfg) > +{ > + int ret; > + > + ret = of_property_read_variable_u32_array(np, "snk-pdos", > + tcfg->snk_pdo, 1, PDO_MAX_OBJECTS); > + if (ret > 0) > + tcfg->nr_snk_pdo = ret; > + else > + return ret; > + > + ret = of_property_read_u32(np, "max-snk-microvolt", &tcfg->max_snk_mv); > + if (ret) > + return ret; > + > + ret = of_property_read_u32(np, "max-snk-microamp", &tcfg->max_snk_ma); > + if (ret) > + return ret; > + > + ret = of_property_read_u32(np, "max-snk-microwatt-hours", > + &tcfg->max_snk_mw); > + if (ret) > + return ret; > + > + return of_property_read_u32(np, "op-snk-microwatt-hours", > + &tcfg->operating_snk_mw); > +} > +EXPORT_SYMBOL_GPL(tcpm_of_get_pdos); > + > int tcpm_update_source_capabilities(struct tcpm_port *port, const u32 *pdo, > unsigned int nr_pdo) > { > diff --git a/include/linux/usb/tcpm.h b/include/linux/usb/tcpm.h > index ca1c0b5..962eff1 100644 > --- a/include/linux/usb/tcpm.h > +++ b/include/linux/usb/tcpm.h > @@ -191,6 +191,8 @@ int tcpm_update_sink_capabilities(struct tcpm_port *port, const u32 *pdo, > unsigned int max_snk_ma, > unsigned int max_snk_mw, > unsigned int operating_snk_mw); > +int tcpm_of_get_src_config(struct device_node *np, struct tcpc_config *tcfg); > +int tcpm_of_get_snk_config(struct device_node *np, struct tcpc_config *tcfg); > > void tcpm_vbus_change(struct tcpm_port *port); > void tcpm_cc_change(struct tcpm_port *port); Thanks, -- heikki