Проверил сейчас ещё раз. Если отогнуть 2 ноги PIN_15 и PIN_16, то не происходит обмен с чипом adv7180
Призагрузке ядра пишет:
adv7180 0-0021: chip found @ 0x42 (i2c-gpio-1)
adv7180: Failed to probe: -6
Причём я уверен что загибал именно те ноги, какие надо.
Ошибиться конечно можно, но довольно сложно.
Скажите пожалуйста, если с видео плага что-то приходит на PIN_15 и PIN_16 и на те же пины приходят данные с sim508 то это ошибка проектирования видео плага?
Не всегда можно объять необъятное - думаю при разводке плат просто никто не думал использовать всю периферию и разом, вы пока не гните пины понапрасну - все может быть что и гнете не то что нужно :) мне бы на ядро взглянуть ваше - есть возможность закачать его архив куда-нибуть на файлообменник и дать линк ?
Такой вопрос - драйвер adv7180 вы сами вписали в board-sam9260ek.c или так было у Павла ? Насколько я помню этот драйвер вообще не нужен был. Потом вы явно что-то не то гнете - не используются PIN_15, PIN_16 в ISI, вот они
at91_set_A_periph(AT91_PIN_PB4, 1); /* TXD0 */
at91_set_A_periph(AT91_PIN_PB5, 0); /* RXD0 */
а вот что в ISI используется
void __init at91_add_device_isi(struct isi_platform_data * data)
{
struct platform_device *pdev;
Я писал этот код читая данный форум и смотря на схему платы. Драйвер adv7180 нужен, без него никак.
Ножки я гнул те, ну смотрите:
1. У меня есть первая модификация и я точно знаю где у меня на разъёме расположены ноги VS и FIELD.
2. Смотря на схему я вижу что ножки которые идут к PIN_16 и PIN_15 на ходятся на той же стороне разъёма что и ножка VS, отступая одну ногу от VS в сторону большего числа ножек.
2.1. Я же говорю, я проверил несколко раз, смотрел на маркировку разъёма Х11, там указаны 1 и 2 нога, отчитывал от них, всё сходилось.
Уважаемый sasamy, я сейчас опять отогнул ножки и проверил. Я Вас обманул насчёт
Симптомы всё те же (при отогнутых ножках), если плаг включен, при обращении к /dev/ttyS1 ОС вешается.
Включаю и выключаю плаг так:
case '4':
printk(KERN_INFO NAME ": Video Plug power ON.\n", m);
at91_set_gpio_output(AT91_PIN_PB2, 1); /* */
at91_set_gpio_output(AT91_PIN_PB19, 1); /* */
break;
case '5':
printk(KERN_INFO NAME ": Video Plug power OFF.\n", m);
at91_set_gpio_output(AT91_PIN_PB2, 0); /* */
at91_set_gpio_output(AT91_PIN_PB19, 0); /* */
break;
Давайте рассуждать здраво - ваш драйвер adv7180 - это работа с регистрами adv7180 по I2C. PIN_15, PIN_16 - попадают на P9,P11 adv7180 - эти пины работают только на выход. Каким образом отсоединение неиспользуемых выводов от внешнего устройства может повлиять на обмен по I2C, пины которого расположены на разъеме совсем в другом месте ?