установка ядра 3.5.3 на плату
Jury093
Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Код На PD21- PENIRQ есть жизнь при касании touch-панели
дак это физика ads7843 ногой дрыгает, а проц жалуется:
Код Setting trigger mode 2 for irq 117 failed
вот и нет прерываний в системе - смотрите настройки.. имхо..
На любой вопрос есть любой ответ.
lexx666
Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
В родном старом ядре в логе тоже ругань... но как-то работает.
Цитата
Linux version 2.6.36-rc6 (lexx@lexx666) (gcc version 4.2.0 20070413 (prerelease2
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
.....
setting trigger mode 2 for irq 149 failed (gpio_irq_type+0x0/0x20)
ads7846 spi3.0: trying pin change workaround on irq 149
ads7846 spi3.0: touchscreen, irq 149
Настройки все из старого ядра слизаны.
Единственная идея какая приходит в голову после просмотра других файлов боарды архитектуры at91 - нужно аппаратное прерывание, а не gpio...
lexx666
Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
хм... ругань то разная...
Цитата genirq: Setting trigger mode 2 for irq 117 failed (gpio_irq_type+0x0/0x18 )
Цитата setting trigger mode 2 for irq 149 failed (gpio_irq_type+0x0/0x20 )
ушел смотреть соурцы в раздумьях...
dx
Пункты: 7618
Регистрация: 26.10.2010
Пол: Мужчина
Из: Ukraine, Kiev city
sasamy
Пункты: 77067
Регистрация: 14.08.2009
lexx666
Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
В ядрах по разному создаются устройства gpio... Cо смещением в 32... Причём в новом ядре нумерация более логичная...
Пробовал читать состояние пина через gpio sysfs.
[root@lexx666 gpio]# cat gpio117/direction
in
Без касания панели
[root@lexx666 gpio]# cat gpio117/value
1
С касанием панели
[root@lexx666 gpio]# cat gpio117/value
0
Вроде всё логично ток хз почему не работает и cat /proc/interrupts не выдаёт изменние значения...
lexx666
Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Ёпрст...
Новое ядро:
Цитата cat /proc/interrupts
CPU0
1: 84008 AIC at91_tick, rtc0, ttyS0
11: 8098 AIC atmel_mci.0
15: 0 AIC atmel_spi.1
21: 1319 AIC at_hdmac
22: 0 AIC ehci_hcd:usb1, ohci_hcd:usb2
23: 0 AIC atmel_lcdfb
24: 0 AIC AC97C
25: 52 AIC eth0
27: 0 AIC atmel_usba_udc
63: 0 GPIO mmc-detect
83: 1 GPIO atmel_usba_udc
117: 1 GPIO ads7846
Cтарое ядро:
Цитата [root@lexx666 ~]# cat /proc/interrupts
CPU0
1: 18461 AIC at91_tick, rtc0, ttyS0
7: 14 AIC ttyS1
11: 148514 AIC atmel_mci.0
14: 0 AIC atmel_spi.0
15: 0 AIC atmel_spi.1
21: 0 AIC at_hdmac
22: 0 AIC ehci_hcd:usb1, ohci_hcd:usb2
23: 0 AIC atmel_lcdfb
25: 9 AIC eth0
27: 0 AIC atmel_usba_udc
63: 0 GPIO mmc-detect
149: 438 GPIO ads7846
назначил на irq пин pb31. ибо закрались сомнения...
Цитата #if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
{ /* ADS7846 */
.modalias = "ads7846",
.max_speed_hz = 1000000,
.bus_num = 3,
.controller_data = (void *)AT91_PIN_PC10,
.platform_data = &ads_info,
.irq = AT91_PIN_PB31,
// .irq = AT91_PIN_PD21,
},
#endif
В итоге получил, что irq ads7846 назначено
прерывание 63, оно бахнуло 63 irq GPIO mmc-detect, хотя пин mmc-detect
pa31 .
разбираемся дальше...
lexx666
Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Сделал так.
Цитата #if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
{ /* ADS7846 */
.modalias = "ads7846",
.max_speed_hz = 1000000,
.bus_num = 3,
.controller_data = (void *)AT91_PIN_PC10,
.platform_data = &ads_info,
.irq = AT91_PIN_PE21,
},
#endif
получил
Цитата genirq: Setting trigger mode 2 for irq 149 failed (gpio_irq_type+0x0/0x18)
ads7846 spi3.0: trying pin change workaround on irq 149
ads7846 spi3.0: touchscreen, irq 149
input: ADS7843 Touchscreen as /devices/platform/spi_gpio.3/spi_master/spi3/spi3.0/input/input0
Всё работает, хотя в описании должен быть пин
PD21 .
Вывод - не всегда новое ядро полезно
sasamy
Пункты: 77067
Регистрация: 14.08.2009
Проверьте - у вас SDHC карты работают на этом ядре ? у меня - нет, с обычными все ок.
lexx666
Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Да с SDHC ошибку выдаёт.
Цитата mmc0: error -110 whilst initialising SD card
Проверял с обычной картой, думал что всё путём...
На каких ядрах работает SDHC ?