linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/5] arm: dts: omap4-panda: Add I2c pinctrl data
@ 2013-02-13  9:28 Sourav Poddar
  2013-02-13 15:57 ` Jon Hunter
  0 siblings, 1 reply; 4+ messages in thread
From: Sourav Poddar @ 2013-02-13  9:28 UTC (permalink / raw)
  To: balbi, santosh.shilimkar, b-cousson, tony, linux-omap,
	devicetree-discuss, linux-arm-kernel, linux-kernel
  Cc: Sourav Poddar

Booting 3.8-rc6 on omap4 panda results in the following error

[    0.444427] omap_i2c 48070000.i2c: did not get pins for i2c error: -19
[    0.445770] omap_i2c 48070000.i2c: bus 0 rev0.11 at 400 kHz
[    0.473937] omap_i2c 48072000.i2c: did not get pins for i2c error: -19
[    0.474670] omap_i2c 48072000.i2c: bus 1 rev0.11 at 400 kHz
[    0.474822] omap_i2c 48060000.i2c: did not get pins for i2c error: -19
[    0.476379] omap_i2c 48060000.i2c: bus 2 rev0.11 at 100 kHz
[    0.477294] omap_i2c 48350000.i2c: did not get pins for i2c error: -19
[    0.477996] omap_i2c 48350000.i2c: bus 3 rev0.11 at 400 kHz
[    0.483398] Switching to clocksource 32k_counter

This happens because omap4 panda dts file is not adapted to use i2c through
pinctrl framework. Populating i2c pinctrl data to get rid of the error.

Tested on omap4460 panda with 3.8-rc6 kernel.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
Reported-by: Luciano Coelho <coelho@ti.com>
---
 arch/arm/boot/dts/omap4-panda.dts |   40 +++++++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts
index 4122efe..f951e6b 100644
--- a/arch/arm/boot/dts/omap4-panda.dts
+++ b/arch/arm/boot/dts/omap4-panda.dts
@@ -110,9 +110,40 @@
 			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
 		>;
 	};
+
+	i2c1_pins: pinmux_i2c1_pins {
+		pinctrl-single,pins = <
+			0xe2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
+			0xe4 0x118        /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
+		>;
+	};
+
+	i2c2_pins: pinmux_i2c2_pins {
+		pinctrl-single,pins = <
+			0xe6 0x118        /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */
+			0xe8 0x118        /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */
+		>;
+	};
+
+	i2c3_pins: pinmux_i2c3_pins {
+		pinctrl-single,pins = <
+			0xea 0x118        /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */
+			0xec 0x118     /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */
+		>;
+	};
+
+	i2c4_pins: pinmux_i2c4_pins {
+		pinctrl-single,pins = <
+			0xee 0x118        /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */
+			0xf0 0x118     /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */
+		>;
+	};
 };
 
 &i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c1_pins>;
+
 	clock-frequency = <400000>;
 
 	twl: twl@48 {
@@ -139,10 +170,16 @@
 /include/ "twl6030.dtsi"
 
 &i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins>;
+
 	clock-frequency = <400000>;
 };
 
 &i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c3_pins>;
+
 	clock-frequency = <100000>;
 
 	/*
@@ -156,6 +193,9 @@
 };
 
 &i2c4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c4_pins>;
+
 	clock-frequency = <400000>;
 };
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/5] arm: dts: omap4-panda: Add I2c pinctrl data
  2013-02-13  9:28 [PATCH 3/5] arm: dts: omap4-panda: Add I2c pinctrl data Sourav Poddar
@ 2013-02-13 15:57 ` Jon Hunter
  2013-02-13 16:06   ` Jon Hunter
  0 siblings, 1 reply; 4+ messages in thread
From: Jon Hunter @ 2013-02-13 15:57 UTC (permalink / raw)
  To: Sourav Poddar
  Cc: balbi, santosh.shilimkar, b-cousson, tony, linux-omap,
	devicetree-discuss, linux-arm-kernel, linux-kernel


On 02/13/2013 03:28 AM, Sourav Poddar wrote:
> Booting 3.8-rc6 on omap4 panda results in the following error
> 
> [    0.444427] omap_i2c 48070000.i2c: did not get pins for i2c error: -19
> [    0.445770] omap_i2c 48070000.i2c: bus 0 rev0.11 at 400 kHz
> [    0.473937] omap_i2c 48072000.i2c: did not get pins for i2c error: -19
> [    0.474670] omap_i2c 48072000.i2c: bus 1 rev0.11 at 400 kHz
> [    0.474822] omap_i2c 48060000.i2c: did not get pins for i2c error: -19
> [    0.476379] omap_i2c 48060000.i2c: bus 2 rev0.11 at 100 kHz
> [    0.477294] omap_i2c 48350000.i2c: did not get pins for i2c error: -19
> [    0.477996] omap_i2c 48350000.i2c: bus 3 rev0.11 at 400 kHz
> [    0.483398] Switching to clocksource 32k_counter
> 
> This happens because omap4 panda dts file is not adapted to use i2c through
> pinctrl framework. Populating i2c pinctrl data to get rid of the error.

What about the panda-es and panda-a4?

> Tested on omap4460 panda with 3.8-rc6 kernel.
> 
> Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
> Reported-by: Luciano Coelho <coelho@ti.com>
> ---
>  arch/arm/boot/dts/omap4-panda.dts |   40 +++++++++++++++++++++++++++++++++++++
>  1 files changed, 40 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts
> index 4122efe..f951e6b 100644
> --- a/arch/arm/boot/dts/omap4-panda.dts
> +++ b/arch/arm/boot/dts/omap4-panda.dts
> @@ -110,9 +110,40 @@
>  			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
>  		>;
>  	};
> +
> +	i2c1_pins: pinmux_i2c1_pins {
> +		pinctrl-single,pins = <
> +			0xe2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
> +			0xe4 0x118        /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
> +		>;
> +	};
> +
> +	i2c2_pins: pinmux_i2c2_pins {
> +		pinctrl-single,pins = <
> +			0xe6 0x118        /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */
> +			0xe8 0x118        /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */
> +		>;
> +	};
> +
> +	i2c3_pins: pinmux_i2c3_pins {
> +		pinctrl-single,pins = <
> +			0xea 0x118        /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */
> +			0xec 0x118     /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */
> +		>;
> +	};
> +
> +	i2c4_pins: pinmux_i2c4_pins {
> +		pinctrl-single,pins = <
> +			0xee 0x118        /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */
> +			0xf0 0x118     /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */
> +		>;
> +	};
>  };

A quick look at the data manual shows that omap4430 and omap4460 has the
same pin mux options for i2c. Furthermore, the data manual shows only
one mux option for i2c1-4. Therefore, should these mux options be placed
in omap4.dtsi? Boards not using specific i2c controllers can disabled
them in there board dts file (same way we do for mmc).

Cheers
Jon

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/5] arm: dts: omap4-panda: Add I2c pinctrl data
  2013-02-13 15:57 ` Jon Hunter
