2012-11-20 22:27:52

by Doug Anderson

[permalink] [raw]
Subject: [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4

This is similar to a recent commit for exynos5250 titled:
ARM: EXYNOS: Add aliases for i2c controller

Adding aliases will be useful to prevent warnings in a future
change. See:
i2c: s3c2410: Get the i2c bus number from alias id

Signed-off-by: Doug Anderson <[email protected]>

---
arch/arm/boot/dts/exynos4.dtsi | 24 ++++++++++++++++--------
1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index a26c3dd..824d362 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -28,6 +28,14 @@
spi0 = &spi_0;
spi1 = &spi_1;
spi2 = &spi_2;
+ i2c0 = &i2c_0;
+ i2c1 = &i2c_1;
+ i2c2 = &i2c_2;
+ i2c3 = &i2c_3;
+ i2c4 = &i2c_4;
+ i2c5 = &i2c_5;
+ i2c6 = &i2c_6;
+ i2c7 = &i2c_7;
};

gic:interrupt-controller@10490000 {
@@ -121,7 +129,7 @@
status = "disabled";
};

- i2c@13860000 {
+ i2c_0: i2c@13860000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
@@ -130,7 +138,7 @@
status = "disabled";
};

- i2c@13870000 {
+ i2c_1: i2c@13870000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
@@ -139,7 +147,7 @@
status = "disabled";
};

- i2c@13880000 {
+ i2c_2: i2c@13880000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
@@ -148,7 +156,7 @@
status = "disabled";
};

- i2c@13890000 {
+ i2c_3: i2c@13890000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
@@ -157,7 +165,7 @@
status = "disabled";
};

- i2c@138A0000 {
+ i2c_4: i2c@138A0000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
@@ -166,7 +174,7 @@
status = "disabled";
};

- i2c@138B0000 {
+ i2c_5: i2c@138B0000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
@@ -175,7 +183,7 @@
status = "disabled";
};

- i2c@138C0000 {
+ i2c_6: i2c@138C0000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
@@ -184,7 +192,7 @@
status = "disabled";
};

- i2c@138D0000 {
+ i2c_7: i2c@138D0000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
--
1.7.7.3


2012-11-20 22:28:12

by Doug Anderson

[permalink] [raw]
Subject: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id

From: Padmavathi Venna <[email protected]>

Get the i2c bus number that the device is connected to using the alias
id. This makes debugging / grokking of kernel messages much easier.

[dianders: slight patch cleanup from Padmavathi's original.]

Signed-off-by: Padmavathi Venna <[email protected]>
Signed-off-by: Doug Anderson <[email protected]>
---
drivers/i2c/busses/i2c-s3c2410.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index 3e0335f..ca43590 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -899,11 +899,19 @@ static void
s3c24xx_i2c_parse_dt(struct device_node *np, struct s3c24xx_i2c *i2c)
{
struct s3c2410_platform_i2c *pdata = i2c->pdata;
+ int id;

if (!np)
return;

- pdata->bus_num = -1; /* i2c bus number is dynamically assigned */
+ id = of_alias_get_id(np, "i2c");
+ if (id < 0) {
+ dev_warn(i2c->dev, "failed to get alias id:%d\n", id);
+ pdata->bus_num = -1;
+ } else {
+ /* i2c bus number is statically assigned from alias */
+ pdata->bus_num = id;
+ }
of_property_read_u32(np, "samsung,i2c-sda-delay", &pdata->sda_delay);
of_property_read_u32(np, "samsung,i2c-slave-addr", &pdata->slave_addr);
of_property_read_u32(np, "samsung,i2c-max-bus-freq",
--
1.7.7.3

2012-11-21 04:09:28

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id

On Tue, Nov 20, 2012 at 02:27:04PM -0800, Doug Anderson wrote:
> From: Padmavathi Venna <[email protected]>
>
> Get the i2c bus number that the device is connected to using the alias
> id. This makes debugging / grokking of kernel messages much easier.

This doesn't look like a s3c2410 specific change - it's a generic device
tree issue. This suggests that it sohuld be implemented in the
framework so that all I2C controllers with DT can use it.

2012-11-21 07:25:33

by Olof Johansson

[permalink] [raw]
Subject: Re: [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4

On Tue, Nov 20, 2012 at 02:27:03PM -0800, Doug Anderson wrote:
> This is similar to a recent commit for exynos5250 titled:
> ARM: EXYNOS: Add aliases for i2c controller
>
> Adding aliases will be useful to prevent warnings in a future
> change. See:
> i2c: s3c2410: Get the i2c bus number from alias id
>
> Signed-off-by: Doug Anderson <[email protected]>

Acked-by: Olof Johansson <[email protected]>

This can go in independently of the pending comment on the i2c driver change
(that it should be done in the core, which makes sense).


-Olof

2012-11-21 09:43:14

by Kukjin Kim

[permalink] [raw]
Subject: RE: [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4

Doug Anderson wrote:
>
> This is similar to a recent commit for exynos5250 titled:
> ARM: EXYNOS: Add aliases for i2c controller
>
> Adding aliases will be useful to prevent warnings in a future
> change. See:
> i2c: s3c2410: Get the i2c bus number from alias id
>
> Signed-off-by: Doug Anderson <[email protected]>
>
> ---
> arch/arm/boot/dts/exynos4.dtsi | 24 ++++++++++++++++--------
> 1 files changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm/boot/dts/exynos4.dtsi
> b/arch/arm/boot/dts/exynos4.dtsi
> index a26c3dd..824d362 100644
> --- a/arch/arm/boot/dts/exynos4.dtsi
> +++ b/arch/arm/boot/dts/exynos4.dtsi
> @@ -28,6 +28,14 @@
> spi0 = &spi_0;
> spi1 = &spi_1;
> spi2 = &spi_2;
> + i2c0 = &i2c_0;
> + i2c1 = &i2c_1;
> + i2c2 = &i2c_2;
> + i2c3 = &i2c_3;
> + i2c4 = &i2c_4;
> + i2c5 = &i2c_5;
> + i2c6 = &i2c_6;
> + i2c7 = &i2c_7;
> };
>
> gic:interrupt-controller@10490000 {
> @@ -121,7 +129,7 @@
> status = "disabled";
> };
>
> - i2c@13860000 {
> + i2c_0: i2c@13860000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> @@ -130,7 +138,7 @@
> status = "disabled";
> };
>
> - i2c@13870000 {
> + i2c_1: i2c@13870000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> @@ -139,7 +147,7 @@
> status = "disabled";
> };
>
> - i2c@13880000 {
> + i2c_2: i2c@13880000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> @@ -148,7 +156,7 @@
> status = "disabled";
> };
>
> - i2c@13890000 {
> + i2c_3: i2c@13890000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> @@ -157,7 +165,7 @@
> status = "disabled";
> };
>
> - i2c@138A0000 {
> + i2c_4: i2c@138A0000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> @@ -166,7 +174,7 @@
> status = "disabled";
> };
>
> - i2c@138B0000 {
> + i2c_5: i2c@138B0000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> @@ -175,7 +183,7 @@
> status = "disabled";
> };
>
> - i2c@138C0000 {
> + i2c_6: i2c@138C0000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> @@ -184,7 +192,7 @@
> status = "disabled";
> };
>
> - i2c@138D0000 {
> + i2c_7: i2c@138D0000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> --
> 1.7.7.3

Applied, thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

2012-11-21 09:43:21

by Kukjin Kim

[permalink] [raw]
Subject: RE: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id

Doug Anderson wrote:
>
> From: Padmavathi Venna <[email protected]>
>
> Get the i2c bus number that the device is connected to using the alias
> id. This makes debugging / grokking of kernel messages much easier.
>
> [dianders: slight patch cleanup from Padmavathi's original.]
>
> Signed-off-by: Padmavathi Venna <[email protected]>
> Signed-off-by: Doug Anderson <[email protected]>

Acked-by: Kukjin Kim <[email protected]>

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

> ---
> drivers/i2c/busses/i2c-s3c2410.c | 10 +++++++++-
> 1 files changed, 9 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-
> s3c2410.c
> index 3e0335f..ca43590 100644
> --- a/drivers/i2c/busses/i2c-s3c2410.c
> +++ b/drivers/i2c/busses/i2c-s3c2410.c
> @@ -899,11 +899,19 @@ static void
> s3c24xx_i2c_parse_dt(struct device_node *np, struct s3c24xx_i2c *i2c)
> {
> struct s3c2410_platform_i2c *pdata = i2c->pdata;
> + int id;
>
> if (!np)
> return;
>
> - pdata->bus_num = -1; /* i2c bus number is dynamically assigned */
> + id = of_alias_get_id(np, "i2c");
> + if (id < 0) {
> + dev_warn(i2c->dev, "failed to get alias id:%d\n", id);
> + pdata->bus_num = -1;
> + } else {
> + /* i2c bus number is statically assigned from alias */
> + pdata->bus_num = id;
> + }
> of_property_read_u32(np, "samsung,i2c-sda-delay", &pdata-
> >sda_delay);
> of_property_read_u32(np, "samsung,i2c-slave-addr", &pdata-
> >slave_addr);
> of_property_read_u32(np, "samsung,i2c-max-bus-freq",
> --
> 1.7.7.3

2012-11-21 18:33:42

by Doug Anderson

[permalink] [raw]
Subject: Re: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id

On Tue, Nov 20, 2012 at 8:09 PM, Mark Brown
<[email protected]> wrote:
> On Tue, Nov 20, 2012 at 02:27:04PM -0800, Doug Anderson wrote:
>> From: Padmavathi Venna <[email protected]>
>>
>> Get the i2c bus number that the device is connected to using the alias
>> id. This makes debugging / grokking of kernel messages much easier.
>
> This doesn't look like a s3c2410 specific change - it's a generic device
> tree issue. This suggests that it sohuld be implemented in the
> framework so that all I2C controllers with DT can use it.

Good suggestion. I have posted a series with the title "Add automatic
bus number support for i2c busses with device tree". It contains the
i2c-core patch as well as a patch removing similar code from the pxa
i2c driver.

Kukjin: please consider this patch abandoned and superseded by the new
i2c-core patch. As Olof said, the patch for adding aliases for
exynos4 should still be fine to apply.


Thanks!

-Doug

2012-11-22 19:35:52

by Kukjin Kim

[permalink] [raw]
Subject: RE: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id

Doug Anderson wrote:
>
> On Tue, Nov 20, 2012 at 8:09 PM, Mark Brown
> <[email protected]> wrote:
> > On Tue, Nov 20, 2012 at 02:27:04PM -0800, Doug Anderson wrote:
> >> From: Padmavathi Venna <[email protected]>
> >>
> >> Get the i2c bus number that the device is connected to using the alias
> >> id. This makes debugging / grokking of kernel messages much easier.
> >
> > This doesn't look like a s3c2410 specific change - it's a generic device
> > tree issue. This suggests that it sohuld be implemented in the
> > framework so that all I2C controllers with DT can use it.
>
> Good suggestion. I have posted a series with the title "Add automatic
> bus number support for i2c busses with device tree". It contains the
> i2c-core patch as well as a patch removing similar code from the pxa
> i2c driver.
>
> Kukjin: please consider this patch abandoned and superseded by the new
> i2c-core patch. As Olof said, the patch for adding aliases for
> exynos4 should still be fine to apply.
>
OK, I see.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.