mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* Usage of i2c_-Tools in Barebox
@ 2015-05-05 14:56 Marcel Behlau
  2015-05-05 15:54 ` Sascha Hauer
  0 siblings, 1 reply; 7+ messages in thread
From: Marcel Behlau @ 2015-05-05 14:56 UTC (permalink / raw)
  To: barebox

Hi,

i'm using a phyFLEX-i.MX6 SBC and want to communicate with an external 
µC over I2C. I only want to read/set 1 register, so i tried to use the 
builtin i2c_read and i2c_write-Commands. The µC is connected to i2c-bus 
1 of the device, so i tried to probe the hole bus with "i2c_bus 1 3 30". 
The command only answered with "i2c_probe: No such device". I tried also 
the busses 0-3, with the same result. I searched in the board.c 
sourcecode of the phyflex, but couldn't find i2c related stuff, so i 
think, i have to add the initalisation for the i2c.

Do i have to add the i2c-init in the boards/phytec-pfla02/board.c -file? 
Is there some documenation about this stuff?

Thank in advance,

Marcel

-- 
Dipl. Ing (FH) Marcel Behlau
(Software Developer)

ELFIN GmbH
Siegburger Straße 215
50679 Köln
Germany

Tel: +49 (221) 6778932-0
Fax: +49 (221) 6778932-2
marcel.behlau@elfin.de
www.elfin.de


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: Usage of i2c_-Tools in Barebox
  2015-05-05 14:56 Usage of i2c_-Tools in Barebox Marcel Behlau
@ 2015-05-05 15:54 ` Sascha Hauer
  2015-05-06  7:12   ` Uwe Kleine-König
  0 siblings, 1 reply; 7+ messages in thread
From: Sascha Hauer @ 2015-05-05 15:54 UTC (permalink / raw)
  To: Marcel Behlau; +Cc: barebox

Hi Marcel,

On Tue, May 05, 2015 at 04:56:10PM +0200, Marcel Behlau wrote:
> Hi,
> 
> i'm using a phyFLEX-i.MX6 SBC and want to communicate with an
> external µC over I2C. I only want to read/set 1 register, so i tried
> to use the builtin i2c_read and i2c_write-Commands. The µC is
> connected to i2c-bus 1 of the device, so i tried to probe the hole
> bus with "i2c_bus 1 3 30". The command only answered with
> "i2c_probe: No such device". I tried also the busses 0-3, with the
> same result. I searched in the board.c sourcecode of the phyflex,
> but couldn't find i2c related stuff, so i think, i have to add the
> initalisation for the i2c.
> 
> Do i have to add the i2c-init in the boards/phytec-pfla02/board.c
> -file? Is there some documenation about this stuff?

The phyFLEX board is device tree based. You have to enable the i2c
controller in the dts file (same as you would do in the kernel).
Usually a:

&i2c0 {
	status = "okay";
};

Should be enough. You probably also have to add the proper pinctrl node.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: Usage of i2c_-Tools in Barebox
  2015-05-05 15:54 ` Sascha Hauer
@ 2015-05-06  7:12   ` Uwe Kleine-König
  2015-05-07 11:24     ` Marcel Behlau
  0 siblings, 1 reply; 7+ messages in thread
From: Uwe Kleine-König @ 2015-05-06  7:12 UTC (permalink / raw)
  To: Marcel Behlau; +Cc: barebox

Hello,

