* [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 @ 2012-11-20 22:27 Doug Anderson 2012-11-20 22:27 ` [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id Doug Anderson ` (2 more replies) 0 siblings, 3 replies; 25+ messages in thread From: Doug Anderson @ 2012-11-20 22:27 UTC (permalink / raw) To: linux-samsung-soc Cc: linux-i2c, Olof Johansson, Thomas Abraham, Kukjin Kim, Doug Anderson, Russell King, Tomasz Figa, Kyungmin Park, linux-arm-kernel, linux-kernel 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 <dianders@chromium.org> --- 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 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id 2012-11-20 22:27 [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 Doug Anderson @ 2012-11-20 22:27 ` Doug Anderson [not found] ` <1353450428-2615-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> [not found] ` <1353450428-2615-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2012-11-21 9:43 ` Kukjin Kim 2 siblings, 1 reply; 25+ messages in thread From: Doug Anderson @ 2012-11-20 22:27 UTC (permalink / raw) To: linux-samsung-soc Cc: linux-i2c, Olof Johansson, Thomas Abraham, Kukjin Kim, Padmavathi Venna, Doug Anderson, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-kernel 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> --- 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 ^ permalink raw reply related [flat|nested] 25+ messages in thread
[parent not found: <1353450428-2615-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>]
* Re: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id [not found] ` <1353450428-2615-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> @ 2012-11-21 4:09 ` Mark Brown 2012-11-21 18:33 ` Doug Anderson 2012-11-21 9:43 ` Kukjin Kim 2012-11-21 18:26 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2 siblings, 1 reply; 25+ messages in thread From: Mark Brown @ 2012-11-21 4:09 UTC (permalink / raw) To: Doug Anderson Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, linux-i2c-u79uwXL29TY76Z2rM5mHXA, Olof Johansson, Thomas Abraham, Kukjin Kim, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA On Tue, Nov 20, 2012 at 02:27:04PM -0800, Doug Anderson wrote: > From: Padmavathi Venna <padma.v-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> > > 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. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id 2012-11-21 4:09 ` Mark Brown @ 2012-11-21 18:33 ` Doug Anderson 2012-11-22 6:56 ` Kukjin Kim 0 siblings, 1 reply; 25+ messages in thread From: Doug Anderson @ 2012-11-21 18:33 UTC (permalink / raw) To: Mark Brown Cc: linux-samsung-soc, linux-i2c, Olof Johansson, Thomas Abraham, Kukjin Kim, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-kernel 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 ^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id 2012-11-21 18:33 ` Doug Anderson @ 2012-11-22 6:56 ` Kukjin Kim 0 siblings, 0 replies; 25+ messages in thread From: Kukjin Kim @ 2012-11-22 6:56 UTC (permalink / raw) To: 'Doug Anderson', 'Mark Brown' Cc: linux-samsung-soc, 'Padmavathi Venna', 'Wolfram Sang', linux-kernel, 'Thomas Abraham', linux-i2c, 'Ben Dooks', 'Olof Johansson', linux-arm-kernel 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. ^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id [not found] ` <1353450428-2615-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2012-11-21 4:09 ` Mark Brown @ 2012-11-21 9:43 ` Kukjin Kim 2012-11-21 18:26 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2 siblings, 0 replies; 25+ messages in thread From: Kukjin Kim @ 2012-11-21 9:43 UTC (permalink / raw) To: 'Doug Anderson', linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, 'Olof Johansson', 'Thomas Abraham', 'Padmavathi Venna', 'Ben Dooks', 'Wolfram Sang', linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA Doug Anderson wrote: > > From: Padmavathi Venna <padma.v-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> > > 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-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> > Signed-off-by: Doug Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> Acked-by: Kukjin Kim <kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>, 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 ^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH 0/2] Add automatic bus number support for i2c busses with device tree [not found] ` <1353450428-2615-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2012-11-21 4:09 ` Mark Brown 2012-11-21 9:43 ` Kukjin Kim @ 2012-11-21 18:26 ` Doug Anderson 2012-11-21 18:26 ` [PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson ` (2 more replies) 2 siblings, 3 replies; 25+ messages in thread From: Doug Anderson @ 2012-11-21 18:26 UTC (permalink / raw) To: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Haojian Zhuang, Arnd Bergmann, Doug Anderson 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 ^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present 2012-11-21 18:26 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson @ 2012-11-21 18:26 ` Doug Anderson 2012-12-05 1:45 ` Haojian Zhuang 2013-01-11 17:57 ` [REPOST PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson [not found] ` <1353522362-25519-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2012-12-05 1:48 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Haojian Zhuang 2 siblings, 2 replies; 25+ messages in thread From: Doug Anderson @ 2012-11-21 18:26 UTC (permalink / raw) To: linux-i2c, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Doug Anderson, linux-kernel This allows you to get the equivalent functionality of i2c_add_numbered_adapter() with all data in the device tree and no special case code in your driver. This is a common device tree technique. For quick reference, the FDT syntax for using an alias to provide an ID looks like: aliases { i2c0 = &i2c_0; i2c1 = &i2c_1; }; Signed-off-by: Doug Anderson <dianders@chromium.org> CC: Mark Brown <broonie@opensource.wolfsonmicro.com> --- drivers/i2c/i2c-core.c | 105 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 77 insertions(+), 28 deletions(-) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index a7edf98..71deb2a2 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -915,13 +915,81 @@ out_list: } /** + * i2c_get_number_from_dt - get the adapter number based on dt alias + * @adap: the adapter to look at + * + * Check whether there's an alias in the FDT that gives an ID for this i2c + * device. Use an alias like "i2c<nr>", like: + * aliases { + * i2c0 = &i2c_0; + * i2c1 = &i2c_1; + * }; + * + * Returns the ID if found. If no alias is found returns -1. + */ +static int i2c_get_number_from_dt(struct i2c_adapter *adap) +{ + struct device *dev = &adap->dev; + int id; + + if (!dev->of_node) + return -1; + + id = of_alias_get_id(dev->of_node, "i2c"); + if (id < 0) + return -1; + return id; +} + +/** + * _i2c_add_numbered_adapter - i2c_add_numbered_adapter where nr is never -1 + * @adap: the adapter to register (with adap->nr initialized) + * Context: can sleep + * + * See i2c_add_numbered_adapter() for details. + */ +static int _i2c_add_numbered_adapter(struct i2c_adapter *adap) +{ + int id; + int status; + + /* Handled by wrappers */ + BUG_ON(adap->nr == -1); + + if (adap->nr & ~MAX_IDR_MASK) + return -EINVAL; + +retry: + if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) + return -ENOMEM; + + mutex_lock(&core_lock); + /* "above" here means "above or equal to", sigh; + * we need the "equal to" result to force the result + */ + status = idr_get_new_above(&i2c_adapter_idr, adap, adap->nr, &id); + if (status == 0 && id != adap->nr) { + status = -EBUSY; + idr_remove(&i2c_adapter_idr, id); + } + mutex_unlock(&core_lock); + if (status == -EAGAIN) + goto retry; + + if (status == 0) + status = i2c_register_adapter(adap); + return status; +} + +/** * i2c_add_adapter - declare i2c adapter, use dynamic bus number * @adapter: the adapter to add * Context: can sleep * * This routine is used to declare an I2C adapter when its bus number - * doesn't matter. Examples: for I2C adapters dynamically added by - * USB links or PCI plugin cards. + * doesn't matter or when its bus number is specified by an dt alias. + * Examples of bases when the bus number doesn't matter: I2C adapters + * dynamically added by USB links or PCI plugin cards. * * When this returns zero, a new bus number was allocated and stored * in adap->nr, and the specified adapter became available for clients. @@ -931,6 +999,12 @@ int i2c_add_adapter(struct i2c_adapter *adapter) { int id, res = 0; + id = i2c_get_number_from_dt(adapter); + if (id >= 0) { + adapter->nr = id; + return _i2c_add_numbered_adapter(adapter); + } + retry: if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) return -ENOMEM; @@ -977,34 +1051,9 @@ EXPORT_SYMBOL(i2c_add_adapter); */ int i2c_add_numbered_adapter(struct i2c_adapter *adap) { - int id; - int status; - if (adap->nr == -1) /* -1 means dynamically assign bus id */ return i2c_add_adapter(adap); - if (adap->nr & ~MAX_IDR_MASK) - return -EINVAL; - -retry: - if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) - return -ENOMEM; - - mutex_lock(&core_lock); - /* "above" here means "above or equal to", sigh; - * we need the "equal to" result to force the result - */ - status = idr_get_new_above(&i2c_adapter_idr, adap, adap->nr, &id); - if (status == 0 && id != adap->nr) { - status = -EBUSY; - idr_remove(&i2c_adapter_idr, id); - } - mutex_unlock(&core_lock); - if (status == -EAGAIN) - goto retry; - - if (status == 0) - status = i2c_register_adapter(adap); - return status; + return _i2c_add_numbered_adapter(adap); } EXPORT_SYMBOL_GPL(i2c_add_numbered_adapter); -- 1.7.7.3 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present 2012-11-21 18:26 ` [PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson @ 2012-12-05 1:45 ` Haojian Zhuang 2013-01-11 17:57 ` [REPOST PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 1 sibling, 0 replies; 25+ messages in thread From: Haojian Zhuang @ 2012-12-05 1:45 UTC (permalink / raw) To: Doug Anderson Cc: linux-i2c, Mark Brown, Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel@lists.infradead.org, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, linux-kernel@vger.kernel.org On Thu, Nov 22, 2012 at 2:26 AM, Doug Anderson <dianders@chromium.org> wrote: > This allows you to get the equivalent functionality of > i2c_add_numbered_adapter() with all data in the device tree and no > special case code in your driver. This is a common device tree > technique. > > For quick reference, the FDT syntax for using an alias to provide an > ID looks like: > aliases { > i2c0 = &i2c_0; > i2c1 = &i2c_1; > }; > > Signed-off-by: Doug Anderson <dianders@chromium.org> > CC: Mark Brown <broonie@opensource.wolfsonmicro.com> > > --- > drivers/i2c/i2c-core.c | 105 +++++++++++++++++++++++++++++++++++------------- > 1 files changed, 77 insertions(+), 28 deletions(-) > Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> ^ permalink raw reply [flat|nested] 25+ messages in thread
* [REPOST PATCH 0/2] Add automatic bus number support for i2c busses with device tree 2012-11-21 18:26 ` [PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson 2012-12-05 1:45 ` Haojian Zhuang @ 2013-01-11 17:57 ` Doug Anderson 2013-01-11 17:57 ` [REPOST PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson 2013-01-11 17:57 ` [REPOST PATCH " Doug Anderson 1 sibling, 2 replies; 25+ messages in thread From: Doug Anderson @ 2013-01-11 17:57 UTC (permalink / raw) To: linux-i2c, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Doug Anderson, Karol Lewandowski, linux-kernel, Andrew Morton 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. As Haojian Zhuang has Acked this patch, I believe that this has now been tested. Reposting (with Haojian Zhuang's ack) in the hopes that a maintainer will pick it up. :) 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 ^ permalink raw reply [flat|nested] 25+ messages in thread
* [REPOST PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present 2013-01-11 17:57 ` [REPOST PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson @ 2013-01-11 17:57 ` Doug Anderson 2013-01-14 18:53 ` [PATCH v2 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2013-01-11 17:57 ` [REPOST PATCH " Doug Anderson 1 sibling, 1 reply; 25+ messages in thread From: Doug Anderson @ 2013-01-11 17:57 UTC (permalink / raw) To: linux-i2c, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Doug Anderson, linux-kernel This allows you to get the equivalent functionality of i2c_add_numbered_adapter() with all data in the device tree and no special case code in your driver. This is a common device tree technique. For quick reference, the FDT syntax for using an alias to provide an ID looks like: aliases { i2c0 = &i2c_0; i2c1 = &i2c_1; }; Signed-off-by: Doug Anderson <dianders@chromium.org> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> --- drivers/i2c/i2c-core.c | 105 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 77 insertions(+), 28 deletions(-) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index e388590..a60ed6d 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -921,13 +921,81 @@ out_list: } /** + * i2c_get_number_from_dt - get the adapter number based on dt alias + * @adap: the adapter to look at + * + * Check whether there's an alias in the FDT that gives an ID for this i2c + * device. Use an alias like "i2c<nr>", like: + * aliases { + * i2c0 = &i2c_0; + * i2c1 = &i2c_1; + * }; + * + * Returns the ID if found. If no alias is found returns -1. + */ +static int i2c_get_number_from_dt(struct i2c_adapter *adap) +{ + struct device *dev = &adap->dev; + int id; + + if (!dev->of_node) + return -1; + + id = of_alias_get_id(dev->of_node, "i2c"); + if (id < 0) + return -1; + return id; +} + +/** + * _i2c_add_numbered_adapter - i2c_add_numbered_adapter where nr is never -1 + * @adap: the adapter to register (with adap->nr initialized) + * Context: can sleep + * + * See i2c_add_numbered_adapter() for details. + */ +static int _i2c_add_numbered_adapter(struct i2c_adapter *adap) +{ + int id; + int status; + + /* Handled by wrappers */ + BUG_ON(adap->nr == -1); + + if (adap->nr & ~MAX_IDR_MASK) + return -EINVAL; + +retry: + if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) + return -ENOMEM; + + mutex_lock(&core_lock); + /* "above" here means "above or equal to", sigh; + * we need the "equal to" result to force the result + */ + status = idr_get_new_above(&i2c_adapter_idr, adap, adap->nr, &id); + if (status == 0 && id != adap->nr) { + status = -EBUSY; + idr_remove(&i2c_adapter_idr, id); + } + mutex_unlock(&core_lock); + if (status == -EAGAIN) + goto retry; + + if (status == 0) + status = i2c_register_adapter(adap); + return status; +} + +/** * i2c_add_adapter - declare i2c adapter, use dynamic bus number * @adapter: the adapter to add * Context: can sleep * * This routine is used to declare an I2C adapter when its bus number - * doesn't matter. Examples: for I2C adapters dynamically added by - * USB links or PCI plugin cards. + * doesn't matter or when its bus number is specified by an dt alias. + * Examples of bases when the bus number doesn't matter: I2C adapters + * dynamically added by USB links or PCI plugin cards. * * When this returns zero, a new bus number was allocated and stored * in adap->nr, and the specified adapter became available for clients. @@ -937,6 +1005,12 @@ int i2c_add_adapter(struct i2c_adapter *adapter) { int id, res = 0; + id = i2c_get_number_from_dt(adapter); + if (id >= 0) { + adapter->nr = id; + return _i2c_add_numbered_adapter(adapter); + } + retry: if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) return -ENOMEM; @@ -983,34 +1057,9 @@ EXPORT_SYMBOL(i2c_add_adapter); */ int i2c_add_numbered_adapter(struct i2c_adapter *adap) { - int id; - int status; - if (adap->nr == -1) /* -1 means dynamically assign bus id */ return i2c_add_adapter(adap); - if (adap->nr & ~MAX_IDR_MASK) - return -EINVAL; - -retry: - if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) - return -ENOMEM; - - mutex_lock(&core_lock); - /* "above" here means "above or equal to", sigh; - * we need the "equal to" result to force the result - */ - status = idr_get_new_above(&i2c_adapter_idr, adap, adap->nr, &id); - if (status == 0 && id != adap->nr) { - status = -EBUSY; - idr_remove(&i2c_adapter_idr, id); - } - mutex_unlock(&core_lock); - if (status == -EAGAIN) - goto retry; - - if (status == 0) - status = i2c_register_adapter(adap); - return status; + return _i2c_add_numbered_adapter(adap); } EXPORT_SYMBOL_GPL(i2c_add_numbered_adapter); -- 1.7.7.3 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v2 0/2] Add automatic bus number support for i2c busses with device tree 2013-01-11 17:57 ` [REPOST PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson @ 2013-01-14 18:53 ` Doug Anderson 2013-01-14 18:53 ` [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson 2013-01-14 18:53 ` [PATCH v2 2/2] i2c: pxa: Use i2c-core to get bus number now Doug Anderson 0 siblings, 2 replies; 25+ messages in thread From: Doug Anderson @ 2013-01-14 18:53 UTC (permalink / raw) To: linux-i2c, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Sylwester Nawrocki, Doug Anderson, Karol Lewandowski, linux-kernel, Haojian Zhuang, Andrew Morton 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. Changes in v2: - No longer tweak pdev->id as per Sylwester Nawrocki. - No longer add the dev ID to the adap.name. Other drivers don't include the device ID here and it doesn't make sense with dynamically (or automatically) allocated IDs. - Use dev_name(&dev->dev) to register for the IRQ; this matches what the i2c-s3c2410.c does and handles dynamically allocated IDs. - This change was only compile-tested (corgi_defconfig), since I don't have access to a board that uses this driver. 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 | 20 ++++---- drivers/i2c/i2c-core.c | 105 ++++++++++++++++++++++++++++++----------- 2 files changed, 86 insertions(+), 39 deletions(-) -- 1.7.7.3 ^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present 2013-01-14 18:53 ` [PATCH v2 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson @ 2013-01-14 18:53 ` Doug Anderson [not found] ` <1358189602-24180-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2013-01-14 18:53 ` [PATCH v2 2/2] i2c: pxa: Use i2c-core to get bus number now Doug Anderson 1 sibling, 1 reply; 25+ messages in thread From: Doug Anderson @ 2013-01-14 18:53 UTC (permalink / raw) To: linux-i2c, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Sylwester Nawrocki, Doug Anderson, linux-kernel This allows you to get the equivalent functionality of i2c_add_numbered_adapter() with all data in the device tree and no special case code in your driver. This is a common device tree technique. For quick reference, the FDT syntax for using an alias to provide an ID looks like: aliases { i2c0 = &i2c_0; i2c1 = &i2c_1; }; Signed-off-by: Doug Anderson <dianders@chromium.org> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> --- Changes in v2: None drivers/i2c/i2c-core.c | 105 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 77 insertions(+), 28 deletions(-) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index e388590..a60ed6d 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -921,13 +921,81 @@ out_list: } /** + * i2c_get_number_from_dt - get the adapter number based on dt alias + * @adap: the adapter to look at + * + * Check whether there's an alias in the FDT that gives an ID for this i2c + * device. Use an alias like "i2c<nr>", like: + * aliases { + * i2c0 = &i2c_0; + * i2c1 = &i2c_1; + * }; + * + * Returns the ID if found. If no alias is found returns -1. + */ +static int i2c_get_number_from_dt(struct i2c_adapter *adap) +{ + struct device *dev = &adap->dev; + int id; + + if (!dev->of_node) + return -1; + + id = of_alias_get_id(dev->of_node, "i2c"); + if (id < 0) + return -1; + return id; +} + +/** + * _i2c_add_numbered_adapter - i2c_add_numbered_adapter where nr is never -1 + * @adap: the adapter to register (with adap->nr initialized) + * Context: can sleep + * + * See i2c_add_numbered_adapter() for details. + */ +static int _i2c_add_numbered_adapter(struct i2c_adapter *adap) +{ + int id; + int status; + + /* Handled by wrappers */ + BUG_ON(adap->nr == -1); + + if (adap->nr & ~MAX_IDR_MASK) + return -EINVAL; + +retry: + if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) + return -ENOMEM; + + mutex_lock(&core_lock); + /* "above" here means "above or equal to", sigh; + * we need the "equal to" result to force the result + */ + status = idr_get_new_above(&i2c_adapter_idr, adap, adap->nr, &id); + if (status == 0 && id != adap->nr) { + status = -EBUSY; + idr_remove(&i2c_adapter_idr, id); + } + mutex_unlock(&core_lock); + if (status == -EAGAIN) + goto retry; + + if (status == 0) + status = i2c_register_adapter(adap); + return status; +} + +/** * i2c_add_adapter - declare i2c adapter, use dynamic bus number * @adapter: the adapter to add * Context: can sleep * * This routine is used to declare an I2C adapter when its bus number - * doesn't matter. Examples: for I2C adapters dynamically added by - * USB links or PCI plugin cards. + * doesn't matter or when its bus number is specified by an dt alias. + * Examples of bases when the bus number doesn't matter: I2C adapters + * dynamically added by USB links or PCI plugin cards. * * When this returns zero, a new bus number was allocated and stored * in adap->nr, and the specified adapter became available for clients. @@ -937,6 +1005,12 @@ int i2c_add_adapter(struct i2c_adapter *adapter) { int id, res = 0; + id = i2c_get_number_from_dt(adapter); + if (id >= 0) { + adapter->nr = id; + return _i2c_add_numbered_adapter(adapter); + } + retry: if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) return -ENOMEM; @@ -983,34 +1057,9 @@ EXPORT_SYMBOL(i2c_add_adapter); */ int i2c_add_numbered_adapter(struct i2c_adapter *adap) { - int id; - int status; - if (adap->nr == -1) /* -1 means dynamically assign bus id */ return i2c_add_adapter(adap); - if (adap->nr & ~MAX_IDR_MASK) - return -EINVAL; - -retry: - if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) - return -ENOMEM; - - mutex_lock(&core_lock); - /* "above" here means "above or equal to", sigh; - * we need the "equal to" result to force the result - */ - status = idr_get_new_above(&i2c_adapter_idr, adap, adap->nr, &id); - if (status == 0 && id != adap->nr) { - status = -EBUSY; - idr_remove(&i2c_adapter_idr, id); - } - mutex_unlock(&core_lock); - if (status == -EAGAIN) - goto retry; - - if (status == 0) - status = i2c_register_adapter(adap); - return status; + return _i2c_add_numbered_adapter(adap); } EXPORT_SYMBOL_GPL(i2c_add_numbered_adapter); -- 1.7.7.3 ^ permalink raw reply related [flat|nested] 25+ messages in thread
[parent not found: <1358189602-24180-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>]
* Re: [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present [not found] ` <1358189602-24180-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> @ 2013-01-15 6:34 ` Olof Johansson 2013-02-10 12:19 ` Wolfram Sang 1 sibling, 0 replies; 25+ messages in thread From: Olof Johansson @ 2013-01-15 6:34 UTC (permalink / raw) To: Doug Anderson Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Mark Brown, Kukjin Kim, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Haojian Zhuang, Arnd Bergmann, Sylwester Nawrocki, linux-kernel-u79uwXL29TY76Z2rM5mHXA On Mon, Jan 14, 2013 at 10:53:21AM -0800, Doug Anderson wrote: > This allows you to get the equivalent functionality of > i2c_add_numbered_adapter() with all data in the device tree and no > special case code in your driver. This is a common device tree > technique. > > For quick reference, the FDT syntax for using an alias to provide an > ID looks like: > aliases { > i2c0 = &i2c_0; > i2c1 = &i2c_1; > }; > > Signed-off-by: Doug Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> > Acked-by: Haojian Zhuang <haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> The call path for i2c_add_numbered_adapter() with nr == -1 is a little awkward now, but I don't see much how it can be improved much. Acked-by: Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> -Olof ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present [not found] ` <1358189602-24180-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2013-01-15 6:34 ` Olof Johansson @ 2013-02-10 12:19 ` Wolfram Sang [not found] ` <20130210121901.GA15546-8EAEigeeuNG034pCzgS/Qg7AFbiQbgqx@public.gmane.org> 1 sibling, 1 reply; 25+ messages in thread From: Wolfram Sang @ 2013-02-10 12:19 UTC (permalink / raw) To: Doug Anderson Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Mark Brown, Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Haojian Zhuang, Arnd Bergmann, Sylwester Nawrocki, linux-kernel-u79uwXL29TY76Z2rM5mHXA Hi Doug, On Mon, Jan 14, 2013 at 10:53:21AM -0800, Doug Anderson wrote: > This allows you to get the equivalent functionality of > i2c_add_numbered_adapter() with all data in the device tree and no > special case code in your driver. This is a common device tree > technique. > > For quick reference, the FDT syntax for using an alias to provide an > ID looks like: > aliases { > i2c0 = &i2c_0; > i2c1 = &i2c_1; > }; > > Signed-off-by: Doug Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> > Acked-by: Haojian Zhuang <haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > --- > Changes in v2: None > > drivers/i2c/i2c-core.c | 105 +++++++++++++++++++++++++++++++++++------------- > 1 files changed, 77 insertions(+), 28 deletions(-) > > diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c > index e388590..a60ed6d 100644 > --- a/drivers/i2c/i2c-core.c > +++ b/drivers/i2c/i2c-core.c > @@ -921,13 +921,81 @@ out_list: > } > > /** > + * i2c_get_number_from_dt - get the adapter number based on dt alias > + * @adap: the adapter to look at > + * > + * Check whether there's an alias in the FDT that gives an ID for this i2c > + * device. Use an alias like "i2c<nr>", like: > + * aliases { > + * i2c0 = &i2c_0; > + * i2c1 = &i2c_1; > + * }; > + * > + * Returns the ID if found. If no alias is found returns -1. > + */ > +static int i2c_get_number_from_dt(struct i2c_adapter *adap) i2c_get_id_from_dt()? > +{ > + struct device *dev = &adap->dev; > + int id; > + > + if (!dev->of_node) > + return -1; -ESOMETHING? > + > + id = of_alias_get_id(dev->of_node, "i2c"); > + if (id < 0) > + return -1; > + return id; Simply 'return of_alias_get_id(...)'? Even more, since this function boils down to calling of_alias_get_id only and is only used once, I'd think we can implement that directly and drop this function. That shouldn't hurt readability. > +} > + > +/** > + * _i2c_add_numbered_adapter - i2c_add_numbered_adapter where nr is never -1 > + * @adap: the adapter to register (with adap->nr initialized) > + * Context: can sleep > + * > + * See i2c_add_numbered_adapter() for details. > + */ > +static int _i2c_add_numbered_adapter(struct i2c_adapter *adap) All other internal functions are prefixed with '__'. > +{ > + int id; > + int status; > + > + /* Handled by wrappers */ > + BUG_ON(adap->nr == -1); Is that a reason to halt the kernel? WARN and bailing out would do IMO. > + > + if (adap->nr & ~MAX_IDR_MASK) > + return -EINVAL; Note the idr-cleanup series from Tejun Heo. Given that his series is scheduled for v3.9, I'd like to have your patches on top of his. Thanks, Wolfram ^ permalink raw reply [flat|nested] 25+ messages in thread
[parent not found: <20130210121901.GA15546-8EAEigeeuNG034pCzgS/Qg7AFbiQbgqx@public.gmane.org>]
* Re: [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present [not found] ` <20130210121901.GA15546-8EAEigeeuNG034pCzgS/Qg7AFbiQbgqx@public.gmane.org> @ 2013-02-12 0:48 ` Doug Anderson 0 siblings, 0 replies; 25+ messages in thread From: Doug Anderson @ 2013-02-12 0:48 UTC (permalink / raw) To: Wolfram Sang Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mark Brown, Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Haojian Zhuang, Arnd Bergmann, Sylwester Nawrocki, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wolfram, Thanks for the review. New patch was just sent. :) On Sun, Feb 10, 2013 at 4:19 AM, Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> wrote: >> +static int i2c_get_number_from_dt(struct i2c_adapter *adap) > > i2c_get_id_from_dt()? Done. >> + if (!dev->of_node) >> + return -1; > > -ESOMETHING? Function has been removed, as per below. >> + >> + id = of_alias_get_id(dev->of_node, "i2c"); >> + if (id < 0) >> + return -1; >> + return id; > > Simply 'return of_alias_get_id(...)'? Even more, since this function > boils down to calling of_alias_get_id only and is only used once, I'd > think we can implement that directly and drop this function. That > shouldn't hurt readability. Good point. Done. >> +/** >> + * _i2c_add_numbered_adapter - i2c_add_numbered_adapter where nr is never -1 >> + * @adap: the adapter to register (with adap->nr initialized) >> + * Context: can sleep >> + * >> + * See i2c_add_numbered_adapter() for details. >> + */ >> +static int _i2c_add_numbered_adapter(struct i2c_adapter *adap) > > All other internal functions are prefixed with '__'. Done. >> +{ >> + int id; >> + int status; >> + >> + /* Handled by wrappers */ >> + BUG_ON(adap->nr == -1); > > Is that a reason to halt the kernel? WARN and bailing out would do IMO. Done. >> + >> + if (adap->nr & ~MAX_IDR_MASK) >> + return -EINVAL; > > Note the idr-cleanup series from Tejun Heo. Given that his series is > scheduled for v3.9, I'd like to have your patches on top of his. Done. ^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 2/2] i2c: pxa: Use i2c-core to get bus number now 2013-01-14 18:53 ` [PATCH v2 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2013-01-14 18:53 ` [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson @ 2013-01-14 18:53 ` Doug Anderson 1 sibling, 0 replies; 25+ messages in thread From: Doug Anderson @ 2013-01-14 18:53 UTC (permalink / raw) To: linux-i2c, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Sylwester Nawrocki, Doug Anderson, Andrew Morton, Karol Lewandowski, Haojian Zhuang, linux-kernel The commit: "i2c-core: dt: Pick i2c bus number from i2c alias if present" adds support for automatically picking the bus number based on the alias ID. Remove the now unnecessary code from i2c-pxa that did the same thing. Signed-off-by: Doug Anderson <dianders@chromium.org> --- Changes in v2: - No longer tweak pdev->id as per Sylwester Nawrocki. - No longer add the dev ID to the adap.name. Other drivers don't include the device ID here and it doesn't make sense with dynamically (or automatically) allocated IDs. - Use dev_name(&dev->dev) to register for the IRQ; this matches what the i2c-s3c2410.c does and handles dynamically allocated IDs. - This change was only compile-tested (corgi_defconfig), since I don't have access to a board that uses this driver. drivers/i2c/busses/i2c-pxa.c | 20 +++++++++----------- 1 files changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c index 1034d93..705cc9f 100644 --- a/drivers/i2c/busses/i2c-pxa.c +++ b/drivers/i2c/busses/i2c-pxa.c @@ -1053,16 +1053,13 @@ static int i2c_pxa_probe_dt(struct platform_device *pdev, struct pxa_i2c *i2c, struct device_node *np = pdev->dev.of_node; const struct of_device_id *of_id = of_match_device(i2c_pxa_dt_ids, &pdev->dev); - int ret; if (!of_id) return 1; - ret = of_alias_get_id(np, "i2c"); - if (ret < 0) { - dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret); - return ret; - } - pdev->id = ret; + + /* For device tree we always use the dynamic or alias-assigned ID */ + i2c->adap.nr = -1; + if (of_get_property(np, "mrvl,i2c-polling", NULL)) i2c->use_pio = 1; if (of_get_property(np, "mrvl,i2c-fast-mode", NULL)) @@ -1100,6 +1097,9 @@ static int i2c_pxa_probe(struct platform_device *dev) goto emalloc; } + /* Default adapter num to device id; i2c_pxa_probe_dt can override. */ + i2c->adap.nr = dev->id; + ret = i2c_pxa_probe_dt(dev, i2c, &i2c_type); if (ret > 0) ret = i2c_pxa_probe_pdata(dev, i2c, &i2c_type); @@ -1124,9 +1124,7 @@ static int i2c_pxa_probe(struct platform_device *dev) spin_lock_init(&i2c->lock); init_waitqueue_head(&i2c->wait); - i2c->adap.nr = dev->id; - snprintf(i2c->adap.name, sizeof(i2c->adap.name), "pxa_i2c-i2c.%u", - i2c->adap.nr); + strlcpy(i2c->adap.name, "pxa_i2c-i2c", sizeof(i2c->adap.name)); i2c->clk = clk_get(&dev->dev, NULL); if (IS_ERR(i2c->clk)) { @@ -1169,7 +1167,7 @@ static int i2c_pxa_probe(struct platform_device *dev) } else { i2c->adap.algo = &i2c_pxa_algorithm; ret = request_irq(irq, i2c_pxa_handler, IRQF_SHARED, - i2c->adap.name, i2c); + dev_name(&dev->dev), i2c); if (ret) goto ereqirq; } -- 1.7.7.3 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [REPOST PATCH 2/2] i2c: pxa: Use i2c-core to get bus number now 2013-01-11 17:57 ` [REPOST PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2013-01-11 17:57 ` [REPOST PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson @ 2013-01-11 17:57 ` Doug Anderson 2013-01-11 22:12 ` Sylwester Nawrocki 1 sibling, 1 reply; 25+ messages in thread From: Doug Anderson @ 2013-01-11 17:57 UTC (permalink / raw) To: linux-i2c, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Doug Anderson, Andrew Morton, Karol Lewandowski, linux-kernel The commit: "i2c-core: dt: Pick i2c bus number from i2c alias if present" adds support for automatically picking the bus number based on the alias ID. Remove the now unnecessary code from i2c-pxa that did the same thing. Signed-off-by: Doug Anderson <dianders@chromium.org> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> --- drivers/i2c/busses/i2c-pxa.c | 8 +------- 1 files changed, 1 insertions(+), 7 deletions(-) diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c index 1034d93..8ee9fa0 100644 --- a/drivers/i2c/busses/i2c-pxa.c +++ b/drivers/i2c/busses/i2c-pxa.c @@ -1053,16 +1053,10 @@ static int i2c_pxa_probe_dt(struct platform_device *pdev, struct pxa_i2c *i2c, struct device_node *np = pdev->dev.of_node; const struct of_device_id *of_id = of_match_device(i2c_pxa_dt_ids, &pdev->dev); - int ret; if (!of_id) return 1; - ret = of_alias_get_id(np, "i2c"); - if (ret < 0) { - dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret); - return ret; - } - pdev->id = ret; + pdev->id = -1; if (of_get_property(np, "mrvl,i2c-polling", NULL)) i2c->use_pio = 1; if (of_get_property(np, "mrvl,i2c-fast-mode", NULL)) -- 1.7.7.3 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [REPOST PATCH 2/2] i2c: pxa: Use i2c-core to get bus number now 2013-01-11 17:57 ` [REPOST PATCH " Doug Anderson @ 2013-01-11 22:12 ` Sylwester Nawrocki 2013-01-14 18:52 ` Doug Anderson 0 siblings, 1 reply; 25+ messages in thread From: Sylwester Nawrocki @ 2013-01-11 22:12 UTC (permalink / raw) To: Doug Anderson Cc: linux-i2c, Mark Brown, Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Andrew Morton, Karol Lewandowski, linux-kernel Hi, On 01/11/2013 06:57 PM, Doug Anderson wrote: > The commit: "i2c-core: dt: Pick i2c bus number from i2c alias if > present" adds support for automatically picking the bus number based > on the alias ID. Remove the now unnecessary code from i2c-pxa that > did the same thing. > > Signed-off-by: Doug Anderson<dianders@chromium.org> > Acked-by: Haojian Zhuang<haojian.zhuang@gmail.com> > --- > drivers/i2c/busses/i2c-pxa.c | 8 +------- > 1 files changed, 1 insertions(+), 7 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c > index 1034d93..8ee9fa0 100644 > --- a/drivers/i2c/busses/i2c-pxa.c > +++ b/drivers/i2c/busses/i2c-pxa.c > @@ -1053,16 +1053,10 @@ static int i2c_pxa_probe_dt(struct platform_device *pdev, struct pxa_i2c *i2c, > struct device_node *np = pdev->dev.of_node; > const struct of_device_id *of_id = > of_match_device(i2c_pxa_dt_ids,&pdev->dev); > - int ret; > > if (!of_id) > return 1; > - ret = of_alias_get_id(np, "i2c"); > - if (ret< 0) { > - dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret); > - return ret; > - } > - pdev->id = ret; > + pdev->id = -1; I think assignments like this are illegal. At this point the device is already registered and modifying pdev->id can cause issues at the core code. It might be better to have the bus number stored in struct pxa_i2c, initialized with pdev->id value for non-dt and now with -1 for dt case. I realize it is not something your patch is intended to deal with, but since you're touching this code maybe it's worth to fix that issue as well ? -- Thanks, Sylwester ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [REPOST PATCH 2/2] i2c: pxa: Use i2c-core to get bus number now 2013-01-11 22:12 ` Sylwester Nawrocki @ 2013-01-14 18:52 ` Doug Anderson 0 siblings, 0 replies; 25+ messages in thread From: Doug Anderson @ 2013-01-14 18:52 UTC (permalink / raw) To: Sylwester Nawrocki Cc: linux-i2c@vger.kernel.org, Mark Brown, Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel@lists.infradead.org, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Andrew Morton, Karol Lewandowski, linux-kernel@vger.kernel.org Sylwester, Thanks for the review... On Fri, Jan 11, 2013 at 2:12 PM, Sylwester Nawrocki <sylvester.nawrocki@gmail.com> wrote: >> - ret = of_alias_get_id(np, "i2c"); >> - if (ret< 0) { >> - dev_err(&pdev->dev, "failed to get alias id, errno %d\n", >> ret); >> - return ret; >> - } >> - pdev->id = ret; >> + pdev->id = -1; > > > I think assignments like this are illegal. At this point the device is > already registered and modifying pdev->id can cause issues at the core > code. Good catch. I think the old code is just as illegal since it was also assigning to pdev->id, but I'm happy to spin the patch. > It might be better to have the bus number stored in struct pxa_i2c, > initialized with pdev->id value for non-dt and now with -1 for dt case. I'll just init i2c->adap.nr before calling i2c_pxa_probe_dt(). Then i2c_pxa_probe_dt() can adjust the number. Hopefully this is OK. > I realize it is not something your patch is intended to deal with, > but since you're touching this code maybe it's worth to fix that issue > as well ? Sure, I've spun it. While doing this I realized a few other issues relating to the ID number. Specifically: * We were using the id (as %u) when creating 'i2c->adap.name'. This probably gave a very nonsensical ID. I'm just going to remove the device number from the adap.name. That matches what i2c-s3c2410.c does. As far as I can tell the adap.name isn't actually used for much. * The name was being used in request_irq(). I've changed this to be like i2c-s3c2410 and use dev_name(). On my current board that means that the name comes from the table in of_platform_populate(). ...but that table is supposed to be going away. If I remove that i2c parts of that table I get names like '12c60000.i2c', which should be fine for passing to request_irq(). -Doug ^ permalink raw reply [flat|nested] 25+ messages in thread
[parent not found: <1353522362-25519-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>]
* [PATCH 2/2] i2c: pxa: Use i2c-core to get bus number now [not found] ` <1353522362-25519-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> @ 2012-11-21 18:26 ` Doug Anderson 2012-12-05 1:45 ` Haojian Zhuang 0 siblings, 1 reply; 25+ messages in thread From: Doug Anderson @ 2012-11-21 18:26 UTC (permalink / raw) To: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Mark Brown Cc: Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Haojian Zhuang, Arnd Bergmann, Doug Anderson, Andrew Morton, Karol Lewandowski, linux-kernel-u79uwXL29TY76Z2rM5mHXA The commit: "i2c-core: dt: Pick i2c bus number from i2c alias if present" adds support for automatically picking the bus number based on the alias ID. Remove the now unnecessary code from i2c-pxa that did the same thing. Signed-off-by: Doug Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> --- drivers/i2c/busses/i2c-pxa.c | 8 +------- 1 files changed, 1 insertions(+), 7 deletions(-) diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c index 1034d93..8ee9fa0 100644 --- a/drivers/i2c/busses/i2c-pxa.c +++ b/drivers/i2c/busses/i2c-pxa.c @@ -1053,16 +1053,10 @@ static int i2c_pxa_probe_dt(struct platform_device *pdev, struct pxa_i2c *i2c, struct device_node *np = pdev->dev.of_node; const struct of_device_id *of_id = of_match_device(i2c_pxa_dt_ids, &pdev->dev); - int ret; if (!of_id) return 1; - ret = of_alias_get_id(np, "i2c"); - if (ret < 0) { - dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret); - return ret; - } - pdev->id = ret; + pdev->id = -1; if (of_get_property(np, "mrvl,i2c-polling", NULL)) i2c->use_pio = 1; if (of_get_property(np, "mrvl,i2c-fast-mode", NULL)) -- 1.7.7.3 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH 2/2] i2c: pxa: Use i2c-core to get bus number now 2012-11-21 18:26 ` [PATCH " Doug Anderson @ 2012-12-05 1:45 ` Haojian Zhuang 0 siblings, 0 replies; 25+ messages in thread From: Haojian Zhuang @ 2012-12-05 1:45 UTC (permalink / raw) To: Doug Anderson Cc: linux-i2c, Mark Brown, Kukjin Kim, Olof Johansson, Thomas Abraham, Padmavathi Venna, Ben Dooks, Wolfram Sang, linux-arm-kernel@lists.infradead.org, linux-samsung-soc, Haojian Zhuang, Arnd Bergmann, Andrew Morton, Karol Lewandowski, linux-kernel@vger.kernel.org On Thu, Nov 22, 2012 at 2:26 AM, Doug Anderson <dianders@chromium.org> wrote: > The commit: "i2c-core: dt: Pick i2c bus number from i2c alias if > present" adds support for automatically picking the bus number based > on the alias ID. Remove the now unnecessary code from i2c-pxa that > did the same thing. > > Signed-off-by: Doug Anderson <dianders@chromium.org> > --- > drivers/i2c/busses/i2c-pxa.c | 8 +------- > 1 files changed, 1 insertions(+), 7 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c > index 1034d93..8ee9fa0 100644 > --- a/drivers/i2c/busses/i2c-pxa.c > +++ b/drivers/i2c/busses/i2c-pxa.c > @@ -1053,16 +1053,10 @@ static int i2c_pxa_probe_dt(struct platform_device *pdev, struct pxa_i2c *i2c, > struct device_node *np = pdev->dev.of_node; > const struct of_device_id *of_id = > of_match_device(i2c_pxa_dt_ids, &pdev->dev); > - int ret; > > if (!of_id) > return 1; > - ret = of_alias_get_id(np, "i2c"); > - if (ret < 0) { > - dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret); > - return ret; > - } > - pdev->id = ret; > + pdev->id = -1; > if (of_get_property(np, "mrvl,i2c-polling", NULL)) > i2c->use_pio = 1; > if (of_get_property(np, "mrvl,i2c-fast-mode", NULL)) > -- > 1.7.7.3 > Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 0/2] Add automatic bus number support for i2c busses with device tree 2012-11-21 18:26 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2012-11-21 18:26 ` [PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson [not found] ` <1353522362-25519-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> @ 2012-12-05 1:48 ` Haojian Zhuang 2 siblings, 0 replies; 25+ messages in thread From: Haojian Zhuang @ 2012-12-05 1:48 UTC (permalink / raw) To: Doug Anderson Cc: linux-i2c, Mark Brown, Kukjin Kim, Arnd Bergmann, Padmavathi Venna, Wolfram Sang, Haojian Zhuang, linux-samsung-soc, Thomas Abraham, Ben Dooks, Olof Johansson, linux-arm-kernel@lists.infradead.org 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 ^ permalink raw reply [flat|nested] 25+ messages in thread
[parent not found: <1353450428-2615-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>]
* Re: [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 [not found] ` <1353450428-2615-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> @ 2012-11-21 7:25 ` Olof Johansson 0 siblings, 0 replies; 25+ messages in thread From: Olof Johansson @ 2012-11-21 7:25 UTC (permalink / raw) To: Doug Anderson Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, linux-i2c-u79uwXL29TY76Z2rM5mHXA, Thomas Abraham, Kukjin Kim, Russell King, Tomasz Figa, Kyungmin Park, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA 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 <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> Acked-by: Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> 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 ^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 2012-11-20 22:27 [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 Doug Anderson 2012-11-20 22:27 ` [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id Doug Anderson [not found] ` <1353450428-2615-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> @ 2012-11-21 9:43 ` Kukjin Kim 2 siblings, 0 replies; 25+ messages in thread From: Kukjin Kim @ 2012-11-21 9:43 UTC (permalink / raw) To: 'Doug Anderson', linux-samsung-soc Cc: linux-i2c, 'Olof Johansson', 'Thomas Abraham', 'Russell King', 'Tomasz Figa', 'Kyungmin Park', linux-arm-kernel, linux-kernel 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 <dianders@chromium.org> > > --- > 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 <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2013-02-12 0:48 UTC | newest] Thread overview: 25+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-11-20 22:27 [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 Doug Anderson 2012-11-20 22:27 ` [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id Doug Anderson [not found] ` <1353450428-2615-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2012-11-21 4:09 ` Mark Brown 2012-11-21 18:33 ` Doug Anderson 2012-11-22 6:56 ` Kukjin Kim 2012-11-21 9:43 ` Kukjin Kim 2012-11-21 18:26 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2012-11-21 18:26 ` [PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson 2012-12-05 1:45 ` Haojian Zhuang 2013-01-11 17:57 ` [REPOST PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2013-01-11 17:57 ` [REPOST PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson 2013-01-14 18:53 ` [PATCH v2 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson 2013-01-14 18:53 ` [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson [not found] ` <1358189602-24180-2-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2013-01-15 6:34 ` Olof Johansson 2013-02-10 12:19 ` Wolfram Sang [not found] ` <20130210121901.GA15546-8EAEigeeuNG034pCzgS/Qg7AFbiQbgqx@public.gmane.org> 2013-02-12 0:48 ` Doug Anderson 2013-01-14 18:53 ` [PATCH v2 2/2] i2c: pxa: Use i2c-core to get bus number now Doug Anderson 2013-01-11 17:57 ` [REPOST PATCH " Doug Anderson 2013-01-11 22:12 ` Sylwester Nawrocki 2013-01-14 18:52 ` Doug Anderson [not found] ` <1353522362-25519-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2012-11-21 18:26 ` [PATCH " Doug Anderson 2012-12-05 1:45 ` Haojian Zhuang 2012-12-05 1:48 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Haojian Zhuang [not found] ` <1353450428-2615-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> 2012-11-21 7:25 ` [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 Olof Johansson 2012-11-21 9:43 ` Kukjin Kim
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).