Message ID | 1353450428-2615-2-git-send-email-dianders@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Nov 20, 2012 at 02:27:04PM -0800, Doug Anderson wrote: > From: Padmavathi Venna <padma.v@samsung.com> > > 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.
Doug Anderson wrote: > > From: Padmavathi Venna <padma.v@samsung.com> > > 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 <padma.v@samsung.com> > Signed-off-by: Doug Anderson <dianders@chromium.org> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, 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
This was suggested by Mark Brown in response to a patch for adding this functionality only for the s3c2410 bus: https://lkml.org/lkml/2012/11/20/681 I have also modified the i2c-pxa driver to use this new functionality but have no good way to test that patch. Hopefully someone else can test and ack. The patch adding the generic functionality could go in even if the i2c-pxa patch needs changes. Doug Anderson (2): i2c-core: dt: Pick i2c bus number from i2c alias if present i2c: pxa: Use i2c-core to get bus number now drivers/i2c/busses/i2c-pxa.c | 8 +--- drivers/i2c/i2c-core.c | 105 ++++++++++++++++++++++++++++++----------- 2 files changed, 78 insertions(+), 35 deletions(-)
On Tue, Nov 20, 2012 at 8:09 PM, Mark Brown <broonie@opensource.wolfsonmicro.com> wrote: > On Tue, Nov 20, 2012 at 02:27:04PM -0800, Doug Anderson wrote: >> From: Padmavathi Venna <padma.v@samsung.com> >> >> 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 > <broonie@opensource.wolfsonmicro.com> wrote: > > On Tue, Nov 20, 2012 at 02:27:04PM -0800, Doug Anderson wrote: > >> From: Padmavathi Venna <padma.v@samsung.com> > >> > >> 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 <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
On Thu, Nov 22, 2012 at 2:26 AM, Doug Anderson <dianders@chromium.org> wrote: > This was suggested by Mark Brown in response to a patch for adding > this functionality only for the s3c2410 bus: > https://lkml.org/lkml/2012/11/20/681 > > I have also modified the i2c-pxa driver to use this new functionality > but have no good way to test that patch. Hopefully someone else can > test and ack. The patch adding the generic functionality could go in > even if the i2c-pxa patch needs changes. > > > Doug Anderson (2): > i2c-core: dt: Pick i2c bus number from i2c alias if present > i2c: pxa: Use i2c-core to get bus number now > > drivers/i2c/busses/i2c-pxa.c | 8 +--- > drivers/i2c/i2c-core.c | 105 ++++++++++++++++++++++++++++++----------- > 2 files changed, 78 insertions(+), 35 deletions(-) > > -- > 1.7.7.3 > > Acked & Tested
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",