On Tue, May 05, 2015 at 05:54:50PM +0200, Sascha Hauer wrote:
> On Tue, May 05, 2015 at 04:56:10PM +0200, Marcel Behlau wrote:
> > i'm using a phyFLEX-i.MX6 SBC and want to communicate with an
> > external µC over I2C. I only want to read/set 1 register, so i tried
> > to use the builtin i2c_read and i2c_write-Commands. The µC is
> > connected to i2c-bus 1 of the device, so i tried to probe the hole
> > bus with "i2c_bus 1 3 30". The command only answered with
> > "i2c_probe: No such device". I tried also the busses 0-3, with the
> > same result. I searched in the board.c sourcecode of the phyflex,
> > but couldn't find i2c related stuff, so i think, i have to add the
> > initalisation for the i2c.
> > 
> > Do i have to add the i2c-init in the boards/phytec-pfla02/board.c
> > -file? Is there some documenation about this stuff?
> 
> The phyFLEX board is device tree based. You have to enable the i2c
> controller in the dts file (same as you would do in the kernel).
> Usually a:
> 
> &i2c0 {
> 	status = "okay";
> };
> 
> Should be enough. You probably also have to add the proper pinctrl node.
and enable the i2c driver. You might want to check the output of
devinfo.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: Usage of i2c_-Tools in Barebox
  2015-05-06  7:12   ` Uwe Kleine-König
@ 2015-05-07 11:24     ` Marcel Behlau
  2015-05-08  5:12       ` Sascha Hauer
  0 siblings, 1 reply; 7+ messages in thread
From: Marcel Behlau @ 2015-05-07 11:24 UTC (permalink / raw)
  To: Uwe Kleine-König; +Cc: barebox

Hi,

many thanks for your help. I activated the i2c devices in the device 
tree, the pinctrl is already done in the imx6q.dtsi, which is included. 
The used pins are identically with the used pins on the SBC. devinfo 
told me, that the driver "i2c-fsl" is loaded. After rebuild barebox, 
it's possible to probe the bus, but the command only answered with an 
timeout:

barebox@Phytec phyFLEX-i.MX6 Quad Carrier-Board:/ i2c_probe 1 83 83
probing i2c range 0x53 - 0x53 :
i2c2: <i2c_fsl_bus_busy> timeout waiting for I2C bus busy

I'm using barebox-2013.08.0, which is provided by the phytec-bsp.

Thanks in advance,

Marcel


On 06.05.2015 09:12, Uwe Kleine-König wrote:
> Hello,
>
> On Tue, May 05, 2015 at 05:54:50PM +0200, Sascha Hauer wrote:
>> On Tue, May 05, 2015 at 04:56:10PM +0200, Marcel Behlau wrote:
>>> i'm using a phyFLEX-i.MX6 SBC and want to communicate with an
>>> external µC over I2C. I only want to read/set 1 register, so i tried
>>> to use the builtin i2c_read and i2c_write-Commands. The µC is
>>> connected to i2c-bus 1 of the device, so i tried to probe the hole
>>> bus with "i2c_bus 1 3 30". The command only answered with
>>> "i2c_probe: No such device". I tried also the busses 0-3, with the
>>> same result. I searched in the board.c sourcecode of the phyflex,
>>> but couldn't find i2c related stuff, so i think, i have to add the
>>> initalisation for the i2c.
>>>
>>> Do i have to add the i2c-init in the boards/phytec-pfla02/board.c
>>> -file? Is there some documenation about this stuff?
>> The phyFLEX board is device tree based. You have to enable the i2c
>> controller in the dts file (same as you would do in the kernel).
>> Usually a:
>>
>> &i2c0 {
>> 	status = "okay";
>> };
>>
>> Should be enough. You probably also have to add the proper pinctrl node.
> and enable the i2c driver. You might want to check the output of
> devinfo.
>
> Best regards
> Uwe
>

-- 
Dipl. Ing (FH) Marcel Behlau
(Software Developer)

ELFIN GmbH
Siegburger Straße 215
50679 Köln
Germany

Tel: +49 (221) 6778932-0
Fax: +49 (221) 6778932-2
marcel.behlau@elfin.de
www.elfin.de


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: Usage of i2c_-Tools in Barebox
  2015-05-07 11:24     ` Marcel Behlau
@ 2015-05-08  5:12       ` Sascha Hauer
  2015-05-20  6:34         ` Marcel Behlau
  0 siblings, 1 reply; 7+ messages in thread
From: Sascha Hauer @ 2015-05-08  5:12 UTC (permalink / raw)
  To: Marcel Behlau; +Cc: barebox, Uwe Kleine-König

On Thu, May 07, 2015 at 01:24:19PM +0200, Marcel Behlau wrote:
> Hi,
> 
> many thanks for your help. I activated the i2c devices in the device
> tree, the pinctrl is already done in the imx6q.dtsi, which is
> included. The used pins are identically with the used pins on the
> SBC. devinfo told me, that the driver "i2c-fsl" is loaded. After
> rebuild barebox, it's possible to probe the bus, but the command
> only answered with an timeout:
> 
> barebox@Phytec phyFLEX-i.MX6 Quad Carrier-Board:/ i2c_probe 1 83 83
> probing i2c range 0x53 - 0x53 :
> i2c2: <i2c_fsl_bus_busy> timeout waiting for I2C bus busy

