diff mbox

mwifiex: parse hscfg_gpio info from device tree

Message ID 1448618297-19803-1-git-send-email-akarwar@marvell.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show

Commit Message

Amitkumar Karwar Nov. 27, 2015, 9:58 a.m. UTC
From: Xinming Hu <huxm@marvell.com>

This patch reads hscfg_gpio from device tree and update
internal variable

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
---
 drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Kalle Valo Dec. 11, 2015, 8:34 a.m. UTC | #1
+ devicetree list

Amitkumar Karwar <akarwar@marvell.com> writes:

> From: Xinming Hu <huxm@marvell.com>
>
> This patch reads hscfg_gpio from device tree and update
> internal variable
>
> Signed-off-by: Xinming Hu <huxm@marvell.com>
> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
> ---
>  drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> index e486867..d28a53f 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> @@ -1459,10 +1459,21 @@ int mwifiex_dnld_dt_cfgdata(struct mwifiex_private *priv,
>  #ifdef CONFIG_OF
>  	struct property *prop;
>  	size_t len = strlen(prefix);
> +	u32 data;
>  	int ret;
>  
>  	/* look for all matching property names */
>  	for_each_property_of_node(node, prop) {
> +		if (!strncmp(prop->name, "marvell,hscfg_gpio",
> +			     strlen("marvell,hscfg_gpio"))) {
> +			if (!of_property_read_u32(priv->adapter->dt_node,
> +						  prop->name, &data)) {
> +				dev_dbg(priv->adapter->dev,
> +					"hscfg gpio = 0x%x\n", data);
> +				priv->adapter->hs_cfg.gpio = data;
> +			}
> +		}

I don't see this documented in Documentation/devicetree/bindings. Please
create a binding document and review it with the device tree
maintainers.

Actually when looking mwifiex close I see that it uses more undocumented
device tree interfaces:

marvell_cfgdata
marvell,caldata
marvell,00_txpwrlimit

I think these all should be properly documented and reviewed. But I'll
let the device tree people chime in what's the best way.
Amitkumar Karwar Dec. 11, 2015, 9:23 a.m. UTC | #2
Hi Kalle,

> -----Original Message-----
> From: Kalle Valo [mailto:kvalo@codeaurora.org]
> Sent: Friday, December 11, 2015 2:04 PM
> To: Amitkumar Karwar
> Cc: linux-wireless@vger.kernel.org; Nishant Sarmukadam; Xinming Hu;
> devicetree@vger.kernel.org
> Subject: Re: [PATCH] mwifiex: parse hscfg_gpio info from device tree
> 
> + devicetree list
> 
> Amitkumar Karwar <akarwar@marvell.com> writes:
> 
> > From: Xinming Hu <huxm@marvell.com>
> >
> > This patch reads hscfg_gpio from device tree and update internal
> > variable
> >
> > Signed-off-by: Xinming Hu <huxm@marvell.com>
> > Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
> > ---
> >  drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> > b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> > index e486867..d28a53f 100644
> > --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> > +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> > @@ -1459,10 +1459,21 @@ int mwifiex_dnld_dt_cfgdata(struct
> > mwifiex_private *priv,  #ifdef CONFIG_OF
> >  	struct property *prop;
> >  	size_t len = strlen(prefix);
> > +	u32 data;
> >  	int ret;
> >
> >  	/* look for all matching property names */
> >  	for_each_property_of_node(node, prop) {
> > +		if (!strncmp(prop->name, "marvell,hscfg_gpio",
> > +			     strlen("marvell,hscfg_gpio"))) {
> > +			if (!of_property_read_u32(priv->adapter->dt_node,
> > +						  prop->name, &data)) {
> > +				dev_dbg(priv->adapter->dev,
> > +					"hscfg gpio = 0x%x\n", data);
> > +				priv->adapter->hs_cfg.gpio = data;
> > +			}
> > +		}
> 
> I don't see this documented in Documentation/devicetree/bindings. Please
> create a binding document and review it with the device tree
> maintainers.
> 
> Actually when looking mwifiex close I see that it uses more undocumented
> device tree interfaces:
> 
> marvell_cfgdata
> marvell,caldata
> marvell,00_txpwrlimit
> 
> I think these all should be properly documented and reviewed. But I'll
> let the device tree people chime in what's the best way.
> 

Thanks for the review.
Sure. We will document existing DT interfaces and create updated version of this patch which includes documentation in bindings.

Regards,
Amit
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Julian Calaby March 16, 2016, 11:26 p.m. UTC | #3
Hi Amitkumar,

On Fri, Dec 11, 2015 at 8:23 PM, Amitkumar Karwar <akarwar@marvell.com> wrote:
> Hi Kalle,
>
>> -----Original Message-----
>> From: Kalle Valo [mailto:kvalo@codeaurora.org]
>> Sent: Friday, December 11, 2015 2:04 PM
>> To: Amitkumar Karwar
>> Cc: linux-wireless@vger.kernel.org; Nishant Sarmukadam; Xinming Hu;
>> devicetree@vger.kernel.org
>> Subject: Re: [PATCH] mwifiex: parse hscfg_gpio info from device tree
>>
>> + devicetree list
>>
>> Amitkumar Karwar <akarwar@marvell.com> writes:
>>
>> > From: Xinming Hu <huxm@marvell.com>
>> >
>> > This patch reads hscfg_gpio from device tree and update internal
>> > variable
>> >
>> > Signed-off-by: Xinming Hu <huxm@marvell.com>
>> > Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
>> > ---
>> >  drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 11 +++++++++++
>> >  1 file changed, 11 insertions(+)
>> >
>> > diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
>> > b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
>> > index e486867..d28a53f 100644
>> > --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
>> > +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
>> > @@ -1459,10 +1459,21 @@ int mwifiex_dnld_dt_cfgdata(struct
>> > mwifiex_private *priv,  #ifdef CONFIG_OF
>> >     struct property *prop;
>> >     size_t len = strlen(prefix);
>> > +   u32 data;
>> >     int ret;
>> >
>> >     /* look for all matching property names */
>> >     for_each_property_of_node(node, prop) {
>> > +           if (!strncmp(prop->name, "marvell,hscfg_gpio",
>> > +                        strlen("marvell,hscfg_gpio"))) {
>> > +                   if (!of_property_read_u32(priv->adapter->dt_node,
>> > +                                             prop->name, &data)) {
>> > +                           dev_dbg(priv->adapter->dev,
>> > +                                   "hscfg gpio = 0x%x\n", data);
>> > +                           priv->adapter->hs_cfg.gpio = data;
>> > +                   }
>> > +           }
>>
>> I don't see this documented in Documentation/devicetree/bindings. Please
>> create a binding document and review it with the device tree
>> maintainers.
>>
>> Actually when looking mwifiex close I see that it uses more undocumented
>> device tree interfaces:
>>
>> marvell_cfgdata
>> marvell,caldata
>> marvell,00_txpwrlimit
>>
>> I think these all should be properly documented and reviewed. But I'll
>> let the device tree people chime in what's the best way.
>>
>
> Thanks for the review.
> Sure. We will document existing DT interfaces and create updated version of this patch which includes documentation in bindings.

It's been a while since this was reviewed. Do you have an updated
version of this patch?

Thanks,
Amitkumar Karwar March 17, 2016, 1:26 p.m. UTC | #4
SGkgSnVsaWFuLA0KDQo+IEZyb206IEp1bGlhbiBDYWxhYnkgW21haWx0bzpqdWxpYW4uY2FsYWJ5
QGdtYWlsLmNvbV0NCj4gU2VudDogVGh1cnNkYXksIE1hcmNoIDE3LCAyMDE2IDQ6NTYgQU0NCj4g
VG86IEFtaXRrdW1hciBLYXJ3YXINCj4gQ2M6IEthbGxlIFZhbG87IGxpbnV4LXdpcmVsZXNzQHZn
ZXIua2VybmVsLm9yZzsgTmlzaGFudCBTYXJtdWthZGFtOw0KPiBYaW5taW5nIEh1OyBkZXZpY2V0
cmVlQHZnZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSBtd2lmaWV4OiBwYXJz
ZSBoc2NmZ19ncGlvIGluZm8gZnJvbSBkZXZpY2UgdHJlZQ0KPiANCj4gSGkgQW1pdGt1bWFyLA0K
PiANCj4gT24gRnJpLCBEZWMgMTEsIDIwMTUgYXQgODoyMyBQTSwgQW1pdGt1bWFyIEthcndhciA8
YWthcndhckBtYXJ2ZWxsLmNvbT4NCj4gd3JvdGU6DQo+ID4gSGkgS2FsbGUsDQo+ID4NCj4gPj4g
LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogS2FsbGUgVmFsbyBbbWFpbHRv
Omt2YWxvQGNvZGVhdXJvcmEub3JnXQ0KPiA+PiBTZW50OiBGcmlkYXksIERlY2VtYmVyIDExLCAy
MDE1IDI6MDQgUE0NCj4gPj4gVG86IEFtaXRrdW1hciBLYXJ3YXINCj4gPj4gQ2M6IGxpbnV4LXdp
cmVsZXNzQHZnZXIua2VybmVsLm9yZzsgTmlzaGFudCBTYXJtdWthZGFtOyBYaW5taW5nIEh1Ow0K
PiA+PiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENI
XSBtd2lmaWV4OiBwYXJzZSBoc2NmZ19ncGlvIGluZm8gZnJvbSBkZXZpY2UgdHJlZQ0KPiA+Pg0K
PiA+PiArIGRldmljZXRyZWUgbGlzdA0KPiA+Pg0KPiA+PiBBbWl0a3VtYXIgS2Fyd2FyIDxha2Fy
d2FyQG1hcnZlbGwuY29tPiB3cml0ZXM6DQo+ID4+DQo+ID4+ID4gRnJvbTogWGlubWluZyBIdSA8
aHV4bUBtYXJ2ZWxsLmNvbT4NCj4gPj4gPg0KPiA+PiA+IFRoaXMgcGF0Y2ggcmVhZHMgaHNjZmdf
Z3BpbyBmcm9tIGRldmljZSB0cmVlIGFuZCB1cGRhdGUgaW50ZXJuYWwNCj4gPj4gPiB2YXJpYWJs
ZQ0KPiA+PiA+DQo+ID4+ID4gU2lnbmVkLW9mZi1ieTogWGlubWluZyBIdSA8aHV4bUBtYXJ2ZWxs
LmNvbT4NCj4gPj4gPiBTaWduZWQtb2ZmLWJ5OiBBbWl0a3VtYXIgS2Fyd2FyIDxha2Fyd2FyQG1h
cnZlbGwuY29tPg0KPiA+PiA+IC0tLQ0KPiA+PiA+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2
ZWxsL213aWZpZXgvc3RhX2NtZC5jIHwgMTEgKysrKysrKysrKysNCj4gPj4gPiAgMSBmaWxlIGNo
YW5nZWQsIDExIGluc2VydGlvbnMoKykNCj4gPj4gPg0KPiA+PiA+IGRpZmYgLS1naXQgYS9kcml2
ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2NtZC5jDQo+ID4+ID4gYi9kcml2
ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2NtZC5jDQo+ID4+ID4gaW5kZXgg
ZTQ4Njg2Ny4uZDI4YTUzZiAxMDA2NDQNCj4gPj4gPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz
cy9tYXJ2ZWxsL213aWZpZXgvc3RhX2NtZC5jDQo+ID4+ID4gKysrIGIvZHJpdmVycy9uZXQvd2ly
ZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9jbWQuYw0KPiA+PiA+IEBAIC0xNDU5LDEwICsxNDU5
LDIxIEBAIGludCBtd2lmaWV4X2RubGRfZHRfY2ZnZGF0YShzdHJ1Y3QNCj4gPj4gPiBtd2lmaWV4
X3ByaXZhdGUgKnByaXYsICAjaWZkZWYgQ09ORklHX09GDQo+ID4+ID4gICAgIHN0cnVjdCBwcm9w
ZXJ0eSAqcHJvcDsNCj4gPj4gPiAgICAgc2l6ZV90IGxlbiA9IHN0cmxlbihwcmVmaXgpOw0KPiA+
PiA+ICsgICB1MzIgZGF0YTsNCj4gPj4gPiAgICAgaW50IHJldDsNCj4gPj4gPg0KPiA+PiA+ICAg
ICAvKiBsb29rIGZvciBhbGwgbWF0Y2hpbmcgcHJvcGVydHkgbmFtZXMgKi8NCj4gPj4gPiAgICAg
Zm9yX2VhY2hfcHJvcGVydHlfb2Zfbm9kZShub2RlLCBwcm9wKSB7DQo+ID4+ID4gKyAgICAgICAg
ICAgaWYgKCFzdHJuY21wKHByb3AtPm5hbWUsICJtYXJ2ZWxsLGhzY2ZnX2dwaW8iLA0KPiA+PiA+
ICsgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4oIm1hcnZlbGwsaHNjZmdfZ3BpbyIpKSkg
ew0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3UzMihw
cml2LT5hZGFwdGVyLQ0KPiA+ZHRfbm9kZSwNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcC0+bmFtZSwgJmRhdGEpKSB7DQo+ID4+ID4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9kYmcocHJpdi0+YWRhcHRlci0+ZGV2LA0KPiA+
PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoc2NmZyBncGlvID0gMHgl
eFxuIiwgZGF0YSk7DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmFk
YXB0ZXItPmhzX2NmZy5ncGlvID0gZGF0YTsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgIH0N
Cj4gPj4gPiArICAgICAgICAgICB9DQo+ID4+DQo+ID4+IEkgZG9uJ3Qgc2VlIHRoaXMgZG9jdW1l
bnRlZCBpbiBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MuDQo+ID4+IFBsZWFzZSBj
cmVhdGUgYSBiaW5kaW5nIGRvY3VtZW50IGFuZCByZXZpZXcgaXQgd2l0aCB0aGUgZGV2aWNlIHRy
ZWUNCj4gPj4gbWFpbnRhaW5lcnMuDQo+ID4+DQo+ID4+IEFjdHVhbGx5IHdoZW4gbG9va2luZyBt
d2lmaWV4IGNsb3NlIEkgc2VlIHRoYXQgaXQgdXNlcyBtb3JlDQo+ID4+IHVuZG9jdW1lbnRlZCBk
ZXZpY2UgdHJlZSBpbnRlcmZhY2VzOg0KPiA+Pg0KPiA+PiBtYXJ2ZWxsX2NmZ2RhdGENCj4gPj4g
bWFydmVsbCxjYWxkYXRhDQo+ID4+IG1hcnZlbGwsMDBfdHhwd3JsaW1pdA0KPiA+Pg0KPiA+PiBJ
IHRoaW5rIHRoZXNlIGFsbCBzaG91bGQgYmUgcHJvcGVybHkgZG9jdW1lbnRlZCBhbmQgcmV2aWV3
ZWQuIEJ1dA0KPiA+PiBJJ2xsIGxldCB0aGUgZGV2aWNlIHRyZWUgcGVvcGxlIGNoaW1lIGluIHdo
YXQncyB0aGUgYmVzdCB3YXkuDQo+ID4+DQo+ID4NCj4gPiBUaGFua3MgZm9yIHRoZSByZXZpZXcu
DQo+ID4gU3VyZS4gV2Ugd2lsbCBkb2N1bWVudCBleGlzdGluZyBEVCBpbnRlcmZhY2VzIGFuZCBj
cmVhdGUgdXBkYXRlZA0KPiB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2ggd2hpY2ggaW5jbHVkZXMgZG9j
dW1lbnRhdGlvbiBpbiBiaW5kaW5ncy4NCj4gDQo+IEl0J3MgYmVlbiBhIHdoaWxlIHNpbmNlIHRo
aXMgd2FzIHJldmlld2VkLiBEbyB5b3UgaGF2ZSBhbiB1cGRhdGVkDQo+IHZlcnNpb24gb2YgdGhp
cyBwYXRjaD8NCj4gDQoNCldlIHdpbGwgYmUgc3VibWl0dGluZyB1cGRhdGVkIHZlcnNpb24gb2Yg
YmVsb3cgcGF0Y2ggc2VyaWVzIGluIGEgZGF5IG9yIHR3by4gSGVuY2UgdXBkYXRlZCB2ZXJzaW9u
IG9mIHRoaXMgcGF0Y2ggaXMgbm90IG5lZWRlZC4NCg0KaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIw
MTYvMi8yOS8zOTQNCg0KUmVnYXJkcywNCkFtaXRrdW1hcg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
index e486867..d28a53f 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
@@ -1459,10 +1459,21 @@  int mwifiex_dnld_dt_cfgdata(struct mwifiex_private *priv,
 #ifdef CONFIG_OF
 	struct property *prop;
 	size_t len = strlen(prefix);
+	u32 data;
 	int ret;
 
 	/* look for all matching property names */
 	for_each_property_of_node(node, prop) {
+		if (!strncmp(prop->name, "marvell,hscfg_gpio",
+			     strlen("marvell,hscfg_gpio"))) {
+			if (!of_property_read_u32(priv->adapter->dt_node,
+						  prop->name, &data)) {
+				dev_dbg(priv->adapter->dev,
+					"hscfg gpio = 0x%x\n", data);
+				priv->adapter->hs_cfg.gpio = data;
+			}
+		}
+
 		if (len > strlen(prop->name) ||
 		    strncmp(prop->name, prefix, len))
 			continue;