[meta-freescale] speed of /dev/i2c-2 in imx6q sabre-lite

Eric Nelson eric.nelson at boundarydevices.com
Wed Aug 14 07:28:04 PDT 2013


Hi Thanassis,

On 08/14/2013 05:25 AM, Thanassis Silis wrote:
> Eric,
> thank you very much for the answer (I have compiled kernel 3.0.35_1.1.0
> by the way, but the code hasn't changed since then).
> I do have a question (in my limited kernel knowledge) :)
> https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.0.35_4.0.0/drivers/i2c/busses/i2c-imx.c#L63
>
> this looks like a module, but as I see in my sabrelite's
> /lib/modules/3.0.35-1.1.0+g2dc5560
> modules.builtin:92:kernel/drivers/i2c/busses/i2c-imx.ko
> it is built in the kernel.
>
> What is the purpose of i2c-imx and how does it relate to imx* boards?
>
i2c-imx is the device driver for the i2c part on many i.MX
processors, including i.MX6.

Because it's needed for many internal operations, we compile it
into the kernel, instead of as a separately loadable module.

This is a bit of "kernel configuration 101", but when you configure
drivers into the Linux kernel, you can generally choose either
"*" or "M", shown as "y" or "m" in the .config file:
	https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.0.35_4.0.0/arch/arm/configs/nitrogen6x_defconfig#L144

When you choose '*' or 'y', the driver is included in the
kernel itself (uImage on our normal usage).

If you choose 'm', the external .ko file is built.

This is mostly important at startup, since you have to have
a working filesystem and utilities like 'modprobe' or 'insmod'
to load a .ko file.

Regards,


Eric



More information about the meta-freescale mailing list