Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1704821 > unrolled thread

[PATCH 06/18] staging: typec: fusb302: Get max snk mv/ma/mw from device-properties

Started byHans de Goede <hdegoede@redhat.com>
First post2017-08-06 14:40 +0200
Last post2017-08-06 16:10 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 06/18] staging: typec: fusb302: Get max snk mv/ma/mw from device-properties Hans de Goede <hdegoede@redhat.com> - 2017-08-06 14:40 +0200
    Re: [PATCH 06/18] staging: typec: fusb302: Get max snk mv/ma/mw from  device-properties Guenter Roeck <linux@roeck-us.net> - 2017-08-06 16:10 +0200

#1704821 — [PATCH 06/18] staging: typec: fusb302: Get max snk mv/ma/mw from device-properties

FromHans de Goede <hdegoede@redhat.com>
Date2017-08-06 14:40 +0200
Subject[PATCH 06/18] staging: typec: fusb302: Get max snk mv/ma/mw from device-properties
Message-ID<ubt0C-2al-13@gated-at.bofh.it>
This is board specific info so it should come from board config, such
as devicetree.

I've chosen to prefix these with "fcs," treating them as fusb302 driver
specific. We may want to revisit to replace these with properties which
are part of a (to be written) generic type-c controller devicetree
binding.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/staging/typec/TODO              |  5 +++++
 drivers/staging/typec/fusb302/fusb302.c | 18 +++++++++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/typec/TODO b/drivers/staging/typec/TODO
index bc1f97a2d1bf..98b0dbd5752b 100644
--- a/drivers/staging/typec/TODO
+++ b/drivers/staging/typec/TODO
@@ -11,5 +11,10 @@ tcpm:
 tcpci:
 - Test with real hardware
 
+fusb302:
+- We may want to replace the  "fcs,max-snk-mv", "fcs,max-snk-ma",
+  "fcs,max-snk-mw" and "fcs,operating-snk-mw" device(tree) properties with
+  properties which are part of a generic type-c controller devicetree binding.
+
 Please send patches to Guenter Roeck <linux@roeck-us.net> and copy
 Heikki Krogerus <heikki.krogerus@linux.intel.com>.
diff --git a/drivers/staging/typec/fusb302/fusb302.c b/drivers/staging/typec/fusb302/fusb302.c
index 6baed06a3c0d..8ceaef8ecf17 100644
--- a/drivers/staging/typec/fusb302/fusb302.c
+++ b/drivers/staging/typec/fusb302/fusb302.c
@@ -90,6 +90,7 @@ struct fusb302_chip {
 	struct i2c_client *i2c_client;
 	struct tcpm_port *tcpm_port;
 	struct tcpc_dev tcpc_dev;
+	struct tcpc_config tcpc_config;
 
 	struct regulator *vbus;
 
@@ -1198,7 +1199,6 @@ static const struct tcpc_config fusb302_tcpc_config = {
 
 static void init_tcpc_dev(struct tcpc_dev *fusb302_tcpc_dev)
 {
-	fusb302_tcpc_dev->config = &fusb302_tcpc_config;
 	fusb302_tcpc_dev->init = tcpm_init;
 	fusb302_tcpc_dev->get_vbus = tcpm_get_vbus;
 	fusb302_tcpc_dev->set_cc = tcpm_set_cc;
@@ -1684,7 +1684,9 @@ static int fusb302_probe(struct i2c_client *client,
 {
 	struct fusb302_chip *chip;
 	struct i2c_adapter *adapter;
+	struct device *dev = &client->dev;
 	int ret = 0;
+	u32 val;
 
 	adapter = to_i2c_adapter(client->dev.parent);
 	if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_I2C_BLOCK)) {
@@ -1699,8 +1701,22 @@ static int fusb302_probe(struct i2c_client *client,
 	chip->i2c_client = client;
 	i2c_set_clientdata(client, chip);
 	chip->dev = &client->dev;
+	chip->tcpc_config = fusb302_tcpc_config;
+	chip->tcpc_dev.config = &chip->tcpc_config;
 	mutex_init(&chip->lock);
 
+	if (device_property_read_u32(dev, "fcs,max-snk-mv", &val) == 0)
+		chip->tcpc_config.max_snk_mv = val;
+
+	if (device_property_read_u32(dev, "fcs,max-snk-ma", &val) == 0)
+		chip->tcpc_config.max_snk_ma = val;
+
+	if (device_property_read_u32(dev, "fcs,max-snk-mw", &val) == 0)
+		chip->tcpc_config.max_snk_mw = val;
+
+	if (device_property_read_u32(dev, "fcs,operating-snk-mw", &val) == 0)
+		chip->tcpc_config.operating_snk_mw = val;
+
 	ret = fusb302_debugfs_init(chip);
 	if (ret < 0)
 		return ret;
-- 
2.13.3

[toc] | [next] | [standalone]


#1704849 — Re: [PATCH 06/18] staging: typec: fusb302: Get max snk mv/ma/mw from device-properties

FromGuenter Roeck <linux@roeck-us.net>
Date2017-08-06 16:10 +0200
SubjectRe: [PATCH 06/18] staging: typec: fusb302: Get max snk mv/ma/mw from device-properties
Message-ID<ubupJ-3f0-23@gated-at.bofh.it>
In reply to#1704821
On 08/06/2017 05:35 AM, Hans de Goede wrote:
> This is board specific info so it should come from board config, such
> as devicetree.
> 
> I've chosen to prefix these with "fcs," treating them as fusb302 driver
> specific. We may want to revisit to replace these with properties which
> are part of a (to be written) generic type-c controller devicetree
> binding.
> 
You might want to add dt maintainers here.

> Signed-off-by: Hans de Goede <hdegoede@redhat.com> > ---
>   drivers/staging/typec/TODO              |  5 +++++
>   drivers/staging/typec/fusb302/fusb302.c | 18 +++++++++++++++++-
>   2 files changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/typec/TODO b/drivers/staging/typec/TODO
> index bc1f97a2d1bf..98b0dbd5752b 100644
> --- a/drivers/staging/typec/TODO
> +++ b/drivers/staging/typec/TODO
> @@ -11,5 +11,10 @@ tcpm:
>   tcpci:
>   - Test with real hardware
>   
> +fusb302:
> +- We may want to replace the  "fcs,max-snk-mv", "fcs,max-snk-ma",
> +  "fcs,max-snk-mw" and "fcs,operating-snk-mw" device(tree) properties with
> +  properties which are part of a generic type-c controller devicetree binding.
> +
I think preferred units would be -microvolt, -,icroamp, and -microwatt.

>   Please send patches to Guenter Roeck <linux@roeck-us.net> and copy
>   Heikki Krogerus <heikki.krogerus@linux.intel.com>.
> diff --git a/drivers/staging/typec/fusb302/fusb302.c b/drivers/staging/typec/fusb302/fusb302.c
> index 6baed06a3c0d..8ceaef8ecf17 100644
> --- a/drivers/staging/typec/fusb302/fusb302.c
> +++ b/drivers/staging/typec/fusb302/fusb302.c
> @@ -90,6 +90,7 @@ struct fusb302_chip {
>   	struct i2c_client *i2c_client;
>   	struct tcpm_port *tcpm_port;
>   	struct tcpc_dev tcpc_dev;
> +	struct tcpc_config tcpc_config;
>   
>   	struct regulator *vbus;
>   
> @@ -1198,7 +1199,6 @@ static const struct tcpc_config fusb302_tcpc_config = {
>   
>   static void init_tcpc_dev(struct tcpc_dev *fusb302_tcpc_dev)
>   {
> -	fusb302_tcpc_dev->config = &fusb302_tcpc_config;
>   	fusb302_tcpc_dev->init = tcpm_init;
>   	fusb302_tcpc_dev->get_vbus = tcpm_get_vbus;
>   	fusb302_tcpc_dev->set_cc = tcpm_set_cc;
> @@ -1684,7 +1684,9 @@ static int fusb302_probe(struct i2c_client *client,
>   {
>   	struct fusb302_chip *chip;
>   	struct i2c_adapter *adapter;
> +	struct device *dev = &client->dev;
>   	int ret = 0;
> +	u32 val;
>   
>   	adapter = to_i2c_adapter(client->dev.parent);
>   	if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_I2C_BLOCK)) {
> @@ -1699,8 +1701,22 @@ static int fusb302_probe(struct i2c_client *client,
>   	chip->i2c_client = client;
>   	i2c_set_clientdata(client, chip);
>   	chip->dev = &client->dev;
> +	chip->tcpc_config = fusb302_tcpc_config;
> +	chip->tcpc_dev.config = &chip->tcpc_config;
>   	mutex_init(&chip->lock);
>   
> +	if (device_property_read_u32(dev, "fcs,max-snk-mv", &val) == 0)
> +		chip->tcpc_config.max_snk_mv = val;
> +
> +	if (device_property_read_u32(dev, "fcs,max-snk-ma", &val) == 0)
> +		chip->tcpc_config.max_snk_ma = val;
> +
> +	if (device_property_read_u32(dev, "fcs,max-snk-mw", &val) == 0)
> +		chip->tcpc_config.max_snk_mw = val;
> +
> +	if (device_property_read_u32(dev, "fcs,operating-snk-mw", &val) == 0)
> +		chip->tcpc_config.operating_snk_mw = val;
> +
>   	ret = fusb302_debugfs_init(chip);
>   	if (ret < 0)
>   		return ret;
> 

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web