1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+ 26c45abe7SMichal Simek /* 36c45abe7SMichal Simek * (c) Copyright 2015 Xilinx, Inc. All rights reserved. 46c45abe7SMichal Simek */ 56c45abe7SMichal Simek 66c45abe7SMichal Simek #include <asm/arch/psu_init_gpl.h> 76c45abe7SMichal Simek #include <xil_io.h> 86c45abe7SMichal Simek 96c45abe7SMichal Simek static unsigned long psu_pll_init_data(void) 106c45abe7SMichal Simek { 116c45abe7SMichal Simek psu_mask_write(0xFF5E0034, 0xFE7FEDEFU, 0x7E4B0C82U); 126c45abe7SMichal Simek psu_mask_write(0xFF5E0030, 0x00717F00U, 0x00015900U); 136c45abe7SMichal Simek psu_mask_write(0xFF5E0030, 0x00000008U, 0x00000008U); 146c45abe7SMichal Simek psu_mask_write(0xFF5E0030, 0x00000001U, 0x00000001U); 156c45abe7SMichal Simek psu_mask_write(0xFF5E0030, 0x00000001U, 0x00000000U); 166c45abe7SMichal Simek mask_poll(0xFF5E0040, 0x00000002U); 176c45abe7SMichal Simek psu_mask_write(0xFF5E0030, 0x00000008U, 0x00000000U); 186c45abe7SMichal Simek psu_mask_write(0xFF5E0048, 0x00003F00U, 0x00000300U); 196c45abe7SMichal Simek psu_mask_write(0xFF5E0038, 0x8000FFFFU, 0x80008E69U); 206c45abe7SMichal Simek psu_mask_write(0xFF5E0024, 0xFE7FEDEFU, 0x7E4B0C82U); 216c45abe7SMichal Simek psu_mask_write(0xFF5E0020, 0x00717F00U, 0x00015A00U); 226c45abe7SMichal Simek psu_mask_write(0xFF5E0020, 0x00000008U, 0x00000008U); 236c45abe7SMichal Simek psu_mask_write(0xFF5E0020, 0x00000001U, 0x00000001U); 246c45abe7SMichal Simek psu_mask_write(0xFF5E0020, 0x00000001U, 0x00000000U); 256c45abe7SMichal Simek mask_poll(0xFF5E0040, 0x00000001U); 266c45abe7SMichal Simek psu_mask_write(0xFF5E0020, 0x00000008U, 0x00000000U); 276c45abe7SMichal Simek psu_mask_write(0xFF5E0044, 0x00003F00U, 0x00000300U); 286c45abe7SMichal Simek psu_mask_write(0xFD1A0024, 0xFE7FEDEFU, 0x7E4B0C62U); 296c45abe7SMichal Simek psu_mask_write(0xFD1A0020, 0x00717F00U, 0x00014800U); 306c45abe7SMichal Simek psu_mask_write(0xFD1A0020, 0x00000008U, 0x00000008U); 316c45abe7SMichal Simek psu_mask_write(0xFD1A0020, 0x00000001U, 0x00000001U); 326c45abe7SMichal Simek psu_mask_write(0xFD1A0020, 0x00000001U, 0x00000000U); 336c45abe7SMichal Simek mask_poll(0xFD1A0044, 0x00000001U); 346c45abe7SMichal Simek psu_mask_write(0xFD1A0020, 0x00000008U, 0x00000000U); 356c45abe7SMichal Simek psu_mask_write(0xFD1A0048, 0x00003F00U, 0x00000300U); 366c45abe7SMichal Simek psu_mask_write(0xFD1A0030, 0xFE7FEDEFU, 0x7E4B0C62U); 376c45abe7SMichal Simek psu_mask_write(0xFD1A002C, 0x00717F00U, 0x00014000U); 386c45abe7SMichal Simek psu_mask_write(0xFD1A002C, 0x00000008U, 0x00000008U); 396c45abe7SMichal Simek psu_mask_write(0xFD1A002C, 0x00000001U, 0x00000001U); 406c45abe7SMichal Simek psu_mask_write(0xFD1A002C, 0x00000001U, 0x00000000U); 416c45abe7SMichal Simek mask_poll(0xFD1A0044, 0x00000002U); 426c45abe7SMichal Simek psu_mask_write(0xFD1A002C, 0x00000008U, 0x00000000U); 436c45abe7SMichal Simek psu_mask_write(0xFD1A004C, 0x00003F00U, 0x00000200U); 446c45abe7SMichal Simek psu_mask_write(0xFD1A003C, 0xFE7FEDEFU, 0x7E4B0C82U); 456c45abe7SMichal Simek psu_mask_write(0xFD1A0038, 0x00717F00U, 0x00015900U); 466c45abe7SMichal Simek psu_mask_write(0xFD1A0038, 0x00000008U, 0x00000008U); 476c45abe7SMichal Simek psu_mask_write(0xFD1A0038, 0x00000001U, 0x00000001U); 486c45abe7SMichal Simek psu_mask_write(0xFD1A0038, 0x00000001U, 0x00000000U); 496c45abe7SMichal Simek mask_poll(0xFD1A0044, 0x00000004U); 506c45abe7SMichal Simek psu_mask_write(0xFD1A0038, 0x00000008U, 0x00000000U); 516c45abe7SMichal Simek psu_mask_write(0xFD1A0050, 0x00003F00U, 0x00000300U); 526c45abe7SMichal Simek psu_mask_write(0xFD1A0040, 0x8000FFFFU, 0x80008E69U); 536c45abe7SMichal Simek 546c45abe7SMichal Simek return 1; 556c45abe7SMichal Simek } 566c45abe7SMichal Simek 576c45abe7SMichal Simek static unsigned long psu_clock_init_data(void) 586c45abe7SMichal Simek { 596c45abe7SMichal Simek psu_mask_write(0xFF5E005C, 0x063F3F07U, 0x06010C00U); 606c45abe7SMichal Simek psu_mask_write(0xFF5E0060, 0x023F3F07U, 0x02010600U); 616c45abe7SMichal Simek psu_mask_write(0xFF5E004C, 0x023F3F07U, 0x02031900U); 626c45abe7SMichal Simek psu_mask_write(0xFF5E0068, 0x013F3F07U, 0x01010500U); 636c45abe7SMichal Simek psu_mask_write(0xFF5E0070, 0x013F3F07U, 0x01010800U); 646c45abe7SMichal Simek psu_mask_write(0xFF18030C, 0x00020000U, 0x00000000U); 656c45abe7SMichal Simek psu_mask_write(0xFF5E0074, 0x013F3F07U, 0x01010F00U); 666c45abe7SMichal Simek psu_mask_write(0xFF5E0078, 0x013F3F07U, 0x01010F00U); 676c45abe7SMichal Simek psu_mask_write(0xFF5E0120, 0x013F3F07U, 0x01010F00U); 686c45abe7SMichal Simek psu_mask_write(0xFF5E0124, 0x013F3F07U, 0x01010F00U); 696c45abe7SMichal Simek psu_mask_write(0xFF5E0088, 0x013F3F07U, 0x01010F00U); 706c45abe7SMichal Simek psu_mask_write(0xFF5E0090, 0x01003F07U, 0x01000302U); 716c45abe7SMichal Simek psu_mask_write(0xFF5E009C, 0x01003F07U, 0x01000602U); 726c45abe7SMichal Simek psu_mask_write(0xFF5E00A4, 0x01003F07U, 0x01000600U); 736c45abe7SMichal Simek psu_mask_write(0xFF5E00A8, 0x01003F07U, 0x01000302U); 746c45abe7SMichal Simek psu_mask_write(0xFF5E00AC, 0x01003F07U, 0x01000F02U); 756c45abe7SMichal Simek psu_mask_write(0xFF5E00B0, 0x01003F07U, 0x01000602U); 766c45abe7SMichal Simek psu_mask_write(0xFF5E00B8, 0x01003F07U, 0x01000302U); 776c45abe7SMichal Simek psu_mask_write(0xFF5E00C0, 0x013F3F07U, 0x01010F00U); 786c45abe7SMichal Simek psu_mask_write(0xFF5E00C4, 0x013F3F07U, 0x01010F00U); 796c45abe7SMichal Simek psu_mask_write(0xFF5E00C8, 0x013F3F07U, 0x01010F00U); 806c45abe7SMichal Simek psu_mask_write(0xFF5E00CC, 0x013F3F07U, 0x01010F00U); 816c45abe7SMichal Simek psu_mask_write(0xFF5E0108, 0x013F3F07U, 0x01011E02U); 826c45abe7SMichal Simek psu_mask_write(0xFF5E0104, 0x00000007U, 0x00000000U); 836c45abe7SMichal Simek psu_mask_write(0xFF5E0128, 0x01003F07U, 0x01000F00U); 846c45abe7SMichal Simek psu_mask_write(0xFD1A00A0, 0x01003F07U, 0x01000200U); 856c45abe7SMichal Simek psu_mask_write(0xFD1A00B4, 0x01003F07U, 0x01000200U); 866c45abe7SMichal Simek psu_mask_write(0xFD1A0070, 0x013F3F07U, 0x01010500U); 876c45abe7SMichal Simek psu_mask_write(0xFD1A0074, 0x013F3F07U, 0x01013C03U); 886c45abe7SMichal Simek psu_mask_write(0xFD1A007C, 0x013F3F07U, 0x01013803U); 896c45abe7SMichal Simek psu_mask_write(0xFD1A0060, 0x03003F07U, 0x03000100U); 906c45abe7SMichal Simek psu_mask_write(0xFD1A0068, 0x01003F07U, 0x01000200U); 916c45abe7SMichal Simek psu_mask_write(0xFD1A0080, 0x00003F07U, 0x00000200U); 926c45abe7SMichal Simek psu_mask_write(0xFD1A0084, 0x07003F07U, 0x07000100U); 936c45abe7SMichal Simek psu_mask_write(0xFD1A00B8, 0x01003F07U, 0x01000200U); 946c45abe7SMichal Simek psu_mask_write(0xFD1A00BC, 0x01003F07U, 0x01000200U); 956c45abe7SMichal Simek psu_mask_write(0xFD1A00C0, 0x01003F07U, 0x01000203U); 966c45abe7SMichal Simek psu_mask_write(0xFD1A00C4, 0x01003F07U, 0x01000502U); 976c45abe7SMichal Simek psu_mask_write(0xFD1A00F8, 0x00003F07U, 0x00000200U); 986c45abe7SMichal Simek psu_mask_write(0xFF180380, 0x000000FFU, 0x00000000U); 996c45abe7SMichal Simek psu_mask_write(0xFD610100, 0x00000001U, 0x00000000U); 1006c45abe7SMichal Simek psu_mask_write(0xFF180300, 0x00000001U, 0x00000000U); 1016c45abe7SMichal Simek psu_mask_write(0xFF410050, 0x00000001U, 0x00000000U); 1026c45abe7SMichal Simek 1036c45abe7SMichal Simek return 1; 1046c45abe7SMichal Simek } 1056c45abe7SMichal Simek 1066c45abe7SMichal Simek static unsigned long psu_ddr_init_data(void) 1076c45abe7SMichal Simek { 1086c45abe7SMichal Simek psu_mask_write(0xFD1A0108, 0x00000008U, 0x00000008U); 1096c45abe7SMichal Simek psu_mask_write(0xFD070000, 0xE30FBE3DU, 0x41040010U); 1106c45abe7SMichal Simek psu_mask_write(0xFD070010, 0x8000F03FU, 0x00000030U); 1116c45abe7SMichal Simek psu_mask_write(0xFD070020, 0x000003F3U, 0x00000300U); 1126c45abe7SMichal Simek psu_mask_write(0xFD070024, 0xFFFFFFFFU, 0x00800000U); 1136c45abe7SMichal Simek psu_mask_write(0xFD070030, 0x0000007FU, 0x00000000U); 1146c45abe7SMichal Simek psu_mask_write(0xFD070034, 0x00FFFF1FU, 0x00408410U); 1156c45abe7SMichal Simek psu_mask_write(0xFD070050, 0x00F1F1F4U, 0x00210000U); 1166c45abe7SMichal Simek psu_mask_write(0xFD070054, 0x0FFF0FFFU, 0x00000000U); 1176c45abe7SMichal Simek psu_mask_write(0xFD070060, 0x00000073U, 0x00000001U); 1186c45abe7SMichal Simek psu_mask_write(0xFD070064, 0x0FFF83FFU, 0x0082808BU); 1196c45abe7SMichal Simek psu_mask_write(0xFD070070, 0x00000017U, 0x00000010U); 1206c45abe7SMichal Simek psu_mask_write(0xFD070074, 0x00000003U, 0x00000000U); 1216c45abe7SMichal Simek psu_mask_write(0xFD0700C4, 0x3F000391U, 0x10000200U); 1226c45abe7SMichal Simek psu_mask_write(0xFD0700C8, 0x01FF1F3FU, 0x0040051FU); 1236c45abe7SMichal Simek psu_mask_write(0xFD0700D0, 0xC3FF0FFFU, 0x00020106U); 1246c45abe7SMichal Simek psu_mask_write(0xFD0700D4, 0x01FF7F0FU, 0x00020000U); 1256c45abe7SMichal Simek psu_mask_write(0xFD0700D8, 0x0000FF0FU, 0x00002305U); 1266c45abe7SMichal Simek psu_mask_write(0xFD0700DC, 0xFFFFFFFFU, 0x09300301U); 1276c45abe7SMichal Simek psu_mask_write(0xFD0700E0, 0xFFFFFFFFU, 0x00200200U); 1286c45abe7SMichal Simek psu_mask_write(0xFD0700E4, 0x00FF03FFU, 0x00210004U); 1296c45abe7SMichal Simek psu_mask_write(0xFD0700E8, 0xFFFFFFFFU, 0x000006C0U); 1306c45abe7SMichal Simek psu_mask_write(0xFD0700EC, 0xFFFF0000U, 0x08190000U); 1316c45abe7SMichal Simek psu_mask_write(0xFD0700F0, 0x0000003FU, 0x00000010U); 1326c45abe7SMichal Simek psu_mask_write(0xFD0700F4, 0x00000FFFU, 0x0000066FU); 1336c45abe7SMichal Simek psu_mask_write(0xFD070100, 0x7F3F7F3FU, 0x11112412U); 1346c45abe7SMichal Simek psu_mask_write(0xFD070104, 0x001F1F7FU, 0x0004041AU); 1356c45abe7SMichal Simek psu_mask_write(0xFD070108, 0x3F3F3F3FU, 0x0708060EU); 1366c45abe7SMichal Simek psu_mask_write(0xFD07010C, 0x3FF3F3FFU, 0x0050400CU); 1376c45abe7SMichal Simek psu_mask_write(0xFD070110, 0x1F0F0F1FU, 0x08030309U); 1386c45abe7SMichal Simek psu_mask_write(0xFD070114, 0x0F0F3F1FU, 0x06060403U); 1396c45abe7SMichal Simek psu_mask_write(0xFD070118, 0x0F0F000FU, 0x01010004U); 1406c45abe7SMichal Simek psu_mask_write(0xFD07011C, 0x00000F0FU, 0x00000606U); 1416c45abe7SMichal Simek psu_mask_write(0xFD070120, 0x7F7F7F7FU, 0x04040D06U); 1426c45abe7SMichal Simek psu_mask_write(0xFD070124, 0x40070F3FU, 0x0002020BU); 1436c45abe7SMichal Simek psu_mask_write(0xFD07012C, 0x7F1F031FU, 0x6F07010EU); 1446c45abe7SMichal Simek psu_mask_write(0xFD070130, 0x00030F1FU, 0x00020608U); 1456c45abe7SMichal Simek psu_mask_write(0xFD070180, 0xF7FF03FFU, 0x81000040U); 1466c45abe7SMichal Simek psu_mask_write(0xFD070184, 0x3FFFFFFFU, 0x02019707U); 1476c45abe7SMichal Simek psu_mask_write(0xFD070190, 0x1FBFBF3FU, 0x048B820BU); 1486c45abe7SMichal Simek psu_mask_write(0xFD070194, 0xF31F0F0FU, 0x00030304U); 1496c45abe7SMichal Simek psu_mask_write(0xFD070198, 0x0FF1F1F1U, 0x07000101U); 1506c45abe7SMichal Simek psu_mask_write(0xFD07019C, 0x000000F1U, 0x00000021U); 1516c45abe7SMichal Simek psu_mask_write(0xFD0701A0, 0xC3FF03FFU, 0x00400003U); 1526c45abe7SMichal Simek psu_mask_write(0xFD0701A4, 0x00FF00FFU, 0x004100E2U); 1536c45abe7SMichal Simek psu_mask_write(0xFD0701B0, 0x00000007U, 0x00000000U); 1546c45abe7SMichal Simek psu_mask_write(0xFD0701B4, 0x00003F3FU, 0x00000906U); 1556c45abe7SMichal Simek psu_mask_write(0xFD0701C0, 0x00000007U, 0x00000001U); 1566c45abe7SMichal Simek psu_mask_write(0xFD070200, 0x0000001FU, 0x0000001FU); 1576c45abe7SMichal Simek psu_mask_write(0xFD070204, 0x001F1F1FU, 0x001F0A0AU); 1586c45abe7SMichal Simek psu_mask_write(0xFD070208, 0x0F0F0F0FU, 0x00000000U); 1596c45abe7SMichal Simek psu_mask_write(0xFD07020C, 0x0F0F0F0FU, 0x00000000U); 1606c45abe7SMichal Simek psu_mask_write(0xFD070210, 0x00000F0FU, 0x00000F0FU); 1616c45abe7SMichal Simek psu_mask_write(0xFD070214, 0x0F0F0F0FU, 0x080F0808U); 1626c45abe7SMichal Simek psu_mask_write(0xFD070218, 0x8F0F0F0FU, 0x0F080808U); 1636c45abe7SMichal Simek psu_mask_write(0xFD07021C, 0x00000F0FU, 0x00000F0FU); 1646c45abe7SMichal Simek psu_mask_write(0xFD070220, 0x00001F1FU, 0x00000808U); 1656c45abe7SMichal Simek psu_mask_write(0xFD070224, 0x0F0F0F0FU, 0x08080808U); 1666c45abe7SMichal Simek psu_mask_write(0xFD070228, 0x0F0F0F0FU, 0x08080808U); 1676c45abe7SMichal Simek psu_mask_write(0xFD07022C, 0x0000000FU, 0x00000008U); 1686c45abe7SMichal Simek psu_mask_write(0xFD070240, 0x0F1F0F7CU, 0x06000600U); 1696c45abe7SMichal Simek psu_mask_write(0xFD070244, 0x00003333U, 0x00000001U); 1706c45abe7SMichal Simek psu_mask_write(0xFD070250, 0x7FFF3F07U, 0x01002001U); 1716c45abe7SMichal Simek psu_mask_write(0xFD070264, 0xFF00FFFFU, 0x08000040U); 1726c45abe7SMichal Simek psu_mask_write(0xFD07026C, 0xFF00FFFFU, 0x08000040U); 1736c45abe7SMichal Simek psu_mask_write(0xFD070280, 0xFFFFFFFFU, 0x00000000U); 1746c45abe7SMichal Simek psu_mask_write(0xFD070284, 0xFFFFFFFFU, 0x00000000U); 1756c45abe7SMichal Simek psu_mask_write(0xFD070288, 0xFFFFFFFFU, 0x00000000U); 1766c45abe7SMichal Simek psu_mask_write(0xFD07028C, 0xFFFFFFFFU, 0x00000000U); 1776c45abe7SMichal Simek psu_mask_write(0xFD070290, 0x0000FFFFU, 0x00000000U); 1786c45abe7SMichal Simek psu_mask_write(0xFD070294, 0x00000001U, 0x00000001U); 1796c45abe7SMichal Simek psu_mask_write(0xFD070300, 0x00000011U, 0x00000000U); 1806c45abe7SMichal Simek psu_mask_write(0xFD07030C, 0x80000033U, 0x00000000U); 1816c45abe7SMichal Simek psu_mask_write(0xFD070320, 0x00000001U, 0x00000000U); 1826c45abe7SMichal Simek psu_mask_write(0xFD070400, 0x00000111U, 0x00000001U); 1836c45abe7SMichal Simek psu_mask_write(0xFD070404, 0x000073FFU, 0x0000200FU); 1846c45abe7SMichal Simek psu_mask_write(0xFD070408, 0x000073FFU, 0x0000200FU); 1856c45abe7SMichal Simek psu_mask_write(0xFD070490, 0x00000001U, 0x00000001U); 1866c45abe7SMichal Simek psu_mask_write(0xFD070494, 0x0033000FU, 0x0020000BU); 1876c45abe7SMichal Simek psu_mask_write(0xFD070498, 0x07FF07FFU, 0x00000000U); 1886c45abe7SMichal Simek psu_mask_write(0xFD0704B4, 0x000073FFU, 0x0000200FU); 1896c45abe7SMichal Simek psu_mask_write(0xFD0704B8, 0x000073FFU, 0x0000200FU); 1906c45abe7SMichal Simek psu_mask_write(0xFD070540, 0x00000001U, 0x00000001U); 1916c45abe7SMichal Simek psu_mask_write(0xFD070544, 0x03330F0FU, 0x02000B03U); 1926c45abe7SMichal Simek psu_mask_write(0xFD070548, 0x07FF07FFU, 0x00000000U); 1936c45abe7SMichal Simek psu_mask_write(0xFD070564, 0x000073FFU, 0x0000200FU); 1946c45abe7SMichal Simek psu_mask_write(0xFD070568, 0x000073FFU, 0x0000200FU); 1956c45abe7SMichal Simek psu_mask_write(0xFD0705F0, 0x00000001U, 0x00000001U); 1966c45abe7SMichal Simek psu_mask_write(0xFD0705F4, 0x03330F0FU, 0x02000B03U); 1976c45abe7SMichal Simek psu_mask_write(0xFD0705F8, 0x07FF07FFU, 0x00000000U); 1986c45abe7SMichal Simek psu_mask_write(0xFD070614, 0x000073FFU, 0x0000200FU); 1996c45abe7SMichal Simek psu_mask_write(0xFD070618, 0x000073FFU, 0x0000200FU); 2006c45abe7SMichal Simek psu_mask_write(0xFD0706A0, 0x00000001U, 0x00000001U); 2016c45abe7SMichal Simek psu_mask_write(0xFD0706A4, 0x0033000FU, 0x00100003U); 2026c45abe7SMichal Simek psu_mask_write(0xFD0706A8, 0x07FF07FFU, 0x0000004FU); 2036c45abe7SMichal Simek psu_mask_write(0xFD0706AC, 0x0033000FU, 0x00100003U); 2046c45abe7SMichal Simek psu_mask_write(0xFD0706B0, 0x000007FFU, 0x0000004FU); 2056c45abe7SMichal Simek psu_mask_write(0xFD0706C4, 0x000073FFU, 0x0000200FU); 2066c45abe7SMichal Simek psu_mask_write(0xFD0706C8, 0x000073FFU, 0x0000200FU); 2076c45abe7SMichal Simek psu_mask_write(0xFD070750, 0x00000001U, 0x00000001U); 2086c45abe7SMichal Simek psu_mask_write(0xFD070754, 0x0033000FU, 0x00100003U); 2096c45abe7SMichal Simek psu_mask_write(0xFD070758, 0x07FF07FFU, 0x0000004FU); 2106c45abe7SMichal Simek psu_mask_write(0xFD07075C, 0x0033000FU, 0x00100003U); 2116c45abe7SMichal Simek psu_mask_write(0xFD070760, 0x000007FFU, 0x0000004FU); 2126c45abe7SMichal Simek psu_mask_write(0xFD070774, 0x000073FFU, 0x0000200FU); 2136c45abe7SMichal Simek psu_mask_write(0xFD070778, 0x000073FFU, 0x0000200FU); 2146c45abe7SMichal Simek psu_mask_write(0xFD070800, 0x00000001U, 0x00000001U); 2156c45abe7SMichal Simek psu_mask_write(0xFD070804, 0x0033000FU, 0x00100003U); 2166c45abe7SMichal Simek psu_mask_write(0xFD070808, 0x07FF07FFU, 0x0000004FU); 2176c45abe7SMichal Simek psu_mask_write(0xFD07080C, 0x0033000FU, 0x00100003U); 2186c45abe7SMichal Simek psu_mask_write(0xFD070810, 0x000007FFU, 0x0000004FU); 2196c45abe7SMichal Simek psu_mask_write(0xFD070F04, 0x000001FFU, 0x00000000U); 2206c45abe7SMichal Simek psu_mask_write(0xFD070F08, 0x000000FFU, 0x00000000U); 2216c45abe7SMichal Simek psu_mask_write(0xFD070F0C, 0x000001FFU, 0x00000010U); 2226c45abe7SMichal Simek psu_mask_write(0xFD070F10, 0x000000FFU, 0x0000000FU); 2236c45abe7SMichal Simek psu_mask_write(0xFD072190, 0x1FBFBF3FU, 0x07828002U); 2246c45abe7SMichal Simek psu_mask_write(0xFD1A0108, 0x0000000CU, 0x00000000U); 2256c45abe7SMichal Simek psu_mask_write(0xFD080010, 0xFFFFFFFFU, 0x07001E00U); 2266c45abe7SMichal Simek psu_mask_write(0xFD080018, 0xFFFFFFFFU, 0x00F10028U); 2276c45abe7SMichal Simek psu_mask_write(0xFD08001C, 0xFFFFFFFFU, 0x55AA5480U); 2286c45abe7SMichal Simek psu_mask_write(0xFD080024, 0xFFFFFFFFU, 0x010100F4U); 2296c45abe7SMichal Simek psu_mask_write(0xFD080040, 0xFFFFFFFFU, 0x0AC85610U); 2306c45abe7SMichal Simek psu_mask_write(0xFD080044, 0xFFFFFFFFU, 0x41980B06U); 2316c45abe7SMichal Simek psu_mask_write(0xFD080068, 0xFFFFFFFFU, 0x01100000U); 2326c45abe7SMichal Simek psu_mask_write(0xFD080090, 0xFFFFFFFFU, 0x02A04161U); 2336c45abe7SMichal Simek psu_mask_write(0xFD080100, 0xFFFFFFFFU, 0x0800040CU); 2346c45abe7SMichal Simek psu_mask_write(0xFD080110, 0xFFFFFFFFU, 0x06240F09U); 2356c45abe7SMichal Simek psu_mask_write(0xFD080114, 0xFFFFFFFFU, 0x28210008U); 2366c45abe7SMichal Simek psu_mask_write(0xFD080118, 0xFFFFFFFFU, 0x00070300U); 2376c45abe7SMichal Simek psu_mask_write(0xFD08011C, 0xFFFFFFFFU, 0x83000800U); 2386c45abe7SMichal Simek psu_mask_write(0xFD080120, 0xFFFFFFFFU, 0x01162B07U); 2396c45abe7SMichal Simek psu_mask_write(0xFD080124, 0xFFFFFFFFU, 0x00330F09U); 2406c45abe7SMichal Simek psu_mask_write(0xFD080128, 0xFFFFFFFFU, 0x00000E0FU); 2416c45abe7SMichal Simek psu_mask_write(0xFD080140, 0xFFFFFFFFU, 0x08400020U); 2426c45abe7SMichal Simek psu_mask_write(0xFD080144, 0xFFFFFFFFU, 0x00000C80U); 2436c45abe7SMichal Simek psu_mask_write(0xFD080150, 0xFFFFFFFFU, 0x00000000U); 2446c45abe7SMichal Simek psu_mask_write(0xFD080154, 0xFFFFFFFFU, 0x00000200U); 2456c45abe7SMichal Simek psu_mask_write(0xFD080180, 0xFFFFFFFFU, 0x00000830U); 2466c45abe7SMichal Simek psu_mask_write(0xFD080184, 0xFFFFFFFFU, 0x00000301U); 2476c45abe7SMichal Simek psu_mask_write(0xFD080188, 0xFFFFFFFFU, 0x00000020U); 2486c45abe7SMichal Simek psu_mask_write(0xFD08018C, 0xFFFFFFFFU, 0x00000200U); 2496c45abe7SMichal Simek psu_mask_write(0xFD080190, 0xFFFFFFFFU, 0x00000000U); 2506c45abe7SMichal Simek psu_mask_write(0xFD080194, 0xFFFFFFFFU, 0x000006C0U); 2516c45abe7SMichal Simek psu_mask_write(0xFD080198, 0xFFFFFFFFU, 0x00000819U); 2526c45abe7SMichal Simek psu_mask_write(0xFD0801AC, 0xFFFFFFFFU, 0x00000000U); 2536c45abe7SMichal Simek psu_mask_write(0xFD0801B0, 0xFFFFFFFFU, 0x0000004DU); 2546c45abe7SMichal Simek psu_mask_write(0xFD0801B4, 0xFFFFFFFFU, 0x00000008U); 2556c45abe7SMichal Simek psu_mask_write(0xFD0801B8, 0xFFFFFFFFU, 0x0000004DU); 2566c45abe7SMichal Simek psu_mask_write(0xFD0801D8, 0xFFFFFFFFU, 0x00000000U); 2576c45abe7SMichal Simek psu_mask_write(0xFD080200, 0xFFFFFFFFU, 0x800091C7U); 2586c45abe7SMichal Simek psu_mask_write(0xFD080204, 0xFFFFFFFFU, 0x00010236U); 2596c45abe7SMichal Simek psu_mask_write(0xFD080240, 0xFFFFFFFFU, 0x00141054U); 2606c45abe7SMichal Simek psu_mask_write(0xFD080250, 0xFFFFFFFFU, 0x00088000U); 2616c45abe7SMichal Simek psu_mask_write(0xFD080414, 0xFFFFFFFFU, 0x12341000U); 2626c45abe7SMichal Simek psu_mask_write(0xFD0804F4, 0xFFFFFFFFU, 0x00000005U); 2636c45abe7SMichal Simek psu_mask_write(0xFD080500, 0xFFFFFFFFU, 0x30000028U); 2646c45abe7SMichal Simek psu_mask_write(0xFD080508, 0xFFFFFFFFU, 0x0A000000U); 2656c45abe7SMichal Simek psu_mask_write(0xFD08050C, 0xFFFFFFFFU, 0x00000009U); 2666c45abe7SMichal Simek psu_mask_write(0xFD080510, 0xFFFFFFFFU, 0x0A000000U); 2676c45abe7SMichal Simek psu_mask_write(0xFD080520, 0xFFFFFFFFU, 0x0300B0CEU); 2686c45abe7SMichal Simek psu_mask_write(0xFD080528, 0xFFFFFFFFU, 0xF9032019U); 2696c45abe7SMichal Simek psu_mask_write(0xFD08052C, 0xFFFFFFFFU, 0x07F001E3U); 2706c45abe7SMichal Simek psu_mask_write(0xFD080544, 0xFFFFFFFFU, 0x00000000U); 2716c45abe7SMichal Simek psu_mask_write(0xFD080548, 0xFFFFFFFFU, 0x00000000U); 2726c45abe7SMichal Simek psu_mask_write(0xFD080558, 0xFFFFFFFFU, 0x00000000U); 2736c45abe7SMichal Simek psu_mask_write(0xFD08055C, 0xFFFFFFFFU, 0x00000000U); 2746c45abe7SMichal Simek psu_mask_write(0xFD080560, 0xFFFFFFFFU, 0x00000000U); 2756c45abe7SMichal Simek psu_mask_write(0xFD080564, 0xFFFFFFFFU, 0x00000000U); 2766c45abe7SMichal Simek psu_mask_write(0xFD080680, 0xFFFFFFFFU, 0x008AAA58U); 2776c45abe7SMichal Simek psu_mask_write(0xFD080684, 0xFFFFFFFFU, 0x000079DDU); 2786c45abe7SMichal Simek psu_mask_write(0xFD080694, 0xFFFFFFFFU, 0x01E10210U); 2796c45abe7SMichal Simek psu_mask_write(0xFD080698, 0xFFFFFFFFU, 0x01E10000U); 2806c45abe7SMichal Simek psu_mask_write(0xFD0806A4, 0xFFFFFFFFU, 0x00087BDBU); 2816c45abe7SMichal Simek psu_mask_write(0xFD080700, 0xFFFFFFFFU, 0x40800604U); 2826c45abe7SMichal Simek psu_mask_write(0xFD080710, 0xFFFFFFFFU, 0x0E00B03CU); 2836c45abe7SMichal Simek psu_mask_write(0xFD080714, 0xFFFFFFFFU, 0x09094F4FU); 2846c45abe7SMichal Simek psu_mask_write(0xFD080718, 0xFFFFFFFFU, 0x09092B2BU); 2856c45abe7SMichal Simek psu_mask_write(0xFD080800, 0xFFFFFFFFU, 0x40800604U); 2866c45abe7SMichal Simek psu_mask_write(0xFD080810, 0xFFFFFFFFU, 0x0E00B03CU); 2876c45abe7SMichal Simek psu_mask_write(0xFD080814, 0xFFFFFFFFU, 0x09094F4FU); 2886c45abe7SMichal Simek psu_mask_write(0xFD080818, 0xFFFFFFFFU, 0x09092B2BU); 2896c45abe7SMichal Simek psu_mask_write(0xFD080900, 0xFFFFFFFFU, 0x40800604U); 2906c45abe7SMichal Simek psu_mask_write(0xFD080904, 0xFFFFFFFFU, 0x00007FFFU); 2916c45abe7SMichal Simek psu_mask_write(0xFD080910, 0xFFFFFFFFU, 0x0E00B03CU); 2926c45abe7SMichal Simek psu_mask_write(0xFD080914, 0xFFFFFFFFU, 0x09094F4FU); 2936c45abe7SMichal Simek psu_mask_write(0xFD080918, 0xFFFFFFFFU, 0x09092B2BU); 2946c45abe7SMichal Simek psu_mask_write(0xFD080A00, 0xFFFFFFFFU, 0x40800604U); 2956c45abe7SMichal Simek psu_mask_write(0xFD080A04, 0xFFFFFFFFU, 0x00007FFFU); 2966c45abe7SMichal Simek psu_mask_write(0xFD080A10, 0xFFFFFFFFU, 0x0E00B03CU); 2976c45abe7SMichal Simek psu_mask_write(0xFD080A14, 0xFFFFFFFFU, 0x09094F4FU); 2986c45abe7SMichal Simek psu_mask_write(0xFD080A18, 0xFFFFFFFFU, 0x09092B2BU); 2996c45abe7SMichal Simek psu_mask_write(0xFD080B00, 0xFFFFFFFFU, 0x40800604U); 3006c45abe7SMichal Simek psu_mask_write(0xFD080B04, 0xFFFFFFFFU, 0x00007FFFU); 3016c45abe7SMichal Simek psu_mask_write(0xFD080B10, 0xFFFFFFFFU, 0x0E00B03CU); 3026c45abe7SMichal Simek psu_mask_write(0xFD080B14, 0xFFFFFFFFU, 0x09094F4FU); 3036c45abe7SMichal Simek psu_mask_write(0xFD080B18, 0xFFFFFFFFU, 0x09092B2BU); 3046c45abe7SMichal Simek psu_mask_write(0xFD080C00, 0xFFFFFFFFU, 0x40800604U); 3056c45abe7SMichal Simek psu_mask_write(0xFD080C04, 0xFFFFFFFFU, 0x00007FFFU); 3066c45abe7SMichal Simek psu_mask_write(0xFD080C10, 0xFFFFFFFFU, 0x0E00B03CU); 3076c45abe7SMichal Simek psu_mask_write(0xFD080C14, 0xFFFFFFFFU, 0x09094F4FU); 3086c45abe7SMichal Simek psu_mask_write(0xFD080C18, 0xFFFFFFFFU, 0x09092B2BU); 3096c45abe7SMichal Simek psu_mask_write(0xFD080D00, 0xFFFFFFFFU, 0x40800604U); 3106c45abe7SMichal Simek psu_mask_write(0xFD080D04, 0xFFFFFFFFU, 0x00007FFFU); 3116c45abe7SMichal Simek psu_mask_write(0xFD080D10, 0xFFFFFFFFU, 0x0E00B03CU); 3126c45abe7SMichal Simek psu_mask_write(0xFD080D14, 0xFFFFFFFFU, 0x09094F4FU); 3136c45abe7SMichal Simek psu_mask_write(0xFD080D18, 0xFFFFFFFFU, 0x09092B2BU); 3146c45abe7SMichal Simek psu_mask_write(0xFD080E00, 0xFFFFFFFFU, 0x40800604U); 3156c45abe7SMichal Simek psu_mask_write(0xFD080E04, 0xFFFFFFFFU, 0x00007FFFU); 3166c45abe7SMichal Simek psu_mask_write(0xFD080E10, 0xFFFFFFFFU, 0x0E00B03CU); 3176c45abe7SMichal Simek psu_mask_write(0xFD080E14, 0xFFFFFFFFU, 0x09094F4FU); 3186c45abe7SMichal Simek psu_mask_write(0xFD080E18, 0xFFFFFFFFU, 0x09092B2BU); 3196c45abe7SMichal Simek psu_mask_write(0xFD080F00, 0xFFFFFFFFU, 0x40800624U); 3206c45abe7SMichal Simek psu_mask_write(0xFD080F04, 0xFFFFFFFFU, 0x00007F00U); 3216c45abe7SMichal Simek psu_mask_write(0xFD080F10, 0xFFFFFFFFU, 0x0E00B03CU); 3226c45abe7SMichal Simek psu_mask_write(0xFD080F14, 0xFFFFFFFFU, 0x09094F4FU); 3236c45abe7SMichal Simek psu_mask_write(0xFD080F18, 0xFFFFFFFFU, 0x09092B2BU); 3246c45abe7SMichal Simek psu_mask_write(0xFD081400, 0xFFFFFFFFU, 0x2A019FFEU); 3256c45abe7SMichal Simek psu_mask_write(0xFD081404, 0xFFFFFFFFU, 0x01100000U); 3266c45abe7SMichal Simek psu_mask_write(0xFD08141C, 0xFFFFFFFFU, 0x01264300U); 3276c45abe7SMichal Simek psu_mask_write(0xFD08142C, 0xFFFFFFFFU, 0x00041800U); 3286c45abe7SMichal Simek psu_mask_write(0xFD081430, 0xFFFFFFFFU, 0x70800000U); 3296c45abe7SMichal Simek psu_mask_write(0xFD081440, 0xFFFFFFFFU, 0x2A019FFEU); 3306c45abe7SMichal Simek psu_mask_write(0xFD081444, 0xFFFFFFFFU, 0x01100000U); 3316c45abe7SMichal Simek psu_mask_write(0xFD08145C, 0xFFFFFFFFU, 0x01264300U); 3326c45abe7SMichal Simek psu_mask_write(0xFD08146C, 0xFFFFFFFFU, 0x00041800U); 3336c45abe7SMichal Simek psu_mask_write(0xFD081470, 0xFFFFFFFFU, 0x70800000U); 3346c45abe7SMichal Simek psu_mask_write(0xFD081480, 0xFFFFFFFFU, 0x2A019FFEU); 3356c45abe7SMichal Simek psu_mask_write(0xFD081484, 0xFFFFFFFFU, 0x01100000U); 3366c45abe7SMichal Simek psu_mask_write(0xFD08149C, 0xFFFFFFFFU, 0x01264300U); 3376c45abe7SMichal Simek psu_mask_write(0xFD0814AC, 0xFFFFFFFFU, 0x00041800U); 3386c45abe7SMichal Simek psu_mask_write(0xFD0814B0, 0xFFFFFFFFU, 0x70800000U); 3396c45abe7SMichal Simek psu_mask_write(0xFD0814C0, 0xFFFFFFFFU, 0x2A019FFEU); 3406c45abe7SMichal Simek psu_mask_write(0xFD0814C4, 0xFFFFFFFFU, 0x01100000U); 3416c45abe7SMichal Simek psu_mask_write(0xFD0814DC, 0xFFFFFFFFU, 0x01264300U); 3426c45abe7SMichal Simek psu_mask_write(0xFD0814EC, 0xFFFFFFFFU, 0x00041800U); 3436c45abe7SMichal Simek psu_mask_write(0xFD0814F0, 0xFFFFFFFFU, 0x70800000U); 3446c45abe7SMichal Simek psu_mask_write(0xFD081500, 0xFFFFFFFFU, 0x2A019FFEU); 3456c45abe7SMichal Simek psu_mask_write(0xFD081504, 0xFFFFFFFFU, 0x01100000U); 3466c45abe7SMichal Simek psu_mask_write(0xFD08151C, 0xFFFFFFFFU, 0x01264300U); 3476c45abe7SMichal Simek psu_mask_write(0xFD08152C, 0xFFFFFFFFU, 0x00041800U); 3486c45abe7SMichal Simek psu_mask_write(0xFD081530, 0xFFFFFFFFU, 0x70800000U); 3496c45abe7SMichal Simek psu_mask_write(0xFD0817C4, 0xFFFFFFFFU, 0x01100000U); 3506c45abe7SMichal Simek psu_mask_write(0xFD0817DC, 0xFFFFFFFFU, 0x012643C4U); 3516c45abe7SMichal Simek psu_mask_write(0xFD080004, 0xFFFFFFFFU, 0x00040073U); 3526c45abe7SMichal Simek 3536c45abe7SMichal Simek return 1; 3546c45abe7SMichal Simek } 3556c45abe7SMichal Simek 3566c45abe7SMichal Simek static unsigned long psu_mio_init_data(void) 3576c45abe7SMichal Simek { 3586c45abe7SMichal Simek psu_mask_write(0xFF180000, 0x000000FEU, 0x00000002U); 3596c45abe7SMichal Simek psu_mask_write(0xFF180004, 0x000000FEU, 0x00000002U); 3606c45abe7SMichal Simek psu_mask_write(0xFF180008, 0x000000FEU, 0x00000002U); 3616c45abe7SMichal Simek psu_mask_write(0xFF18000C, 0x000000FEU, 0x00000002U); 3626c45abe7SMichal Simek psu_mask_write(0xFF180010, 0x000000FEU, 0x00000002U); 3636c45abe7SMichal Simek psu_mask_write(0xFF180014, 0x000000FEU, 0x00000002U); 3646c45abe7SMichal Simek psu_mask_write(0xFF180018, 0x000000FEU, 0x00000002U); 3656c45abe7SMichal Simek psu_mask_write(0xFF18001C, 0x000000FEU, 0x00000002U); 3666c45abe7SMichal Simek psu_mask_write(0xFF180020, 0x000000FEU, 0x00000002U); 3676c45abe7SMichal Simek psu_mask_write(0xFF180024, 0x000000FEU, 0x00000002U); 3686c45abe7SMichal Simek psu_mask_write(0xFF180028, 0x000000FEU, 0x00000002U); 3696c45abe7SMichal Simek psu_mask_write(0xFF18002C, 0x000000FEU, 0x00000002U); 3706c45abe7SMichal Simek psu_mask_write(0xFF180030, 0x000000FEU, 0x00000002U); 3716c45abe7SMichal Simek psu_mask_write(0xFF180034, 0x000000FEU, 0x00000000U); 3726c45abe7SMichal Simek psu_mask_write(0xFF180038, 0x000000FEU, 0x00000040U); 3736c45abe7SMichal Simek psu_mask_write(0xFF18003C, 0x000000FEU, 0x00000040U); 3746c45abe7SMichal Simek psu_mask_write(0xFF180040, 0x000000FEU, 0x00000040U); 3756c45abe7SMichal Simek psu_mask_write(0xFF180044, 0x000000FEU, 0x00000040U); 3766c45abe7SMichal Simek psu_mask_write(0xFF180048, 0x000000FEU, 0x000000C0U); 3776c45abe7SMichal Simek psu_mask_write(0xFF18004C, 0x000000FEU, 0x000000C0U); 3786c45abe7SMichal Simek psu_mask_write(0xFF180050, 0x000000FEU, 0x000000C0U); 3796c45abe7SMichal Simek psu_mask_write(0xFF180054, 0x000000FEU, 0x000000C0U); 3806c45abe7SMichal Simek psu_mask_write(0xFF180058, 0x000000FEU, 0x00000000U); 3816c45abe7SMichal Simek psu_mask_write(0xFF18005C, 0x000000FEU, 0x00000000U); 3826c45abe7SMichal Simek psu_mask_write(0xFF180060, 0x000000FEU, 0x00000020U); 3836c45abe7SMichal Simek psu_mask_write(0xFF180064, 0x000000FEU, 0x00000020U); 3846c45abe7SMichal Simek psu_mask_write(0xFF180068, 0x000000FEU, 0x00000000U); 3856c45abe7SMichal Simek psu_mask_write(0xFF18006C, 0x000000FEU, 0x00000018U); 3866c45abe7SMichal Simek psu_mask_write(0xFF180070, 0x000000FEU, 0x00000018U); 3876c45abe7SMichal Simek psu_mask_write(0xFF180074, 0x000000FEU, 0x00000018U); 3886c45abe7SMichal Simek psu_mask_write(0xFF180078, 0x000000FEU, 0x00000018U); 3896c45abe7SMichal Simek psu_mask_write(0xFF18007C, 0x000000FEU, 0x00000000U); 3906c45abe7SMichal Simek psu_mask_write(0xFF180080, 0x000000FEU, 0x00000008U); 3916c45abe7SMichal Simek psu_mask_write(0xFF180084, 0x000000FEU, 0x00000008U); 3926c45abe7SMichal Simek psu_mask_write(0xFF180088, 0x000000FEU, 0x00000008U); 3936c45abe7SMichal Simek psu_mask_write(0xFF18008C, 0x000000FEU, 0x00000008U); 3946c45abe7SMichal Simek psu_mask_write(0xFF180090, 0x000000FEU, 0x00000008U); 3956c45abe7SMichal Simek psu_mask_write(0xFF180094, 0x000000FEU, 0x00000008U); 3966c45abe7SMichal Simek psu_mask_write(0xFF180098, 0x000000FEU, 0x00000000U); 3976c45abe7SMichal Simek psu_mask_write(0xFF18009C, 0x000000FEU, 0x00000010U); 3986c45abe7SMichal Simek psu_mask_write(0xFF1800A0, 0x000000FEU, 0x00000010U); 3996c45abe7SMichal Simek psu_mask_write(0xFF1800A4, 0x000000FEU, 0x00000010U); 4006c45abe7SMichal Simek psu_mask_write(0xFF1800A8, 0x000000FEU, 0x00000010U); 4016c45abe7SMichal Simek psu_mask_write(0xFF1800AC, 0x000000FEU, 0x00000010U); 4026c45abe7SMichal Simek psu_mask_write(0xFF1800B0, 0x000000FEU, 0x00000010U); 4036c45abe7SMichal Simek psu_mask_write(0xFF1800B4, 0x000000FEU, 0x00000010U); 4046c45abe7SMichal Simek psu_mask_write(0xFF1800B8, 0x000000FEU, 0x00000010U); 4056c45abe7SMichal Simek psu_mask_write(0xFF1800BC, 0x000000FEU, 0x00000010U); 4066c45abe7SMichal Simek psu_mask_write(0xFF1800C0, 0x000000FEU, 0x00000010U); 4076c45abe7SMichal Simek psu_mask_write(0xFF1800C4, 0x000000FEU, 0x00000010U); 4086c45abe7SMichal Simek psu_mask_write(0xFF1800C8, 0x000000FEU, 0x00000010U); 4096c45abe7SMichal Simek psu_mask_write(0xFF1800CC, 0x000000FEU, 0x00000010U); 4106c45abe7SMichal Simek psu_mask_write(0xFF1800D0, 0x000000FEU, 0x00000004U); 4116c45abe7SMichal Simek psu_mask_write(0xFF1800D4, 0x000000FEU, 0x00000004U); 4126c45abe7SMichal Simek psu_mask_write(0xFF1800D8, 0x000000FEU, 0x00000004U); 4136c45abe7SMichal Simek psu_mask_write(0xFF1800DC, 0x000000FEU, 0x00000004U); 4146c45abe7SMichal Simek psu_mask_write(0xFF1800E0, 0x000000FEU, 0x00000004U); 4156c45abe7SMichal Simek psu_mask_write(0xFF1800E4, 0x000000FEU, 0x00000004U); 4166c45abe7SMichal Simek psu_mask_write(0xFF1800E8, 0x000000FEU, 0x00000004U); 4176c45abe7SMichal Simek psu_mask_write(0xFF1800EC, 0x000000FEU, 0x00000004U); 4186c45abe7SMichal Simek psu_mask_write(0xFF1800F0, 0x000000FEU, 0x00000004U); 4196c45abe7SMichal Simek psu_mask_write(0xFF1800F4, 0x000000FEU, 0x00000004U); 4206c45abe7SMichal Simek psu_mask_write(0xFF1800F8, 0x000000FEU, 0x00000004U); 4216c45abe7SMichal Simek psu_mask_write(0xFF1800FC, 0x000000FEU, 0x00000004U); 4226c45abe7SMichal Simek psu_mask_write(0xFF180100, 0x000000FEU, 0x00000002U); 4236c45abe7SMichal Simek psu_mask_write(0xFF180104, 0x000000FEU, 0x00000002U); 4246c45abe7SMichal Simek psu_mask_write(0xFF180108, 0x000000FEU, 0x00000002U); 4256c45abe7SMichal Simek psu_mask_write(0xFF18010C, 0x000000FEU, 0x00000002U); 4266c45abe7SMichal Simek psu_mask_write(0xFF180110, 0x000000FEU, 0x00000002U); 4276c45abe7SMichal Simek psu_mask_write(0xFF180114, 0x000000FEU, 0x00000002U); 4286c45abe7SMichal Simek psu_mask_write(0xFF180118, 0x000000FEU, 0x00000002U); 4296c45abe7SMichal Simek psu_mask_write(0xFF18011C, 0x000000FEU, 0x00000002U); 4306c45abe7SMichal Simek psu_mask_write(0xFF180120, 0x000000FEU, 0x00000002U); 4316c45abe7SMichal Simek psu_mask_write(0xFF180124, 0x000000FEU, 0x00000002U); 4326c45abe7SMichal Simek psu_mask_write(0xFF180128, 0x000000FEU, 0x00000002U); 4336c45abe7SMichal Simek psu_mask_write(0xFF18012C, 0x000000FEU, 0x00000002U); 4346c45abe7SMichal Simek psu_mask_write(0xFF180130, 0x000000FEU, 0x000000C0U); 4356c45abe7SMichal Simek psu_mask_write(0xFF180134, 0x000000FEU, 0x000000C0U); 4366c45abe7SMichal Simek psu_mask_write(0xFF180204, 0xFFFFFFFFU, 0x52240000U); 4376c45abe7SMichal Simek psu_mask_write(0xFF180208, 0xFFFFFFFFU, 0x00B03000U); 4386c45abe7SMichal Simek psu_mask_write(0xFF18020C, 0x00003FFFU, 0x00000FC0U); 4396c45abe7SMichal Simek psu_mask_write(0xFF180138, 0x03FFFFFFU, 0x03FFFFFFU); 4406c45abe7SMichal Simek psu_mask_write(0xFF18013C, 0x03FFFFFFU, 0x03FFFFFFU); 4416c45abe7SMichal Simek psu_mask_write(0xFF180140, 0x03FFFFFFU, 0x00000000U); 4426c45abe7SMichal Simek psu_mask_write(0xFF180144, 0x03FFFFFFU, 0x03FFFFFFU); 4436c45abe7SMichal Simek psu_mask_write(0xFF180148, 0x03FFFFFFU, 0x03FFFFFFU); 4446c45abe7SMichal Simek psu_mask_write(0xFF18014C, 0x03FFFFFFU, 0x00000000U); 4456c45abe7SMichal Simek psu_mask_write(0xFF180154, 0x03FFFFFFU, 0x03FFFFFFU); 4466c45abe7SMichal Simek psu_mask_write(0xFF180158, 0x03FFFFFFU, 0x03FFFFFFU); 4476c45abe7SMichal Simek psu_mask_write(0xFF18015C, 0x03FFFFFFU, 0x00000000U); 4486c45abe7SMichal Simek psu_mask_write(0xFF180160, 0x03FFFFFFU, 0x03FFFFFFU); 4496c45abe7SMichal Simek psu_mask_write(0xFF180164, 0x03FFFFFFU, 0x03FFFFFFU); 4506c45abe7SMichal Simek psu_mask_write(0xFF180168, 0x03FFFFFFU, 0x00000000U); 4516c45abe7SMichal Simek psu_mask_write(0xFF180170, 0x03FFFFFFU, 0x03FFFFFFU); 4526c45abe7SMichal Simek psu_mask_write(0xFF180174, 0x03FFFFFFU, 0x03FFFFFFU); 4536c45abe7SMichal Simek psu_mask_write(0xFF180178, 0x03FFFFFFU, 0x00000000U); 4546c45abe7SMichal Simek psu_mask_write(0xFF18017C, 0x03FFFFFFU, 0x03FFFFFFU); 4556c45abe7SMichal Simek psu_mask_write(0xFF180180, 0x03FFFFFFU, 0x03FFFFFFU); 4566c45abe7SMichal Simek psu_mask_write(0xFF180184, 0x03FFFFFFU, 0x00000000U); 4576c45abe7SMichal Simek psu_mask_write(0xFF180200, 0x0000000FU, 0x00000000U); 4586c45abe7SMichal Simek 4596c45abe7SMichal Simek return 1; 4606c45abe7SMichal Simek } 4616c45abe7SMichal Simek 4626c45abe7SMichal Simek static unsigned long psu_peripherals_init_data(void) 4636c45abe7SMichal Simek { 4646c45abe7SMichal Simek psu_mask_write(0xFD1A0100, 0x000F807EU, 0x00000000U); 4656c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x001A0000U, 0x00000000U); 4666c45abe7SMichal Simek psu_mask_write(0xFF5E023C, 0x0093C018U, 0x00000000U); 4676c45abe7SMichal Simek psu_mask_write(0xFF5E0230, 0x00000008U, 0x00000000U); 4686c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x00000001U, 0x00000000U); 4696c45abe7SMichal Simek psu_mask_write(0xFF180390, 0x00000004U, 0x00000000U); 4706c45abe7SMichal Simek psu_mask_write(0xFF5E023C, 0x00000540U, 0x00000000U); 4716c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x00000040U, 0x00000000U); 4726c45abe7SMichal Simek psu_mask_write(0xFF180310, 0x00008000U, 0x00000000U); 4736c45abe7SMichal Simek psu_mask_write(0xFF180320, 0x33800000U, 0x02800000U); 4746c45abe7SMichal Simek psu_mask_write(0xFF18031C, 0x7FFE0000U, 0x5DB80000U); 4756c45abe7SMichal Simek psu_mask_write(0xFF180358, 0x00000008U, 0x00000008U); 4766c45abe7SMichal Simek psu_mask_write(0xFF180324, 0x03C00000U, 0x00000000U); 4776c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x00000100U, 0x00000000U); 4786c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x00000600U, 0x00000000U); 4796c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x00008000U, 0x00000000U); 4806c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x00007800U, 0x00000000U); 4816c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x00000006U, 0x00000000U); 4826c45abe7SMichal Simek psu_mask_write(0xFF000034, 0x000000FFU, 0x00000005U); 4836c45abe7SMichal Simek psu_mask_write(0xFF000018, 0x0000FFFFU, 0x0000008FU); 4846c45abe7SMichal Simek psu_mask_write(0xFF000000, 0x000001FFU, 0x00000017U); 4856c45abe7SMichal Simek psu_mask_write(0xFF000004, 0x000003FFU, 0x00000020U); 4866c45abe7SMichal Simek psu_mask_write(0xFF010034, 0x000000FFU, 0x00000005U); 4876c45abe7SMichal Simek psu_mask_write(0xFF010018, 0x0000FFFFU, 0x0000008FU); 4886c45abe7SMichal Simek psu_mask_write(0xFF010000, 0x000001FFU, 0x00000017U); 4896c45abe7SMichal Simek psu_mask_write(0xFF010004, 0x000003FFU, 0x00000020U); 4906c45abe7SMichal Simek psu_mask_write(0xFF5E0238, 0x00040000U, 0x00000000U); 4916c45abe7SMichal Simek psu_mask_write(0xFF4B0024, 0x000000FFU, 0x000000FFU); 4926c45abe7SMichal Simek psu_mask_write(0xFFCA5000, 0x00001FFFU, 0x00000000U); 4936c45abe7SMichal Simek psu_mask_write(0xFD5C0060, 0x000F000FU, 0x00000000U); 4946c45abe7SMichal Simek psu_mask_write(0xFFA60040, 0x80000000U, 0x80000000U); 4956c45abe7SMichal Simek psu_mask_write(0xFF260020, 0xFFFFFFFFU, 0x05F5E100U); 4966c45abe7SMichal Simek psu_mask_write(0xFF260000, 0x00000001U, 0x00000001U); 4976c45abe7SMichal Simek psu_mask_write(0xFF0A0244, 0x03FFFFFFU, 0x00000020U); 4986c45abe7SMichal Simek psu_mask_write(0xFF0A0248, 0x03FFFFFFU, 0x00000020U); 4996c45abe7SMichal Simek psu_mask_write(0xFF0A0008, 0xFFFFFFFFU, 0xFFDF0020U); 5006c45abe7SMichal Simek mask_delay(1); 5016c45abe7SMichal Simek psu_mask_write(0xFF0A0008, 0xFFFFFFFFU, 0xFFDF0000U); 5026c45abe7SMichal Simek mask_delay(5); 5036c45abe7SMichal Simek psu_mask_write(0xFF0A0008, 0xFFFFFFFFU, 0xFFDF0020U); 5046c45abe7SMichal Simek return 1; 5056c45abe7SMichal Simek } 5066c45abe7SMichal Simek 5076c45abe7SMichal Simek static unsigned long psu_serdes_init_data(void) 5086c45abe7SMichal Simek { 5096c45abe7SMichal Simek psu_mask_write(0xFD410000, 0x0000001FU, 0x0000000DU); 5106c45abe7SMichal Simek psu_mask_write(0xFD410004, 0x0000001FU, 0x00000009U); 5116c45abe7SMichal Simek psu_mask_write(0xFD410008, 0x0000001FU, 0x00000008U); 5126c45abe7SMichal Simek psu_mask_write(0xFD41000C, 0x0000001FU, 0x0000000FU); 5136c45abe7SMichal Simek psu_mask_write(0xFD402860, 0x00000080U, 0x00000080U); 5146c45abe7SMichal Simek psu_mask_write(0xFD402864, 0x00000088U, 0x00000008U); 5156c45abe7SMichal Simek psu_mask_write(0xFD402868, 0x00000080U, 0x00000080U); 5166c45abe7SMichal Simek psu_mask_write(0xFD40286C, 0x00000082U, 0x00000002U); 5176c45abe7SMichal Simek psu_mask_write(0xFD40A094, 0x00000010U, 0x00000010U); 5186c45abe7SMichal Simek psu_mask_write(0xFD40A368, 0x000000FFU, 0x00000038U); 5196c45abe7SMichal Simek psu_mask_write(0xFD40A36C, 0x00000007U, 0x00000003U); 5206c45abe7SMichal Simek psu_mask_write(0xFD40E368, 0x000000FFU, 0x000000E0U); 5216c45abe7SMichal Simek psu_mask_write(0xFD40E36C, 0x00000007U, 0x00000003U); 5226c45abe7SMichal Simek psu_mask_write(0xFD406368, 0x000000FFU, 0x00000058U); 5236c45abe7SMichal Simek psu_mask_write(0xFD40636C, 0x00000007U, 0x00000003U); 5246c45abe7SMichal Simek psu_mask_write(0xFD406370, 0x000000FFU, 0x0000007CU); 5256c45abe7SMichal Simek psu_mask_write(0xFD406374, 0x000000FFU, 0x00000033U); 5266c45abe7SMichal Simek psu_mask_write(0xFD406378, 0x000000FFU, 0x00000002U); 5276c45abe7SMichal Simek psu_mask_write(0xFD40637C, 0x00000033U, 0x00000030U); 5286c45abe7SMichal Simek psu_mask_write(0xFD40A370, 0x000000FFU, 0x000000F4U); 5296c45abe7SMichal Simek psu_mask_write(0xFD40A374, 0x000000FFU, 0x00000031U); 5306c45abe7SMichal Simek psu_mask_write(0xFD40A378, 0x000000FFU, 0x00000002U); 5316c45abe7SMichal Simek psu_mask_write(0xFD40A37C, 0x00000033U, 0x00000030U); 5326c45abe7SMichal Simek psu_mask_write(0xFD40E370, 0x000000FFU, 0x000000C9U); 5336c45abe7SMichal Simek psu_mask_write(0xFD40E374, 0x000000FFU, 0x000000D2U); 5346c45abe7SMichal Simek psu_mask_write(0xFD40E378, 0x000000FFU, 0x00000001U); 5356c45abe7SMichal Simek psu_mask_write(0xFD40E37C, 0x000000B3U, 0x000000B0U); 5366c45abe7SMichal Simek psu_mask_write(0xFD40906C, 0x00000003U, 0x00000003U); 5376c45abe7SMichal Simek psu_mask_write(0xFD4080F4, 0x00000003U, 0x00000003U); 5386c45abe7SMichal Simek psu_mask_write(0xFD40E360, 0x00000040U, 0x00000040U); 5396c45abe7SMichal Simek psu_mask_write(0xFD40D06C, 0x0000000FU, 0x0000000FU); 5406c45abe7SMichal Simek psu_mask_write(0xFD40C0F4, 0x0000000BU, 0x0000000BU); 5416c45abe7SMichal Simek psu_mask_write(0xFD40CB00, 0x000000F0U, 0x000000F0U); 5426c45abe7SMichal Simek psu_mask_write(0xFD4010CC, 0x00000020U, 0x00000020U); 5436c45abe7SMichal Simek psu_mask_write(0xFD4090CC, 0x00000020U, 0x00000020U); 5446c45abe7SMichal Simek psu_mask_write(0xFD401074, 0x00000010U, 0x00000010U); 5456c45abe7SMichal Simek psu_mask_write(0xFD405074, 0x00000010U, 0x00000010U); 5466c45abe7SMichal Simek psu_mask_write(0xFD409074, 0x00000010U, 0x00000010U); 5476c45abe7SMichal Simek psu_mask_write(0xFD40D074, 0x00000010U, 0x00000010U); 5486c45abe7SMichal Simek psu_mask_write(0xFD40189C, 0x00000080U, 0x00000080U); 5496c45abe7SMichal Simek psu_mask_write(0xFD4018F8, 0x000000FFU, 0x00000064U); 5506c45abe7SMichal Simek psu_mask_write(0xFD4018FC, 0x000000FFU, 0x00000064U); 5516c45abe7SMichal Simek psu_mask_write(0xFD401990, 0x000000FFU, 0x00000011U); 5526c45abe7SMichal Simek psu_mask_write(0xFD401924, 0x000000FFU, 0x00000004U); 5536c45abe7SMichal Simek psu_mask_write(0xFD401928, 0x000000FFU, 0x000000FEU); 5546c45abe7SMichal Simek psu_mask_write(0xFD401900, 0x000000FFU, 0x00000064U); 5556c45abe7SMichal Simek psu_mask_write(0xFD40192C, 0x000000FFU, 0x00000000U); 5566c45abe7SMichal Simek psu_mask_write(0xFD401980, 0x000000FFU, 0x000000FFU); 5576c45abe7SMichal Simek psu_mask_write(0xFD401914, 0x000000FFU, 0x000000F7U); 5586c45abe7SMichal Simek psu_mask_write(0xFD401918, 0x00000001U, 0x00000001U); 5596c45abe7SMichal Simek psu_mask_write(0xFD401940, 0x000000FFU, 0x000000F7U); 5606c45abe7SMichal Simek psu_mask_write(0xFD401944, 0x00000001U, 0x00000001U); 5616c45abe7SMichal Simek psu_mask_write(0xFD401994, 0x00000007U, 0x00000007U); 5626c45abe7SMichal Simek psu_mask_write(0xFD405994, 0x00000007U, 0x00000007U); 5636c45abe7SMichal Simek psu_mask_write(0xFD40989C, 0x00000080U, 0x00000080U); 5646c45abe7SMichal Simek psu_mask_write(0xFD4098F8, 0x000000FFU, 0x0000001AU); 5656c45abe7SMichal Simek psu_mask_write(0xFD4098FC, 0x000000FFU, 0x0000001AU); 5666c45abe7SMichal Simek psu_mask_write(0xFD409990, 0x000000FFU, 0x00000010U); 5676c45abe7SMichal Simek psu_mask_write(0xFD409924, 0x000000FFU, 0x000000FEU); 5686c45abe7SMichal Simek psu_mask_write(0xFD409928, 0x000000FFU, 0x00000000U); 5696c45abe7SMichal Simek psu_mask_write(0xFD409900, 0x000000FFU, 0x0000001AU); 5706c45abe7SMichal Simek psu_mask_write(0xFD40992C, 0x000000FFU, 0x00000000U); 5716c45abe7SMichal Simek psu_mask_write(0xFD409980, 0x000000FFU, 0x000000FFU); 5726c45abe7SMichal Simek psu_mask_write(0xFD409914, 0x000000FFU, 0x000000F7U); 5736c45abe7SMichal Simek psu_mask_write(0xFD409918, 0x00000001U, 0x00000001U); 5746c45abe7SMichal Simek psu_mask_write(0xFD409940, 0x000000FFU, 0x000000F7U); 5756c45abe7SMichal Simek psu_mask_write(0xFD409944, 0x00000001U, 0x00000001U); 5766c45abe7SMichal Simek psu_mask_write(0xFD409994, 0x00000007U, 0x00000007U); 5776c45abe7SMichal Simek psu_mask_write(0xFD40D89C, 0x00000080U, 0x00000080U); 5786c45abe7SMichal Simek psu_mask_write(0xFD40D8F8, 0x000000FFU, 0x0000007DU); 5796c45abe7SMichal Simek psu_mask_write(0xFD40D8FC, 0x000000FFU, 0x0000007DU); 5806c45abe7SMichal Simek psu_mask_write(0xFD40D990, 0x000000FFU, 0x00000001U); 5816c45abe7SMichal Simek psu_mask_write(0xFD40D924, 0x000000FFU, 0x0000009CU); 5826c45abe7SMichal Simek psu_mask_write(0xFD40D928, 0x000000FFU, 0x00000039U); 5836c45abe7SMichal Simek psu_mask_write(0xFD40D98C, 0x000000F0U, 0x00000020U); 5846c45abe7SMichal Simek psu_mask_write(0xFD40D900, 0x000000FFU, 0x0000007DU); 5856c45abe7SMichal Simek psu_mask_write(0xFD40D92C, 0x000000FFU, 0x00000064U); 5866c45abe7SMichal Simek psu_mask_write(0xFD40D980, 0x000000FFU, 0x000000FFU); 5876c45abe7SMichal Simek psu_mask_write(0xFD40D914, 0x000000FFU, 0x000000F7U); 5886c45abe7SMichal Simek psu_mask_write(0xFD40D918, 0x00000001U, 0x00000001U); 5896c45abe7SMichal Simek psu_mask_write(0xFD40D940, 0x000000FFU, 0x000000F7U); 5906c45abe7SMichal Simek psu_mask_write(0xFD40D944, 0x00000001U, 0x00000001U); 5916c45abe7SMichal Simek psu_mask_write(0xFD40D994, 0x00000007U, 0x00000007U); 5926c45abe7SMichal Simek psu_mask_write(0xFD40107C, 0x0000000FU, 0x00000001U); 5936c45abe7SMichal Simek psu_mask_write(0xFD40507C, 0x0000000FU, 0x00000001U); 5946c45abe7SMichal Simek psu_mask_write(0xFD40907C, 0x0000000FU, 0x00000001U); 5956c45abe7SMichal Simek psu_mask_write(0xFD40D07C, 0x0000000FU, 0x00000001U); 5966c45abe7SMichal Simek psu_mask_write(0xFD4019A4, 0x000000FFU, 0x000000FFU); 5976c45abe7SMichal Simek psu_mask_write(0xFD401038, 0x00000040U, 0x00000040U); 5986c45abe7SMichal Simek psu_mask_write(0xFD40102C, 0x00000040U, 0x00000040U); 5996c45abe7SMichal Simek psu_mask_write(0xFD4059A4, 0x000000FFU, 0x000000FFU); 6006c45abe7SMichal Simek psu_mask_write(0xFD405038, 0x00000040U, 0x00000040U); 6016c45abe7SMichal Simek psu_mask_write(0xFD40502C, 0x00000040U, 0x00000040U); 6026c45abe7SMichal Simek psu_mask_write(0xFD4099A4, 0x000000FFU, 0x000000FFU); 6036c45abe7SMichal Simek psu_mask_write(0xFD409038, 0x00000040U, 0x00000040U); 6046c45abe7SMichal Simek psu_mask_write(0xFD40902C, 0x00000040U, 0x00000040U); 6056c45abe7SMichal Simek psu_mask_write(0xFD40D9A4, 0x000000FFU, 0x000000FFU); 6066c45abe7SMichal Simek psu_mask_write(0xFD40D038, 0x00000040U, 0x00000040U); 6076c45abe7SMichal Simek psu_mask_write(0xFD40D02C, 0x00000040U, 0x00000040U); 6086c45abe7SMichal Simek psu_mask_write(0xFD4019AC, 0x00000003U, 0x00000000U); 6096c45abe7SMichal Simek psu_mask_write(0xFD4059AC, 0x00000003U, 0x00000000U); 6106c45abe7SMichal Simek psu_mask_write(0xFD4099AC, 0x00000003U, 0x00000000U); 6116c45abe7SMichal Simek psu_mask_write(0xFD40D9AC, 0x00000003U, 0x00000000U); 6126c45abe7SMichal Simek psu_mask_write(0xFD401978, 0x00000010U, 0x00000010U); 6136c45abe7SMichal Simek psu_mask_write(0xFD405978, 0x00000010U, 0x00000010U); 6146c45abe7SMichal Simek psu_mask_write(0xFD409978, 0x00000010U, 0x00000010U); 6156c45abe7SMichal Simek psu_mask_write(0xFD40D978, 0x00000010U, 0x00000010U); 6166c45abe7SMichal Simek psu_mask_write(0xFD3D001C, 0xFFFFFFFFU, 0x00000001U); 6176c45abe7SMichal Simek psu_mask_write(0xFD410010, 0x00000077U, 0x00000041U); 6186c45abe7SMichal Simek psu_mask_write(0xFD410014, 0x00000077U, 0x00000023U); 6196c45abe7SMichal Simek psu_mask_write(0xFD404CB4, 0x00000037U, 0x00000037U); 6206c45abe7SMichal Simek psu_mask_write(0xFD4041D8, 0x00000001U, 0x00000001U); 6216c45abe7SMichal Simek psu_mask_write(0xFD40C1D8, 0x00000001U, 0x00000001U); 6226c45abe7SMichal Simek psu_mask_write(0xFD40DC14, 0x000000FFU, 0x000000E6U); 6236c45abe7SMichal Simek psu_mask_write(0xFD40DC40, 0x0000001FU, 0x0000000CU); 6246c45abe7SMichal Simek psu_mask_write(0xFD40D94C, 0x00000020U, 0x00000020U); 6256c45abe7SMichal Simek psu_mask_write(0xFD40D950, 0x00000007U, 0x00000006U); 6266c45abe7SMichal Simek psu_mask_write(0xFD404CC0, 0x0000001FU, 0x00000000U); 6276c45abe7SMichal Simek psu_mask_write(0xFD404048, 0x000000FFU, 0x00000000U); 6286c45abe7SMichal Simek psu_mask_write(0xFD40C048, 0x000000FFU, 0x00000001U); 6296c45abe7SMichal Simek 6306c45abe7SMichal Simek return 1; 6316c45abe7SMichal Simek } 6326c45abe7SMichal Simek 6336c45abe7SMichal Simek static unsigned long psu_resetout_init_data(void) 6346c45abe7SMichal Simek { 6356c45abe7SMichal Simek psu_mask_write(0xFF5E023C, 0x00000400U, 0x00000000U); 6366c45abe7SMichal Simek psu_mask_write(0xFF9D0080, 0x00000001U, 0x00000001U); 6376c45abe7SMichal Simek psu_mask_write(0xFF9D007C, 0x00000001U, 0x00000000U); 6386c45abe7SMichal Simek psu_mask_write(0xFF5E023C, 0x00000140U, 0x00000000U); 6396c45abe7SMichal Simek psu_mask_write(0xFF5E0230, 0x00000008U, 0x00000000U); 6406c45abe7SMichal Simek psu_mask_write(0xFD3D0100, 0x00000003U, 0x00000003U); 6416c45abe7SMichal Simek psu_mask_write(0xFD1A0100, 0x00000002U, 0x00000000U); 6426c45abe7SMichal Simek psu_mask_write(0xFD1A0100, 0x000C0000U, 0x00000000U); 6436c45abe7SMichal Simek psu_mask_write(0xFD1A0100, 0x00010000U, 0x00000000U); 6446c45abe7SMichal Simek psu_mask_write(0xFD4A0200, 0x00000002U, 0x00000000U); 6456c45abe7SMichal Simek psu_mask_write(0xFD4A0238, 0x0000000FU, 0x00000000U); 6466c45abe7SMichal Simek psu_mask_write(0xFE20C200, 0x00023FFFU, 0x00022457U); 6476c45abe7SMichal Simek psu_mask_write(0xFE20C630, 0x003FFF00U, 0x00000000U); 6486c45abe7SMichal Simek psu_mask_write(0xFE20C11C, 0x00000400U, 0x00000400U); 6496c45abe7SMichal Simek psu_mask_write(0xFE20C12C, 0x00004000U, 0x00004000U); 6506c45abe7SMichal Simek psu_mask_write(0xFD480064, 0x00000200U, 0x00000200U); 6516c45abe7SMichal Simek psu_mask_write(0xFD48001C, 0x0000FFFFU, 0x00000000U); 6526c45abe7SMichal Simek psu_mask_write(0xFD480020, 0x0000FFFFU, 0x00000000U); 6536c45abe7SMichal Simek psu_mask_write(0xFD480024, 0x0000FFFFU, 0x00000000U); 6546c45abe7SMichal Simek psu_mask_write(0xFD480028, 0x0000FFFFU, 0x00000000U); 6556c45abe7SMichal Simek psu_mask_write(0xFD48002C, 0x0000FFFFU, 0x0000FFFFU); 6566c45abe7SMichal Simek psu_mask_write(0xFD480030, 0x0000FFFFU, 0x000000FFU); 6576c45abe7SMichal Simek psu_mask_write(0xFD480034, 0x0000FFFFU, 0x00000000U); 6586c45abe7SMichal Simek psu_mask_write(0xFD480038, 0x0000FFFFU, 0x0000FFFFU); 6596c45abe7SMichal Simek psu_mask_write(0xFD48003C, 0x0000FFFFU, 0x0000FFF0U); 6606c45abe7SMichal Simek psu_mask_write(0xFD480040, 0x0000FFFFU, 0x0000FFF0U); 6616c45abe7SMichal Simek psu_mask_write(0xFD480044, 0x0000FFFFU, 0x0000FFF1U); 6626c45abe7SMichal Simek psu_mask_write(0xFD480048, 0x0000FFFFU, 0x0000FFF1U); 6636c45abe7SMichal Simek psu_mask_write(0xFD48006C, 0x00000738U, 0x00000100U); 6646c45abe7SMichal Simek psu_mask_write(0xFD4800C8, 0x0000FFF0U, 0x00000040U); 6656c45abe7SMichal Simek psu_mask_write(0xFD4801A4, 0x000007FFU, 0x000000CDU); 6666c45abe7SMichal Simek psu_mask_write(0xFD4801A8, 0x00003FFFU, 0x00000624U); 6676c45abe7SMichal Simek psu_mask_write(0xFD4801AC, 0x000007FFU, 0x00000018U); 6686c45abe7SMichal Simek psu_mask_write(0xFD4801B0, 0x000007FFU, 0x000000B5U); 6696c45abe7SMichal Simek psu_mask_write(0xFD4801B4, 0x0000FFFFU, 0x00007E20U); 6706c45abe7SMichal Simek psu_mask_write(0xFD480088, 0x000000FFU, 0x00000001U); 6716c45abe7SMichal Simek psu_mask_write(0xFD4800D4, 0x000000FFU, 0x00000060U); 6726c45abe7SMichal Simek psu_mask_write(0xFD4800A4, 0x000003FFU, 0x00000000U); 6736c45abe7SMichal Simek psu_mask_write(0xFD480184, 0x00000FFFU, 0x00000041U); 6746c45abe7SMichal Simek psu_mask_write(0xFD480190, 0x00000040U, 0x00000000U); 6756c45abe7SMichal Simek psu_mask_write(0xFD480194, 0x0000FFE2U, 0x0000FFE2U); 6766c45abe7SMichal Simek psu_mask_write(0xFD480094, 0x00004200U, 0x00004200U); 6776c45abe7SMichal Simek psu_mask_write(0xFD480174, 0x0000FFFFU, 0x00009000U); 6786c45abe7SMichal Simek psu_mask_write(0xFD480200, 0xFFFFFFFFU, 0x10EED021U); 6796c45abe7SMichal Simek psu_mask_write(0xFD480204, 0xFFFFFFFFU, 0x10EE0007U); 6806c45abe7SMichal Simek psu_mask_write(0xFD480208, 0x000000FFU, 0x00000000U); 6816c45abe7SMichal Simek psu_mask_write(0xFD480060, 0x0000FFFFU, 0x00000400U); 6826c45abe7SMichal Simek psu_mask_write(0xFD480064, 0x000001FFU, 0x00000006U); 6836c45abe7SMichal Simek psu_mask_write(0xFD480010, 0x00001000U, 0x00000000U); 6846c45abe7SMichal Simek psu_mask_write(0xFD480164, 0x00001FFEU, 0x00000000U); 6856c45abe7SMichal Simek psu_mask_write(0xFD48013C, 0x00000020U, 0x00000020U); 6866c45abe7SMichal Simek psu_mask_write(0xFD4800AC, 0x00000100U, 0x00000000U); 6876c45abe7SMichal Simek psu_mask_write(0xFD4800C0, 0x000007FFU, 0x00000000U); 6886c45abe7SMichal Simek psu_mask_write(0xFD4800B8, 0x0000FFFFU, 0x00000000U); 6896c45abe7SMichal Simek psu_mask_write(0xFD4800BC, 0x00001FFFU, 0x00000000U); 6906c45abe7SMichal Simek psu_mask_write(0xFD4800B0, 0x0000FFFFU, 0x00000000U); 6916c45abe7SMichal Simek psu_mask_write(0xFD4800B4, 0x0000FFF8U, 0x00000000U); 6926c45abe7SMichal Simek psu_mask_write(0xFD48031C, 0x00000002U, 0x00000000U); 6936c45abe7SMichal Simek psu_mask_write(0xFD48008C, 0x00003000U, 0x00000000U); 6946c45abe7SMichal Simek psu_mask_write(0xFD1A0100, 0x00020000U, 0x00000000U); 6956c45abe7SMichal Simek mask_poll(0xFD4023E4, 0x00000010U); 6966c45abe7SMichal Simek mask_poll(0xFD4063E4, 0x00000010U); 6976c45abe7SMichal Simek mask_poll(0xFD40A3E4, 0x00000010U); 6986c45abe7SMichal Simek mask_poll(0xFD40E3E4, 0x00000010U); 6996c45abe7SMichal Simek psu_mask_write(0xFD0C00AC, 0xFFFFFFFFU, 0x28184018U); 7006c45abe7SMichal Simek psu_mask_write(0xFD0C00B0, 0xFFFFFFFFU, 0x0E081406U); 7016c45abe7SMichal Simek psu_mask_write(0xFD0C00B4, 0xFFFFFFFFU, 0x064A0813U); 7026c45abe7SMichal Simek psu_mask_write(0xFD0C00B8, 0xFFFFFFFFU, 0x3FFC96A4U); 7036c45abe7SMichal Simek 7046c45abe7SMichal Simek return 1; 7056c45abe7SMichal Simek } 7066c45abe7SMichal Simek 7076c45abe7SMichal Simek static unsigned long psu_resetin_init_data(void) 7086c45abe7SMichal Simek { 7096c45abe7SMichal Simek psu_mask_write(0xFF5E023C, 0x00000540U, 0x00000540U); 7106c45abe7SMichal Simek psu_mask_write(0xFF5E0230, 0x00000008U, 0x00000008U); 7116c45abe7SMichal Simek psu_mask_write(0xFD1A0100, 0x00000002U, 0x00000002U); 7126c45abe7SMichal Simek psu_mask_write(0xFD1A0100, 0x000E0000U, 0x000E0000U); 7136c45abe7SMichal Simek psu_mask_write(0xFD4A0238, 0x0000000FU, 0x0000000AU); 7146c45abe7SMichal Simek psu_mask_write(0xFD4A0200, 0x00000002U, 0x00000002U); 7156c45abe7SMichal Simek psu_mask_write(0xFD1A0100, 0x00010000U, 0x00010000U); 7166c45abe7SMichal Simek 7176c45abe7SMichal Simek return 1; 7186c45abe7SMichal Simek } 7196c45abe7SMichal Simek 7206c45abe7SMichal Simek static unsigned long psu_afi_config(void) 7216c45abe7SMichal Simek { 7226c45abe7SMichal Simek return 1; 7236c45abe7SMichal Simek } 7246c45abe7SMichal Simek 7256c45abe7SMichal Simek static unsigned long psu_ddr_phybringup_data(void) 7266c45abe7SMichal Simek { 7276c45abe7SMichal Simek unsigned int regval = 0; 7286c45abe7SMichal Simek 7296c45abe7SMichal Simek while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU) 7306c45abe7SMichal Simek ; 7316c45abe7SMichal Simek prog_reg(0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); 7326c45abe7SMichal Simek 7336c45abe7SMichal Simek while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU) 7346c45abe7SMichal Simek ; 7356c45abe7SMichal Simek prog_reg(0xFD070010U, 0x00000008U, 0x00000003U, 0x00000001U); 7366c45abe7SMichal Simek prog_reg(0xFD0701B0U, 0x00000001U, 0x00000000U, 0x00000001U); 7376c45abe7SMichal Simek prog_reg(0xFD070010U, 0x00000030U, 0x00000004U, 0x00000001U); 7386c45abe7SMichal Simek prog_reg(0xFD070010U, 0x00000001U, 0x00000000U, 0x00000000U); 7396c45abe7SMichal Simek prog_reg(0xFD070010U, 0x0000F000U, 0x0000000CU, 0x00000006U); 7406c45abe7SMichal Simek prog_reg(0xFD070014U, 0x0003FFFFU, 0x00000000U, 0x00000819U); 7416c45abe7SMichal Simek prog_reg(0xFD070010U, 0x80000000U, 0x0000001FU, 0x00000001U); 7426c45abe7SMichal Simek while ((Xil_In32(0xFD070018) & 0x1) == 1) 7436c45abe7SMichal Simek ; 7446c45abe7SMichal Simek prog_reg(0xFD070010U, 0x00000030U, 0x00000004U, 0x00000001U); 7456c45abe7SMichal Simek prog_reg(0xFD070010U, 0x00000001U, 0x00000000U, 0x00000000U); 7466c45abe7SMichal Simek prog_reg(0xFD070010U, 0x0000F000U, 0x0000000CU, 0x00000006U); 7476c45abe7SMichal Simek prog_reg(0xFD070014U, 0x0003FFFFU, 0x00000000U, 0x00000899U); 7486c45abe7SMichal Simek prog_reg(0xFD070010U, 0x80000000U, 0x0000001FU, 0x00000001U); 7496c45abe7SMichal Simek while ((Xil_In32(0xFD070018) & 0x1) == 1) 7506c45abe7SMichal Simek ; 7516c45abe7SMichal Simek prog_reg(0xFD070010U, 0x00000030U, 0x00000004U, 0x00000001U); 7526c45abe7SMichal Simek prog_reg(0xFD070010U, 0x00000001U, 0x00000000U, 0x00000000U); 7536c45abe7SMichal Simek prog_reg(0xFD070010U, 0x0000F000U, 0x0000000CU, 0x00000006U); 7546c45abe7SMichal Simek prog_reg(0xFD070014U, 0x0003FFFFU, 0x00000000U, 0x00000819U); 7556c45abe7SMichal Simek prog_reg(0xFD070010U, 0x80000000U, 0x0000001FU, 0x00000001U); 7566c45abe7SMichal Simek while ((Xil_In32(0xFD070018) & 0x1) == 1) 7576c45abe7SMichal Simek ; 7586c45abe7SMichal Simek prog_reg(0xFD070010U, 0x00000008U, 0x00000003U, 0x00000000U); 7596c45abe7SMichal Simek Xil_Out32(0xFD0701B0U, 0x00000001U); 7606c45abe7SMichal Simek Xil_Out32(0xFD070320U, 0x00000001U); 7616c45abe7SMichal Simek while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U) 7626c45abe7SMichal Simek ; 7636c45abe7SMichal Simek prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); 7646c45abe7SMichal Simek Xil_Out32(0xFD080004, 0x0004FE01); 7656c45abe7SMichal Simek regval = Xil_In32(0xFD080030); 7666c45abe7SMichal Simek while (regval != 0x80000FFF) 7676c45abe7SMichal Simek regval = Xil_In32(0xFD080030); 7686c45abe7SMichal Simek 7696c45abe7SMichal Simek Xil_Out32(0xFD080200U, 0x100091C7U); 7706c45abe7SMichal Simek Xil_Out32(0xFD080018U, 0x00F01EF2U); 7716c45abe7SMichal Simek prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000003U); 7726c45abe7SMichal Simek prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000003U); 7736c45abe7SMichal Simek prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000003U); 7746c45abe7SMichal Simek prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000003U); 7756c45abe7SMichal Simek prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000003U); 7766c45abe7SMichal Simek prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000003U); 7776c45abe7SMichal Simek 7786c45abe7SMichal Simek Xil_Out32(0xFD080004, 0x00060001); 7796c45abe7SMichal Simek regval = Xil_In32(0xFD080030); 7806c45abe7SMichal Simek while ((regval & 0x80004001) != 0x80004001) 7816c45abe7SMichal Simek 7826c45abe7SMichal Simek regval = Xil_In32(0xFD080030); 7836c45abe7SMichal Simek 7846c45abe7SMichal Simek prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000000U); 7856c45abe7SMichal Simek prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000000U); 7866c45abe7SMichal Simek prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000000U); 7876c45abe7SMichal Simek prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000000U); 7886c45abe7SMichal Simek prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000000U); 7896c45abe7SMichal Simek prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000000U); 7906c45abe7SMichal Simek 7916c45abe7SMichal Simek Xil_Out32(0xFD080200U, 0x800091C7U); 7926c45abe7SMichal Simek Xil_Out32(0xFD080018U, 0x00F12302U); 7936c45abe7SMichal Simek 7946c45abe7SMichal Simek Xil_Out32(0xFD080004, 0x0000C001); 7956c45abe7SMichal Simek regval = Xil_In32(0xFD080030); 7966c45abe7SMichal Simek while ((regval & 0x80000C01) != 0x80000C01) 7976c45abe7SMichal Simek 7986c45abe7SMichal Simek regval = Xil_In32(0xFD080030); 7996c45abe7SMichal Simek 8006c45abe7SMichal Simek Xil_Out32(0xFD070180U, 0x01000040U); 8016c45abe7SMichal Simek Xil_Out32(0xFD070060U, 0x00000000U); 8026c45abe7SMichal Simek prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); 8036c45abe7SMichal Simek 8046c45abe7SMichal Simek return 1; 8056c45abe7SMichal Simek } 8066c45abe7SMichal Simek 8076c45abe7SMichal Simek static int serdes_enb_coarse_saturation(void) 8086c45abe7SMichal Simek { 8096c45abe7SMichal Simek Xil_Out32(0xFD402094, 0x00000010); 8106c45abe7SMichal Simek Xil_Out32(0xFD406094, 0x00000010); 8116c45abe7SMichal Simek Xil_Out32(0xFD40A094, 0x00000010); 8126c45abe7SMichal Simek Xil_Out32(0xFD40E094, 0x00000010); 8136c45abe7SMichal Simek return 1; 8146c45abe7SMichal Simek } 8156c45abe7SMichal Simek 8166c45abe7SMichal Simek static int serdes_fixcal_code(void) 8176c45abe7SMichal Simek { 8186c45abe7SMichal Simek int maskstatus = 1; 8196c45abe7SMichal Simek unsigned int match_pmos_code[23]; 8206c45abe7SMichal Simek unsigned int match_nmos_code[23]; 8216c45abe7SMichal Simek unsigned int match_ical_code[7]; 8226c45abe7SMichal Simek unsigned int match_rcal_code[7]; 8236c45abe7SMichal Simek unsigned int p_code = 0; 8246c45abe7SMichal Simek unsigned int n_code = 0; 8256c45abe7SMichal Simek unsigned int i_code = 0; 8266c45abe7SMichal Simek unsigned int r_code = 0; 8276c45abe7SMichal Simek unsigned int repeat_count = 0; 8286c45abe7SMichal Simek unsigned int L3_TM_CALIB_DIG20 = 0; 8296c45abe7SMichal Simek unsigned int L3_TM_CALIB_DIG19 = 0; 8306c45abe7SMichal Simek unsigned int L3_TM_CALIB_DIG18 = 0; 8316c45abe7SMichal Simek unsigned int L3_TM_CALIB_DIG16 = 0; 8326c45abe7SMichal Simek unsigned int L3_TM_CALIB_DIG15 = 0; 8336c45abe7SMichal Simek unsigned int L3_TM_CALIB_DIG14 = 0; 8346c45abe7SMichal Simek int i = 0; 8356c45abe7SMichal Simek 8366c45abe7SMichal Simek for (i = 0; i < 23; i++) { 8376c45abe7SMichal Simek match_pmos_code[i] = 0; 8386c45abe7SMichal Simek match_nmos_code[i] = 0; 8396c45abe7SMichal Simek } 8406c45abe7SMichal Simek for (i = 0; i < 7; i++) { 8416c45abe7SMichal Simek match_ical_code[i] = 0; 8426c45abe7SMichal Simek match_rcal_code[i] = 0; 8436c45abe7SMichal Simek } 8446c45abe7SMichal Simek 8456c45abe7SMichal Simek do { 8466c45abe7SMichal Simek Xil_Out32(0xFD410010, 0x00000000); 8476c45abe7SMichal Simek Xil_Out32(0xFD410014, 0x00000000); 8486c45abe7SMichal Simek 8496c45abe7SMichal Simek Xil_Out32(0xFD410010, 0x00000001); 8506c45abe7SMichal Simek Xil_Out32(0xFD410014, 0x00000000); 8516c45abe7SMichal Simek 8526c45abe7SMichal Simek maskstatus = mask_poll(0xFD40EF14, 0x2); 8536c45abe7SMichal Simek if (maskstatus == 0) { 8546c45abe7SMichal Simek /* xil_printf("#SERDES initialization timed out\n\r");*/ 8556c45abe7SMichal Simek return maskstatus; 8566c45abe7SMichal Simek } 8576c45abe7SMichal Simek 8586c45abe7SMichal Simek p_code = mask_read(0xFD40EF18, 0xFFFFFFFF); 8596c45abe7SMichal Simek n_code = mask_read(0xFD40EF1C, 0xFFFFFFFF); 8606c45abe7SMichal Simek i_code = mask_read(0xFD40EF24, 0xFFFFFFFF); 8616c45abe7SMichal Simek r_code = mask_read(0xFD40EF28, 0xFFFFFFFF); 8626c45abe7SMichal Simek 8636c45abe7SMichal Simek if ((p_code >= 0x26) && (p_code <= 0x3C)) 8646c45abe7SMichal Simek match_pmos_code[p_code - 0x26] += 1; 8656c45abe7SMichal Simek 8666c45abe7SMichal Simek if ((n_code >= 0x26) && (n_code <= 0x3C)) 8676c45abe7SMichal Simek match_nmos_code[n_code - 0x26] += 1; 8686c45abe7SMichal Simek 8696c45abe7SMichal Simek if ((i_code >= 0xC) && (i_code <= 0x12)) 8706c45abe7SMichal Simek match_ical_code[i_code - 0xC] += 1; 8716c45abe7SMichal Simek 8726c45abe7SMichal Simek if ((r_code >= 0x6) && (r_code <= 0xC)) 8736c45abe7SMichal Simek match_rcal_code[r_code - 0x6] += 1; 8746c45abe7SMichal Simek } while (repeat_count++ < 10); 8756c45abe7SMichal Simek 8766c45abe7SMichal Simek for (i = 0; i < 23; i++) { 8776c45abe7SMichal Simek if (match_pmos_code[i] >= match_pmos_code[0]) { 8786c45abe7SMichal Simek match_pmos_code[0] = match_pmos_code[i]; 8796c45abe7SMichal Simek p_code = 0x26 + i; 8806c45abe7SMichal Simek } 8816c45abe7SMichal Simek if (match_nmos_code[i] >= match_nmos_code[0]) { 8826c45abe7SMichal Simek match_nmos_code[0] = match_nmos_code[i]; 8836c45abe7SMichal Simek n_code = 0x26 + i; 8846c45abe7SMichal Simek } 8856c45abe7SMichal Simek } 8866c45abe7SMichal Simek 8876c45abe7SMichal Simek for (i = 0; i < 7; i++) { 8886c45abe7SMichal Simek if (match_ical_code[i] >= match_ical_code[0]) { 8896c45abe7SMichal Simek match_ical_code[0] = match_ical_code[i]; 8906c45abe7SMichal Simek i_code = 0xC + i; 8916c45abe7SMichal Simek } 8926c45abe7SMichal Simek if (match_rcal_code[i] >= match_rcal_code[0]) { 8936c45abe7SMichal Simek match_rcal_code[0] = match_rcal_code[i]; 8946c45abe7SMichal Simek r_code = 0x6 + i; 8956c45abe7SMichal Simek } 8966c45abe7SMichal Simek } 8976c45abe7SMichal Simek 8986c45abe7SMichal Simek L3_TM_CALIB_DIG20 = mask_read(0xFD40EC50, 0xFFFFFFF0); 8996c45abe7SMichal Simek L3_TM_CALIB_DIG20 = L3_TM_CALIB_DIG20 | 0x8 | ((p_code >> 2) & 0x7); 9006c45abe7SMichal Simek 9016c45abe7SMichal Simek L3_TM_CALIB_DIG19 = mask_read(0xFD40EC4C, 0xFFFFFF18); 9026c45abe7SMichal Simek L3_TM_CALIB_DIG19 = L3_TM_CALIB_DIG19 | ((p_code & 0x3) << 8) 9036c45abe7SMichal Simek | 0x20 | 0x4 | ((n_code >> 3) & 0x3); 9046c45abe7SMichal Simek 9056c45abe7SMichal Simek L3_TM_CALIB_DIG18 = mask_read(0xFD40EC48, 0xFFFFFF0F); 9066c45abe7SMichal Simek L3_TM_CALIB_DIG18 = L3_TM_CALIB_DIG18 | ((n_code & 0x7) << 8) | 0x10; 9076c45abe7SMichal Simek 9086c45abe7SMichal Simek L3_TM_CALIB_DIG16 = mask_read(0xFD40EC40, 0xFFFFFFF8); 9096c45abe7SMichal Simek L3_TM_CALIB_DIG16 = L3_TM_CALIB_DIG16 | ((r_code >> 1) & 0x7); 9106c45abe7SMichal Simek 9116c45abe7SMichal Simek L3_TM_CALIB_DIG15 = mask_read(0xFD40EC3C, 0xFFFFFF30); 9126c45abe7SMichal Simek L3_TM_CALIB_DIG15 = L3_TM_CALIB_DIG15 | ((r_code & 0x1) << 8) | 0x40 9136c45abe7SMichal Simek | 0x8 | ((i_code >> 1) & 0x7); 9146c45abe7SMichal Simek 9156c45abe7SMichal Simek L3_TM_CALIB_DIG14 = mask_read(0xFD40EC38, 0xFFFFFF3F); 9166c45abe7SMichal Simek L3_TM_CALIB_DIG14 = L3_TM_CALIB_DIG14 | ((i_code & 0x1) << 8) | 0x40; 9176c45abe7SMichal Simek 9186c45abe7SMichal Simek Xil_Out32(0xFD40EC50, L3_TM_CALIB_DIG20); 9196c45abe7SMichal Simek Xil_Out32(0xFD40EC4C, L3_TM_CALIB_DIG19); 9206c45abe7SMichal Simek Xil_Out32(0xFD40EC48, L3_TM_CALIB_DIG18); 9216c45abe7SMichal Simek Xil_Out32(0xFD40EC40, L3_TM_CALIB_DIG16); 9226c45abe7SMichal Simek Xil_Out32(0xFD40EC3C, L3_TM_CALIB_DIG15); 9236c45abe7SMichal Simek Xil_Out32(0xFD40EC38, L3_TM_CALIB_DIG14); 9246c45abe7SMichal Simek 9256c45abe7SMichal Simek return maskstatus; 9266c45abe7SMichal Simek } 9276c45abe7SMichal Simek 9286c45abe7SMichal Simek static int init_serdes(void) 9296c45abe7SMichal Simek { 9306c45abe7SMichal Simek int status = 1; 9316c45abe7SMichal Simek 9326c45abe7SMichal Simek status &= psu_resetin_init_data(); 9336c45abe7SMichal Simek 9346c45abe7SMichal Simek status &= serdes_fixcal_code(); 9356c45abe7SMichal Simek status &= serdes_enb_coarse_saturation(); 9366c45abe7SMichal Simek 9376c45abe7SMichal Simek status &= psu_serdes_init_data(); 9386c45abe7SMichal Simek status &= psu_resetout_init_data(); 9396c45abe7SMichal Simek 9406c45abe7SMichal Simek return status; 9416c45abe7SMichal Simek } 9426c45abe7SMichal Simek 9436c45abe7SMichal Simek static void init_peripheral(void) 9446c45abe7SMichal Simek { 9456c45abe7SMichal Simek unsigned int tmp_regval; 9466c45abe7SMichal Simek 9476c45abe7SMichal Simek tmp_regval = Xil_In32(0xFD690040); 9486c45abe7SMichal Simek tmp_regval &= ~0x00000001; 9496c45abe7SMichal Simek Xil_Out32(0xFD690040, tmp_regval); 9506c45abe7SMichal Simek 9516c45abe7SMichal Simek tmp_regval = Xil_In32(0xFD690030); 9526c45abe7SMichal Simek tmp_regval &= ~0x00000001; 9536c45abe7SMichal Simek Xil_Out32(0xFD690030, tmp_regval); 9546c45abe7SMichal Simek } 9556c45abe7SMichal Simek 9566c45abe7SMichal Simek int psu_init(void) 9576c45abe7SMichal Simek { 9586c45abe7SMichal Simek int status = 1; 9596c45abe7SMichal Simek 9606c45abe7SMichal Simek status &= psu_mio_init_data(); 9616c45abe7SMichal Simek status &= psu_pll_init_data(); 9626c45abe7SMichal Simek status &= psu_clock_init_data(); 9636c45abe7SMichal Simek status &= psu_ddr_init_data(); 9646c45abe7SMichal Simek status &= psu_ddr_phybringup_data(); 9656c45abe7SMichal Simek status &= psu_peripherals_init_data(); 9666c45abe7SMichal Simek status &= init_serdes(); 9676c45abe7SMichal Simek init_peripheral(); 9686c45abe7SMichal Simek 9696c45abe7SMichal Simek status &= psu_afi_config(); 9706c45abe7SMichal Simek 9716c45abe7SMichal Simek if (status == 0) 9726c45abe7SMichal Simek return 1; 9736c45abe7SMichal Simek return 0; 9746c45abe7SMichal Simek } 975