@ 2013-02-13 16:06   ` Jon Hunter
  2013-02-13 16:40     ` Tony Lindgren
  0 siblings, 1 reply; 4+ messages in thread
From: Jon Hunter @ 2013-02-13 16:06 UTC (permalink / raw)
  To: Sourav Poddar
  Cc: balbi, santosh.shilimkar, b-cousson, tony, linux-omap,
	devicetree-discuss, linux-arm-kernel, linux-kernel


On 02/13/2013 09:57 AM, Jon Hunter wrote:
> 
> On 02/13/2013 03:28 AM, Sourav Poddar wrote:
>> Booting 3.8-rc6 on omap4 panda results in the following error
>>
>> [    0.444427] omap_i2c 48070000.i2c: did not get pins for i2c error: -19
>> [    0.445770] omap_i2c 48070000.i2c: bus 0 rev0.11 at 400 kHz
>> [    0.473937] omap_i2c 48072000.i2c: did not get pins for i2c error: -19
>> [    0.474670] omap_i2c 48072000.i2c: bus 1 rev0.11 at 400 kHz
>> [    0.474822] omap_i2c 48060000.i2c: did not get pins for i2c error: -19
>> [    0.476379] omap_i2c 48060000.i2c: bus 2 rev0.11 at 100 kHz
>> [    0.477294] omap_i2c 48350000.i2c: did not get pins for i2c error: -19
>> [    0.477996] omap_i2c 48350000.i2c: bus 3 rev0.11 at 400 kHz
>> [    0.483398] Switching to clocksource 32k_counter
>>
>> This happens because omap4 panda dts file is not adapted to use i2c through
>> pinctrl framework. Populating i2c pinctrl data to get rid of the error.
> 
> What about the panda-es and panda-a4?
> 
>> Tested on omap4460 panda with 3.8-rc6 kernel.
>>
>> Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
>> Reported-by: Luciano Coelho <coelho@ti.com>
>> ---
>>  arch/arm/boot/dts/omap4-panda.dts |   40 +++++++++++++++++++++++++++++++++++++
>>  1 files changed, 40 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts
>> index 4122efe..f951e6b 100644
>> --- a/arch/arm/boot/dts/omap4-panda.dts
>> +++ b/arch/arm/boot/dts/omap4-panda.dts
>> @@ -110,9 +110,40 @@
>>  			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
>>  		>;
>>  	};
>> +
>> +	i2c1_pins: pinmux_i2c1_pins {
>> +		pinctrl-single,pins = <
>> +			0xe2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
>> +			0xe4 0x118        /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
>> +		>;
>> +	};
>> +
>> +	i2c2_pins: pinmux_i2c2_pins {
>> +		pinctrl-single,pins = <
>> +			0xe6 0x118        /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */
>> +			0xe8 0x118        /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */
>> +		>;
>> +	};
>> +
>> +	i2c3_pins: pinmux_i2c3_pins {
>> +		pinctrl-single,pins = <
>> +			0xea 0x118        /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */
>> +			0xec 0x118     /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */
>> +		>;
>> +	};
>> +
>> +	i2c4_pins: pinmux_i2c4_pins {
>> +		pinctrl-single,pins = <
>> +			0xee 0x118        /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */
>> +			0xf0 0x118     /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */
>> +		>;
>> +	};
>>  };
> 
> A quick look at the data manual shows that omap4430 and omap4460 has the
> same pin mux options for i2c. Furthermore, the data manual shows only
> one mux option for i2c1-4. Therefore, should these mux options be placed
> in omap4.dtsi? Boards not using specific i2c controllers can disabled
> them in there board dts file (same way we do for mmc).

