All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lu Baolu <baolu.lu@linux.intel.com>
To: felipe.balbi@linux.intel.com,
	Mathias Nyman <mathias.nyman@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Lee Jones <lee.jones@linaro.org>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	MyungJoo Ham <myungjoo.ham@samsung.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	Lu Baolu <baolu.lu@linux.intel.com>
Subject: [PATCH v6 04/10] regulator: fixed: add support for ACPI interface
Date: Mon, 25 Apr 2016 16:04:50 +0800	[thread overview]
Message-ID: <1461571496-9600-5-git-send-email-baolu.lu@linux.intel.com> (raw)
In-Reply-To: <1461571496-9600-1-git-send-email-baolu.lu@linux.intel.com>

Add support to retrieve fixed voltage configure information through
ACPI interface. This is needed for Intel Bay Trail devices, where a
GPIO is used to control the USB vbus.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
---
 drivers/regulator/fixed.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c
index e6f376f..4d0cc84 100644
--- a/drivers/regulator/fixed.c
+++ b/drivers/regulator/fixed.c
@@ -30,6 +30,9 @@
 #include <linux/of_gpio.h>
 #include <linux/regulator/of_regulator.h>
 #include <linux/regulator/machine.h>
+#include <linux/acpi.h>
+#include <linux/property.h>
+#include <linux/gpio/consumer.h>
 
 struct fixed_voltage_data {
 	struct regulator_desc desc;
@@ -104,6 +107,46 @@ of_get_fixed_voltage_config(struct device *dev,
 	return config;
 }
 
+/**
+ * acpi_get_fixed_voltage_config - extract fixed_voltage_config structure info
+ * @dev: device requesting for fixed_voltage_config
+ * @desc: regulator description
+ *
+ * Populates fixed_voltage_config structure by extracting data through ACPI
+ * interface, returns a pointer to the populated structure of NULL if memory
+ * alloc fails.
+ */
+static struct fixed_voltage_config *
+acpi_get_fixed_voltage_config(struct device *dev,
+			      const struct regulator_desc *desc)
+{
+	struct fixed_voltage_config *config;
+	const char *supply_name, *gpio_name;
+	struct gpio_desc *gpiod;
+	int ret;
+
+	config = devm_kzalloc(dev, sizeof(*config), GFP_KERNEL);
+	if (!config)
+		return ERR_PTR(-ENOMEM);
+
+	ret = device_property_read_string(dev, "supply-name", &supply_name);
+	if (!ret)
+		config->supply_name = supply_name;
+
+	ret = device_property_read_string(dev, "gpio-name", &gpio_name);
+	if (!ret) {
+		gpiod = gpiod_get(dev, gpio_name, GPIOD_ASIS);
+		if (!IS_ERR(gpiod)) {
+			config->gpio = desc_to_gpio(gpiod);
+			config->enable_high = device_property_read_bool(dev,
+							"enable-active-high");
+			gpiod_put(gpiod);
+		}
+	}
+
+	return config;
+}
+
 static struct regulator_ops fixed_voltage_ops = {
 };
 
@@ -124,6 +167,11 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev)
 						     &drvdata->desc);
 		if (IS_ERR(config))
 			return PTR_ERR(config);
+	} else if (ACPI_HANDLE(&pdev->dev)) {
+		config = acpi_get_fixed_voltage_config(&pdev->dev,
+						       &drvdata->desc);
+		if (IS_ERR(config))
+			return PTR_ERR(config);
 	} else {
 		config = dev_get_platdata(&pdev->dev);
 	}
-- 
2.1.4

  parent reply	other threads:[~2016-04-25  8:05 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-25  8:04 [PATCH v6 00/10] usb: add support for Intel dual role port mux Lu Baolu
2016-04-25  8:04 ` [PATCH v6 01/10] extcon: usb-gpio: add device binding for platform device Lu Baolu
2016-04-25 23:51   ` Chanwoo Choi
2016-04-26  0:42     ` Lu Baolu
2016-04-25  8:04 ` [PATCH v6 02/10] extcon: usb-gpio: add support for ACPI gpio interface Lu Baolu
2016-04-25 23:51   ` Chanwoo Choi
2016-04-26  0:43     ` Lu Baolu
2016-04-25  8:04 ` [PATCH v6 03/10] regulator: fixed: add device binding for platform device Lu Baolu
2016-04-25 16:40   ` Mark Brown
2016-04-26  2:12     ` Lu Baolu
2016-04-25  8:04 ` Lu Baolu [this message]
2016-04-25 17:30   ` [PATCH v6 04/10] regulator: fixed: add support for ACPI interface Mark Brown
2016-04-26  2:24     ` Lu Baolu
2016-04-26 10:23       ` Mark Brown
2016-04-27  1:54         ` Lu Baolu
2016-04-27 12:33           ` Mark Brown
2016-04-28  5:55             ` Lu Baolu
2016-04-28 17:15               ` Mark Brown
2016-04-29  0:31                 ` Lu Baolu
2016-04-25  8:04 ` [PATCH v6 05/10] usb: mux: add generic code for dual role port mux Lu Baolu
2016-04-25  8:04 ` [PATCH v6 06/10] usb: mux: add driver for Intel gpio controlled " Lu Baolu
2016-04-25  8:04 ` [PATCH v6 07/10] usb: mux: add driver for Intel drcfg " Lu Baolu
2016-04-25  8:04 ` [PATCH v6 08/10] mfd: intel_vuport: Add Intel virtual USB port MFD Driver Lu Baolu
2016-04-25  8:04 ` [PATCH v6 09/10] usb: pci-quirks: add Intel USB drcfg mux device Lu Baolu
2016-04-25  8:04 ` [PATCH v6 10/10] MAINTAINERS: add maintainer entry for Intel USB dual role mux drivers Lu Baolu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1461571496-9600-5-git-send-email-baolu.lu@linux.intel.com \
    --to=baolu.lu@linux.intel.com \
    --cc=broonie@kernel.org \
    --cc=cw00.choi@samsung.com \
    --cc=felipe.balbi@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=myungjoo.ham@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.