> D> 2. Можно ли под линуксом заставить работать FM тюнер MediaForte и, если
> да, D> то как?
Делается просто
Тебе нужно руководство на fm801.
Там есть GPIO регистр с адресом 0x52-53, Там только 4 вх/вых которые нужны для
TEA5757(приемник)
В QuadXtreme, they are connected as follows
FM801 TEA5757
GPIO ----------------------> BUSCLK (pin27)
GPIO1 <DATA (pin28)
nGPIO2 --------------------> WriteEnable (pin29) **nGPIO2 инверсия GPI02
GPIO3 <MO/ST (pin24)
In Radio card the io assignment is slightly different as follows:
FM801 TEA5757
GPIO ----------------------> BUSCLK (pin27)
nGPIO1 --------------------> WriteEnable (pin29) **nGPIO2 инверсия GPI01
GPIO2 <--------------------> DATA (pin28)
GPIO3 <MO/ST (pin24)
Из Datasheet на TEA5757 следует что тебе нужно заполнить 25 бит приемника
Во-общем я сильно не затруднялся в чтобы включить и настроить приемник
просто добавил в файл fm801.c (дистриб alsa-driver) следующее :
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 1 S.24 (MSB) search
start/end
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 2 D.23 search up/down
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 3 M.22 mono/stereo
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 4 B0.21 band
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 5 B1.20 band
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 6 P0.19 port
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 7 P1.18 port
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 8 S0.17 search-level of
station
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 9 S1.16 search-level of
station
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 10 15 dummy
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 11 F.14
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 12 F.13
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 13 F.12
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 14 F.11
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 15 F.10
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 16 F.9
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 17 F.8
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 18 F.7
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 19 F.6
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 20 F.5
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 21 F.4
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 22 F.3
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //set bit 23 F.2
udelay(radio_delay);
outw(0xF8F3, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F2, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 24 F.1
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //write two
udelay(radio_delay);
outw(0xF8F0, FM801_REG(chip, GPIO_CTRL)); //set bit 25 F.0
udelay(radio_delay);
outw(0xF8F1, FM801_REG(chip, GPIO_CTRL)); //write
udelay(radio_delay);
настраиваю приемник
umount snd-fm801
mount snd-fm801
Звук регулируется
amixer set 'Aux' 100:100 unmute
P.S
Если придумаешь что-нибудь получше пиши мне на мыло
Andrew
В сообщении от 22 Январь 2004 09:15 Lucifer написал(a):
> Здравствуйте, Denis.
>
> Вы писали 21 января 2004 г., 21:44:25:
>
> D> В линуксе только осваиваюсь. Поэтому, прошу помочь:
>
> D> 1. Как узнать в консоли количество свободного места на диске?
>
> df -h
>
> D> 2. Можно ли под линуксом заставить работать FM тюнер MediaForte и, если
> да, D> то как?
> без комментов
>
> D> 3. Как в линуксе подключить флэшку?
>
> Я подключаю таким образом:
> mount -t vfat /dev/sdaN /mnt/flash
>
> где N число от 1 и далее
> Необходимо чтоб ядро было скомпилено с поддержкой mass storage