2012-10-30 18:12:44

by Pantelis Antoniou

[permalink] [raw]
Subject: [PATCH] i2c: pinctrl-ify i2c-omap.c

Enable pinctrl for i2c-omap.

Signed-off-by: Pantelis Antoniou <[email protected]>
---
drivers/i2c/busses/i2c-omap.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index db31eae..4c38aa0 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -44,6 +44,8 @@
#include <linux/i2c-omap.h>
#include <linux/pm_runtime.h>
#include <linux/pm_qos.h>
+#include <linux/pinctrl/consumer.h>
+#include <linux/err.h>

/* I2C controller revisions */
#define OMAP_I2C_OMAP1_REV_2 0x20
@@ -1064,6 +1066,7 @@ omap_i2c_probe(struct platform_device *pdev)
const struct of_device_id *match;
int irq;
int r;
+ struct pinctrl *pinctrl;

/* NOTE: driver uses the static register mapping */
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -1202,6 +1205,13 @@ omap_i2c_probe(struct platform_device *pdev)

of_i2c_register_devices(adap);

+ pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
+ if (IS_ERR(pinctrl))
+ dev_warn(dev->dev, "unable to select pin group\n");
+
+ dev_info(dev->dev, "bus %d rev%d.%d.%d at %d kHz\n", adap->nr,
+ dev->dtrev, dev->rev >> 4, dev->rev & 0xf, dev->speed);
+
pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);

--
1.7.12


2012-10-30 18:18:23

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH] i2c: pinctrl-ify i2c-omap.c

* Pantelis Antoniou <[email protected]> [121030 11:04]:
> Enable pinctrl for i2c-omap.
>
> Signed-off-by: Pantelis Antoniou <[email protected]>

Looks good to me:

Acked-by: Tony Lindgren <[email protected]>

> ---
> drivers/i2c/busses/i2c-omap.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index db31eae..4c38aa0 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -44,6 +44,8 @@
> #include <linux/i2c-omap.h>
> #include <linux/pm_runtime.h>
> #include <linux/pm_qos.h>
> +#include <linux/pinctrl/consumer.h>
> +#include <linux/err.h>
>
> /* I2C controller revisions */
> #define OMAP_I2C_OMAP1_REV_2 0x20
> @@ -1064,6 +1066,7 @@ omap_i2c_probe(struct platform_device *pdev)
> const struct of_device_id *match;
> int irq;
> int r;
> + struct pinctrl *pinctrl;
>
> /* NOTE: driver uses the static register mapping */
> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> @@ -1202,6 +1205,13 @@ omap_i2c_probe(struct platform_device *pdev)
>
> of_i2c_register_devices(adap);
>
> + pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
> + if (IS_ERR(pinctrl))
> + dev_warn(dev->dev, "unable to select pin group\n");
> +
> + dev_info(dev->dev, "bus %d rev%d.%d.%d at %d kHz\n", adap->nr,
> + dev->dtrev, dev->rev >> 4, dev->rev & 0xf, dev->speed);
> +
> pm_runtime_mark_last_busy(dev->dev);
> pm_runtime_put_autosuspend(dev->dev);
>
> --
> 1.7.12
>

2012-10-30 18:59:44

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH] i2c: pinctrl-ify i2c-omap.c

Hi,

On Wed, Oct 31, 2012 at 05:55:30PM +0200, Pantelis Antoniou wrote:
> Enable pinctrl for i2c-omap.
>
> Signed-off-by: Pantelis Antoniou <[email protected]>
> ---
> drivers/i2c/busses/i2c-omap.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index db31eae..4c38aa0 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -44,6 +44,8 @@
> #include <linux/i2c-omap.h>
> #include <linux/pm_runtime.h>
> #include <linux/pm_qos.h>
> +#include <linux/pinctrl/consumer.h>
> +#include <linux/err.h>
>
> /* I2C controller revisions */
> #define OMAP_I2C_OMAP1_REV_2 0x20
> @@ -1064,6 +1066,7 @@ omap_i2c_probe(struct platform_device *pdev)
> const struct of_device_id *match;
> int irq;
> int r;
> + struct pinctrl *pinctrl;
>
> /* NOTE: driver uses the static register mapping */
> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> @@ -1202,6 +1205,13 @@ omap_i2c_probe(struct platform_device *pdev)
>
> of_i2c_register_devices(adap);
>
> + pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
> + if (IS_ERR(pinctrl))
> + dev_warn(dev->dev, "unable to select pin group\n");

if we continue anyway, should this be dev_warn() ? Would you consider
dev_dbg() instead ?

