October 22, 2019, 08:46:38 pm

News:

Have you visited the Allwinner Chipset wiki? - http://linux-sunxi.org/


Проблема с драйвером gpio-mcp23s08

Started by Jekl, November 25, 2014, 06:44:23 am

Previous topic - Next topic

Jekl

Пытаюсь подключить к Cubieboard 1 микросхему расширителя I/O MCP23008.
На кубике самосборный Debian. При выполнении команды:
echo mcp23008 0x20 > /sys/bus/i2c/devices/i2c-1/new_device
выдает:
Quotemcp230xx: probe of 0-0020 failed with error -22

Адрес микросхемы менять пробовал, ошибка остается.
Через I2C tools микросхема управляется нормально.
До этого подключал микросхему PCF8574 с соответствующим драйвером. Все работало нормально.
Куда смотреть?

Раджа

Ну дык вывод i2c-detect в студию и кусок dmesg с загрузкой модуля и ошибкой до кучи.
Заткнись и смотри аниме!

Jekl

Проблема уже озвучивалась в интернете, но ответа не нашел.
Итак:

root@Cubieboard:~# uname -a
Linux Cubieboard 3.4.75 #1 PREEMPT Fri Dec 27 19:00:41 EET 2013 armv7l GNU/Linux

root@Cubieboard:~# lsmod
Module                  Size  Used by
ds2482                  3758  0
wire                   26470  1 ds2482
root@Cubieboard:~# modprobe gpio-mcp23s08
root@Cubieboard:~# lsmod
Module                  Size  Used by
gpio_mcp23s08           4094  0
ds2482                  3758  0
wire                   26470  1 ds2482
root@Cubieboard:~# modinfo gpio-mcp23s08
filename:       /lib/modules/3.4.75/kernel/drivers/gpio/gpio-mcp23s08.ko
license:        GPL
srcversion:     E2FBFF921706F9C00AD9650
alias:          i2c:mcp23017
alias:          i2c:mcp23008
depends:
intree:         Y
vermagic:       3.4.75-dirty preempt mod_unload modversions ARMv7 p2v8

Никаких записей в dmesg не появилось
root@Cubieboard:~# echo mcp23008 0x24 > /sys/bus/i2c/devices/i2c-1/new_device

В dmesg
[  543.535298] mcp230xx: probe of 1-0024 failed with error -22
[  543.576841] i2c i2c-1: new_device: Instantiated device mcp23008 at 0x24


root@Cubieboard:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
20: -- -- -- -- 24 -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@Cubieboard:~#

Раджа

Дык я в упор не вижу устройства на адресе 0x20. 0x24 вижу, 0x18 вижу.
SCL и SDA точно не перепутал?
Заткнись и смотри аниме!

Jekl

Ссори  :-[ Вначале я подключал на адрес 0x20. Затем решил, что может быть конфликт с каким-то внутренним устройством и изменил адрес 0x24. В приведенных мною логах на Ваш запрос стоит именно адрес 0x24 во всех командах.

Раджа

А ты между вот этими добавлениями удалял старые созданные устройства?
В /sys/bus/i2c/devices/i2c-1/ есть еще файл для удаления устройства, в него вроде только адрес записать надо.
Заткнись и смотри аниме!

Jekl

Quote from: Раджа on November 27, 2014, 12:21:40 am
SCL и SDA точно не перепутал?

Я писал, что через I2C tools микросхема управляется нормально, т.е. со схемотехникой все нормально.
Quote from: Раджа on November 27, 2014, 08:16:09 am
А ты между вот этими добавлениями удалял старые созданные устройства?
В /sys/bus/i2c/devices/i2c-1/ есть еще файл для удаления устройства, в него вроде только адрес записать надо.

И удалял и перегружал 10 раз. :)

Раджа

Ну тогда остаются только глюки драйвера ака модуля. Это уже надо его сорсы смотреть.
Заткнись и смотри аниме!

Jekl

Quote from: Раджа on November 28, 2014, 12:48:28 am
Ну тогда остаются только глюки драйвера ака модуля. Это уже надо его сорсы смотреть.

Понимаю, но тут я пас  :'(

null

ядро то обнови,  3.4.75 - год назад было