Lines Matching refs:tp
724 static void rtl_clear_bp(struct r8152 *tp) in rtl_clear_bp() argument
726 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_BP_0, 0); in rtl_clear_bp()
727 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_BP_2, 0); in rtl_clear_bp()
728 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_BP_4, 0); in rtl_clear_bp()
729 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_BP_6, 0); in rtl_clear_bp()
730 ocp_write_dword(tp, MCU_TYPE_USB, USB_BP_0, 0); in rtl_clear_bp()
731 ocp_write_dword(tp, MCU_TYPE_USB, USB_BP_2, 0); in rtl_clear_bp()
732 ocp_write_dword(tp, MCU_TYPE_USB, USB_BP_4, 0); in rtl_clear_bp()
733 ocp_write_dword(tp, MCU_TYPE_USB, USB_BP_6, 0); in rtl_clear_bp()
737 ocp_write_word(tp, MCU_TYPE_PLA, PLA_BP_BA, 0); in rtl_clear_bp()
738 ocp_write_word(tp, MCU_TYPE_USB, USB_BP_BA, 0); in rtl_clear_bp()
741 static void r8153_clear_bp(struct r8152 *tp) in r8153_clear_bp() argument
743 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_BP_EN, 0); in r8153_clear_bp()
744 ocp_write_byte(tp, MCU_TYPE_USB, USB_BP_EN, 0); in r8153_clear_bp()
745 rtl_clear_bp(tp); in r8153_clear_bp()
748 static void r8152b_set_dq_desc(struct r8152 *tp) in r8152b_set_dq_desc() argument
752 data = ocp_read_byte(tp, MCU_TYPE_USB, 0xd429); in r8152b_set_dq_desc()
754 ocp_write_byte(tp, MCU_TYPE_USB, 0xd429, data); in r8152b_set_dq_desc()
755 ocp_write_word(tp, MCU_TYPE_USB, 0xc0ce, 0x0210); in r8152b_set_dq_desc()
756 data = ocp_read_byte(tp, MCU_TYPE_USB, 0xd429); in r8152b_set_dq_desc()
758 ocp_write_byte(tp, MCU_TYPE_USB, 0xd429, data); in r8152b_set_dq_desc()
761 static int r8153_pre_ram_code(struct r8152 *tp, u16 patch_key) in r8153_pre_ram_code() argument
766 data = ocp_reg_read(tp, 0xb820); in r8153_pre_ram_code()
768 ocp_reg_write(tp, 0xb820, data); in r8153_pre_ram_code()
772 data = ocp_reg_read(tp, 0xb800) & 0x0040; in r8153_pre_ram_code()
775 sram_write(tp, 0x8146, patch_key); in r8153_pre_ram_code()
776 sram_write(tp, 0xb82e, 0x0001); in r8153_pre_ram_code()
781 static int r8153_post_ram_code(struct r8152 *tp) in r8153_post_ram_code() argument
785 sram_write(tp, 0x0000, 0x0000); in r8153_post_ram_code()
787 data = ocp_reg_read(tp, 0xb82e); in r8153_post_ram_code()
789 ocp_reg_write(tp, 0xb82e, data); in r8153_post_ram_code()
791 sram_write(tp, 0x8146, 0x0000); in r8153_post_ram_code()
793 data = ocp_reg_read(tp, 0xb820); in r8153_post_ram_code()
795 ocp_reg_write(tp, 0xb820, data); in r8153_post_ram_code()
797 ocp_write_word(tp, MCU_TYPE_PLA, PLA_OCP_GPHY_BASE, tp->ocp_base); in r8153_post_ram_code()
802 static void r8153_wdt1_end(struct r8152 *tp) in r8153_wdt1_end() argument
807 if (!(ocp_read_byte(tp, MCU_TYPE_USB, 0xe404) & 1)) in r8153_wdt1_end()
813 void r8152b_firmware(struct r8152 *tp) in r8152b_firmware() argument
817 if (tp->version == RTL_VER_01) { in r8152b_firmware()
820 r8152b_set_dq_desc(tp); in r8152b_firmware()
821 rtl_clear_bp(tp); in r8152b_firmware()
823 generic_ocp_write(tp, 0xf800, 0x3f, in r8152b_firmware()
828 ocp_write_word(tp, MCU_TYPE_PLA, in r8152b_firmware()
832 ocp_write_word(tp, MCU_TYPE_PLA, PLA_OCP_GPHY_BASE, 0x2000); in r8152b_firmware()
833 ocp_write_word(tp, MCU_TYPE_PLA, 0xb092, 0x7070); in r8152b_firmware()
834 ocp_write_word(tp, MCU_TYPE_PLA, 0xb098, 0x0600); in r8152b_firmware()
836 ocp_write_word(tp, MCU_TYPE_PLA, 0xb09a, in r8152b_firmware()
839 ocp_write_word(tp, MCU_TYPE_PLA, 0xb098, 0x0200); in r8152b_firmware()
840 ocp_write_word(tp, MCU_TYPE_PLA, 0xb092, 0x7030); in r8152b_firmware()
841 } else if (tp->version == RTL_VER_02) { in r8152b_firmware()
842 rtl_clear_bp(tp); in r8152b_firmware()
844 generic_ocp_write(tp, 0xf800, 0xff, in r8152b_firmware()
850 ocp_write_word(tp, MCU_TYPE_PLA, in r8152b_firmware()
856 void r8153_firmware(struct r8152 *tp) in r8153_firmware() argument
860 if (tp->version == RTL_VER_03) { in r8153_firmware()
861 r8153_clear_bp(tp); in r8153_firmware()
863 r8153_pre_ram_code(tp, 0x7000); in r8153_firmware()
866 ocp_write_word(tp, MCU_TYPE_PLA, in r8153_firmware()
870 r8153_post_ram_code(tp); in r8153_firmware()
871 } else if (tp->version == RTL_VER_04) { in r8153_firmware()
872 r8153_pre_ram_code(tp, 0x7001); in r8153_firmware()
875 ocp_write_word(tp, MCU_TYPE_PLA, in r8153_firmware()
879 r8153_post_ram_code(tp); in r8153_firmware()
881 r8153_wdt1_end(tp); in r8153_firmware()
882 r8153_clear_bp(tp); in r8153_firmware()
884 ocp_write_word(tp, MCU_TYPE_USB, USB_BP_EN, 0x0000); in r8153_firmware()
885 generic_ocp_write(tp, 0xf800, 0xff, in r8153_firmware()
890 ocp_write_word(tp, MCU_TYPE_USB, in r8153_firmware()
894 if (!(ocp_read_word(tp, MCU_TYPE_PLA, 0xd38e) & BIT(0))) { in r8153_firmware()
895 ocp_write_word(tp, MCU_TYPE_PLA, 0xd38c, 0x0082); in r8153_firmware()
896 ocp_write_word(tp, MCU_TYPE_PLA, 0xd38e, 0x0082); in r8153_firmware()
899 ocp_write_word(tp, MCU_TYPE_PLA, PLA_BP_EN, 0x0000); in r8153_firmware()
900 generic_ocp_write(tp, 0xf800, 0xff, in r8153_firmware()
905 ocp_write_word(tp, MCU_TYPE_PLA, in r8153_firmware()
909 ocp_write_word(tp, MCU_TYPE_PLA, 0xd388, 0x08ca); in r8153_firmware()
910 } else if (tp->version == RTL_VER_05) { in r8153_firmware()
913 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, 0xcfca); in r8153_firmware()
915 ocp_write_word(tp, MCU_TYPE_USB, 0xcfca, ocp_data); in r8153_firmware()
917 r8153_pre_ram_code(tp, 0x7001); in r8153_firmware()
920 ocp_write_word(tp, MCU_TYPE_PLA, in r8153_firmware()
924 r8153_post_ram_code(tp); in r8153_firmware()
926 r8153_wdt1_end(tp); in r8153_firmware()
927 r8153_clear_bp(tp); in r8153_firmware()
929 ocp_write_word(tp, MCU_TYPE_USB, USB_BP_EN, 0x0000); in r8153_firmware()
930 generic_ocp_write(tp, 0xf800, 0xff, in r8153_firmware()
935 ocp_write_word(tp, MCU_TYPE_USB, in r8153_firmware()
939 if (ocp_read_byte(tp, MCU_TYPE_USB, 0xcfef) & 1) { in r8153_firmware()
940 ocp_write_word(tp, MCU_TYPE_USB, 0xfc30, 0x1578); in r8153_firmware()
941 ocp_write_word(tp, MCU_TYPE_USB, USB_BP_EN, 0x00ff); in r8153_firmware()
943 ocp_write_word(tp, MCU_TYPE_USB, USB_BP_EN, 0x00ef); in r8153_firmware()
946 ocp_write_word(tp, MCU_TYPE_PLA, PLA_BP_EN, 0x0000); in r8153_firmware()
947 generic_ocp_write(tp, 0xf800, 0xff, in r8153_firmware()
952 ocp_write_word(tp, MCU_TYPE_PLA, in r8153_firmware()
956 ocp_write_word(tp, MCU_TYPE_PLA, 0xd388, 0x08ca); in r8153_firmware()
958 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, 0xcfca); in r8153_firmware()
960 ocp_write_word(tp, MCU_TYPE_USB, 0xcfca, ocp_data); in r8153_firmware()
961 } else if (tp->version == RTL_VER_06) { in r8153_firmware()
962 r8153_pre_ram_code(tp, 0x7002); in r8153_firmware()
965 ocp_write_word(tp, MCU_TYPE_PLA, in r8153_firmware()
969 r8153_post_ram_code(tp); in r8153_firmware()
971 r8153_clear_bp(tp); in r8153_firmware()
973 ocp_write_word(tp, MCU_TYPE_USB, USB_BP_EN, 0x0000); in r8153_firmware()
974 generic_ocp_write(tp, 0xf800, 0xff, sizeof(usb_patch_d), in r8153_firmware()
978 ocp_write_word(tp, MCU_TYPE_USB, in r8153_firmware()