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
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
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.
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
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.
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
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
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.