Перейти к содержанию
    

Включение/выключение питания USB

Доброго Здоровья!

Имеется плата на AM3359 ( на основе Beagle Bone Black) с запущенным linux 3.12, в качестве файловой системы использован слегка модифицированный линукс Angstrom.

На USB1 запаян FT2232H. Стоит задача включать/выключать питание USB, для перезапуска FT2232H чипа (+ кое какая перефирия питается от +5В USB.).

Начальные условия:

# lsusb 
Bus 001 Device 002: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# ls  /sys/bus/usb/devices/
1-0:1.0  1-1      1-1:1.0  1-1:1.1  2-0:1.0  usb1     usb2

Мои мытарства.

Способ N1. Пытаемся воспользоваться старым приемом, записать в /sys/bus/usb/devices/usb1/power/level значение "suspend".

Говорит, что инвалид аргумент, кроме того, радостно сообщает, что " WARNING! power/level is deprecated; use power/control instead".

Пробуем с power/control -- тоже самое. Лезем в документацию и исходники, и выясняем, что теперь туда можно записать только значения

"on" и "auto".

 

Способ N2.. На импортных форумах рекомендуют для отключения/включения питания отбиндить, а затем заново забиндить устройство.

Пытаюсь сделать это так:

echo '1-0:1.0' > /sys/bus/usb/drivers/usb/unbind
echo '1-1' > /sys/bus/usb/drivers/usb/unbind
echo '1-1:1.0' > /sys/bus/usb/drivers/usb/unbind
echo '1-1:1.1' > /sys/bus/usb/drivers/usb/unbind

На все потуги ответ один: sh: write error: No such device

До бинда дело не доходит.

 

Как отключить питание на линии USB?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

[url=http://electronix.ru/redirect.php?http://sysadm.pp.ua/linux/usb.html]http://sysadm.pp.ua/linux/usb.html[/url]

В комментариях тоже полезное есть.

Спасибо за помощь, но нет.

echo "0" > /sys/bus/usb/devices/2-1/power/autosuspend

echo "auto" > /sys/bus/usb/devices/2-1/power/level

В этих файлах и так эти значения по умолчанию.

Во все писаемые файлы из директории power уже писал все что угодно, и по исходникам смотрел, что туда вообще писать можно.

# ls -l /sys/bus/usb/devices/1-1/power/
-r--r--r--    1 root     root          4096 Oct 29 10:40 active_duration
-rw-r--r--    1 root     root          4096 Oct 29 10:32 autosuspend
-rw-r--r--    1 root     root          4096 Oct 29 10:32 autosuspend_delay_ms
-r--r--r--    1 root     root          4096 Oct 29 10:33 connected_duration
-rw-r--r--    1 root     root          4096 Oct 29 10:33 control
-rw-r--r--    1 root     root          4096 Oct 29 10:32 level
-rw-r--r--    1 root     root          4096 Oct 29 10:40 persist
-r--r--r--    1 root     root          4096 Oct 29 10:40 runtime_active_time
-r--r--r--    1 root     root          4096 Oct 29 10:40 runtime_status
-r--r--r--    1 root     root          4096 Oct 29 10:40 runtime_suspended_time
-rw-r--r--    1 root     root          4096 Oct 29 10:40 wakeup
-r--r--r--    1 root     root          4096 Oct 29 10:40 wakeup_abort_count
-r--r--r--    1 root     root          4096 Oct 29 10:40 wakeup_active
-r--r--r--    1 root     root          4096 Oct 29 10:40 wakeup_active_count
-r--r--r--    1 root     root          4096 Oct 29 10:40 wakeup_count
-r--r--r--    1 root     root          4096 Oct 29 10:40 wakeup_expire_count
-r--r--r--    1 root     root          4096 Oct 29 10:40 wakeup_last_time_ms
-r--r--r--    1 root     root          4096 Oct 29 10:40 wakeup_max_time_ms
-r--r--r--    1 root     root          4096 Oct 29 10:40 wakeup_total_time_ms

Да, эти же манипуляции проводил и с /sys/bus/usb/devices/usb1/power/

Проверил саму физическую возможность отключения питания. В device tree ножку, отвечающую за USB0_DRVVBUS,

объявил как GPIO. в результате в "ручном" режиме питание отключается, однако при загрузке, естественно, ошибка с

VBUS. Ну, и конечно, USB нормально не работает.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Один из способов снять напряжение с VBUS:

 

 для USB1:
devmem2  0x47401460 b 0x00
devmem2  0x47401460 b 0x01

для USB2:
devmem2  0x47401c60 b 0x00
devmem2  0x47401c60 b 0x01

 

Но это же не красиво. :(

Ну как же так?!

Хочется пользоваться драйвером, и не хочется верить, что с обновлением ядра сломали удобный механизм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...