I *think* this means that the levels on the bus do not properly follow
what the controller wants to do. Maybe pullup missing? An oscilloscope
might help here.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: Usage of i2c_-Tools in Barebox
  2015-05-08  5:12       ` Sascha Hauer
@ 2015-05-20  6:34         ` Marcel Behlau
  2015-05-22  6:41           ` Sascha Hauer
  0 siblings, 1 reply; 7+ messages in thread
From: Marcel Behlau @ 2015-05-20  6:34 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox, Uwe Kleine-König

Hi,

i found the problem. The Pad Mux Register (0x20E008C and 0x20E0090) are 
not initialised. In both registers is a 0x00000005 (reset value), 
instead of 0x00000016. I think, i must specify the value of the mux 
register in the device tree, too. How can i do this?

Thank in advance,

Marcel

md 0x20E008C-0x20E0093

On 08.05.2015 07:12, Sascha Hauer wrote:
> On Thu, May 07, 2015 at 01:24:19PM +0200, Marcel Behlau wrote:
>> Hi,
>>
>> many thanks for your help. I activated the i2c devices in the device
>> tree, the pinctrl is already done in the imx6q.dtsi, which is
>> included. The used pins are identically with the used pins on the
>> SBC. devinfo told me, that the driver "i2c-fsl" is loaded. After
>> rebuild barebox, it's possible to probe the bus, but the command
>> only answered with an timeout:
>>
>> barebox@Phytec phyFLEX-i.MX6 Quad Carrier-Board:/ i2c_probe 1 83 83
>> probing i2c range 0x53 - 0x53 :
>> i2c2: <i2c_fsl_bus_busy> timeout waiting for I2C bus busy
> I *think* this means that the levels on the bus do not properly follow
> what the controller wants to do. Maybe pullup missing? An oscilloscope
> might help here.
>
> Sascha
>

-- 
Dipl. Ing (FH) Marcel Behlau
(Software Developer)

ELFIN GmbH
Siegburger Straße 215
50679 Köln
Germany

Tel: +49 (221) 6778932-0
Fax: +49 (221) 6778932-2
marcel.behlau@elfin.de
www.elfin.de


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: Usage of i2c_-Tools in Barebox
  2015-05-20  6:34         ` Marcel Behlau
@ 2015-05-22  6:41           ` Sascha Hauer
  0 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2015-05-22  6:41 UTC (permalink / raw)
  To: Marcel Behlau; +Cc: barebox, Uwe Kleine-König

On Wed, May 20, 2015 at 08:34:23AM +0200, Marcel Behlau wrote:
> Hi,
> 
> i found the problem. The Pad Mux Register (0x20E008C and 0x20E0090)
> are not initialised. In both registers is a 0x00000005 (reset
> value), instead of 0x00000016. I think, i must specify the value of
> the mux register in the device tree, too. How can i do this?

You have to add a pinctrl node, like this:

&iomuxc {
	imx6s-riotboard {
		pinctrl_i2c1_2: i2c1grp-2 {
			fsl,pins = <
				MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
				MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
			>;
		};
	};
};

...

&i2c1 {
	pinctrl-0 = <&pinctrl_i2c1_2>;
};

See dts/Bindings/pinctrl/fsl,imx-pinctrl.txt and
dts/Bindings/pinctrl/fsl,imx6q-pinctrl.txt for a documentation what the
0x4001b8b1 value means. In short bit30 is for the SION bit and the
remaing bits are for the PAD_CTL register.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

end of thread, other threads:[~2015-05-22  6:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-05 14:56 Usage of i2c_-Tools in Barebox Marcel Behlau
2015-05-05 15:54 ` Sascha Hauer
2015-05-06  7:12   ` Uwe Kleine-König
2015-05-07 11:24     ` Marcel Behlau
2015-05-08  5:12       ` Sascha Hauer
2015-05-20  6:34         ` Marcel Behlau
2015-05-22  6:41           ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox