Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751371AbdHFOD2 (ORCPT ); Sun, 6 Aug 2017 10:03:28 -0400 Received: from bh-25.webhostbox.net ([208.91.199.152]:48828 "EHLO bh-25.webhostbox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751256AbdHFOD0 (ORCPT ); Sun, 6 Aug 2017 10:03:26 -0400 Subject: Re: [PATCH 06/18] staging: typec: fusb302: Get max snk mv/ma/mw from device-properties To: Hans de Goede , Darren Hart , Andy Shevchenko , Wolfram Sang , Sebastian Reichel , Greg Kroah-Hartman , Heikki Krogerus Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, Liam Breck , Tony Lindgren , linux-pm@vger.kernel.org, devel@driverdev.osuosl.org References: <20170806123555.5124-1-hdegoede@redhat.com> <20170806123555.5124-7-hdegoede@redhat.com> From: Guenter Roeck Message-ID: <5c68d491-d3d7-1f6c-d326-b3dce9897786@roeck-us.net> Date: Sun, 6 Aug 2017 07:03:20 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20170806123555.5124-7-hdegoede@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Authenticated_sender: linux@roeck-us.net X-OutGoing-Spam-Status: No, score=-1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bh-25.webhostbox.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roeck-us.net X-Get-Message-Sender-Via: bh-25.webhostbox.net: authenticated_id: linux@roeck-us.net X-Authenticated-Sender: bh-25.webhostbox.net: linux@roeck-us.net X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3342 Lines: 87 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 > --- > 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 and copy > Heikki Krogerus . > 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; >