Симптомы следующие:
Загружаюсь с СД карты - не видит тачскрин.
Включаю в ядре SPI_bitbang + SPI_GPIO_bitbang напрямую в ядро (НЕ модулем)
Получаю ошибку, что mmcblk0 не появляется. Однако вижу, как инициализируется ads7846 драйвер с устройством ADS7843.
Далее включаю bitbang-и в виде модулей. Загружаюсь нормально, но попытка modprobe spi_gpio приводит к таким ошибками:
stmp3xxx_request_pin: CONFLICT DETECTED pin 0:20 caller gpio owner mmc
spi_gpio: probe of spi_gpio.3 failed with error -16
Т.е. я так понимаю, что SD и TS не могут поделить шину. тот самый MK_P21. Насколько я понимаю (а понимаю я пока мало) решением пока может являться только аппаратная переразводка. Либо таки через bitbang заставить работать один из драйверов с другой ногой.
Или я где-то, что-то не понимаю?
Вообще реально завести TS и SD одновременно на этой плате?
А вы я так понимаю сделали "подтяжку" ? Похоже перестарались с сопротивлением и CS в ноль никогда не уходит - контроллер TP не активен. Я так понимаю смысл подтяжки CS в том чтобы тачскрин был неактивен в момент загрузки и не мешал на выводах miso/mosi/sclk но сопротивление должно быть таким чтобы потом при работе gpio был в состоянии выставить ноль на линии CS - у нее активный уровень низкий.
подтяжки 1к, 5к, 10к - результат один.
Сделал немного по другому. Переназначил пин в ядре. Выкусил 39-ю ногу на разъеме, на стороне TFT панели сделал соплю с 18-й ноги на 39-ю. Заработало. Дальше 100% уже линуксовые вопросы, аппаратно все завелось.
Действительно - пин конфликтный оказался, я раньше не обращал внимания потому что с mmc практически не работал, Павел вообще хотел без mmc сделать плату - с трудом удалось уговорить его задействовать :) Похоже в данном случае выход только такой как сделали вы - перекинуть пин miso на эмулируемом spi на другой пин gpio. .