-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KSZ9477 can not enter power saving mode #93
Comments
Some further test results:
I still do not have the full picture behind it yet, but seems power saving mode has something to do with those MMD registers. Unfortunately I can not find any further detailed instructions in documents I can get publicly, so I do not know how to proceed. Can you please help with it? Thank you. /Roland |
Hi Ronald, Could you log a ticket @ https://microchip.my.site.com/s/ ? Looks like need to get HW support team help. |
Thank you @Ravi-Hegde for the direction. I have posted my issue on the forum> https://forum.microchip.com/s/topic/a5C3l000000BoXiEAK/t390731 |
Sorry I was not clear. Here please: https://microchip.my.site.com/s/supportservice "Create Microchip Support Case". |
@Ravi-Hegde thank you. I have filed a case through the portal. |
I loaded the complete KSZ9477 linux driver project source code. The global power control register 0 is defined in KSZ9477_reg.h,
But these macros never been referenced in source code, neither the EDPD power mode or soft power down mode. Only 8795 driver has referenced similar macros. So it looks like 9477/9897 driver never accessed global power control register 0 (0x0201). In other words, the global power control function of 9477/9897 is not verified by official software driver on 9477 EVB. Can you please confirm it? Thank you. /Roland |
The definitions in ksz9897.h are incorrect. However, writing 0x10 does accomplish something like stopping IBA operation and dropping link on all ports. Reading any register will immediately wake the system up and the links come back. |
@triha2work
By my understanding I need to write 0x00 back to this specific register to bring the chip up again, rather than any register? |
The definition of shifting the power down bits is not there, so programing the register using that information is wrong. But because that register is never used in the driver so it can be said the definition is incomplete. |
@triha2work I think you are correct about the behavior of writing 0x10 into 0x201, as I can also reproduce it on my own hardware, after removed the register read-back line of code. The current consumption now drops to about 100mA, and stand there in stable, as if some kind of "current floor" there. I do not know what is really consuming this 100mA now. From the power aspect this is not really a shut down but more like a reset. Anyway, I was planning to use this soft-power-down feature to save one GPIO of MCU as board power management. Now it looks like not a good idea as it might get into an uncertain state. |
Dear Microchip,
On my customization board I am trying to set 9477 entering one of the power saving mode, either EDPD or soft power down mode, from an external MCU. The control interface is I2C, and all enet ports are not used when doing the tests.
Following the instructions in 9477 datasheet, I write '01' or '10' to bits [4:3] into the Power Down Control 0 Register.
The write operation seems to be succeeded, as I can read the expected bits back from the register. However, the chip does not seem actually get into the power saving mode, as I can see the current measurement from the meter does not change. The result is the same for either EDPD or soft power down mode.
So do I need to do anything else other than just writing the register? or any special setup in hardware I have missed?
Thank you.
/Roland
The text was updated successfully, but these errors were encountered: