+ }
+ else // Tantos switch chip
+ {
+ //printf("Tantos Switch detected!!\n\r");
+
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x80a10004;
+
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x80c10004;
+
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x80f50773;
+
+ /* Software workaround. */
+ /* PHY reset from P0 to P4. */
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+
+ mdelay(1);
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x81218000;
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ mdelay(1);
+ /* P0 */
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x81200400;
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ mdelay(1);
+ /* P1 */
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x81200420;
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ mdelay(1);
+ /* P2 */
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x81200440;
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ mdelay(1);
+ /* P3 */
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x81200460;
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ mdelay(1);
+ /* p4 */
+ *DANUBE_PPE_ETOP_MDIO_ACC =0x81200480;
+ while(*DANUBE_PPE_ETOP_MDIO_ACC&0x80000000);
+ mdelay(1);
+ }