Lines Matching +full:0 +full:x31000000
18 #define MAINVER 0
33 #define DBG_ERR 0x00000001 /* DBG_ERROR */
34 #define DBG_NOR 0x00000002 /* DBG_NORMAL */
35 #define DBG_A_NOR 0x00000004 /* DBG_AUTO_NORMAL */
36 #define DBG_A_TEST 0x00000008 /* DBG_AUTO_TEST */
37 #define DBG_A_SUB 0x00000010 /* DBG_AUTO_SUBFUNS */
38 #define DBG_A_EDID 0x00000020 /* DBG_AUTO_EDID */
39 #define DBG_INF 0x00000040 /* DBG_INFORMATION */
40 #define DBG_STAGE 0x00000040 /* DBG_STAGE */
41 #define DBG_AUX_R 0x00001000 /* DBG_AUX_R_VALUE */
42 /* #define DBG_AUX_W 0x00002000 *//*DBG_AUX_W_VALUE */
44 int DBG_LEVEL = 0x00000040; /* Information and stage */
45 /* int DBG_LEVEL = 0x0000107F; *//*Fully */
46 /* int DBG_LEVEL = 0x00000001; *//*Error */
87 char received = 0; in do_ast_dptest()
88 char execute_test = 0; in do_ast_dptest()
89 int flag = 0, i; in do_ast_dptest()
104 if (argv[i][0] == '-') { in do_ast_dptest()
111 printf("DBG_LEVEL change into 0x%x\n", DBG_LEVEL); in do_ast_dptest()
117 printf("I2C_PORT change into 0x%x\n", I2C_PORT); in do_ast_dptest()
120 I2C_PORT = 0x0; in do_ast_dptest()
144 printf("0: Change SSC on/off\n"); in do_ast_dptest()
149 printf("4: DE_LVL = 0, DE_LVL_1 = 0\n"); in do_ast_dptest()
196 /* Press "4" : Set Deemphasis_Level as 0 / Deemphasis_Level_1 as 0 */ in do_ast_dptest()
233 } else if (received == '0') /* change sscfg */ { in do_ast_dptest()
252 execute_test = 0; in do_ast_dptest()
260 execute_test = 0; in do_ast_dptest()
267 flag = 0; in do_ast_dptest()
341 Apply_Auto_Preset(0x1); in do_ast_dptest()
343 Apply_Auto_Preset(0x0); in do_ast_dptest()
359 return 0; in do_ast_dptest()
368 writel(0x00e80000, DP_TX_INT_CLEAR); in Apply_Auto_Preset()
371 writel(0x04e300fb, DP_TX_IRQ_CFG); in Apply_Auto_Preset()
374 writel(0x000007d1, DP_TX_EVENT_CFG); in Apply_Auto_Preset()
377 writel(0x0, DP_TX_INT_CLEAR); in Apply_Auto_Preset()
378 writel(0x0, DP_TX_IRQ_CFG); in Apply_Auto_Preset()
379 writel(0x0, DP_TX_EVENT_CFG); in Apply_Auto_Preset()
386 char AUX_Data[16] = {0}; in Read_EDID_128()
388 uchar Status = 0; in Read_EDID_128()
393 AUX_W(I2C_M_EA_CMD_W, 0x50, (int *)(&AUX_Data), &Length, &Status); in Read_EDID_128()
395 AUX_Data[0] = Offset; in Read_EDID_128()
396 AUX_W(I2C_M_CMD_W, 0x50, (int *)(&AUX_Data), &Length, &Status); in Read_EDID_128()
398 AUX_R(I2C_M_EA_CMD_R, 0x50, (int *)(&AUX_Data), &Length, &Status); in Read_EDID_128()
403 for (i = 0; i < 8; i++) { in Read_EDID_128()
405 AUX_R(I2C_M_CMD_R, 0x50, (int *)(&AUX_Data), &Length, &Status); in Read_EDID_128()
409 } while (Status == 0x20); in Read_EDID_128()
412 for (j = 0; j < 16; j++) in Read_EDID_128()
417 AUX_R(I2C_EA_CMD_R, 0x50, (int *)(&AUX_Data), &Length, &Status); in Read_EDID_128()
422 char AUX_Data[16] = {0}; in Apply_EDID_Reading()
424 uchar Status = 0; in Apply_EDID_Reading()
428 AUX_W(I2C_M_EA_CMD_W, 0x50, (int *)(&AUX_Data), &Length, &Status); in Apply_EDID_Reading()
430 AUX_W(I2C_M_CMD_W, 0x50, (int *)(&AUX_Data), &Length, &Status); in Apply_EDID_Reading()
432 AUX_R(I2C_M_EA_CMD_R, 0x50, (int *)(&AUX_Data), &Length, &Status); in Apply_EDID_Reading()
437 AUX_R(I2C_M_CMD_R, 0x50, (int *)(&AUX_Data), &Length, &Status); in Apply_EDID_Reading()
440 } while (Status == 0x20); in Apply_EDID_Reading()
442 …DBG(DBG_A_EDID, "EDID First 4 is 0x%X_0x%X_0x%X_0x%X\n", AUX_Data[0], AUX_Data[1], AUX_Data[2], AU… in Apply_EDID_Reading()
445 AUX_R(I2C_EA_CMD_R, 0x50, (int *)(&AUX_Data), &Length, &Status); in Apply_EDID_Reading()
448 Read_EDID_128(0x0); in Apply_EDID_Reading()
451 if (EDID[0x7E] == 0x1) { in Apply_EDID_Reading()
453 Read_EDID_128(0x80); in Apply_EDID_Reading()
460 char AUX_Data[16] = {0}; in Adjust_CR_EQ_Train()
461 uchar Ret = 0; in Adjust_CR_EQ_Train()
463 uchar Status = 0; in Adjust_CR_EQ_Train()
464 uchar AUX_R_Level = 0; in Adjust_CR_EQ_Train()
465 uchar AUX_W_Level = 0; in Adjust_CR_EQ_Train()
466 uchar DE_Level = 0x0; in Adjust_CR_EQ_Train()
467 uchar CR_Status = 0; in Adjust_CR_EQ_Train()
468 int value = 0; in Adjust_CR_EQ_Train()
470 uchar tempkeep = 0; in Adjust_CR_EQ_Train()
473 value = ((readl(DP_TX_MAIN_PAT) & ~(0x30000000)) | TrainPat); in Adjust_CR_EQ_Train()
477 /* AST phy 0xE4 Bit28 (0x1000000) / DP 0x102 Bit0 : TPS1 */ in Adjust_CR_EQ_Train()
478 /* AST phy 0xE4 Bit29 (0x2000000) / DP 0x102 Bit1 : TPS2 */ in Adjust_CR_EQ_Train()
479 if (TrainPat == 0x10000000) in Adjust_CR_EQ_Train()
480 AUX_Data[0] = 0x21; in Adjust_CR_EQ_Train()
482 AUX_Data[0] = 0x22; in Adjust_CR_EQ_Train()
484 AUX_W(AUX_CMD_W, 0x102, (int *)(&AUX_Data), &Length, &Status); in Adjust_CR_EQ_Train()
485 DBG(DBG_A_SUB, "2.A_C_E W 0x102 set 0x%x\n", AUX_Data[0]); in Adjust_CR_EQ_Train()
491 AUX_Data[0] = CR_EQ_Keep; in Adjust_CR_EQ_Train()
498 AUX_W(AUX_CMD_W, 0x103, (int *)(&AUX_Data), &Length, &Status); in Adjust_CR_EQ_Train()
499 DBG(DBG_A_SUB, "3.A_C_E W 0x103 - 0x106 set\n"); in Adjust_CR_EQ_Train()
500 } while (Status == 0x20); in Adjust_CR_EQ_Train()
506 AUX_R(AUX_CMD_R, 0x200, (int *)(&AUX_Data), &Length, &Status); in Adjust_CR_EQ_Train()
507 DBG(DBG_A_SUB, "4.A_C_E R 0x200 - 0x205 read back\n"); in Adjust_CR_EQ_Train()
514 bFirst = 0; in Adjust_CR_EQ_Train()
521 AUX_R(AUX_CMD_R, 0x206, (int *)(&AUX_Data), &Length, &Status); in Adjust_CR_EQ_Train()
522 DBG(DBG_A_SUB, "5.A_C_E R 0x206 read back\n"); in Adjust_CR_EQ_Train()
523 AUX_R_Level = AUX_Data[0]; in Adjust_CR_EQ_Train()
525 AUX_R(AUX_CMD_R, 0x207, (int *)(&AUX_Data), &Length, &Status); in Adjust_CR_EQ_Train()
526 DBG(DBG_A_SUB, "6.A_C_E R 0x207 read back\n"); in Adjust_CR_EQ_Train()
529 switch (AUX_R_Level & 0x33) { in Adjust_CR_EQ_Train()
530 case 0x00: in Adjust_CR_EQ_Train()
533 case 0x11: in Adjust_CR_EQ_Train()
542 switch (AUX_R_Level & 0xCC) { in Adjust_CR_EQ_Train()
543 case 0x00: in Adjust_CR_EQ_Train()
545 DE_Level = 0; in Adjust_CR_EQ_Train()
547 case 0x44: in Adjust_CR_EQ_Train()
548 AUX_W_Level |= 0x08; in Adjust_CR_EQ_Train()
552 AUX_W_Level |= 0x30; in Adjust_CR_EQ_Train()
558 value = ((readl(DP_TX_PHY_CFG) & ~(0x33000000)) | Deemlevel[DE_Level]); in Adjust_CR_EQ_Train()
562 DBG(DBG_A_SUB, "Link AUX_W_Level is 0x%x\n", AUX_W_Level); in Adjust_CR_EQ_Train()
566 AUX_Data[0] = AUX_W_Level; in Adjust_CR_EQ_Train()
573 AUX_W(AUX_CMD_W, 0x103, (int *)(&AUX_Data), &Length, &Status); in Adjust_CR_EQ_Train()
574 DBG(DBG_A_SUB, "7.A_C_E W 0x103 - 0x106 set\n"); in Adjust_CR_EQ_Train()
575 } while (Status == 0x20); in Adjust_CR_EQ_Train()
580 AUX_R(AUX_CMD_R, 0x200, (int *)(&AUX_Data), &Length, &Status); in Adjust_CR_EQ_Train()
581 DBG(DBG_A_SUB, "8.A_C_E R 0x200 - 0x205 read back\n"); in Adjust_CR_EQ_Train()
586 if (AUX_W_Level == 0x36) { in Adjust_CR_EQ_Train()
600 char AUX_Data[16] = {0}; in Link_Train_Flow()
602 uchar Status = 0; in Link_Train_Flow()
603 uchar Ret = 0; in Link_Train_Flow()
604 int value = 0; in Link_Train_Flow()
608 AUX_R(AUX_CMD_R, 0x101, (int *)(&AUX_Data), &Length, &Status); in Link_Train_Flow()
609 DBG(DBG_A_SUB, "1.Link R 0x101 read back\n"); in Link_Train_Flow()
613 AUX_Data[0] = ((AUX_Data[0] & 0xE0) | Auto_Lane_Count); in Link_Train_Flow()
615 AUX_Data[0] = ((AUX_Data[0] & 0xE0) | 0x2); in Link_Train_Flow()
617 AUX_W(AUX_CMD_W, 0x101, (int *)(&AUX_Data), &Length, &Status); in Link_Train_Flow()
618 DBG(DBG_A_SUB, "2.Link W 0x101 clear\n"); in Link_Train_Flow()
621 value = ((readl(DP_TX_MAIN_SET) & ~(0x300)) | (Link_Level << 8)); in Link_Train_Flow()
625 case 0x1: /* 2.7 */ in Link_Train_Flow()
626 AUX_Data[0] = 0x0a; in Link_Train_Flow()
630 AUX_Data[0] = 0x06; in Link_Train_Flow()
634 AUX_W(AUX_CMD_W, 0x100, (int *)(&AUX_Data), &Length, &Status); in Link_Train_Flow()
635 DBG(DBG_A_SUB, "3.Link W 0x100 set\n"); in Link_Train_Flow()
637 AUX_R(AUX_CMD_R, 0x101, (int *)(&AUX_Data), &Length, &Status); in Link_Train_Flow()
638 DBG(DBG_A_SUB, "4.Link R 0x101 read back\n"); in Link_Train_Flow()
642 AUX_Data[0] = ((AUX_Data[0] & 0xE0) | Auto_Lane_Count); in Link_Train_Flow()
644 AUX_Data[0] = ((AUX_Data[0] & 0xE0) | 0x2); in Link_Train_Flow()
646 AUX_W(AUX_CMD_W, 0x101, (int *)(&AUX_Data), &Length, &Status); in Link_Train_Flow()
647 DBG(DBG_A_SUB, "5.Link W 0x101 clear\n"); in Link_Train_Flow()
649 /* Set the 2 lanes and enhance frame by checking AUX 0x2 bit 7 */ in Link_Train_Flow()
650 value = ((readl(DP_TX_MAIN_SET) & ~(0x1070)) | 0x20); in Link_Train_Flow()
653 value |= 0x1000; in Link_Train_Flow()
657 value = ((readl(DP_TX_PHY_CFG) & ~(0x3000)) | 0x3000); in Link_Train_Flow()
661 AUX_R(AUX_CMD_R, 0x101, (int *)(&AUX_Data), &Length, &Status); in Link_Train_Flow()
662 DBG(DBG_A_SUB, "6.Link R 0x101 read back\n"); in Link_Train_Flow()
666 AUX_Data[0] = ((AUX_Data[0] & 0xE0) | Auto_Lane_Count); in Link_Train_Flow()
668 AUX_Data[0] = ((AUX_Data[0] & 0xE0) | 0x2); in Link_Train_Flow()
670 AUX_W(AUX_CMD_W, 0x101, (int *)(&AUX_Data), &Length, &Status); in Link_Train_Flow()
671 DBG(DBG_A_SUB, "7.Link W 0x101 clear\n"); in Link_Train_Flow()
674 value = ((readl(DP_TX_PHY_SET) & ~(0x100)) | 0x100); in Link_Train_Flow()
682 value = (readl(DP_TX_PHY_SET) & 0x200); in Link_Train_Flow()
683 } while (value != 0x200); in Link_Train_Flow()
687 if (Adjust_CR_EQ_Train(0x10000000, 0x11)) { in Link_Train_Flow()
693 if (Adjust_CR_EQ_Train(0x20000000, 0x77)) { in Link_Train_Flow()
703 char AUX_Data[16] = {0}; in Apply_HPD_Normal()
705 uchar Status = 0; in Apply_HPD_Normal()
706 int value = 0; in Apply_HPD_Normal()
710 AUX_Data[0] = 0x01; in Apply_HPD_Normal()
711 AUX_W(AUX_CMD_W, 0x600, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
712 DBG(DBG_NOR, "1.HPD_N W 0x600 set power!\n"); in Apply_HPD_Normal()
714 AUX_R(AUX_CMD_R, 0x0, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
715 DBG(DBG_NOR, "2.HPD_N R 0x0 read back is 0x%X!\n", AUX_Data[0]); in Apply_HPD_Normal()
718 AUX_R(AUX_CMD_R, 0x500, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
719 DBG(DBG_NOR, "3.HPD_N R 0x500 - 0x508 read back\n"); in Apply_HPD_Normal()
722 AUX_R(AUX_CMD_R, 0x0, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
723 DBG(DBG_NOR, "4.HPD_N R 0x0 - 0xD read back\n"); in Apply_HPD_Normal()
725 bEn_Frame = AUX_Data[2] & 0x80; in Apply_HPD_Normal()
729 DBG(DBG_NOR, "4.HPD_N R 0x2 En_Frame_Cap\n"); in Apply_HPD_Normal()
732 AUX_R(AUX_CMD_R, 0xe, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
733 DBG(DBG_NOR, "5.HPD_N R 0xE read back\n"); in Apply_HPD_Normal()
743 AUX_R(AUX_CMD_R, 0x200, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
744 DBG(DBG_NOR, "7.HPD_N R 0x200 - 0x201 read back.\n"); in Apply_HPD_Normal()
747 AUX_R(AUX_CMD_R, 0x68028, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
748 DBG(DBG_NOR, "8.HPD_N R 0x68028 read back.\n"); in Apply_HPD_Normal()
750 AUX_R(AUX_CMD_R, 0x68028, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
751 DBG(DBG_NOR, "9.HPD_N R 0x68028 read back.\n"); in Apply_HPD_Normal()
753 AUX_R(AUX_CMD_R, 0x600, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
754 DBG(DBG_NOR, "10.HPD_N R 0x600 read back.\n"); in Apply_HPD_Normal()
756 AUX_Data[0] = 0x01; in Apply_HPD_Normal()
757 AUX_W(AUX_CMD_W, 0x600, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
758 DBG(DBG_NOR, "11.HPD_N W 0x600 set power!\n"); in Apply_HPD_Normal()
760 DBG(DBG_NOR, "12.HPD_N Link_Train_Flow 0x1 Enter\n"); in Apply_HPD_Normal()
762 Status = Link_Train_Flow(0x1); in Apply_HPD_Normal()
764 DBG(DBG_NOR, "12.HPD_N Link_Train_Flow 0x1 Leave\n"); in Apply_HPD_Normal()
767 AUX_Data[0] = 0x20; in Apply_HPD_Normal()
768 AUX_W(AUX_CMD_W, 0x102, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
769 DBG(DBG_ERR, "!!HPD_N W 0x102 set Train Flow 0x1 Fail!!\n"); in Apply_HPD_Normal()
771 DBG(DBG_NOR, "13.HPD_N Link_Train_Flow 0x0 Enter\n"); in Apply_HPD_Normal()
773 Status = Link_Train_Flow(0x0); in Apply_HPD_Normal()
775 DBG(DBG_NOR, "13.HPD_NLink_Train_Flow 0x0 Leave\n"); in Apply_HPD_Normal()
778 AUX_Data[0] = 0x20; in Apply_HPD_Normal()
779 AUX_W(AUX_CMD_W, 0x102, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
780 DBG(DBG_ERR, "!!HPD_N W 0x102 set Train Flow 0x0 Fail!!\n"); in Apply_HPD_Normal()
789 AUX_Data[0] = 0x00; in Apply_HPD_Normal()
790 AUX_W(AUX_CMD_W, 0x102, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
791 DBG(DBG_NOR, "14.HPD_N W 0x102 clear!\n"); in Apply_HPD_Normal()
794 value = ((readl(DP_TX_MAIN_PAT) & ~(0x31000000)) | 0x01000000); in Apply_HPD_Normal()
799 AUX_R(AUX_CMD_R, 0x68028, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
800 DBG(DBG_NOR, "16.HPD_N R 0x68028 read back.\n"); in Apply_HPD_Normal()
803 AUX_R(AUX_CMD_R, 0x68000, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
804 DBG(DBG_NOR, "17.HPD_N R 0x68000 - 0x68004 read back.\n"); in Apply_HPD_Normal()
807 AUX_R(AUX_CMD_R, 0x68028, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
808 DBG(DBG_NOR, "18.HPD_N R 0x68028 read back.\n"); in Apply_HPD_Normal()
810 AUX_R(AUX_CMD_R, 0x68028, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
811 DBG(DBG_NOR, "19.HPD_N R 0x68028 read back.\n"); in Apply_HPD_Normal()
813 AUX_R(AUX_CMD_R, 0x0, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Normal()
814 DBG(DBG_NOR, "20.HPD_N R 0x0 read back.\n"); in Apply_HPD_Normal()
820 uchar Length = 0; in Apply_HPD_Auto_Test()
821 uchar Status = 0; in Apply_HPD_Auto_Test()
822 uchar clear_auto_test = 0; in Apply_HPD_Auto_Test()
823 uchar auto_test_link = 0; in Apply_HPD_Auto_Test()
824 uchar auto_test_phy = 0; in Apply_HPD_Auto_Test()
825 uchar swing0 = 0, preemphasis0 = 0; in Apply_HPD_Auto_Test()
826 uchar swing1 = 0, preemphasis1 = 0; in Apply_HPD_Auto_Test()
827 int flag = 0; in Apply_HPD_Auto_Test()
828 char temp0 = 0, temp1 = 0; in Apply_HPD_Auto_Test()
829 char temp206 = 0; in Apply_HPD_Auto_Test()
834 AUX_Data[0] = 0x01; in Apply_HPD_Auto_Test()
836 AUX_W(AUX_CMD_W, 0x600, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
837 DBG(DBG_A_TEST, "1.HP_I W 0x600 done!\n"); in Apply_HPD_Auto_Test()
840 AUX_R(AUX_CMD_R, 0x200, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
841 DBG(DBG_A_TEST, "2.HP_I R 0x200 - 0x206 done!\n"); in Apply_HPD_Auto_Test()
844 AUX_R(AUX_CMD_R, 0x201, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
845 DBG(DBG_A_TEST, "3.HP_I R 0x201 : 0x%x\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
848 if (AUX_Data[0] & 0x2) in Apply_HPD_Auto_Test()
851 clear_auto_test = 0; in Apply_HPD_Auto_Test()
855 AUX_R(AUX_CMD_R, 0x202, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
857 AUX_R(AUX_CMD_R, 0x101, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
858 AUX_R(AUX_CMD_R, 0x200, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
860 AUX_R(AUX_CMD_R, 0x202, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
862 AUX_R(AUX_CMD_R, 0x205, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
865 AUX_R(AUX_CMD_R, 0x219, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
866 DBG(DBG_A_TEST, "5. HP_I Link Rate R 0x219 : 0x%x\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
868 if (AUX_Data[0] == 0x06) { in Apply_HPD_Auto_Test()
869 Auto_Link_Rate = AUX_Data[0]; in Apply_HPD_Auto_Test()
872 } else if (AUX_Data[0] == 0x0a) { in Apply_HPD_Auto_Test()
873 Auto_Link_Rate = AUX_Data[0]; in Apply_HPD_Auto_Test()
876 } else if (AUX_Data[0] == 0x14) { in Apply_HPD_Auto_Test()
882 AUX_Data[0] = 0x02; in Apply_HPD_Auto_Test()
883 AUX_W(AUX_CMD_W, 0x201, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
884 DBG(DBG_A_TEST, "1.HP_I CA W 0x201 clear auto!\n"); in Apply_HPD_Auto_Test()
885 clear_auto_test = 0; in Apply_HPD_Auto_Test()
888 AUX_R(AUX_CMD_R, 0x218, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
889 DBG(DBG_A_TEST, "2.HP_I CA R 0x218 : 0x%x\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
892 if (AUX_Data[0] & 0x1) in Apply_HPD_Auto_Test()
895 auto_test_link = 0; in Apply_HPD_Auto_Test()
898 if (AUX_Data[0] & 0x8) in Apply_HPD_Auto_Test()
901 auto_test_phy = 0; in Apply_HPD_Auto_Test()
905 AUX_R(AUX_CMD_R, 0x219, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
906 DBG(DBG_A_TEST, "1.HP_I TL R 0x219 : 0x%x\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
908 if (AUX_Data[0] == 0x06) { in Apply_HPD_Auto_Test()
909 Auto_Link_Rate = AUX_Data[0]; in Apply_HPD_Auto_Test()
912 } else if (AUX_Data[0] == 0x0a) { in Apply_HPD_Auto_Test()
913 Auto_Link_Rate = AUX_Data[0]; in Apply_HPD_Auto_Test()
916 } else if (AUX_Data[0] == 0x14) { in Apply_HPD_Auto_Test()
921 AUX_R(AUX_CMD_R, 0x220, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
922 DBG(DBG_A_TEST, "2.HP_I TL R 0x220 : 0x%x\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
923 Auto_Lane_Count = AUX_Data[0] & 0x1F; in Apply_HPD_Auto_Test()
925 AUX_Data[0] = 0x01; in Apply_HPD_Auto_Test()
926 AUX_W(AUX_CMD_W, 0x260, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
927 DBG(DBG_A_TEST, "3.HP_I TL W 0x260 test ACK\n"); in Apply_HPD_Auto_Test()
932 AUX_Data[0] = 0x01; in Apply_HPD_Auto_Test()
933 AUX_W(AUX_CMD_W, 0x600, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
934 DBG(DBG_A_TEST, "3.1 HP_I W 0x600 done!\n"); in Apply_HPD_Auto_Test()
937 case 0x06: in Apply_HPD_Auto_Test()
939 Status = Link_Train_Flow(0x0); in Apply_HPD_Auto_Test()
943 case 0x0a: in Apply_HPD_Auto_Test()
945 Status = Link_Train_Flow(0x1); in Apply_HPD_Auto_Test()
960 AUX_Data[0] = 0x00; in Apply_HPD_Auto_Test()
961 AUX_W(AUX_CMD_W, 0x102, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
964 auto_test_link = 0; in Apply_HPD_Auto_Test()
969 flag = 0; in Apply_HPD_Auto_Test()
970 temp206 = 0; in Apply_HPD_Auto_Test()
972 AUX_R(AUX_CMD_R, 0x248, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
973 DBG(DBG_A_TEST, "1.HP_I TP R 0x248 : 0x%x!\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
975 if (AUX_Data[0] == 0x01) { in Apply_HPD_Auto_Test()
978 } else if (AUX_Data[0] == 0x03) { in Apply_HPD_Auto_Test()
983 AUX_R(AUX_CMD_R, 0x206, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
984 DBG(DBG_A_TEST, "2.HP_I TP R 0x206 : 0x%x!\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
987 DBG(DBG_INF, "Read value 0x206 : 0x%x!\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
990 temp0 = (AUX_Data[0] & 0x03); in Apply_HPD_Auto_Test()
991 temp1 = (AUX_Data[0] & 0x30); in Apply_HPD_Auto_Test()
995 case 0x2: in Apply_HPD_Auto_Test()
996 swing0 = 0x2; in Apply_HPD_Auto_Test()
999 case 0x1: in Apply_HPD_Auto_Test()
1000 swing0 = 0x1; in Apply_HPD_Auto_Test()
1003 case 0x0: in Apply_HPD_Auto_Test()
1004 swing0 = 0x0; in Apply_HPD_Auto_Test()
1007 DBG(DBG_ERR, "HP_I TP 0x206 other swing0 val %x!\n", temp0); in Apply_HPD_Auto_Test()
1013 case 0x20: in Apply_HPD_Auto_Test()
1014 swing1 = 0x2; in Apply_HPD_Auto_Test()
1017 case 0x10: in Apply_HPD_Auto_Test()
1018 swing1 = 0x1; in Apply_HPD_Auto_Test()
1021 case 0x00: in Apply_HPD_Auto_Test()
1022 swing1 = 0x0; in Apply_HPD_Auto_Test()
1025 DBG(DBG_ERR, "HP_I TP 0x206 other swing1 val %x!\n", temp1); in Apply_HPD_Auto_Test()
1030 DBG(DBG_ERR, "Swing 0 / 1 diff val %x!\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
1033 temp0 = (AUX_Data[0] & 0x0C); in Apply_HPD_Auto_Test()
1034 temp1 = (AUX_Data[0] & 0xC0); in Apply_HPD_Auto_Test()
1038 case 0x8: in Apply_HPD_Auto_Test()
1039 preemphasis0 = 0x2; in Apply_HPD_Auto_Test()
1040 temp206 |= 0x30; in Apply_HPD_Auto_Test()
1042 case 0x4: in Apply_HPD_Auto_Test()
1043 preemphasis0 = 0x1; in Apply_HPD_Auto_Test()
1044 temp206 |= 0x08; in Apply_HPD_Auto_Test()
1046 case 0x0: in Apply_HPD_Auto_Test()
1047 preemphasis0 = 0x0; in Apply_HPD_Auto_Test()
1050 DBG(DBG_ERR, "HP_I TP 0x206 other Pre-emphasis0 val %x!\n", temp0); in Apply_HPD_Auto_Test()
1056 case 0x80: in Apply_HPD_Auto_Test()
1057 preemphasis1 = 0x2; in Apply_HPD_Auto_Test()
1058 temp206 |= 0x30; in Apply_HPD_Auto_Test()
1060 case 0x40: in Apply_HPD_Auto_Test()
1061 preemphasis1 = 0x1; in Apply_HPD_Auto_Test()
1062 temp206 |= 0x08; in Apply_HPD_Auto_Test()
1064 case 0x00: in Apply_HPD_Auto_Test()
1065 preemphasis1 = 0x0; in Apply_HPD_Auto_Test()
1068 DBG(DBG_ERR, "HP_I TP 0x206 other Pre-emphasis1 val %x!\n", temp1); in Apply_HPD_Auto_Test()
1073 DBG(DBG_ERR, "Preemphasis 0 / 1 diff val %x!\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
1076 if (swing0 == 0x2 || swing1 == 0x2) in Apply_HPD_Auto_Test()
1077 Swing_Level = 0x2; in Apply_HPD_Auto_Test()
1078 else if (swing0 == 1 || swing1 == 0x1) in Apply_HPD_Auto_Test()
1079 Swing_Level = 0x1; in Apply_HPD_Auto_Test()
1080 else if (swing0 == 0x0 || swing1 == 0x0) in Apply_HPD_Auto_Test()
1081 Swing_Level = 0x0; in Apply_HPD_Auto_Test()
1083 if (preemphasis0 == 0x2 || preemphasis1 == 0x2) { in Apply_HPD_Auto_Test()
1087 } else if (preemphasis0 == 0x1 || preemphasis1 == 0x1) { in Apply_HPD_Auto_Test()
1090 DBG(DBG_ERR, "!!De-type 0 P_1 !!\n"); in Apply_HPD_Auto_Test()
1091 } else if (preemphasis0 == 0x0 || preemphasis1 == 0x0) { in Apply_HPD_Auto_Test()
1101 AUX_R(AUX_CMD_R, 0x102, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
1102 DBG(DBG_A_TEST, "3.HP_I TP R 0x102 : 0x%x\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
1103 temp0 = AUX_Data[0]; in Apply_HPD_Auto_Test()
1106 AUX_R(AUX_CMD_R, 0x10b, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
1107 DBG(DBG_A_TEST, "4.HP_I TP R 0x10b : 0x%x\n", AUX_Data[0]); in Apply_HPD_Auto_Test()
1109 AUX_W(AUX_CMD_W, 0x10b, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
1110 DBG(DBG_A_TEST, "5.HP_I TP W 0x10b done!\n"); in Apply_HPD_Auto_Test()
1112 AUX_Data[0] = temp0 | 0x20; in Apply_HPD_Auto_Test()
1114 AUX_W(AUX_CMD_W, 0x102, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
1115 DBG(DBG_A_TEST, "6.HP_I TP W 0x102 done!\n"); in Apply_HPD_Auto_Test()
1117 AUX_Data[0] = temp206; in Apply_HPD_Auto_Test()
1122 AUX_W(AUX_CMD_W, 0x103, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
1123 DBG(DBG_A_TEST, "7.HP_I TP W 0x103 - 0x104 done!\n"); in Apply_HPD_Auto_Test()
1124 } while (Status == 0x20); in Apply_HPD_Auto_Test()
1130 AUX_Data[0] = 0x01; in Apply_HPD_Auto_Test()
1131 AUX_W(AUX_CMD_W, 0x260, (int *)(&AUX_Data), &Length, &Status); in Apply_HPD_Auto_Test()
1132 DBG(DBG_A_TEST, "8.HP_I TP W 0x260 done!\n"); in Apply_HPD_Auto_Test()
1136 auto_test_phy = 0; in Apply_HPD_Auto_Test()
1138 clear_auto_test = 0; in Apply_HPD_Auto_Test()
1145 char auto_received = 0; in Apply_Auto_Mesument()
1146 int temp = 0, wdata = 0; in Apply_Auto_Mesument()
1147 int breakcount = 0; in Apply_Auto_Mesument()
1150 breakcount = 0; in Apply_Auto_Mesument()
1154 temp = (readl(DP_TX_INT_STATUS) & 0x3800); in Apply_Auto_Mesument()
1157 if (breakcount == 0x96000) { in Apply_Auto_Mesument()
1162 } while (!(temp & 0x3800)); in Apply_Auto_Mesument()
1171 if (temp & 0x2800) { in Apply_Auto_Mesument()
1173 Auto_Link_Rate = 0; in Apply_Auto_Mesument()
1174 Auto_Lane_Count = 0; in Apply_Auto_Mesument()
1175 bEn_Frame = 0; in Apply_Auto_Mesument()
1176 CR_EQ_Keep = 0; in Apply_Auto_Mesument()
1178 if (temp & 0x2000) { in Apply_Auto_Mesument()
1183 if (temp & 0x800) { in Apply_Auto_Mesument()
1235 if ((flag & F_PAT_D10_2) == 0) { in Apply_Main_Mesument()
1246 writel(0x00000000, DP_TX_RES_CFG); in Apply_Main_Mesument()
1257 writel(0x0F000000, DP_AUX_ADDR_LEN); in Apply_AUX_Mesument()
1258 writel(0x80000010, DP_AUX_REQ_CFG); in Apply_AUX_Mesument()
1266 int value = 0x0; in Set_Redriver()
1267 uchar offset = 0x0; in Set_Redriver()
1277 printf("RD_VAL is 0x%x\n", RD_VAL); in Set_Redriver()
1279 writel(0x600, I2C_BASE + I2C0_COUNT_O); in Set_Redriver()
1280 value = (0x0000f0f0 | (RD_VAL << 24)); in Set_Redriver()
1282 printf("value0 is 0x%x\n", value); in Set_Redriver()
1284 writel(value, (I2C_BUFF + 0x4)); in Set_Redriver()
1285 printf("value1 is 0x%x\n", value); in Set_Redriver()
1286 writel(0x70010063, (I2C_BASE + I2C0_EXECUTE_O)); in Set_Redriver()
1296 writel(0x0, I2C_BASE); in I2C_L_Initial()
1298 writel(0x28001, I2C_BASE); in I2C_L_Initial()
1299 writel(0x344001, I2C_BASE + I2C0_TIMMING_O); in I2C_L_Initial()
1300 writel(0xFFFFFFFF, I2C_BASE + I2C0_INT_STATUS_O); in I2C_L_Initial()
1301 writel(0x0, I2C_BASE + I2C0_INT_O); in I2C_L_Initial()
1309 writel(0x0FFF3000, MP_SCU410); in I2C_G_Initial()
1310 writel(0x0F00FF00, MP_SCU414); in I2C_G_Initial()
1311 writel(0xCFFF001F, MP_SCU418); in I2C_G_Initial()
1312 writel(0xF00000FF, MP_SCU4b0); in I2C_G_Initial()
1313 writel(0xF0FF00FF, MP_SCU4b4); in I2C_G_Initial()
1314 writel(0x0000FF00, MP_SCU4b8); in I2C_G_Initial()
1317 writel(0x16, (I2C_GBASE + 0xC)); in I2C_G_Initial()
1318 writel(0x041230C6, (I2C_GBASE + 0x10)); in I2C_G_Initial()
1327 writel(0x20000000, SYS_REST); in DPTX_MCU_Reset()
1328 writel(0x10000000, SYS_REST_CLR); in DPTX_MCU_Reset()
1336 int value = 0, count = 0; in DPPHY_Set()
1339 writel(0x10000000, DP_TX_PHY_SET); in DPPHY_Set()
1343 writel(0x11000000, DP_TX_PHY_SET); in DPPHY_Set()
1347 writel(0x11001100, DP_TX_PHY_SET); in DPPHY_Set()
1362 char SetFail = 0; in DPPHYTX_Show_Cfg()
1426 case 0: in DPPHYTX_Show_Cfg()
1534 int value = 0, count = 0; in Set_HBR2CPAT()
1545 value = (readl(DP_TX_MAIN_CFG) & 0xFFF); in Set_HBR2CPAT()
1575 int wdata = 0, temp = 0; in AUX_R()
1588 DBG(DBG_AUX_R, "AUX Read on 0x%x with %d bytes.\n", aux_addr, *length); in AUX_R()
1595 temp = (readl(DP_TX_INT_STATUS) & 0xC000); in AUX_R()
1596 } while (!(temp & 0xC000)); in AUX_R()
1606 DBG(DBG_AUX_R, "Data on 0x0 is 0x%x.\n", *aux_r_data); in AUX_R()
1608 if ((*length) > 0x4) { in AUX_R()
1611 DBG(DBG_AUX_R, "Data on 0x4 is 0x%x.\n", *aux_r_data); in AUX_R()
1614 if ((*length) > 0x8) { in AUX_R()
1617 DBG(DBG_AUX_R, "Data on 0x8 is 0x%x.\n", *aux_r_data); in AUX_R()
1620 if ((*length) > 0xC) { in AUX_R()
1623 DBG(DBG_AUX_R, "Data on 0xC is 0x%x.\n", *aux_r_data); in AUX_R()
1626 (*status) = (uchar)(readl(DP_AUX_STATUS) & 0xFF); in AUX_R()
1627 return 0; in AUX_R()
1635 int wdata = 0, temp = 0; in AUX_W()
1650 if ((*length) > 0x4) { in AUX_W()
1655 if ((*length) > 0x8) { in AUX_W()
1660 if ((*length) > 0xC) { in AUX_W()
1670 temp = (readl(DP_TX_INT_STATUS) & 0xC000); in AUX_W()
1671 } while (!(temp & 0xC000)); in AUX_W()
1678 (*status) = (uchar)(readl(DP_AUX_STATUS) & 0xFF); in AUX_W()
1679 return 0; in AUX_W()
1685 U_BOOT_CMD(dptest, 2, 0, do_ast_dptest, "ASPEED Display Port phy test", "ASPEED DP test v.0.2.9");