> + dev_info(dev->dev, "bus %d rev%d.%d.%d at %d kHz\n", adap->nr,
> + dev->dtrev, dev->rev >> 4, dev->rev & 0xf, dev->speed);

this dev_info() doesn't look like it's part of $subject. Care to, at
least, add a reasoning for adding this to commit log ?

--
balbi


Attachments:
(No filename) (1.56 kB)
signature.asc (836.00 B)
Digital signature
Download all attachments

2012-10-30 19:00:06

by Pantelis Antoniou

[permalink] [raw]
Subject: Re: [PATCH] i2c: pinctrl-ify i2c-omap.c

Hi Felipe,

On Oct 30, 2012, at 8:53 PM, Felipe Balbi wrote:

> Hi,
>
> On Wed, Oct 31, 2012 at 05:55:30PM +0200, Pantelis Antoniou wrote:
>> Enable pinctrl for i2c-omap.
>>
>> Signed-off-by: Pantelis Antoniou <[email protected]>
>> ---
>> drivers/i2c/busses/i2c-omap.c | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
>> index db31eae..4c38aa0 100644
>> --- a/drivers/i2c/busses/i2c-omap.c
>> +++ b/drivers/i2c/busses/i2c-omap.c
>> @@ -44,6 +44,8 @@
>> #include <linux/i2c-omap.h>
>> #include <linux/pm_runtime.h>
>> #include <linux/pm_qos.h>
>> +#include <linux/pinctrl/consumer.h>
>> +#include <linux/err.h>
>>
>> /* I2C controller revisions */
>> #define OMAP_I2C_OMAP1_REV_2 0x20
>> @@ -1064,6 +1066,7 @@ omap_i2c_probe(struct platform_device *pdev)
>> const struct of_device_id *match;
>> int irq;
>> int r;
>> + struct pinctrl *pinctrl;
>>
>> /* NOTE: driver uses the static register mapping */
>> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> @@ -1202,6 +1205,13 @@ omap_i2c_probe(struct platform_device *pdev)
>>
>> of_i2c_register_devices(adap);
>>
>> + pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>> + if (IS_ERR(pinctrl))
>> + dev_warn(dev->dev, "unable to select pin group\n");
>
> if we continue anyway, should this be dev_warn() ? Would you consider
> dev_dbg() instead ?

Sure. No problem.

>
>> + dev_info(dev->dev, "bus %d rev%d.%d.%d at %d kHz\n", adap->nr,
>> + dev->dtrev, dev->rev >> 4, dev->rev & 0xf, dev->speed);
>
> this dev_info() doesn't look like it's part of $subject. Care to, at
> least, add a reasoning for adding this to commit log ?
>

I'll just remove it...

> --
> balbi

2012-10-30 19:13:41

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH] i2c: pinctrl-ify i2c-omap.c


On Oct 30, 2012, at 2:53 PM, Felipe Balbi wrote:

> Hi,
>
> On Wed, Oct 31, 2012 at 05:55:30PM +0200, Pantelis Antoniou wrote:
>> Enable pinctrl for i2c-omap.
>>
>> Signed-off-by: Pantelis Antoniou <[email protected]>
>> ---
>> drivers/i2c/busses/i2c-omap.c | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
>> index db31eae..4c38aa0 100644
>> --- a/drivers/i2c/busses/i2c-omap.c
>> +++ b/drivers/i2c/busses/i2c-omap.c
>> @@ -44,6 +44,8 @@
>> #include <linux/i2c-omap.h>
>> #include <linux/pm_runtime.h>
>> #include <linux/pm_qos.h>
>> +#include <linux/pinctrl/consumer.h>
>> +#include <linux/err.h>
>>
>> /* I2C controller revisions */
>> #define OMAP_I2C_OMAP1_REV_2 0x20
>> @@ -1064,6 +1066,7 @@ omap_i2c_probe(struct platform_device *pdev)
>> const struct of_device_id *match;
>> int irq;
>> int r;
>> + struct pinctrl *pinctrl;
>>
>> /* NOTE: driver uses the static register mapping */
>> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> @@ -1202,6 +1205,13 @@ omap_i2c_probe(struct platform_device *pdev)
>>
>> of_i2c_register_devices(adap);
>>
>> + pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>> + if (IS_ERR(pinctrl))
>> + dev_warn(dev->dev, "unable to select pin group\n");
>
> if we continue anyway, should this be dev_warn() ? Would you consider
> dev_dbg() instead ?

