Thread View: pl.comp.os.linux.programowanie
8 messages
8 total messages
Started by elonica.pl
Fri, 22 Jul 2011 14:44
Sterownik I2C
Author: elonica.pl
Date: Fri, 22 Jul 2011 14:44
Date: Fri, 22 Jul 2011 14:44
21 lines
2003 bytes
2003 bytes
Witam, Na poczatek pytam, czy ktos na linux.programowanie zna tematy sterownikow w kernelu. Ewentualnie czy znacie inna aktywna grupe (pol, ang) gdzie mozna zadawac pytania w tej dziedzinie. Przymierzam sie do napisania wlasnego sterownika dla IIC. SDK dla SoC na ktorym pracuje udostepnia tylko wlasny sterownik. Nie jest on kompatybilny z warstawmi linuxa. Nie moge do niego podpiac np. strownika RTC. Przegladajac kod doszedlem do wniosku, ze bede musial stworzyc wlasny plik w katalogu busses i kiedy dopasuje interfejsy wszystko powinno dalej dzialac. Wiecie moze na ktorym sterowniku najlepiej bazowac ? Do obslugi I2C mam ~9 32-bitowych rejestrow i pewnie wystarczy je dobrze wkomponowac w kod. i2c-ibm_iic.c wydaje mi sie dosc przejrzysty. Pozdrawiam Bartlomiej Grzeskowiak
Re: Sterownik I2C
Author: Krzysztof Halasa
Date: Fri, 22 Jul 2011 16:56
Date: Fri, 22 Jul 2011 16:56
18 lines
1490 bytes
1490 bytes
"elonica.pl" <bartlomiej.grzeskowiak@gmail.com> writes: > Przymierzam sie do napisania wlasnego sterownika dla IIC. SDK dla SoC > na ktorym pracuje udostepnia tylko wlasny sterownik. Nie jest on > kompatybilny z warstawmi linuxa. Nie moge do niego podpiac np. > strownika RTC. Przegladajac kod doszedlem do wniosku, ze bede musial > stworzyc wlasny plik w katalogu busses i kiedy dopasuje interfejsy > wszystko powinno dalej dzialac. > > Wiecie moze na ktorym sterowniku najlepiej bazowac ? Do obslugi I2C > mam ~9 32-bitowych rejestrow i pewnie wystarczy je dobrze wkomponowac > w kod. > > i2c-ibm_iic.c wydaje mi sie dosc przejrzysty. To chyba nie ma zadnego problemu? -- Krzysztof Halasa
Re: Sterownik I2C
Author: elonica.pl
Date: Fri, 22 Jul 2011 21:05
Date: Fri, 22 Jul 2011 21:05
5 lines
1480 bytes
1480 bytes
Pytam, czy macie jakieś doświadczenie z takimi sterownikami. Może obrałem złą drogę, Czeka mnie jeszcze taka sama przeprawa z SPI i USB gadget. Wszelkie informacje będą mi pomocne.
Re: Sterownik I2C
Author: Krzysztof Halasa
Date: Sat, 23 Jul 2011 13:21
Date: Sat, 23 Jul 2011 13:21
14 lines
1351 bytes
1351 bytes
"elonica.pl" <bartlomiej.grzeskowiak@gmail.com> writes: > Pytam, czy macie jakieś doświadczenie z takimi sterownikami. > Może obrałem złą drogę, Czeka mnie jeszcze taka sama przeprawa z SPI i > USB gadget. > > Wszelkie informacje będą mi pomocne. Latwiej odpowiedziec raczej na konkretne pytanie, w rodzaju "XXX mi nie dziala" itp. Jasne jest chyba ze wzorowanie sie na istniejacym kodzie to dobre (jedyne?) rozwiazanie. -- Krzysztof Halasa
Re: Sterownik I2C
Author: elonica.pl
Date: Wed, 10 Aug 2011 16:03
Date: Wed, 10 Aug 2011 16:03
28 lines
2165 bytes
2165 bytes
Witam, OK. Jeśli moglibyście mnie trochę naprowadzić co nie działa. Potrzebuje uruchomić RTC (pcf8563) który jest podłączony przez I2C do procka. Stworzyłem prosty moduł sterownika i2c-rt3352. Jak na razie niewiele sie w nim dzieje, ale chciałbym dotrzeć do miejsca w którym wywołanie hwclock będzie wysyłało do niego ioctl-e. Ładuje po kolei: insmod i2c-core insmod i2c-rt3352 insmod rtc-pcf8563 insmod rtc-dev Po zaladowaniu tego ostatniego mam: #cat /proc/devices 253 rtc Dalej tworze noda: #mknod /dev/rtc c 253 0 #ls -l /dev/rtc crw-r--r-- 1 0 0 253, 0 /dev/rtc Jednak w efekcie nadal dostaje: #cat /dev/rtc can't open: no such device or address #hwclock hwclock:can't open /dev/rtc
Re: Sterownik I2C
Author: Krzysztof Halasa
Date: Wed, 10 Aug 2011 20:06
Date: Wed, 10 Aug 2011 20:06
39 lines
2176 bytes
2176 bytes
"elonica.pl" <bartlomiej.grzeskowiak@gmail.com> writes: > OK. Jeśli moglibyście mnie trochę naprowadzić co nie działa. > Potrzebuje uruchomić RTC (pcf8563) który jest podłączony przez I2C do > procka. > > Stworzyłem prosty moduł sterownika i2c-rt3352. Jak na razie niewiele > sie w nim dzieje, ale chciałbym dotrzeć do miejsca w którym wywołanie > hwclock będzie wysyłało do niego ioctl-e. Ładuje po kolei: > insmod i2c-core > insmod i2c-rt3352 Rozumiem ze to jest driver "adaptera i2c". > insmod rtc-pcf8563 > insmod rtc-dev > > Po zaladowaniu tego ostatniego mam: > #cat /proc/devices > 253 rtc > > Dalej tworze noda: > #mknod /dev/rtc c 253 0 > #ls -l /dev/rtc > crw-r--r-- 1 0 0 253, 0 /dev/rtc No tak, ale to nie oznacza, ze driver PCFa wykryl i zarejestrowal istniejace urzadzenie. Najprosciej dopisac kilka printk(KERN_DEBUG "%s[%u]\n", __FUNCTION__, __LINE__); np. w pcf8563_probe(), bedzie wiadomo w ktorym miejscu cos sie nie udalo. Tak w ogole rtc_device_register() tworzy pliki urzadzen w /dev (w /sys, a na ich podstawie udev tworzy pliki w /dev), wiec wszelkie takie mknody sa zbedne. -- Krzysztof Halasa
Re: Sterownik I2C
Author: elonica.pl
Date: Thu, 18 Aug 2011 08:47
Date: Thu, 18 Aug 2011 08:47
18 lines
2216 bytes
2216 bytes
Tak, to jest driver adapreta i2c. Wyglada, ze u mnie
rtc_device_register() nie tworzy pliku automatycznie. To jest dosc
stary kernel - 2.6.21.
Ok. Zaczelo dzialac po przeanalizowaniu kolejnych wywolan z
printk(KERN_DEBUG "%s[%u]\n", __FUNCTION__, __LINE__);.
Zeby funkcja probe zaczela szukac kosci RTC musialem w rtc-pcf8563.c
dodac ares kosci (0xa2):
/* Addresses to scan: none
* This chip cannot be reliably autodetected. An empty eeprom
* located at 0x51 will pass the validation routine due to
* the way the registers are implemented.
*/
static unsigned short normal_i2c[] = { 0xa2, I2C_CLIENT_END };
Pozdrawiam
Bartlomiej Grzeskowiak
Re: Sterownik I2C
Author: Krzysztof Halasa
Date: Fri, 19 Aug 2011 22:28
Date: Fri, 19 Aug 2011 22:28
23 lines
2037 bytes
2037 bytes
"elonica.pl" <bartlomiej.grzeskowiak@gmail.com> writes:
> Tak, to jest driver adapreta i2c. Wyglada, ze u mnie
> rtc_device_register() nie tworzy pliku automatycznie. To jest dosc
> stary kernel - 2.6.21.
Rozwazylbym upgrade do ostatniej. Zreszta tu nie ma wiele do rozwazania,
jesli system nie jest jakos ekstremalnie mocno zmodyfikowany to
oplacalnosc jest oczywista.
> Zeby funkcja probe zaczela szukac kosci RTC musialem w rtc-pcf8563.c
> dodac ares kosci (0xa2):
> /* Addresses to scan: none
> * This chip cannot be reliably autodetected. An empty eeprom
> * located at 0x51 will pass the validation routine due to
> * the way the registers are implemented.
> */
> static unsigned short normal_i2c[] = { 0xa2, I2C_CLIENT_END };
Zdaje sie ze lepszym pomyslem jest podanie tego jako parametrow kernela
(modulu), z tym ze jak to dokladnie wyglada to nie pamietam.
--
Krzysztof Halasa
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads