I see the following code in winbond.c: ... {0x52f, "W83977EF/EG", { ... /* ID only */ {0x52, "W83627HF/F/HG/G", { {NOLDN, NULL, ... if (devid == 0x52 || devid == 0x68 || devid == 0x88) id = devid; /* ID only */ ...
According to my understanding this means that W83627HF chip entry claims ID 0x52 regardless of revision.
But, on the other hand, I have W83977EF-AW in my system and according to its specification it has ID 0x52 and revision 0xFx. My particular chip has 0x52 and 0xF4 for instance. And with current code its entry (0x52f) is not reachable.
Looking at specification of W83627HF that I found I see that it actually has ID of 0x52 and revision 0x1x.
So while W83627 family of chips may cover a range of revisions for ID 0x52, it doesn't cover them all. And there are some significant differences in registers. For example W83977EF doesn't have logical devices 6, 9 and 0xb.
References: 1. http://www.datasheet4u.com/html/W/8/3/W83977EF-AW_Winbond.pdf.html Section 10.0
2. http://www.datasheet4u.com/html/W/8/3/W83627HF_Winbond.pdf.html Section 13.1