I guess for i2c, a given omap4 board may use external pull-ups and not
use the internal ones and so putting this in the omap4.dtsi may not be
desirable. However, it seems that a common omap4-panda.dtsi could be
used here.

Cheers
Jon

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/5] arm: dts: omap4-panda: Add I2c pinctrl data
  2013-02-13 16:06   ` Jon Hunter
@ 2013-02-13 16:40     ` Tony Lindgren
  0 siblings, 0 replies; 4+ messages in thread
From: Tony Lindgren @ 2013-02-13 16:40 UTC (permalink / raw)
  To: Jon Hunter
  Cc: Sourav Poddar, balbi, santosh.shilimkar, b-cousson, linux-omap,
	devicetree-discuss, linux-arm-kernel, linux-kernel

* Jon Hunter <jon-hunter@ti.com> [130213 08:10]:
> On 02/13/2013 09:57 AM, Jon Hunter wrote:
> > On 02/13/2013 03:28 AM, Sourav Poddar wrote:
> > 
> > A quick look at the data manual shows that omap4430 and omap4460 has the
> > same pin mux options for i2c. Furthermore, the data manual shows only
> > one mux option for i2c1-4. Therefore, should these mux options be placed
> > in omap4.dtsi? Boards not using specific i2c controllers can disabled
> > them in there board dts file (same way we do for mmc).
> 
> I guess for i2c, a given omap4 board may use external pull-ups and not
> use the internal ones and so putting this in the omap4.dtsi may not be
> desirable. However, it seems that a common omap4-panda.dtsi could be
> used here.

Yes the mux options need to be board specific. If something is complex
and  common, it's best to put it into omap4-i2c1.dts file that can be
included from the board specific .dts files as needed.

Regards,

Tony

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-02-13 16:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-13  9:28 [PATCH 3/5] arm: dts: omap4-panda: Add I2c pinctrl data Sourav Poddar
2013-02-13 15:57 ` Jon Hunter
2013-02-13 16:06   ` Jon Hunter
2013-02-13 16:40     ` Tony Lindgren

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