09:17 | Exaga | HAPPY NEW YEAR 2015 everybody. may you have a prosperous and productive 12 months ahead! |
14:45 | Exaga | happy new year Artox x |
14:45 | Artox | thanks Exaga |
14:45 | Artox | you too |
14:45 | Exaga | ty :) |
15:03 | Dom__ | rabeeh: are you here? |
15:08 | Dom__ | some other with experience in kernel driver development? |
15:08 | curlymo | kernel driver for what? |
15:09 | Dom__ | i want to add an i2c device driver |
15:10 | curlymo | in the kernel itself? |
15:10 | curlymo | what device? |
15:10 | Dom__ | i read, that i need to call i2c_register_board_info to identify my device in the board driver. but don't know, which file contains the board driver |
15:10 | curlymo | what device? |
15:11 | Dom__ | ov5647 camera |
15:11 | Dom__ | on a hummingboard i2ex |
15:11 | Humpelstilzchen | and I thought we use devicetree nowadays for that |
15:12 | Dom__ | Humpelstilzchen: do you speak german or only dutch? |
15:12 | Humpelstilzchen | german |
15:13 | Dom__ | ok. kannst du mir das erkl?ren wie das mit dem devicetree funktioniertss |
15:13 | Dom__ | ? |
15:13 | curlymo | ehm, english? |
15:13 | Humpelstilzchen | yeah lets keep english |
15:13 | curlymo | you can try to port this: https://android.googlesource.com/kernel/msm/+/e8cd8ba448c7f010908b9a9c61ee6457359a1f03/drivers/media/video/msm/ov5647.c |
15:14 | Humpelstilzchen | Dom__: this is a driver you find on the web= |
15:14 | Humpelstilzchen | ? |
15:14 | Dom__ | i have already different source codes for this device |
15:14 | Dom__ | i already compiled a driver (.ko-file) and loaded them |
15:14 | curlymo | and? |
15:14 | Dom__ | but my probe method is never called |
15:15 | Dom__ | so i read in the web, that i have to use i2c_register_board_info give kernel the informationen, that on i2c bus 0, address 0x36 is the ov5647 |
15:16 | curlymo | but if the probe method doesn't work, nothing will :) |
15:17 | Dom__ | if i use "echo ov4537 0x36 > /sys/bus/i2c/devices/i2c-0/new_device", probe method will be called |
15:17 | curlymo | ok |
15:18 | curlymo | but don't you need a loop to check when the device is connected? |
15:18 | Dom__ | *echo ov5647 0x36... |
15:18 | curlymo | so load the kernel module -> start a loop that check for the camera -> register camera |
15:19 | Dom__ | i never wrote a kernel module before, so i don't know what is the correct way |
15:20 | Dom__ | the source codes of ov5647 in the web don't have a loop for checking for the camera |
15:20 | Humpelstilzchen | uhm why a loop? |
15:21 | Humpelstilzchen | its either there or not |
15:21 | curlymo | but when it's not connected when the module is loaded? |
15:21 | Humpelstilzchen | i2c is usually not a hotplug bus |
15:21 | Dom__ | it is alway connected |
15:22 | curlymo | You can't assume that a user operates i2c as expected :) |
15:22 | Dom__ | Humpelstilzchen: what must i do, to connect i2c bus 0 on address 0x36 to my driver? |
15:23 | Dom__ | curlymo: i don't want to cover user mistakes now |
15:24 | Dom__ | only want to run this driver |
15:24 | curlymo | you can check how to get the probe to run in two examples that are essentially the same moduels. With and without device tree. |
15:24 | curlymo | https://github.com/linux4kix/linux-linaro-stable-mx6/commit/7311833a128054c5f254b8168a8022e7b87db7e8 |
15:24 | curlymo | ^with device tree |
15:24 | curlymo | https://github.com/xbianonpi/xbian-package-kernel/blob/master/patches/imx6/xbian_lirc_kernel.patch#L1171-L1855 |
15:24 | curlymo | ^without device tree but with module arguments |
15:24 | Humpelstilzchen | but that requires the module to already support device trees |
15:24 | Humpelstilzchen | we don't know that yet |
15:25 | Humpelstilzchen | Dom__: can you point us to the module you use? |
15:26 | _unreal_ | hello, I was given a cubox development platform some time ago. it does not boot I know little about it and am trying to figure out how to get a build onto it. http://www.solid-run.com/archive/mw/Unbricking_CuBox_-_Reflashing_SPI_Memory |
15:26 | _unreal_ | cubox v1 |
15:28 | Dom__ | Humpelstilzchen: https://github.com/linux4kix/linux-linaro-stable-mx6/blob/linux-linaro-lsk-v3.14-mx6/drivers/media/i2c/soc_camera/ov5642.c |
15:28 | Dom__ | i used this module as start |
15:29 | curlymo | how do you know probe doesn't run? |
15:29 | Dom__ | added printk at beginning of this function |
15:29 | curlymo | good |
15:34 | curlymo | If i read here: https://www.kernel.org/doc/Documentation/i2c/writing-clients |
15:35 | curlymo | The idtable requires an I2C address. The one in the module is just 0 |
15:35 | curlymo | what happens if you change the 0 to 0x36? |
15:36 | Dom__ | i try it |
15:37 | Dom__ | but i think it is only a id, not the bus address |
15:37 | curlymo | ok |
15:38 | curlymo | i'm just wondering how the kernel knows what module to probe |
15:38 | Humpelstilzchen | curlymo: kernel uses devicetree |
15:38 | curlymo | i know |
15:38 | curlymo | but i don't see device tree parsing in the i2c modules |
15:39 | Humpelstilzchen | me neither, which suggest that it is not ported (yet) |
15:39 | curlymo | i sure it's just me, but trying to understand as well :) |
15:39 | Humpelstilzchen | so we probably need a separate module to load this one |
15:39 | curlymo | the i2c_device_id is 0 for all module i see |
15:40 | Dom__ | how can i get the device to the device tree? |
15:40 | curlymo | i would just start by probing and registering it manually |
15:40 | curlymo | just compare the two modules i posted earlier |
15:42 | curlymo | https://github.com/xbianonpi/xbian-package-kernel/blob/master/patches/imx6/xbian_lirc_kernel.patch#L1830-L1831 |
15:43 | curlymo | then create two dummy __init and __exit functions that just call ov5642_probe and ov5642_remove respectively |
15:43 | curlymo | only issue would be figuring how to manually create the struct i2c_client |
15:47 | curlymo | If you compare the actual source of this module: http://lxr.free-electrons.com/source/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c with one of the patches, the functions should be easily replaceable: https://lists.ozlabs.org/pipermail/linuxppc-dev/2012-October/101626.html |
15:47 | Dom__ | re, pc hanged |
15:48 | curlymo | therefor you should be able to manually call __init and __exit when modprobe the module manually |
15:57 | curlymo | have to go |
15:58 | Dom__ | ok. thanks curlymo |
15:58 | Humpelstilzchen | hmm i2c devices might not need the device tree parsing |
15:58 | Humpelstilzchen | https://www.kernel.org/doc/Documentation/i2c/instantiating-devices |
15:59 | Dom__ | yes, right |
15:59 | Humpelstilzchen | can you try that? |
15:59 | Dom__ | but where to add the i2c_register_board_info? |
15:59 | Humpelstilzchen | Dom__: thats the old method, which is pre-devicetree |
16:00 | Dom__ | if it works, its ok for me :D |
16:00 | _unreal_ | what is the difference between these? http://download.solid-run.com/pub/solidrun/cubox/u-boot/2009.08_5.4.4_SR1/aug-6-2013/ |
16:00 | _unreal_ | I have found little to no info describing what they are |
16:00 | Humpelstilzchen | Dom__: the ppoint of devicetree was to remove board init stuff why it probably doesn't exist |
16:01 | Humpelstilzchen | so look at method 1b |
16:01 | _unreal_ | could any of you take a quick look at that link and let me know if any of you know what the differences between the 3 images are? |
16:01 | Dom__ | ok. thanks |
16:02 | _unreal_ | Humpelstilzchen, ? |
16:06 | _unreal_ | is every one just ignoring me |
16:08 | _unreal_ | any one live? |
16:08 | Dom__ | or nobody knows an answer |
16:09 | Humpelstilzchen | ^ |
16:09 | _unreal_ | so its to much to say sorry dont knw |
16:09 | Humpelstilzchen | you expect 100 people to say "don't know"? |
16:10 | _unreal_ | really........ |
16:10 | Humpelstilzchen | _unreal_: try the forum |
16:11 | _unreal_ | I have been looking and reading. |
16:12 | _unreal_ | all I want is to get this cubox to boot |
16:12 | _unreal_ | it was given to me its a cubox v1 devlopment platform (AKA first beast made) |
16:44 | _unreal_ | lookhttp://www.solid-run.com/archive/mw/Unbricking_CuBox_-_Reflashing_SPI_Memory |
16:44 | _unreal_ | frig |
16:48 | _unreal_ | ok I'm running this command |
16:48 | _unreal_ | [laptop@localhost cubox]$ ./burn_u-boot.sh /dev/ttyUSB0 /home/laptop/Downloads/cubox/solidrun/cubox/u-boot/2009.08_5.4.4_SR1/apr-8-2013/u-boot-cubox_hynix_cubox_2GB_uart.bin |
22:39 | Dom__ | rabeeh: are you here? |
22:48 | curlymo | Did you try my suggestion? |
23:02 | Dom__ | no, i need some information about the soc to understand the imageflow |
23:23 | curlymo | @Dom___ |
23:23 | curlymo | the documents about the SOC are called IMX6DQRM.pdf and IMX6SDLRM.pdf |