Skip to contentSkip to conversation

i2c: change the id to let the i2c-gpio work

PATCH Superseded Bo Shen 6 participants 9 messages Oct 12, 2012 – Oct 15, 2012 1 message not in the archive

Subsystems (4)

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore

Bo Shen

author
#0 lore raw

PATCH v2 1/1 i2c: change the id to let the i2c-gpio work

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number Here using 0 to match the busnum used in i2c_regsiter_board_info().

---
Change since v1
Make the commit message more clear

---
 arch/arm/mach-at91/at91sam9260_devices.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-at91/at91sam9260_devices.c +1 -1
index 0f24cfb..805ef95 100644
@@ -389,7 +389,7 @@ static struct i2c_gpio_platform_data pdata = {
 
 static struct platform_device at91sam9260_twi_device = {
 	.name			= "i2c-gpio",
-	.id			= -1,
+	.id			= 0,
 	.dev.platform_data	= &pdata,
 };
 
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH v2 1/1 i2c: change the id to let the i2c-gpio work

Quoted 22 lines · Bo Shen

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number Here using 0 to match the busnum used in i2c_regsiter_board_info().

---
Change since v1
Make the commit message more clear

---
 arch/arm/mach-at91/at91sam9260_devices.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-at91/at91sam9260_devices.c +0 -0
index 0f24cfb..805ef95 100644

arch/arm/mach-at91/at91sam9260_devices.c static struct i2c_gpio_platform_data pdata = { · line 395

Quoted 8 lines
arch/arm/mach-at91/at91sam9260_devices.c +1 -1
@@ -389,7 +389,7 @@ static struct i2c_gpio_platform_data pdata = {
 
 static struct platform_device at91sam9260_twi_device = {
 	.name			= "i2c-gpio",
-	.id			= -1,
+	.id			= 0,
 	.dev.platform_data	= &pdata,
 };
 
Signature · 1 line
Jean Delvare
#2 lore raw

PATCH v2 1/1 i2c: change the id to let the i2c-gpio work

In reply to Bo Shen

Hi Bo Shen,

Quoted 8 lines · Bo Shen

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number Here using 0 to match the busnum used in i2c_regsiter_board_info().

I have been bitten by this myself on RM9200.

Quoted 6 lines

---
Change since v1
Make the commit message more clear

---
 arch/arm/mach-at91/at91sam9260_devices.c |    2 +-

This pattern exist in at91rm9200_devices.c, at91sam9261_devices.c, at91sam9263_devices.c and at91sam9rl_devices.c you might want to fix them as well.

I assume we have the same problem if CONFIG_I2C_AT91 is set? See further down in at91sam9260_devices.c we have another: ".id = -1,"

regards
Joachim Eastwood

Quoted 23 lines
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-at91/at91sam9260_devices.c +1 -2
index 0f24cfb..805ef95 100644
@@ -389,7 +389,7 @@ static struct i2c_gpio_platform_data pdata = {
 
 static struct platform_device at91sam9260_twi_device = {
        .name                   = "i2c-gpio",
-       .id                     = -1,
+       .id                     = 0,
        .dev.platform_data      = &pdata,
 };
 
--

1.7.9.5

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

author
#3 lore raw

PATCH v2 1/1 i2c: change the id to let the i2c-gpio work

Hi Joachim Eastwood,

Quoted 21 lines · Joachim Eastwood

Hi Bo Shen,

Quoted 8 lines · Bo Shen

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number Here using 0 to match the busnum used in i2c_regsiter_board_info().

I have been bitten by this myself on RM9200.

Quoted 6 lines

---
Change since v1
Make the commit message more clear

---
  arch/arm/mach-at91/at91sam9260_devices.c |    2 +-
Quoted 3 lines

This pattern exist in at91rm9200_devices.c, at91sam9261_devices.c, at91sam9263_devices.c and at91sam9rl_devices.c you might want to fix them as well.

Thanks for your information.
After I test these boards, I will send patches to fix them, while not in this patch.

Quoted 3 lines

I assume we have the same problem if CONFIG_I2C_AT91 is set? See further down in at91sam9260_devices.c we have another: ".id = -1,"

Maybe Nikolaus Voss will deal with this case.

Quoted 27 lines

regards
Joachim Eastwood

Quoted 23 lines
  1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-at91/at91sam9260_devices.c +1 -2
index 0f24cfb..805ef95 100644
@@ -389,7 +389,7 @@ static struct i2c_gpio_platform_data pdata = {
 
  static struct platform_device at91sam9260_twi_device = {
         .name                   = "i2c-gpio",
-       .id                     = -1,
+       .id                     = 0,
         .dev.platform_data      = &pdata,
  };
 
--

1.7.9.5

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#4 lore raw

PATCH v2 1/1 i2c: change the id to let the i2c-gpio work

Le 10/15/2012 04:09 AM, Bo Shen a ?crit :

Quoted 33 lines

Hi Joachim Eastwood,

Quoted 21 lines · Joachim Eastwood

Hi Bo Shen,

Quoted 8 lines · Bo Shen

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number Here using 0 to match the busnum used in i2c_regsiter_board_info().

I have been bitten by this myself on RM9200.

Quoted 6 lines

---
Change since v1
Make the commit message more clear

---
  arch/arm/mach-at91/at91sam9260_devices.c |    2 +-
Quoted 3 lines

This pattern exist in at91rm9200_devices.c, at91sam9261_devices.c, at91sam9263_devices.c and at91sam9rl_devices.c you might want to fix them as well.

Thanks for your information.
After I test these boards, I will send patches to fix them, while not in this patch.

Quoted 1 line
Quoted 5 lines
Quoted 2 lines

I assume we have the same problem if CONFIG_I2C_AT91 is set? See further down in at91sam9260_devices.c we have another: ".id = -1,"

Maybe Nikolaus Voss will deal with this case.

Yes the problem is the same, I have encountered it and solved it in the same way but I was thinking there was a better way to correct it than removing dynamic id assignment.
Since setting the id to a fix value is acceptable this change can be done also when using i2c-at91.

Quoted 35 lines
Quoted 20 lines

regards
Joachim Eastwood

Quoted 16 lines
  1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-at91/at91sam9260_devices.c +1 -1
index 0f24cfb..805ef95 100644
@@ -389,7 +389,7 @@ static struct i2c_gpio_platform_data pdata = {
 
  static struct platform_device at91sam9260_twi_device = {
         .name                   = "i2c-gpio",
-       .id                     = -1,
+       .id                     = 0,
         .dev.platform_data      = &pdata,
  };
 
Quoted 8 lines
Quoted 8 lines

--
1.7.9.5

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): [email protected]

#6 lore raw

Hi Bo,

Bo Shen wrote on Monday, October 15, 2012 4:10 AM:

Quoted 33 lines

Hi Joachim Eastwood,

Quoted 21 lines · Joachim Eastwood

Hi Bo Shen,

Quoted 8 lines · Bo Shen

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number Here using 0 to match the busnum used in i2c_regsiter_board_info().

I have been bitten by this myself on RM9200.

Quoted 6 lines

---
Change since v1
Make the commit message more clear

---
  arch/arm/mach-at91/at91sam9260_devices.c |    2 +-
Quoted 3 lines

This pattern exist in at91rm9200_devices.c, at91sam9261_devices.c, at91sam9263_devices.c and at91sam9rl_devices.c you might want to fix them as well.

Thanks for your information.
After I test these boards, I will send patches to fix them, while not in this patch.

Quoted 1 line
Quoted 4 lines
Quoted 2 lines

I assume we have the same problem if CONFIG_I2C_AT91 is set? See further down in at91sam9260_devices.c we have another: ".id = -1,"

Maybe Nikolaus Voss will deal with this case.

I merely tested with G45 SoC where .id is set to constants != -1. Could you extent your patch to cover the at91_i2c case, too? I think it would be good to have all these in one commit.

Niko

#7 lore raw

PATCH v2 1/1 i2c: change the id to let the i2c-gpio work

In reply to Bo Shen

On 10/15/2012 04:09 AM, Bo Shen :

Quoted 24 lines

Hi Joachim Eastwood,

Quoted 21 lines · Joachim Eastwood

Hi Bo Shen,

Quoted 8 lines · Bo Shen

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number Here using 0 to match the busnum used in i2c_regsiter_board_info().

I have been bitten by this myself on RM9200.

Quoted 6 lines

---
Change since v1
Make the commit message more clear

---
  arch/arm/mach-at91/at91sam9260_devices.c |    2 +-
Quoted 7 lines
Quoted 3 lines

This pattern exist in at91rm9200_devices.c, at91sam9261_devices.c, at91sam9263_devices.c and at91sam9rl_devices.c you might want to fix them as well.

Thanks for your information.
After I test these boards, I will send patches to fix them, while not in this patch.

I am in favor of doing a comprehensive patch series that covers all aspects of this issue:
- each boards
- both i2c-gpio and i2c-at91 cases

Bye,

Signature · 1 line
Nicolas Ferre
author
#8 lore raw

PATCH v2 1/1 i2c: change the id to let the i2c-gpio work

Hi Nicolas,

Quoted 29 lines · Nicolas Ferre

On 10/15/2012 04:09 AM, Bo Shen :

Quoted 28 lines

Hi Joachim Eastwood,

Quoted 24 lines · Joachim Eastwood

Hi Bo Shen,

Quoted 8 lines · Bo Shen

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number Here using 0 to match the busnum used in i2c_regsiter_board_info().

I have been bitten by this myself on RM9200.

Quoted 6 lines

---
Change since v1
Make the commit message more clear

---
   arch/arm/mach-at91/at91sam9260_devices.c |    2 +-

This pattern exist in at91rm9200_devices.c, at91sam9261_devices.c, at91sam9263_devices.c and at91sam9rl_devices.c you might want to fix them as well.

Quoted 8 lines
Quoted 3 lines

Thanks for your information.
After I test these boards, I will send patches to fix them, while not in this patch.

I am in favor of doing a comprehensive patch series that covers all aspects of this issue:
- each boards
- both i2c-gpio and i2c-at91 cases

May I need to submit this patch as a series? One patch for one board, and cover i2c-gpio and i2c-at91 cases.
e.g:
[patch 1/x] i2c: change id to let i2c-gpio work on at91rm200ek [patch 2/x] i2c: change id to let i2c-gpio work on at91sam9261ek
...

or

Just one patch, cover all these boards and i2c-gpio and i2c-at91?

Quoted 2 lines

Bye,

#9 lore raw

PATCH v2 1/1 i2c: change the id to let the i2c-gpio work

On 10/15/2012 10:26 AM, Bo Shen :

Quoted 49 lines

Hi Nicolas,

Quoted 30 lines · Nicolas Ferre

On 10/15/2012 04:09 AM, Bo Shen :

Quoted 29 lines

Hi Joachim Eastwood,

Quoted 25 lines · Joachim Eastwood

Hi Bo Shen,

Quoted 9 lines · Bo Shen

The i2c-gpio driver will turn the platform device ID to busnum. When using platfrom device ID as -1, it means dynamically assigned the busnum. When writing code, we need to make sure the busnum, and call i2c_register_board_info(int busnum, ...) to register device if using -1, we do not know the value of busnum.

In order to solve this issue, set the platform device ID as a fix number
Here using 0 to match the busnum used in i2c_regsiter_board_info().

I have been bitten by this myself on RM9200.

Quoted 6 lines

---
Change since v1
Make the commit message more clear

---
   arch/arm/mach-at91/at91sam9260_devices.c |    2 +-

This pattern exist in at91rm9200_devices.c, at91sam9261_devices.c, at91sam9263_devices.c and at91sam9rl_devices.c you might want to fix them as well.

Quoted 8 lines
Quoted 3 lines

Thanks for your information.
After I test these boards, I will send patches to fix them, while not in this patch.

I am in favor of doing a comprehensive patch series that covers all aspects of this issue:
- each boards
- both i2c-gpio and i2c-at91 cases

May I need to submit this patch as a series? One patch for one board, and cover i2c-gpio and i2c-at91 cases.
e.g:
[patch 1/x] i2c: change id to let i2c-gpio work on at91rm200ek [patch 2/x] i2c: change id to let i2c-gpio work on at91sam9261ek
...

Quoted 3 lines

or

Just one patch, cover all these boards and i2c-gpio and i2c-at91?

Neither of the altenatives ;-)
I would have done:
1 for i2c-gpio covering all boards impacted
1 for i2c-at91 covering all boards impacted...

Bye,

Signature · 1 line
Nicolas Ferre