Lines Matching full:phydev

18 				struct phy_device *phydev);
20 static void r8168d_modify_extpage(struct phy_device *phydev, int extpage, in r8168d_modify_extpage() argument
23 int oldpage = phy_select_page(phydev, 0x0007); in r8168d_modify_extpage()
25 __phy_write(phydev, 0x1e, extpage); in r8168d_modify_extpage()
26 __phy_modify(phydev, reg, mask, val); in r8168d_modify_extpage()
28 phy_restore_page(phydev, oldpage, 0); in r8168d_modify_extpage()
31 static void r8168d_phy_param(struct phy_device *phydev, u16 parm, in r8168d_phy_param() argument
34 int oldpage = phy_select_page(phydev, 0x0005); in r8168d_phy_param()
36 __phy_write(phydev, 0x05, parm); in r8168d_phy_param()
37 __phy_modify(phydev, 0x06, mask, val); in r8168d_phy_param()
39 phy_restore_page(phydev, oldpage, 0); in r8168d_phy_param()
42 static void r8168g_phy_param(struct phy_device *phydev, u16 parm, in r8168g_phy_param() argument
45 int oldpage = phy_select_page(phydev, 0x0a43); in r8168g_phy_param()
47 __phy_write(phydev, 0x13, parm); in r8168g_phy_param()
48 __phy_modify(phydev, 0x14, mask, val); in r8168g_phy_param()
50 phy_restore_page(phydev, oldpage, 0); in r8168g_phy_param()
58 static void __rtl_writephy_batch(struct phy_device *phydev, in __rtl_writephy_batch() argument
61 phy_lock_mdio_bus(phydev); in __rtl_writephy_batch()
64 __phy_write(phydev, regs->reg, regs->val); in __rtl_writephy_batch()
68 phy_unlock_mdio_bus(phydev); in __rtl_writephy_batch()
73 static void rtl8168f_config_eee_phy(struct phy_device *phydev) in rtl8168f_config_eee_phy() argument
75 r8168d_modify_extpage(phydev, 0x0020, 0x15, 0, BIT(8)); in rtl8168f_config_eee_phy()
76 r8168d_phy_param(phydev, 0x8b85, 0, BIT(13)); in rtl8168f_config_eee_phy()
79 static void rtl8168g_config_eee_phy(struct phy_device *phydev) in rtl8168g_config_eee_phy() argument
81 phy_modify_paged(phydev, 0x0a43, 0x11, 0, BIT(4)); in rtl8168g_config_eee_phy()
84 static void rtl8168h_config_eee_phy(struct phy_device *phydev) in rtl8168h_config_eee_phy() argument
86 rtl8168g_config_eee_phy(phydev); in rtl8168h_config_eee_phy()
88 phy_modify_paged(phydev, 0xa4a, 0x11, 0x0000, 0x0200); in rtl8168h_config_eee_phy()
89 phy_modify_paged(phydev, 0xa42, 0x14, 0x0000, 0x0080); in rtl8168h_config_eee_phy()
92 static void rtl8125a_config_eee_phy(struct phy_device *phydev) in rtl8125a_config_eee_phy() argument
94 rtl8168h_config_eee_phy(phydev); in rtl8125a_config_eee_phy()
96 phy_modify_paged(phydev, 0xa6d, 0x12, 0x0001, 0x0000); in rtl8125a_config_eee_phy()
97 phy_modify_paged(phydev, 0xa6d, 0x14, 0x0010, 0x0000); in rtl8125a_config_eee_phy()
100 static void rtl8125b_config_eee_phy(struct phy_device *phydev) in rtl8125b_config_eee_phy() argument
102 phy_modify_paged(phydev, 0xa6d, 0x12, 0x0001, 0x0000); in rtl8125b_config_eee_phy()
103 phy_modify_paged(phydev, 0xa6d, 0x14, 0x0010, 0x0000); in rtl8125b_config_eee_phy()
104 phy_modify_paged(phydev, 0xa42, 0x14, 0x0080, 0x0000); in rtl8125b_config_eee_phy()
105 phy_modify_paged(phydev, 0xa4a, 0x11, 0x0200, 0x0000); in rtl8125b_config_eee_phy()
109 struct phy_device *phydev) in rtl8169s_hw_phy_config() argument
173 rtl_writephy_batch(phydev, phy_reg_init); in rtl8169s_hw_phy_config()
177 struct phy_device *phydev) in rtl8169sb_hw_phy_config() argument
179 phy_write_paged(phydev, 0x0002, 0x01, 0x90d0); in rtl8169sb_hw_phy_config()
183 struct phy_device *phydev) in rtl8169scd_hw_phy_config() argument
225 rtl_writephy_batch(phydev, phy_reg_init); in rtl8169scd_hw_phy_config()
229 struct phy_device *phydev) in rtl8169sce_hw_phy_config() argument
279 rtl_writephy_batch(phydev, phy_reg_init); in rtl8169sce_hw_phy_config()
283 struct phy_device *phydev) in rtl8168bb_hw_phy_config() argument
285 phy_write(phydev, 0x1f, 0x0001); in rtl8168bb_hw_phy_config()
286 phy_set_bits(phydev, 0x16, BIT(0)); in rtl8168bb_hw_phy_config()
287 phy_write(phydev, 0x10, 0xf41b); in rtl8168bb_hw_phy_config()
288 phy_write(phydev, 0x1f, 0x0000); in rtl8168bb_hw_phy_config()
292 struct phy_device *phydev) in rtl8168bef_hw_phy_config() argument
294 phy_write_paged(phydev, 0x0001, 0x10, 0xf41b); in rtl8168bef_hw_phy_config()
298 struct phy_device *phydev) in rtl8168cp_1_hw_phy_config() argument
300 phy_write(phydev, 0x1d, 0x0f00); in rtl8168cp_1_hw_phy_config()
301 phy_write_paged(phydev, 0x0002, 0x0c, 0x1ec8); in rtl8168cp_1_hw_phy_config()
305 struct phy_device *phydev) in rtl8168cp_2_hw_phy_config() argument
307 phy_set_bits(phydev, 0x14, BIT(5)); in rtl8168cp_2_hw_phy_config()
308 phy_set_bits(phydev, 0x0d, BIT(5)); in rtl8168cp_2_hw_phy_config()
309 phy_write_paged(phydev, 0x0001, 0x1d, 0x3d98); in rtl8168cp_2_hw_phy_config()
313 struct phy_device *phydev) in rtl8168c_1_hw_phy_config() argument
335 rtl_writephy_batch(phydev, phy_reg_init); in rtl8168c_1_hw_phy_config()
337 phy_set_bits(phydev, 0x14, BIT(5)); in rtl8168c_1_hw_phy_config()
338 phy_set_bits(phydev, 0x0d, BIT(5)); in rtl8168c_1_hw_phy_config()
342 struct phy_device *phydev) in rtl8168c_2_hw_phy_config() argument
362 rtl_writephy_batch(phydev, phy_reg_init); in rtl8168c_2_hw_phy_config()
364 phy_set_bits(phydev, 0x16, BIT(0)); in rtl8168c_2_hw_phy_config()
365 phy_set_bits(phydev, 0x14, BIT(5)); in rtl8168c_2_hw_phy_config()
366 phy_set_bits(phydev, 0x0d, BIT(5)); in rtl8168c_2_hw_phy_config()
370 struct phy_device *phydev) in rtl8168c_3_hw_phy_config() argument
384 rtl_writephy_batch(phydev, phy_reg_init); in rtl8168c_3_hw_phy_config()
386 phy_set_bits(phydev, 0x16, BIT(0)); in rtl8168c_3_hw_phy_config()
387 phy_set_bits(phydev, 0x14, BIT(5)); in rtl8168c_3_hw_phy_config()
388 phy_set_bits(phydev, 0x0d, BIT(5)); in rtl8168c_3_hw_phy_config()
433 struct phy_device *phydev, in rtl8168d_apply_firmware_cond() argument
438 phy_write(phydev, 0x1f, 0x0005); in rtl8168d_apply_firmware_cond()
439 phy_write(phydev, 0x05, 0x001b); in rtl8168d_apply_firmware_cond()
440 reg_val = phy_read(phydev, 0x06); in rtl8168d_apply_firmware_cond()
441 phy_write(phydev, 0x1f, 0x0000); in rtl8168d_apply_firmware_cond()
444 phydev_warn(phydev, "chipset not ready for firmware\n"); in rtl8168d_apply_firmware_cond()
449 static void rtl8168d_1_common(struct phy_device *phydev) in rtl8168d_1_common() argument
453 phy_write_paged(phydev, 0x0002, 0x05, 0x669a); in rtl8168d_1_common()
454 r8168d_phy_param(phydev, 0x8330, 0xffff, 0x669a); in rtl8168d_1_common()
455 phy_write(phydev, 0x1f, 0x0002); in rtl8168d_1_common()
457 val = phy_read(phydev, 0x0d); in rtl8168d_1_common()
468 phy_write(phydev, 0x0d, val | set[i]); in rtl8168d_1_common()
473 struct phy_device *phydev) in rtl8168d_1_hw_phy_config() argument
475 rtl_writephy_batch(phydev, rtl8168d_1_phy_reg_init_0); in rtl8168d_1_hw_phy_config()
481 phy_write(phydev, 0x1f, 0x0002); in rtl8168d_1_hw_phy_config()
482 phy_modify(phydev, 0x0b, 0x00ef, 0x0010); in rtl8168d_1_hw_phy_config()
483 phy_modify(phydev, 0x0c, 0x5d00, 0xa200); in rtl8168d_1_hw_phy_config()
486 rtl8168d_1_common(phydev); in rtl8168d_1_hw_phy_config()
488 phy_write_paged(phydev, 0x0002, 0x05, 0x6662); in rtl8168d_1_hw_phy_config()
489 r8168d_phy_param(phydev, 0x8330, 0xffff, 0x6662); in rtl8168d_1_hw_phy_config()
493 phy_write(phydev, 0x1f, 0x0002); in rtl8168d_1_hw_phy_config()
494 phy_set_bits(phydev, 0x0d, 0x0300); in rtl8168d_1_hw_phy_config()
495 phy_set_bits(phydev, 0x0f, 0x0010); in rtl8168d_1_hw_phy_config()
498 phy_write(phydev, 0x1f, 0x0002); in rtl8168d_1_hw_phy_config()
499 phy_modify(phydev, 0x02, 0x0600, 0x0100); in rtl8168d_1_hw_phy_config()
500 phy_clear_bits(phydev, 0x03, 0xe000); in rtl8168d_1_hw_phy_config()
501 phy_write(phydev, 0x1f, 0x0000); in rtl8168d_1_hw_phy_config()
503 rtl8168d_apply_firmware_cond(tp, phydev, 0xbf00); in rtl8168d_1_hw_phy_config()
507 struct phy_device *phydev) in rtl8168d_2_hw_phy_config() argument
509 rtl_writephy_batch(phydev, rtl8168d_1_phy_reg_init_0); in rtl8168d_2_hw_phy_config()
512 rtl8168d_1_common(phydev); in rtl8168d_2_hw_phy_config()
514 phy_write_paged(phydev, 0x0002, 0x05, 0x2642); in rtl8168d_2_hw_phy_config()
515 r8168d_phy_param(phydev, 0x8330, 0xffff, 0x2642); in rtl8168d_2_hw_phy_config()
519 phy_write(phydev, 0x1f, 0x0002); in rtl8168d_2_hw_phy_config()
520 phy_modify(phydev, 0x02, 0x0600, 0x0100); in rtl8168d_2_hw_phy_config()
521 phy_clear_bits(phydev, 0x03, 0xe000); in rtl8168d_2_hw_phy_config()
522 phy_write(phydev, 0x1f, 0x0000); in rtl8168d_2_hw_phy_config()
525 phy_modify_paged(phydev, 0x0002, 0x0f, 0x0000, 0x0017); in rtl8168d_2_hw_phy_config()
527 rtl8168d_apply_firmware_cond(tp, phydev, 0xb300); in rtl8168d_2_hw_phy_config()
531 struct phy_device *phydev) in rtl8168d_4_hw_phy_config() argument
533 phy_write_paged(phydev, 0x0001, 0x17, 0x0cc0); in rtl8168d_4_hw_phy_config()
534 r8168d_modify_extpage(phydev, 0x002d, 0x18, 0xffff, 0x0040); in rtl8168d_4_hw_phy_config()
535 phy_set_bits(phydev, 0x0d, BIT(5)); in rtl8168d_4_hw_phy_config()
539 struct phy_device *phydev) in rtl8168e_1_hw_phy_config() argument
555 r8168d_phy_param(phydev, 0x8b80, 0xffff, 0xc896); in rtl8168e_1_hw_phy_config()
557 rtl_writephy_batch(phydev, phy_reg_init); in rtl8168e_1_hw_phy_config()
560 r8168d_modify_extpage(phydev, 0x002f, 0x15, 0xffff, 0x1919); in rtl8168e_1_hw_phy_config()
562 r8168d_modify_extpage(phydev, 0x00ac, 0x18, 0xffff, 0x0006); in rtl8168e_1_hw_phy_config()
565 r8168d_modify_extpage(phydev, 0x0023, 0x17, 0x0000, 0x0006); in rtl8168e_1_hw_phy_config()
568 phy_modify_paged(phydev, 0x0002, 0x08, 0x7f00, 0x8000); in rtl8168e_1_hw_phy_config()
571 r8168d_modify_extpage(phydev, 0x002d, 0x18, 0x0000, 0x0050); in rtl8168e_1_hw_phy_config()
572 phy_set_bits(phydev, 0x14, BIT(15)); in rtl8168e_1_hw_phy_config()
574 r8168d_phy_param(phydev, 0x8b86, 0x0000, 0x0001); in rtl8168e_1_hw_phy_config()
575 r8168d_phy_param(phydev, 0x8b85, 0x2000, 0x0000); in rtl8168e_1_hw_phy_config()
577 r8168d_modify_extpage(phydev, 0x0020, 0x15, 0x1100, 0x0000); in rtl8168e_1_hw_phy_config()
578 phy_write_paged(phydev, 0x0006, 0x00, 0x5a00); in rtl8168e_1_hw_phy_config()
580 phy_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, 0x0000); in rtl8168e_1_hw_phy_config()
584 struct phy_device *phydev) in rtl8168e_2_hw_phy_config() argument
589 r8168d_modify_extpage(phydev, 0x00ac, 0x18, 0xffff, 0x0006); in rtl8168e_2_hw_phy_config()
592 phy_write_paged(phydev, 0x0003, 0x09, 0xa20f); in rtl8168e_2_hw_phy_config()
595 r8168d_phy_param(phydev, 0x8b5b, 0xffff, 0x9222); in rtl8168e_2_hw_phy_config()
596 r8168d_phy_param(phydev, 0x8b6d, 0xffff, 0x8000); in rtl8168e_2_hw_phy_config()
597 r8168d_phy_param(phydev, 0x8b76, 0xffff, 0x8000); in rtl8168e_2_hw_phy_config()
600 phy_write(phydev, 0x1f, 0x0005); in rtl8168e_2_hw_phy_config()
601 phy_write(phydev, 0x05, 0x8b80); in rtl8168e_2_hw_phy_config()
602 phy_set_bits(phydev, 0x17, 0x0006); in rtl8168e_2_hw_phy_config()
603 phy_write(phydev, 0x1f, 0x0000); in rtl8168e_2_hw_phy_config()
606 r8168d_modify_extpage(phydev, 0x002d, 0x18, 0x0000, 0x0010); in rtl8168e_2_hw_phy_config()
607 phy_set_bits(phydev, 0x14, BIT(15)); in rtl8168e_2_hw_phy_config()
610 r8168d_phy_param(phydev, 0x8b86, 0x0000, 0x0001); in rtl8168e_2_hw_phy_config()
613 r8168d_phy_param(phydev, 0x8b85, 0x0000, 0x4000); in rtl8168e_2_hw_phy_config()
615 rtl8168f_config_eee_phy(phydev); in rtl8168e_2_hw_phy_config()
618 phy_write(phydev, 0x1f, 0x0003); in rtl8168e_2_hw_phy_config()
619 phy_set_bits(phydev, 0x19, BIT(0)); in rtl8168e_2_hw_phy_config()
620 phy_set_bits(phydev, 0x10, BIT(10)); in rtl8168e_2_hw_phy_config()
621 phy_write(phydev, 0x1f, 0x0000); in rtl8168e_2_hw_phy_config()
622 phy_modify_paged(phydev, 0x0005, 0x01, 0, BIT(8)); in rtl8168e_2_hw_phy_config()
626 struct phy_device *phydev) in rtl8168f_hw_phy_config() argument
629 r8168d_phy_param(phydev, 0x8b80, 0x0000, 0x0006); in rtl8168f_hw_phy_config()
632 r8168d_modify_extpage(phydev, 0x002d, 0x18, 0x0000, 0x0010); in rtl8168f_hw_phy_config()
633 phy_set_bits(phydev, 0x14, BIT(15)); in rtl8168f_hw_phy_config()
636 r8168d_phy_param(phydev, 0x8b86, 0x0000, 0x0001); in rtl8168f_hw_phy_config()
638 rtl8168f_config_eee_phy(phydev); in rtl8168f_hw_phy_config()
642 struct phy_device *phydev) in rtl8168f_1_hw_phy_config() argument
647 phy_write_paged(phydev, 0x0003, 0x09, 0xa20f); in rtl8168f_1_hw_phy_config()
650 r8168d_phy_param(phydev, 0x8b55, 0xffff, 0x0000); in rtl8168f_1_hw_phy_config()
651 r8168d_phy_param(phydev, 0x8b5e, 0xffff, 0x0000); in rtl8168f_1_hw_phy_config()
652 r8168d_phy_param(phydev, 0x8b67, 0xffff, 0x0000); in rtl8168f_1_hw_phy_config()
653 r8168d_phy_param(phydev, 0x8b70, 0xffff, 0x0000); in rtl8168f_1_hw_phy_config()
654 r8168d_modify_extpage(phydev, 0x0078, 0x17, 0xffff, 0x0000); in rtl8168f_1_hw_phy_config()
655 r8168d_modify_extpage(phydev, 0x0078, 0x19, 0xffff, 0x00fb); in rtl8168f_1_hw_phy_config()
658 r8168d_phy_param(phydev, 0x8b79, 0xffff, 0xaa00); in rtl8168f_1_hw_phy_config()
661 phy_write_paged(phydev, 0x0003, 0x01, 0x328a); in rtl8168f_1_hw_phy_config()
663 rtl8168f_hw_phy_config(tp, phydev); in rtl8168f_1_hw_phy_config()
666 r8168d_phy_param(phydev, 0x8b85, 0x0000, 0x4000); in rtl8168f_1_hw_phy_config()
670 struct phy_device *phydev) in rtl8168f_2_hw_phy_config() argument
674 rtl8168f_hw_phy_config(tp, phydev); in rtl8168f_2_hw_phy_config()
678 struct phy_device *phydev) in rtl8411_hw_phy_config() argument
682 rtl8168f_hw_phy_config(tp, phydev); in rtl8411_hw_phy_config()
685 r8168d_phy_param(phydev, 0x8b85, 0x0000, 0x4000); in rtl8411_hw_phy_config()
688 phy_write_paged(phydev, 0x0003, 0x09, 0xa20f); in rtl8411_hw_phy_config()
691 r8168d_phy_param(phydev, 0x8b55, 0xffff, 0x0000); in rtl8411_hw_phy_config()
692 r8168d_phy_param(phydev, 0x8b5e, 0xffff, 0x0000); in rtl8411_hw_phy_config()
693 r8168d_phy_param(phydev, 0x8b67, 0xffff, 0x0000); in rtl8411_hw_phy_config()
694 r8168d_phy_param(phydev, 0x8b70, 0xffff, 0x0000); in rtl8411_hw_phy_config()
695 r8168d_modify_extpage(phydev, 0x0078, 0x17, 0xffff, 0x0000); in rtl8411_hw_phy_config()
696 r8168d_modify_extpage(phydev, 0x0078, 0x19, 0xffff, 0x00aa); in rtl8411_hw_phy_config()
699 r8168d_phy_param(phydev, 0x8b79, 0xffff, 0xaa00); in rtl8411_hw_phy_config()
702 phy_write_paged(phydev, 0x0003, 0x01, 0x328a); in rtl8411_hw_phy_config()
705 r8168d_phy_param(phydev, 0x8b54, 0x0800, 0x0000); in rtl8411_hw_phy_config()
706 r8168d_phy_param(phydev, 0x8b5d, 0x0800, 0x0000); in rtl8411_hw_phy_config()
707 r8168d_phy_param(phydev, 0x8a7c, 0x0100, 0x0000); in rtl8411_hw_phy_config()
708 r8168d_phy_param(phydev, 0x8a7f, 0x0000, 0x0100); in rtl8411_hw_phy_config()
709 r8168d_phy_param(phydev, 0x8a82, 0x0100, 0x0000); in rtl8411_hw_phy_config()
710 r8168d_phy_param(phydev, 0x8a85, 0x0100, 0x0000); in rtl8411_hw_phy_config()
711 r8168d_phy_param(phydev, 0x8a88, 0x0100, 0x0000); in rtl8411_hw_phy_config()
714 r8168d_phy_param(phydev, 0x8b85, 0x0000, 0x8000); in rtl8411_hw_phy_config()
717 phy_write(phydev, 0x1f, 0x0003); in rtl8411_hw_phy_config()
718 phy_clear_bits(phydev, 0x19, BIT(0)); in rtl8411_hw_phy_config()
719 phy_clear_bits(phydev, 0x10, BIT(10)); in rtl8411_hw_phy_config()
720 phy_write(phydev, 0x1f, 0x0000); in rtl8411_hw_phy_config()
723 static void rtl8168g_disable_aldps(struct phy_device *phydev) in rtl8168g_disable_aldps() argument
725 phy_modify_paged(phydev, 0x0a43, 0x10, BIT(2), 0); in rtl8168g_disable_aldps()
728 static void rtl8168g_enable_gphy_10m(struct phy_device *phydev) in rtl8168g_enable_gphy_10m() argument
730 phy_modify_paged(phydev, 0x0a44, 0x11, 0, BIT(11)); in rtl8168g_enable_gphy_10m()
733 static void rtl8168g_phy_adjust_10m_aldps(struct phy_device *phydev) in rtl8168g_phy_adjust_10m_aldps() argument
735 phy_modify_paged(phydev, 0x0bcc, 0x14, BIT(8), 0); in rtl8168g_phy_adjust_10m_aldps()
736 phy_modify_paged(phydev, 0x0a44, 0x11, 0, BIT(7) | BIT(6)); in rtl8168g_phy_adjust_10m_aldps()
737 r8168g_phy_param(phydev, 0x8084, 0x6000, 0x0000); in rtl8168g_phy_adjust_10m_aldps()
738 phy_modify_paged(phydev, 0x0a43, 0x10, 0x0000, 0x1003); in rtl8168g_phy_adjust_10m_aldps()
742 struct phy_device *phydev) in rtl8168g_1_hw_phy_config() argument
748 ret = phy_read_paged(phydev, 0x0a46, 0x10); in rtl8168g_1_hw_phy_config()
750 phy_modify_paged(phydev, 0x0bcc, 0x12, BIT(15), 0); in rtl8168g_1_hw_phy_config()
752 phy_modify_paged(phydev, 0x0bcc, 0x12, 0, BIT(15)); in rtl8168g_1_hw_phy_config()
754 ret = phy_read_paged(phydev, 0x0a46, 0x13); in rtl8168g_1_hw_phy_config()
756 phy_modify_paged(phydev, 0x0c41, 0x15, 0, BIT(1)); in rtl8168g_1_hw_phy_config()
758 phy_modify_paged(phydev, 0x0c41, 0x15, BIT(1), 0); in rtl8168g_1_hw_phy_config()
761 phy_modify_paged(phydev, 0x0a44, 0x11, 0, BIT(3) | BIT(2)); in rtl8168g_1_hw_phy_config()
763 rtl8168g_phy_adjust_10m_aldps(phydev); in rtl8168g_1_hw_phy_config()
766 phy_modify_paged(phydev, 0x0a4b, 0x11, 0, BIT(2)); in rtl8168g_1_hw_phy_config()
769 r8168g_phy_param(phydev, 0x8012, 0x0000, 0x8000); in rtl8168g_1_hw_phy_config()
771 phy_modify_paged(phydev, 0x0c42, 0x11, BIT(13), BIT(14)); in rtl8168g_1_hw_phy_config()
774 phy_write(phydev, 0x1f, 0x0bcd); in rtl8168g_1_hw_phy_config()
775 phy_write(phydev, 0x14, 0x5065); in rtl8168g_1_hw_phy_config()
776 phy_write(phydev, 0x14, 0xd065); in rtl8168g_1_hw_phy_config()
777 phy_write(phydev, 0x1f, 0x0bc8); in rtl8168g_1_hw_phy_config()
778 phy_write(phydev, 0x11, 0x5655); in rtl8168g_1_hw_phy_config()
779 phy_write(phydev, 0x1f, 0x0bcd); in rtl8168g_1_hw_phy_config()
780 phy_write(phydev, 0x14, 0x1065); in rtl8168g_1_hw_phy_config()
781 phy_write(phydev, 0x14, 0x9065); in rtl8168g_1_hw_phy_config()
782 phy_write(phydev, 0x14, 0x1065); in rtl8168g_1_hw_phy_config()
783 phy_write(phydev, 0x1f, 0x0000); in rtl8168g_1_hw_phy_config()
785 rtl8168g_disable_aldps(phydev); in rtl8168g_1_hw_phy_config()
786 rtl8168g_config_eee_phy(phydev); in rtl8168g_1_hw_phy_config()
790 struct phy_device *phydev) in rtl8168g_2_hw_phy_config() argument
793 rtl8168g_config_eee_phy(phydev); in rtl8168g_2_hw_phy_config()
797 struct phy_device *phydev) in rtl8168h_2_hw_phy_config() argument
805 r8168g_phy_param(phydev, 0x808a, 0x003f, 0x000a); in rtl8168h_2_hw_phy_config()
808 r8168g_phy_param(phydev, 0x0811, 0x0000, 0x0800); in rtl8168h_2_hw_phy_config()
809 phy_modify_paged(phydev, 0x0a42, 0x16, 0x0000, 0x0002); in rtl8168h_2_hw_phy_config()
811 rtl8168g_enable_gphy_10m(phydev); in rtl8168h_2_hw_phy_config()
815 phy_write_paged(phydev, 0x0bcf, 0x16, ioffset); in rtl8168h_2_hw_phy_config()
818 data = phy_read_paged(phydev, 0x0bcd, 0x16); in rtl8168h_2_hw_phy_config()
824 phy_write_paged(phydev, 0x0bcd, 0x17, data); in rtl8168h_2_hw_phy_config()
827 phy_modify_paged(phydev, 0x0a44, 0x11, BIT(7), 0); in rtl8168h_2_hw_phy_config()
830 phy_modify_paged(phydev, 0x0a43, 0x10, BIT(0), 0); in rtl8168h_2_hw_phy_config()
832 rtl8168g_disable_aldps(phydev); in rtl8168h_2_hw_phy_config()
833 rtl8168g_config_eee_phy(phydev); in rtl8168h_2_hw_phy_config()
837 struct phy_device *phydev) in rtl8168ep_2_hw_phy_config() argument
839 rtl8168g_phy_adjust_10m_aldps(phydev); in rtl8168ep_2_hw_phy_config()
842 r8168g_phy_param(phydev, 0x8012, 0x0000, 0x8000); in rtl8168ep_2_hw_phy_config()
845 phy_modify_paged(phydev, 0x0c42, 0x11, BIT(13), BIT(14)); in rtl8168ep_2_hw_phy_config()
848 r8168g_phy_param(phydev, 0x80f3, 0xff00, 0x8b00); in rtl8168ep_2_hw_phy_config()
849 r8168g_phy_param(phydev, 0x80f0, 0xff00, 0x3a00); in rtl8168ep_2_hw_phy_config()
850 r8168g_phy_param(phydev, 0x80ef, 0xff00, 0x0500); in rtl8168ep_2_hw_phy_config()
851 r8168g_phy_param(phydev, 0x80f6, 0xff00, 0x6e00); in rtl8168ep_2_hw_phy_config()
852 r8168g_phy_param(phydev, 0x80ec, 0xff00, 0x6800); in rtl8168ep_2_hw_phy_config()
853 r8168g_phy_param(phydev, 0x80ed, 0xff00, 0x7c00); in rtl8168ep_2_hw_phy_config()
854 r8168g_phy_param(phydev, 0x80f2, 0xff00, 0xf400); in rtl8168ep_2_hw_phy_config()
855 r8168g_phy_param(phydev, 0x80f4, 0xff00, 0x8500); in rtl8168ep_2_hw_phy_config()
856 r8168g_phy_param(phydev, 0x8110, 0xff00, 0xa800); in rtl8168ep_2_hw_phy_config()
857 r8168g_phy_param(phydev, 0x810f, 0xff00, 0x1d00); in rtl8168ep_2_hw_phy_config()
858 r8168g_phy_param(phydev, 0x8111, 0xff00, 0xf500); in rtl8168ep_2_hw_phy_config()
859 r8168g_phy_param(phydev, 0x8113, 0xff00, 0x6100); in rtl8168ep_2_hw_phy_config()
860 r8168g_phy_param(phydev, 0x8115, 0xff00, 0x9200); in rtl8168ep_2_hw_phy_config()
861 r8168g_phy_param(phydev, 0x810e, 0xff00, 0x0400); in rtl8168ep_2_hw_phy_config()
862 r8168g_phy_param(phydev, 0x810c, 0xff00, 0x7c00); in rtl8168ep_2_hw_phy_config()
863 r8168g_phy_param(phydev, 0x810b, 0xff00, 0x5a00); in rtl8168ep_2_hw_phy_config()
864 r8168g_phy_param(phydev, 0x80d1, 0xff00, 0xff00); in rtl8168ep_2_hw_phy_config()
865 r8168g_phy_param(phydev, 0x80cd, 0xff00, 0x9e00); in rtl8168ep_2_hw_phy_config()
866 r8168g_phy_param(phydev, 0x80d3, 0xff00, 0x0e00); in rtl8168ep_2_hw_phy_config()
867 r8168g_phy_param(phydev, 0x80d5, 0xff00, 0xca00); in rtl8168ep_2_hw_phy_config()
868 r8168g_phy_param(phydev, 0x80d7, 0xff00, 0x8400); in rtl8168ep_2_hw_phy_config()
871 phy_write(phydev, 0x1f, 0x0bcd); in rtl8168ep_2_hw_phy_config()
872 phy_write(phydev, 0x14, 0x5065); in rtl8168ep_2_hw_phy_config()
873 phy_write(phydev, 0x14, 0xd065); in rtl8168ep_2_hw_phy_config()
874 phy_write(phydev, 0x1f, 0x0bc8); in rtl8168ep_2_hw_phy_config()
875 phy_write(phydev, 0x12, 0x00ed); in rtl8168ep_2_hw_phy_config()
876 phy_write(phydev, 0x1f, 0x0bcd); in rtl8168ep_2_hw_phy_config()
877 phy_write(phydev, 0x14, 0x1065); in rtl8168ep_2_hw_phy_config()
878 phy_write(phydev, 0x14, 0x9065); in rtl8168ep_2_hw_phy_config()
879 phy_write(phydev, 0x14, 0x1065); in rtl8168ep_2_hw_phy_config()
880 phy_write(phydev, 0x1f, 0x0000); in rtl8168ep_2_hw_phy_config()
882 rtl8168g_disable_aldps(phydev); in rtl8168ep_2_hw_phy_config()
883 rtl8168g_config_eee_phy(phydev); in rtl8168ep_2_hw_phy_config()
887 struct phy_device *phydev) in rtl8117_hw_phy_config() argument
890 r8168g_phy_param(phydev, 0x808e, 0xff00, 0x4800); in rtl8117_hw_phy_config()
891 r8168g_phy_param(phydev, 0x8090, 0xff00, 0xcc00); in rtl8117_hw_phy_config()
892 r8168g_phy_param(phydev, 0x8092, 0xff00, 0xb000); in rtl8117_hw_phy_config()
894 r8168g_phy_param(phydev, 0x8088, 0xff00, 0x6000); in rtl8117_hw_phy_config()
895 r8168g_phy_param(phydev, 0x808b, 0x3f00, 0x0b00); in rtl8117_hw_phy_config()
896 r8168g_phy_param(phydev, 0x808d, 0x1f00, 0x0600); in rtl8117_hw_phy_config()
897 r8168g_phy_param(phydev, 0x808c, 0xff00, 0xb000); in rtl8117_hw_phy_config()
898 r8168g_phy_param(phydev, 0x80a0, 0xff00, 0x2800); in rtl8117_hw_phy_config()
899 r8168g_phy_param(phydev, 0x80a2, 0xff00, 0x5000); in rtl8117_hw_phy_config()
900 r8168g_phy_param(phydev, 0x809b, 0xf800, 0xb000); in rtl8117_hw_phy_config()
901 r8168g_phy_param(phydev, 0x809a, 0xff00, 0x4b00); in rtl8117_hw_phy_config()
902 r8168g_phy_param(phydev, 0x809d, 0x3f00, 0x0800); in rtl8117_hw_phy_config()
903 r8168g_phy_param(phydev, 0x80a1, 0xff00, 0x7000); in rtl8117_hw_phy_config()
904 r8168g_phy_param(phydev, 0x809f, 0x1f00, 0x0300); in rtl8117_hw_phy_config()
905 r8168g_phy_param(phydev, 0x809e, 0xff00, 0x8800); in rtl8117_hw_phy_config()
906 r8168g_phy_param(phydev, 0x80b2, 0xff00, 0x2200); in rtl8117_hw_phy_config()
907 r8168g_phy_param(phydev, 0x80ad, 0xf800, 0x9800); in rtl8117_hw_phy_config()
908 r8168g_phy_param(phydev, 0x80af, 0x3f00, 0x0800); in rtl8117_hw_phy_config()
909 r8168g_phy_param(phydev, 0x80b3, 0xff00, 0x6f00); in rtl8117_hw_phy_config()
910 r8168g_phy_param(phydev, 0x80b1, 0x1f00, 0x0300); in rtl8117_hw_phy_config()
911 r8168g_phy_param(phydev, 0x80b0, 0xff00, 0x9300); in rtl8117_hw_phy_config()
913 r8168g_phy_param(phydev, 0x8011, 0x0000, 0x0800); in rtl8117_hw_phy_config()
915 rtl8168g_enable_gphy_10m(phydev); in rtl8117_hw_phy_config()
917 r8168g_phy_param(phydev, 0x8016, 0x0000, 0x0400); in rtl8117_hw_phy_config()
919 rtl8168g_disable_aldps(phydev); in rtl8117_hw_phy_config()
920 rtl8168h_config_eee_phy(phydev); in rtl8117_hw_phy_config()
924 struct phy_device *phydev) in rtl8102e_hw_phy_config() argument
933 phy_set_bits(phydev, 0x11, BIT(12)); in rtl8102e_hw_phy_config()
934 phy_set_bits(phydev, 0x19, BIT(13)); in rtl8102e_hw_phy_config()
935 phy_set_bits(phydev, 0x10, BIT(15)); in rtl8102e_hw_phy_config()
937 rtl_writephy_batch(phydev, phy_reg_init); in rtl8102e_hw_phy_config()
941 struct phy_device *phydev) in rtl8401_hw_phy_config() argument
943 phy_set_bits(phydev, 0x11, BIT(12)); in rtl8401_hw_phy_config()
944 phy_modify_paged(phydev, 0x0002, 0x0f, 0x0000, 0x0003); in rtl8401_hw_phy_config()
948 struct phy_device *phydev) in rtl8105e_hw_phy_config() argument
951 phy_write(phydev, 0x18, 0x0310); in rtl8105e_hw_phy_config()
956 phy_write_paged(phydev, 0x0005, 0x1a, 0x0000); in rtl8105e_hw_phy_config()
957 phy_write_paged(phydev, 0x0004, 0x1c, 0x0000); in rtl8105e_hw_phy_config()
958 phy_write_paged(phydev, 0x0001, 0x15, 0x7701); in rtl8105e_hw_phy_config()
962 struct phy_device *phydev) in rtl8402_hw_phy_config() argument
965 phy_write(phydev, 0x18, 0x0310); in rtl8402_hw_phy_config()
971 phy_write(phydev, 0x1f, 0x0004); in rtl8402_hw_phy_config()
972 phy_write(phydev, 0x10, 0x401f); in rtl8402_hw_phy_config()
973 phy_write(phydev, 0x19, 0x7030); in rtl8402_hw_phy_config()
974 phy_write(phydev, 0x1f, 0x0000); in rtl8402_hw_phy_config()
978 struct phy_device *phydev) in rtl8106e_hw_phy_config() argument
988 phy_write(phydev, 0x18, 0x0310); in rtl8106e_hw_phy_config()
993 rtl_writephy_batch(phydev, phy_reg_init); in rtl8106e_hw_phy_config()
996 static void rtl8125_legacy_force_mode(struct phy_device *phydev) in rtl8125_legacy_force_mode() argument
998 phy_modify_paged(phydev, 0xa5b, 0x12, BIT(15), 0); in rtl8125_legacy_force_mode()
1002 struct phy_device *phydev) in rtl8125a_2_hw_phy_config() argument
1006 phy_modify_paged(phydev, 0xad4, 0x17, 0x0000, 0x0010); in rtl8125a_2_hw_phy_config()
1007 phy_modify_paged(phydev, 0xad1, 0x13, 0x03ff, 0x03ff); in rtl8125a_2_hw_phy_config()
1008 phy_modify_paged(phydev, 0xad3, 0x11, 0x003f, 0x0006); in rtl8125a_2_hw_phy_config()
1009 phy_modify_paged(phydev, 0xac0, 0x14, 0x1100, 0x0000); in rtl8125a_2_hw_phy_config()
1010 phy_modify_paged(phydev, 0xacc, 0x10, 0x0003, 0x0002); in rtl8125a_2_hw_phy_config()
1011 phy_modify_paged(phydev, 0xad4, 0x10, 0x00e7, 0x0044); in rtl8125a_2_hw_phy_config()
1012 phy_modify_paged(phydev, 0xac1, 0x12, 0x0080, 0x0000); in rtl8125a_2_hw_phy_config()
1013 phy_modify_paged(phydev, 0xac8, 0x10, 0x0300, 0x0000); in rtl8125a_2_hw_phy_config()
1014 phy_modify_paged(phydev, 0xac5, 0x17, 0x0007, 0x0002); in rtl8125a_2_hw_phy_config()
1015 phy_write_paged(phydev, 0xad4, 0x16, 0x00a8); in rtl8125a_2_hw_phy_config()
1016 phy_write_paged(phydev, 0xac5, 0x16, 0x01ff); in rtl8125a_2_hw_phy_config()
1017 phy_modify_paged(phydev, 0xac8, 0x15, 0x00f0, 0x0030); in rtl8125a_2_hw_phy_config()
1019 phy_write(phydev, 0x1f, 0x0b87); in rtl8125a_2_hw_phy_config()
1020 phy_write(phydev, 0x16, 0x80a2); in rtl8125a_2_hw_phy_config()
1021 phy_write(phydev, 0x17, 0x0153); in rtl8125a_2_hw_phy_config()
1022 phy_write(phydev, 0x16, 0x809c); in rtl8125a_2_hw_phy_config()
1023 phy_write(phydev, 0x17, 0x0153); in rtl8125a_2_hw_phy_config()
1024 phy_write(phydev, 0x1f, 0x0000); in rtl8125a_2_hw_phy_config()
1026 phy_write(phydev, 0x1f, 0x0a43); in rtl8125a_2_hw_phy_config()
1027 phy_write(phydev, 0x13, 0x81B3); in rtl8125a_2_hw_phy_config()
1028 phy_write(phydev, 0x14, 0x0043); in rtl8125a_2_hw_phy_config()
1029 phy_write(phydev, 0x14, 0x00A7); in rtl8125a_2_hw_phy_config()
1030 phy_write(phydev, 0x14, 0x00D6); in rtl8125a_2_hw_phy_config()
1031 phy_write(phydev, 0x14, 0x00EC); in rtl8125a_2_hw_phy_config()
1032 phy_write(phydev, 0x14, 0x00F6); in rtl8125a_2_hw_phy_config()
1033 phy_write(phydev, 0x14, 0x00FB); in rtl8125a_2_hw_phy_config()
1034 phy_write(phydev, 0x14, 0x00FD); in rtl8125a_2_hw_phy_config()
1035 phy_write(phydev, 0x14, 0x00FF); in rtl8125a_2_hw_phy_config()
1036 phy_write(phydev, 0x14, 0x00BB); in rtl8125a_2_hw_phy_config()
1037 phy_write(phydev, 0x14, 0x0058); in rtl8125a_2_hw_phy_config()
1038 phy_write(phydev, 0x14, 0x0029); in rtl8125a_2_hw_phy_config()
1039 phy_write(phydev, 0x14, 0x0013); in rtl8125a_2_hw_phy_config()
1040 phy_write(phydev, 0x14, 0x0009); in rtl8125a_2_hw_phy_config()
1041 phy_write(phydev, 0x14, 0x0004); in rtl8125a_2_hw_phy_config()
1042 phy_write(phydev, 0x14, 0x0002); in rtl8125a_2_hw_phy_config()
1044 phy_write(phydev, 0x14, 0x0000); in rtl8125a_2_hw_phy_config()
1045 phy_write(phydev, 0x1f, 0x0000); in rtl8125a_2_hw_phy_config()
1047 r8168g_phy_param(phydev, 0x8257, 0xffff, 0x020F); in rtl8125a_2_hw_phy_config()
1048 r8168g_phy_param(phydev, 0x80ea, 0xffff, 0x7843); in rtl8125a_2_hw_phy_config()
1052 phy_modify_paged(phydev, 0xd06, 0x14, 0x0000, 0x2000); in rtl8125a_2_hw_phy_config()
1054 r8168g_phy_param(phydev, 0x81a2, 0x0000, 0x0100); in rtl8125a_2_hw_phy_config()
1056 phy_modify_paged(phydev, 0xb54, 0x16, 0xff00, 0xdb00); in rtl8125a_2_hw_phy_config()
1057 phy_modify_paged(phydev, 0xa45, 0x12, 0x0001, 0x0000); in rtl8125a_2_hw_phy_config()
1058 phy_modify_paged(phydev, 0xa5d, 0x12, 0x0000, 0x0020); in rtl8125a_2_hw_phy_config()
1059 phy_modify_paged(phydev, 0xad4, 0x17, 0x0010, 0x0000); in rtl8125a_2_hw_phy_config()
1060 phy_modify_paged(phydev, 0xa86, 0x15, 0x0001, 0x0000); in rtl8125a_2_hw_phy_config()
1061 rtl8168g_enable_gphy_10m(phydev); in rtl8125a_2_hw_phy_config()
1063 rtl8168g_disable_aldps(phydev); in rtl8125a_2_hw_phy_config()
1064 rtl8125a_config_eee_phy(phydev); in rtl8125a_2_hw_phy_config()
1068 struct phy_device *phydev) in rtl8125b_hw_phy_config() argument
1072 phy_modify_paged(phydev, 0xa44, 0x11, 0x0000, 0x0800); in rtl8125b_hw_phy_config()
1073 phy_modify_paged(phydev, 0xac4, 0x13, 0x00f0, 0x0090); in rtl8125b_hw_phy_config()
1074 phy_modify_paged(phydev, 0xad3, 0x10, 0x0003, 0x0001); in rtl8125b_hw_phy_config()
1076 phy_write(phydev, 0x1f, 0x0b87); in rtl8125b_hw_phy_config()
1077 phy_write(phydev, 0x16, 0x80f5); in rtl8125b_hw_phy_config()
1078 phy_write(phydev, 0x17, 0x760e); in rtl8125b_hw_phy_config()
1079 phy_write(phydev, 0x16, 0x8107); in rtl8125b_hw_phy_config()
1080 phy_write(phydev, 0x17, 0x360e); in rtl8125b_hw_phy_config()
1081 phy_write(phydev, 0x16, 0x8551); in rtl8125b_hw_phy_config()
1082 phy_modify(phydev, 0x17, 0xff00, 0x0800); in rtl8125b_hw_phy_config()
1083 phy_write(phydev, 0x1f, 0x0000); in rtl8125b_hw_phy_config()
1085 phy_modify_paged(phydev, 0xbf0, 0x10, 0xe000, 0xa000); in rtl8125b_hw_phy_config()
1086 phy_modify_paged(phydev, 0xbf4, 0x13, 0x0f00, 0x0300); in rtl8125b_hw_phy_config()
1088 r8168g_phy_param(phydev, 0x8044, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1089 r8168g_phy_param(phydev, 0x804a, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1090 r8168g_phy_param(phydev, 0x8050, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1091 r8168g_phy_param(phydev, 0x8056, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1092 r8168g_phy_param(phydev, 0x805c, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1093 r8168g_phy_param(phydev, 0x8062, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1094 r8168g_phy_param(phydev, 0x8068, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1095 r8168g_phy_param(phydev, 0x806e, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1096 r8168g_phy_param(phydev, 0x8074, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1097 r8168g_phy_param(phydev, 0x807a, 0xffff, 0x2417); in rtl8125b_hw_phy_config()
1099 phy_modify_paged(phydev, 0xa4c, 0x15, 0x0000, 0x0040); in rtl8125b_hw_phy_config()
1100 phy_modify_paged(phydev, 0xbf8, 0x12, 0xe000, 0xa000); in rtl8125b_hw_phy_config()
1102 rtl8125_legacy_force_mode(phydev); in rtl8125b_hw_phy_config()
1103 rtl8168g_disable_aldps(phydev); in rtl8125b_hw_phy_config()
1104 rtl8125b_config_eee_phy(phydev); in rtl8125b_hw_phy_config()
1108 struct phy_device *phydev) in rtl8126a_hw_phy_config() argument
1113 void r8169_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev, in r8169_hw_phy_config() argument
1168 phy_configs[ver](tp, phydev); in r8169_hw_phy_config()