This has been the convention already in other drivers upstream. Discussed
previously in http://www.spinics.net/lists/arm-kernel/msg192856.html and
http://lkml.org/lkml/2012/9/11/369

That resulted in having dev_warn with a message of "pins are not configured
from the driver" in both leds-gpio and spi-omap2-mcspi. It seems there should
be a good reason to change reporting for the same case here.

-Matt

2012-10-30 20:14:52

by Sebastien Guiriec

[permalink] [raw]
Subject: Re: [PATCH] i2c: pinctrl-ify i2c-omap.c

Hi Pantelis,

Can you look at the early thread?
https://patchwork.kernel.org/patch/1601331/

I send a similar patch earlier with defer probe usage.

Best regards,

Sebastien
On 10/31/2012 04:55 PM, Pantelis Antoniou wrote:
> Enable pinctrl for i2c-omap.
>
> Signed-off-by: Pantelis Antoniou <[email protected]>
> ---
> drivers/i2c/busses/i2c-omap.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index db31eae..4c38aa0 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -44,6 +44,8 @@
> #include <linux/i2c-omap.h>
> #include <linux/pm_runtime.h>
> #include <linux/pm_qos.h>
> +#include <linux/pinctrl/consumer.h>
> +#include <linux/err.h>
>
> /* I2C controller revisions */
> #define OMAP_I2C_OMAP1_REV_2 0x20
> @@ -1064,6 +1066,7 @@ omap_i2c_probe(struct platform_device *pdev)
> const struct of_device_id *match;
> int irq;
> int r;
> + struct pinctrl *pinctrl;
>
> /* NOTE: driver uses the static register mapping */
> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> @@ -1202,6 +1205,13 @@ omap_i2c_probe(struct platform_device *pdev)
>
> of_i2c_register_devices(adap);
>
> + pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
> + if (IS_ERR(pinctrl))
> + dev_warn(dev->dev, "unable to select pin group\n");
> +
> + dev_info(dev->dev, "bus %d rev%d.%d.%d at %d kHz\n", adap->nr,
> + dev->dtrev, dev->rev >> 4, dev->rev & 0xf, dev->speed);
> +
> pm_runtime_mark_last_busy(dev->dev);
> pm_runtime_put_autosuspend(dev->dev);
>
>

2012-10-30 20:18:28

by Pantelis Antoniou

[permalink] [raw]
Subject: Re: [PATCH] i2c: pinctrl-ify i2c-omap.c


On Oct 30, 2012, at 10:14 PM, Sebastien Guiriec wrote:

> Hi Pantelis,
>
> Can you look at the early thread?
> https://patchwork.kernel.org/patch/1601331/
>
> I send a similar patch earlier with defer probe usage.
>
> Best regards,
>
> Sebastien

I see. Well let me drop the patch then.

One less thing to worry about...

Regards

-- Pantelis

> On 10/31/2012 04:55 PM, Pantelis Antoniou wrote:
>> Enable pinctrl for i2c-omap.
>>
>> Signed-off-by: Pantelis Antoniou <[email protected]>
>> ---
>> drivers/i2c/busses/i2c-omap.c | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
>> index db31eae..4c38aa0 100644
>> --- a/drivers/i2c/busses/i2c-omap.c
>> +++ b/drivers/i2c/busses/i2c-omap.c
>> @@ -44,6 +44,8 @@
>> #include <linux/i2c-omap.h>
>> #include <linux/pm_runtime.h>
>> #include <linux/pm_qos.h>
>> +#include <linux/pinctrl/consumer.h>
>> +#include <linux/err.h>
>>
>> /* I2C controller revisions */
>> #define OMAP_I2C_OMAP1_REV_2 0x20
>> @@ -1064,6 +1066,7 @@ omap_i2c_probe(struct platform_device *pdev)
>> const struct of_device_id *match;
>> int irq;
>> int r;
>> + struct pinctrl *pinctrl;
>>
>> /* NOTE: driver uses the static register mapping */
>> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> @@ -1202,6 +1205,13 @@ omap_i2c_probe(struct platform_device *pdev)
>>
>> of_i2c_register_devices(adap);
>>
>> + pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>> + if (IS_ERR(pinctrl))
>> + dev_warn(dev->dev, "unable to select pin group\n");
>> +
>> + dev_info(dev->dev, "bus %d rev%d.%d.%d at %d kHz\n", adap->nr,
>> + dev->dtrev, dev->rev >> 4, dev->rev & 0xf, dev->speed);
>> +
>> pm_runtime_mark_last_busy(dev->dev);
>> pm_runtime_put_autosuspend(dev->dev);
>>
>>
>