linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/3] Adding Skyworks SKY81452 regulator driver
@ 2014-08-08  9:10 Gyungoh Yoo
  2014-08-13 19:04 ` Mark Brown
  0 siblings, 1 reply; 11+ messages in thread
From: Gyungoh Yoo @ 2014-08-08  9:10 UTC (permalink / raw)
  To: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak
  Cc: lgirdwood, broonie, jack.yoo, devicetree, linux-kernel

Signed-off-by: Gyungoh Yoo <jack.yoo@skyworksinc.com>
---
 .../bindings/regulator/sky81452-regulator.txt      |  16 +++
 drivers/regulator/Kconfig                          |  11 ++
 drivers/regulator/Makefile                         |   1 +
 drivers/regulator/sky81452-regulator.c             | 130 +++++++++++++++++++++
 4 files changed, 158 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
 create mode 100644 drivers/regulator/sky81452-regulator.c

diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
new file mode 100644
index 0000000..f98b5ed
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -0,0 +1,16 @@
+SKY81452 voltage regulator
+
+Required properties:
+- any required generic properties defined in regulator.txt
+
+Optional properties:
+- any available generic properties defined in regulator.txt
+
+Example:
+
+	regualtor {
+		/* generic regulator properties */
+		regulator-name = "touch_en";
+		regulator-min-microvolt = <4500000>;
+		regulator-max-microvolt = <8000000>;
+	};
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 2dc8289..f6bf208 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -483,6 +483,17 @@ config REGULATOR_S5M8767
 	 via I2C bus. S5M8767A have 9 Bucks and 28 LDOs output and
 	 supports DVS mode with 8bits of output voltage control.
 
+config REGULATOR_SKY81452
+	tristate "Skyworks Solutions SKY81452 voltage regulator"
+	depends on SKY81452
+	help
+	  This driver supports Skyworks SKY81452 voltage output regulator
+	  via I2C bus. SKY81452 has one voltage linear regulator can be
+	  programmed from 4.5V to 20V.
+
+	  This driver can also be built as a module. If so, the module
+	  will be called sky81452-regulator.
+
 config REGULATOR_ST_PWM
 	tristate "STMicroelectronics PWM voltage regulator"
 	depends on ARCH_STI
diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
index aa4a6aa..d8206ec 100644
--- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile
@@ -65,6 +65,7 @@ obj-$(CONFIG_REGULATOR_RC5T583)  += rc5t583-regulator.o
 obj-$(CONFIG_REGULATOR_S2MPA01) += s2mpa01.o
 obj-$(CONFIG_REGULATOR_S2MPS11) += s2mps11.o
 obj-$(CONFIG_REGULATOR_S5M8767) += s5m8767.o
+obj-$(CONFIG_REGULATOR_SKY81452) += sky81452-regulator.o
 obj-$(CONFIG_REGULATOR_ST_PWM) += st-pwm.o
 obj-$(CONFIG_REGULATOR_STW481X_VMMC) += stw481x-vmmc.o
 obj-$(CONFIG_REGULATOR_TI_ABB) += ti-abb-regulator.o
diff --git a/drivers/regulator/sky81452-regulator.c b/drivers/regulator/sky81452-regulator.c
new file mode 100644
index 0000000..97aff0c
--- /dev/null
+++ b/drivers/regulator/sky81452-regulator.c
@@ -0,0 +1,130 @@
+/*
+ * sky81452-regulator.c	SKY81452 regulator driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo <jack.yoo@skyworksinc.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/init.h>
+#include <linux/err.h>
+#include <linux/of.h>
+#include <linux/regulator/driver.h>
+#include <linux/regulator/of_regulator.h>
+
+/* registers */
+#define SKY81452_REG1	0x01
+#define SKY81452_REG3	0x03
+
+/* bit mask */
+#define SKY81452_LEN	0x40
+#define SKY81452_LOUT	0x1F
+
+static struct regulator_ops sky81452_reg_ops = {
+	.list_voltage = regulator_list_voltage_linear_range,
+	.map_voltage = regulator_map_voltage_linear_range,
+	.get_voltage_sel = regulator_get_voltage_sel_regmap,
+	.set_voltage_sel = regulator_set_voltage_sel_regmap,
+	.enable = regulator_enable_regmap,
+	.disable = regulator_disable_regmap,
+	.is_enabled = regulator_is_enabled_regmap,
+};
+
+static const struct regulator_linear_range sky81452_reg_ranges[] = {
+	REGULATOR_LINEAR_RANGE(4500000, 0, 14, 250000),
+	REGULATOR_LINEAR_RANGE(9000000, 15, 31, 1000000),
+};
+
+static const struct regulator_desc sky81452_reg = {
+	.name = "LOUT",
+	.ops = &sky81452_reg_ops,
+	.type = REGULATOR_VOLTAGE,
+	.owner = THIS_MODULE,
+	.n_voltages = SKY81452_LOUT + 1,
+	.linear_ranges = sky81452_reg_ranges,
+	.n_linear_ranges = ARRAY_SIZE(sky81452_reg_ranges),
+	.vsel_reg = SKY81452_REG3,
+	.vsel_mask = SKY81452_LOUT,
+	.enable_reg = SKY81452_REG1,
+	.enable_mask = SKY81452_LEN,
+};
+
+#ifdef CONFIG_OF
+static struct regulator_init_data *sky81452_reg_parse_dt(struct device *dev)
+{
+	struct regulator_init_data *init_data;
+	struct device_node *np;
+
+	np = of_get_child_by_name(dev->parent->of_node, "regulator");
+	if (unlikely(!np)) {
+		dev_err(dev, "regulator node not found");
+		return NULL;
+	}
+
+	init_data = of_get_regulator_init_data(dev, np);
+
+	of_node_put(np);
+	return init_data;
+}
+#else
+static struct regulator_init_data *sky81452_reg_parse_dt(struct device *dev)
+{
+	return ERR_PTR(-EINVAL);
+}
+#endif
+
+static int sky81452_reg_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	const struct regulator_init_data *init_data = dev_get_platdata(dev);
+	struct regulator_config config = { };
+	struct regulator_dev *rdev;
+
+	if (!init_data) {
+		init_data = sky81452_reg_parse_dt(dev);
+		if (IS_ERR(init_data))
+			return PTR_ERR(init_data);
+	}
+
+	config.dev = dev;
+	config.init_data = init_data;
+	config.of_node = dev->of_node;
+	config.regmap = dev_get_drvdata(dev->parent);
+
+	rdev = devm_regulator_register(dev, &sky81452_reg, &config);
+	if (IS_ERR(rdev))
+		return PTR_ERR(rdev);
+
+	platform_set_drvdata(pdev, rdev);
+
+	return 0;
+}
+
+static struct platform_driver sky81452_reg_driver = {
+	.driver = {
+		.name = "sky81452-regulator",
+	},
+	.probe = sky81452_reg_probe,
+};
+
+module_platform_driver(sky81452_reg_driver);
+
+MODULE_DESCRIPTION("Skyworks SKY81452 Regulator driver");
+MODULE_AUTHOR("Gyungoh Yoo <jack.yoo@skyworksinc.com>");
+MODULE_LICENSE("GPL");
+MODULE_VERSION("1.0");
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/3] Adding Skyworks SKY81452 regulator driver
  2014-08-08  9:10 [PATCH 2/3] Adding Skyworks SKY81452 regulator driver Gyungoh Yoo
@ 2014-08-13 19:04 ` Mark Brown
  2014-09-01  2:40   ` [PATCH v2.2 0/2] regulator: sky81452: Adding compatible attribute in DT document Gyungoh Yoo
  0 siblings, 1 reply; 11+ messages in thread
From: Mark Brown @ 2014-08-13 19:04 UTC (permalink / raw)
  To: Gyungoh Yoo
  Cc: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak,
	lgirdwood, jack.yoo, devicetree, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 226 bytes --]

On Fri, Aug 08, 2014 at 06:10:22PM +0900, Gyungoh Yoo wrote:
> Signed-off-by: Gyungoh Yoo <jack.yoo@skyworksinc.com>

Applied, thanks.  Please use subject lines matching the style for the
subsystem you are submitting against.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2.2 0/2] regulator: sky81452: Adding compatible attribute in DT document
  2014-08-13 19:04 ` Mark Brown
