The LAN9512 is the hardware device which controls Ethernet and USB ports. This chip consumes almost 200mA, and it will be very useful to disable it to save energy when I don't need USB or Ethernet. The LAN9512 datasheet explains some states of the device to save energy - these modes are SUSPEND2, SUSPEND1 and SUSPEND0. Therefore, it seems to be possible.
I have already found a partial solution:
echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower
will effectively disable the device and wake up it again withecho 0x1
to the same file. However, once the device has been stopped and started a certain number of times, it won't wake up again until the next reboot of the operating system.
Is there a method to disable LAN9512 and start it again reliably? (Maybe can I reload some driver that controls LAN9512?)
Motivation
When a raspberry pi model B is idle, it consumes 400 mA. When it's stressed, 470mA. When the LAN9512 is disabled, it consumes 200mA on idle and 260mA stressed.
Others
- I have tested the fiability of disabling the chip through "buspower" by using a script that disables the LAN9512, tries to mount an usb device to check for activity and reboots. Until now, the raspberry pi has rebooted 9222 times without errors.
echo 1 > /sys/devices/platform/bcm2708_usb/bussuspend
Disables the LAN9512 But won't wake it up again when doingecho 0
to the same file. After disabling it, the raspberry pi goes extremly slow reporting a load average up to 4.