ЗАО «ЗЭО»

Техническая поддержка пользователей => Тион, Тион-Про, Тион-Про v2, Сириус => Тема начата: laborer от 12 Января, 2012, 17:00:18

Название: Отключить питание на dm9000
Отправлено: laborer от 12 Января, 2012, 17:00:18
Может кто подскажет чего по теме?
Имеется ввиду такая ситуация: ethernet во время разработки и отладки был очень кстати, а в законченном устройстве он не нужен.
Хочется для экономии батарейки полностью "обесточить" этот чип. Нашёл в drivers/net/dm9000.c
static void
dm9000_shutdown(struct net_device *dev)
{
board_info_t *db = (board_info_t *) dev->priv;

/* RESET device */
dm9000_phy_write(dev, 0, MII_BMCR, BMCR_RESET); /* PHY RESET */
iow(db, DM9000_GPR, 0x01); /* Power-Down PHY */
iow(db, DM9000_IMR, IMR_PAR); /* Disable all interrupt */
iow(db, DM9000_RCR, 0x00); /* Disable RX */
}

Вроде бы управление энергосбережением есть, но не совсем ясно как им пользоваться.
Сие работать не хочет
Цитировать
# echo 1 >  /sys/devices/platform/dm9000.0/power/state
sh: write error: Invalid argument

Подозреваю, что питание будет сниматься при выгрузке модуля dm9000. А для этого модуль надо сперва загрузить.
Как то некрасиво получается: модуль не использую, но приходится дёргать его туда-сюда.

А может достаточно модуль не загружать или даже не описывать его в файле tion270.c?
Мне не ясно, в каком состоянии микросхема оказывается после загрузки линукса.
Название: Re: Отключить питание на dm9000
Отправлено: asv от 12 Января, 2012, 17:47:19
А ifdown eth0 не вызывает в результате dm9000_shutdown?
Название: Re: Отключить питание на dm9000
Отправлено: asv от 12 Января, 2012, 17:59:21
Кроме того, есть 11-тый бит BMCR (power down), см. 9.11.1 Power Down Mode в описании DM9000