@ 2014-09-01  2:40   ` Gyungoh Yoo
  2014-09-01  2:40     ` [PATCH v2.2 1/2] regulator: sky81452: Adding compatible attribute in DT Gyungoh Yoo
  2014-09-01  2:40     ` [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator Gyungoh Yoo
  0 siblings, 2 replies; 11+ messages in thread
From: Gyungoh Yoo @ 2014-09-01  2:40 UTC (permalink / raw)
  To: lgirdwood, broonie
  Cc: grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

Adding comptiable attribute in DT document.
Splitted the patches for each subsystem.
Fixed typo in DT document.

Gyungoh Yoo (2):
  regulator: sky81452: Adding compatible attribute in DT
  dt-bindings: Adding compatible attribute for SKY81452 regulator

 .../bindings/regulator/sky81452-regulator.txt      |  4 +++-
 drivers/regulator/sky81452-regulator.c             | 22 ++++++++++++++++------
 2 files changed, 19 insertions(+), 7 deletions(-)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2.2 1/2] regulator: sky81452: Adding compatible attribute in DT
  2014-09-01  2:40   ` [PATCH v2.2 0/2] regulator: sky81452: Adding compatible attribute in DT document Gyungoh Yoo
@ 2014-09-01  2:40     ` Gyungoh Yoo
  2014-09-01  2:40     ` [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator Gyungoh Yoo
  1 sibling, 0 replies; 11+ messages in thread
From: Gyungoh Yoo @ 2014-09-01  2:40 UTC (permalink / raw)
  To: lgirdwood, broonie
  Cc: grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

Adding compatible attriubute in DT.
Fixed typo.

---
 drivers/regulator/sky81452-regulator.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/drivers/regulator/sky81452-regulator.c b/drivers/regulator/sky81452-regulator.c
index 97aff0c..b9c54c6 100644
--- a/drivers/regulator/sky81452-regulator.c
+++ b/drivers/regulator/sky81452-regulator.c
@@ -68,12 +68,11 @@ static const struct regulator_desc sky81452_reg = {
 static struct regulator_init_data *sky81452_reg_parse_dt(struct device *dev)
 {
 	struct regulator_init_data *init_data;
-	struct device_node *np;
+	struct device_node *np = of_node_get(dev->of_node);
 
-	np = of_get_child_by_name(dev->parent->of_node, "regulator");
-	if (unlikely(!np)) {
+	if (!np) {
 		dev_err(dev, "regulator node not found");
-		return NULL;
+		return ERR_PTR(-ENODATA);
 	}
 
 	init_data = of_get_regulator_init_data(dev, np);
@@ -107,17 +106,28 @@ static int sky81452_reg_probe(struct platform_device *pdev)
 	config.regmap = dev_get_drvdata(dev->parent);
 
 	rdev = devm_regulator_register(dev, &sky81452_reg, &config);
-	if (IS_ERR(rdev))
+	if (IS_ERR(rdev)) {
+		dev_err(dev, "failed to register regulator:%d", PTR_ERR(rdev));
 		return PTR_ERR(rdev);
+	}
 
 	platform_set_drvdata(pdev, rdev);
 
 	return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id sky81452_reg_of_match[] = {
+	{ .compatible = "skyworks,sky81452-regulator", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, sky81452_reg_of_match);
+#endif
+
 static struct platform_driver sky81452_reg_driver = {
 	.driver = {
 		.name = "sky81452-regulator",
+		.of_match_table = of_match_ptr(sky81452_reg_of_match),
 	},
 	.probe = sky81452_reg_probe,
 };
@@ -127,4 +137,4 @@ module_platform_driver(sky81452_reg_driver);
 MODULE_DESCRIPTION("Skyworks SKY81452 Regulator driver");
 MODULE_AUTHOR("Gyungoh Yoo <jack.yoo@skyworksinc.com>");
 MODULE_LICENSE("GPL");
-MODULE_VERSION("1.0");
+MODULE_VERSION("1.1");
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator
  2014-09-01  2:40   ` [PATCH v2.2 0/2] regulator: sky81452: Adding compatible attribute in DT document Gyungoh Yoo
  2014-09-01  2:40     ` [PATCH v2.2 1/2] regulator: sky81452: Adding compatible attribute in DT Gyungoh Yoo
@ 2014-09-01  2:40     ` Gyungoh Yoo
  2014-09-01 10:31       ` Mark Brown
  1 sibling, 1 reply; 11+ messages in thread
From: Gyungoh Yoo @ 2014-09-01  2:40 UTC (permalink / raw)
  To: lgirdwood, broonie
  Cc: grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

Adding compatible attribute for SKY81452 regulator driver.

---
 Documentation/devicetree/bindings/regulator/sky81452-regulator.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
index f98b5ed..7b9ff18 100644
--- a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -1,6 +1,7 @@
 SKY81452 voltage regulator
 
 Required properties:
+- compatible	: Must be "skyworks,sky81452-regulator"
 - any required generic properties defined in regulator.txt
 
 Optional properties:
@@ -8,7 +9,8 @@ Optional properties:
 
 Example:
 
-	regualtor {
+	regulator {
+		compatible = "skyworks,sky81452-regulator";
 		/* generic regulator properties */
 		regulator-name = "touch_en";
 		regulator-min-microvolt = <4500000>;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator
  2014-09-01  2:40     ` [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator Gyungoh Yoo
@ 2014-09-01 10:31       ` Mark Brown
  2014-09-05  1:55         ` Gyungoh Yoo
  0 siblings, 1 reply; 11+ messages in thread
From: Mark Brown @ 2014-09-01 10:31 UTC (permalink / raw)
  To: Gyungoh Yoo
  Cc: lgirdwood, grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

[-- Attachment #1: Type: text/plain, Size: 290 bytes --]

On Mon, Sep 01, 2014 at 11:40:18AM +0900, Gyungoh Yoo wrote:
> Adding compatible attribute for SKY81452 regulator driver.

>  Required properties:
> +- compatible	: Must be "skyworks,sky81452-regulator"

Why is this a good idea - can this driver be used for anything other
than a sky81452?

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator
  2014-09-01 10:31       ` Mark Brown
@ 2014-09-05  1:55         ` Gyungoh Yoo
  2014-09-06 14:38           ` Mark Brown
  0 siblings, 1 reply; 11+ messages in thread
From: Gyungoh Yoo @ 2014-09-05  1:55 UTC (permalink / raw)
  To: Mark Brown
  Cc: lgirdwood, grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

On Mon, Sep 01, 2014 at 11:31:58AM +0100, Mark Brown wrote:
> On Mon, Sep 01, 2014 at 11:40:18AM +0900, Gyungoh Yoo wrote:
> > Adding compatible attribute for SKY81452 regulator driver.
> 
> >  Required properties:
> > +- compatible	: Must be "skyworks,sky81452-regulator"
> 
> Why is this a good idea - can this driver be used for anything other
> than a sky81452?

Thank you for the answer.

Yes. There is a possibility that this driver will be used by similar device with SKY81452.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator
  2014-09-05  1:55         ` Gyungoh Yoo
@ 2014-09-06 14:38           ` Mark Brown
  2014-09-11  5:22             ` Gyungoh Yoo
  0 siblings, 1 reply; 11+ messages in thread
From: Mark Brown @ 2014-09-06 14:38 UTC (permalink / raw)
  To: Gyungoh Yoo
  Cc: lgirdwood, grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

[-- Attachment #1: Type: text/plain, Size: 843 bytes --]

On Fri, Sep 05, 2014 at 10:55:07AM +0900, Gyungoh Yoo wrote:
> On Mon, Sep 01, 2014 at 11:31:58AM +0100, Mark Brown wrote:

> > Why is this a good idea - can this driver be used for anything other
> > than a sky81452?

> Yes. There is a possibility that this driver will be used by similar
> device with SKY81452.

OK, so tha was slightly the wrong question.  What added information is
forcing the user to create a subnode and specify a compatible string
providing?  This driver is specifying a block of multiple regulators
with absolute register addresses hard coded into it, there's no real
ability to use the driver in a different configuration here.  As soon as
we see the parent device we already know everything there is to know
about the IP block, having a separate compatible string just forces the
user to do more typing for no gain.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator
  2014-09-06 14:38           ` Mark Brown
@ 2014-09-11  5:22             ` Gyungoh Yoo
  2014-09-15 22:35               ` Mark Brown
  0 siblings, 1 reply; 11+ messages in thread
From: Gyungoh Yoo @ 2014-09-11  5:22 UTC (permalink / raw)
  To: Mark Brown
  Cc: lgirdwood, grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

On Sat, Sep 06, 2014 at 03:38:28PM +0100, Mark Brown wrote:
> On Fri, Sep 05, 2014 at 10:55:07AM +0900, Gyungoh Yoo wrote:
> > On Mon, Sep 01, 2014 at 11:31:58AM +0100, Mark Brown wrote:
> 
> > > Why is this a good idea - can this driver be used for anything other
> > > than a sky81452?
> 
> > Yes. There is a possibility that this driver will be used by similar
> > device with SKY81452.
> 
> OK, so tha was slightly the wrong question.  What added information is
> forcing the user to create a subnode and specify a compatible string
> providing?  This driver is specifying a block of multiple regulators
> with absolute register addresses hard coded into it, there's no real
> ability to use the driver in a different configuration here.  As soon as
> we see the parent device we already know everything there is to know
> about the IP block, having a separate compatible string just forces the
> user to do more typing for no gain.

Thank you for your comments.

By the way,
I knew that compatible string is used for binding a driver.
http://devicetree.org/Device_Tree_Usage#Understanding_the_compatible_Property

And, from kernel 3.6, MFD core has a mechanism for binding of_node
to the driver with of_compatible.

Can I have a question about if it is possible to assign compatible string
for binding driver independently with reusability?

Thanks,
Gyungoh

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator
  2014-09-11  5:22             ` Gyungoh Yoo
@ 2014-09-15 22:35               ` Mark Brown
  2014-09-19  6:17                 ` Gyungoh Yoo
  0 siblings, 1 reply; 11+ messages in thread
From: Mark Brown @ 2014-09-15 22:35 UTC (permalink / raw)
  To: Gyungoh Yoo
  Cc: lgirdwood, grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

[-- Attachment #1: Type: text/plain, Size: 786 bytes --]

On Thu, Sep 11, 2014 at 02:22:30PM +0900, Gyungoh Yoo wrote:

> By the way,
> I knew that compatible string is used for binding a driver.
> http://devicetree.org/Device_Tree_Usage#Understanding_the_compatible_Property

> And, from kernel 3.6, MFD core has a mechanism for binding of_node
> to the driver with of_compatible.

> Can I have a question about if it is possible to assign compatible string
> for binding driver independently with reusability?

Look at a driver like the wm831x regulator drivers - they don't have
device tree but they're reusing a driver for an IP with the base
register for the IP being specified in the MFD.  If convering to DT it
might be reasonable to specify this in device tree, though it's marginal
since the part name in the core is also good enough.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator
  2014-09-15 22:35               ` Mark Brown
@ 2014-09-19  6:17                 ` Gyungoh Yoo
  0 siblings, 0 replies; 11+ messages in thread
From: Gyungoh Yoo @ 2014-09-19  6:17 UTC (permalink / raw)
  To: Mark Brown
  Cc: lgirdwood, grant.likely, robh+dt, linux-kernel, devicetree, Gyungoh Yoo

On Mon, Sep 15, 2014 at 03:35:54PM -0700, Mark Brown wrote:
> On Thu, Sep 11, 2014 at 02:22:30PM +0900, Gyungoh Yoo wrote:
> 
> > By the way,
> > I knew that compatible string is used for binding a driver.
> > http://devicetree.org/Device_Tree_Usage#Understanding_the_compatible_Property
> 
> > And, from kernel 3.6, MFD core has a mechanism for binding of_node
> > to the driver with of_compatible.
> 
> > Can I have a question about if it is possible to assign compatible string
> > for binding driver independently with reusability?
> 
> Look at a driver like the wm831x regulator drivers - they don't have
> device tree but they're reusing a driver for an IP with the base
> register for the IP being specified in the MFD.  If convering to DT it
> might be reasonable to specify this in device tree, though it's marginal
> since the part name in the core is also good enough.

Thank you for your comment.

I agree.
A child driver can look DT up and reference the base information
in MFD with or without compatible string.
My idea was about easy-binding of DT without referencing
parent node because the recent kernel support this infrastructure.
I will add more information in DT to reuse the driver for the IP,
and I will resubmit.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2014-09-19  6:17 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-08  9:10 [PATCH 2/3] Adding Skyworks SKY81452 regulator driver Gyungoh Yoo
2014-08-13 19:04 ` Mark Brown
2014-09-01  2:40   ` [PATCH v2.2 0/2] regulator: sky81452: Adding compatible attribute in DT document Gyungoh Yoo
2014-09-01  2:40     ` [PATCH v2.2 1/2] regulator: sky81452: Adding compatible attribute in DT Gyungoh Yoo
2014-09-01  2:40     ` [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator Gyungoh Yoo
2014-09-01 10:31       ` Mark Brown
2014-09-05  1:55         ` Gyungoh Yoo
2014-09-06 14:38           ` Mark Brown
2014-09-11  5:22             ` Gyungoh Yoo
2014-09-15 22:35               ` Mark Brown
2014-09-19  6:17                 ` Gyungoh Yoo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).