| .. | .. |
|---|
| 117 | 117 | "core_bi_pll_test_se", |
|---|
| 118 | 118 | }; |
|---|
| 119 | 119 | |
|---|
| 120 | +static struct clk_fixed_factor xo = { |
|---|
| 121 | + .mult = 1, |
|---|
| 122 | + .div = 1, |
|---|
| 123 | + .hw.init = &(struct clk_init_data){ |
|---|
| 124 | + .name = "xo", |
|---|
| 125 | + .parent_names = (const char *[]){ "xo_board" }, |
|---|
| 126 | + .num_parents = 1, |
|---|
| 127 | + .ops = &clk_fixed_factor_ops, |
|---|
| 128 | + }, |
|---|
| 129 | +}; |
|---|
| 130 | + |
|---|
| 120 | 131 | static struct pll_vco fabia_vco[] = { |
|---|
| 121 | 132 | { 250000000, 2000000000, 0 }, |
|---|
| 122 | 133 | { 125000000, 1000000000, 1 }, |
|---|
| .. | .. |
|---|
| 1031 | 1042 | .name = "sdcc2_apps_clk_src", |
|---|
| 1032 | 1043 | .parent_names = gcc_parent_names_4, |
|---|
| 1033 | 1044 | .num_parents = 4, |
|---|
| 1034 | | - .ops = &clk_rcg2_ops, |
|---|
| 1045 | + .ops = &clk_rcg2_floor_ops, |
|---|
| 1035 | 1046 | }, |
|---|
| 1036 | 1047 | }; |
|---|
| 1037 | 1048 | |
|---|
| .. | .. |
|---|
| 1055 | 1066 | .name = "sdcc4_apps_clk_src", |
|---|
| 1056 | 1067 | .parent_names = gcc_parent_names_1, |
|---|
| 1057 | 1068 | .num_parents = 3, |
|---|
| 1058 | | - .ops = &clk_rcg2_ops, |
|---|
| 1069 | + .ops = &clk_rcg2_floor_ops, |
|---|
| 1059 | 1070 | }, |
|---|
| 1060 | 1071 | }; |
|---|
| 1061 | 1072 | |
|---|
| .. | .. |
|---|
| 1093 | 1104 | .freq_tbl = ftbl_ufs_axi_clk_src, |
|---|
| 1094 | 1105 | .clkr.hw.init = &(struct clk_init_data){ |
|---|
| 1095 | 1106 | .name = "ufs_axi_clk_src", |
|---|
| 1107 | + .parent_names = gcc_parent_names_0, |
|---|
| 1108 | + .num_parents = 4, |
|---|
| 1109 | + .ops = &clk_rcg2_ops, |
|---|
| 1110 | + }, |
|---|
| 1111 | +}; |
|---|
| 1112 | + |
|---|
| 1113 | +static const struct freq_tbl ftbl_ufs_unipro_core_clk_src[] = { |
|---|
| 1114 | + F(37500000, P_GPLL0_OUT_MAIN, 16, 0, 0), |
|---|
| 1115 | + F(75000000, P_GPLL0_OUT_MAIN, 8, 0, 0), |
|---|
| 1116 | + F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), |
|---|
| 1117 | + { } |
|---|
| 1118 | +}; |
|---|
| 1119 | + |
|---|
| 1120 | +static struct clk_rcg2 ufs_unipro_core_clk_src = { |
|---|
| 1121 | + .cmd_rcgr = 0x76028, |
|---|
| 1122 | + .mnd_width = 8, |
|---|
| 1123 | + .hid_width = 5, |
|---|
| 1124 | + .parent_map = gcc_parent_map_0, |
|---|
| 1125 | + .freq_tbl = ftbl_ufs_unipro_core_clk_src, |
|---|
| 1126 | + .clkr.hw.init = &(struct clk_init_data){ |
|---|
| 1127 | + .name = "ufs_unipro_core_clk_src", |
|---|
| 1096 | 1128 | .parent_names = gcc_parent_names_0, |
|---|
| 1097 | 1129 | .num_parents = 4, |
|---|
| 1098 | 1130 | .ops = &clk_rcg2_ops, |
|---|
| .. | .. |
|---|
| 1179 | 1211 | "ufs_axi_clk_src", |
|---|
| 1180 | 1212 | }, |
|---|
| 1181 | 1213 | .num_parents = 1, |
|---|
| 1214 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1182 | 1215 | .ops = &clk_branch2_ops, |
|---|
| 1183 | 1216 | }, |
|---|
| 1184 | 1217 | }, |
|---|
| .. | .. |
|---|
| 1196 | 1229 | "usb30_master_clk_src", |
|---|
| 1197 | 1230 | }, |
|---|
| 1198 | 1231 | .num_parents = 1, |
|---|
| 1232 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1199 | 1233 | .ops = &clk_branch2_ops, |
|---|
| 1200 | 1234 | }, |
|---|
| 1201 | 1235 | }, |
|---|
| .. | .. |
|---|
| 1253 | 1287 | }, |
|---|
| 1254 | 1288 | }; |
|---|
| 1255 | 1289 | |
|---|
| 1290 | +static struct clk_branch gcc_mss_cfg_ahb_clk = { |
|---|
| 1291 | + .halt_reg = 0x8a000, |
|---|
| 1292 | + .halt_check = BRANCH_HALT, |
|---|
| 1293 | + .clkr = { |
|---|
| 1294 | + .enable_reg = 0x8a000, |
|---|
| 1295 | + .enable_mask = BIT(0), |
|---|
| 1296 | + .hw.init = &(struct clk_init_data){ |
|---|
| 1297 | + .name = "gcc_mss_cfg_ahb_clk", |
|---|
| 1298 | + .ops = &clk_branch2_ops, |
|---|
| 1299 | + }, |
|---|
| 1300 | + }, |
|---|
| 1301 | +}; |
|---|
| 1302 | + |
|---|
| 1303 | +static struct clk_branch gcc_mss_snoc_axi_clk = { |
|---|
| 1304 | + .halt_reg = 0x8a03c, |
|---|
| 1305 | + .halt_check = BRANCH_HALT, |
|---|
| 1306 | + .clkr = { |
|---|
| 1307 | + .enable_reg = 0x8a03c, |
|---|
| 1308 | + .enable_mask = BIT(0), |
|---|
| 1309 | + .hw.init = &(struct clk_init_data){ |
|---|
| 1310 | + .name = "gcc_mss_snoc_axi_clk", |
|---|
| 1311 | + .ops = &clk_branch2_ops, |
|---|
| 1312 | + }, |
|---|
| 1313 | + }, |
|---|
| 1314 | +}; |
|---|
| 1315 | + |
|---|
| 1316 | +static struct clk_branch gcc_mss_mnoc_bimc_axi_clk = { |
|---|
| 1317 | + .halt_reg = 0x8a004, |
|---|
| 1318 | + .halt_check = BRANCH_HALT, |
|---|
| 1319 | + .clkr = { |
|---|
| 1320 | + .enable_reg = 0x8a004, |
|---|
| 1321 | + .enable_mask = BIT(0), |
|---|
| 1322 | + .hw.init = &(struct clk_init_data){ |
|---|
| 1323 | + .name = "gcc_mss_mnoc_bimc_axi_clk", |
|---|
| 1324 | + .ops = &clk_branch2_ops, |
|---|
| 1325 | + }, |
|---|
| 1326 | + }, |
|---|
| 1327 | +}; |
|---|
| 1328 | + |
|---|
| 1329 | +static struct clk_branch gcc_boot_rom_ahb_clk = { |
|---|
| 1330 | + .halt_reg = 0x38004, |
|---|
| 1331 | + .halt_check = BRANCH_HALT_VOTED, |
|---|
| 1332 | + .hwcg_reg = 0x38004, |
|---|
| 1333 | + .hwcg_bit = 1, |
|---|
| 1334 | + .clkr = { |
|---|
| 1335 | + .enable_reg = 0x52004, |
|---|
| 1336 | + .enable_mask = BIT(10), |
|---|
| 1337 | + .hw.init = &(struct clk_init_data){ |
|---|
| 1338 | + .name = "gcc_boot_rom_ahb_clk", |
|---|
| 1339 | + .ops = &clk_branch2_ops, |
|---|
| 1340 | + }, |
|---|
| 1341 | + }, |
|---|
| 1342 | +}; |
|---|
| 1343 | + |
|---|
| 1344 | +static struct clk_branch gcc_mss_gpll0_div_clk_src = { |
|---|
| 1345 | + .halt_check = BRANCH_HALT_DELAY, |
|---|
| 1346 | + .clkr = { |
|---|
| 1347 | + .enable_reg = 0x5200c, |
|---|
| 1348 | + .enable_mask = BIT(2), |
|---|
| 1349 | + .hw.init = &(struct clk_init_data){ |
|---|
| 1350 | + .name = "gcc_mss_gpll0_div_clk_src", |
|---|
| 1351 | + .ops = &clk_branch2_ops, |
|---|
| 1352 | + }, |
|---|
| 1353 | + }, |
|---|
| 1354 | +}; |
|---|
| 1355 | + |
|---|
| 1256 | 1356 | static struct clk_branch gcc_blsp1_ahb_clk = { |
|---|
| 1257 | 1357 | .halt_reg = 0x17004, |
|---|
| 1258 | 1358 | .halt_check = BRANCH_HALT_VOTED, |
|---|
| .. | .. |
|---|
| 1278 | 1378 | "blsp1_qup1_i2c_apps_clk_src", |
|---|
| 1279 | 1379 | }, |
|---|
| 1280 | 1380 | .num_parents = 1, |
|---|
| 1381 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1281 | 1382 | .ops = &clk_branch2_ops, |
|---|
| 1282 | 1383 | }, |
|---|
| 1283 | 1384 | }, |
|---|
| .. | .. |
|---|
| 1295 | 1396 | "blsp1_qup1_spi_apps_clk_src", |
|---|
| 1296 | 1397 | }, |
|---|
| 1297 | 1398 | .num_parents = 1, |
|---|
| 1399 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1298 | 1400 | .ops = &clk_branch2_ops, |
|---|
| 1299 | 1401 | }, |
|---|
| 1300 | 1402 | }, |
|---|
| .. | .. |
|---|
| 1312 | 1414 | "blsp1_qup2_i2c_apps_clk_src", |
|---|
| 1313 | 1415 | }, |
|---|
| 1314 | 1416 | .num_parents = 1, |
|---|
| 1417 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1315 | 1418 | .ops = &clk_branch2_ops, |
|---|
| 1316 | 1419 | }, |
|---|
| 1317 | 1420 | }, |
|---|
| .. | .. |
|---|
| 1329 | 1432 | "blsp1_qup2_spi_apps_clk_src", |
|---|
| 1330 | 1433 | }, |
|---|
| 1331 | 1434 | .num_parents = 1, |
|---|
| 1435 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1332 | 1436 | .ops = &clk_branch2_ops, |
|---|
| 1333 | 1437 | }, |
|---|
| 1334 | 1438 | }, |
|---|
| .. | .. |
|---|
| 1346 | 1450 | "blsp1_qup3_i2c_apps_clk_src", |
|---|
| 1347 | 1451 | }, |
|---|
| 1348 | 1452 | .num_parents = 1, |
|---|
| 1453 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1349 | 1454 | .ops = &clk_branch2_ops, |
|---|
| 1350 | 1455 | }, |
|---|
| 1351 | 1456 | }, |
|---|
| .. | .. |
|---|
| 1363 | 1468 | "blsp1_qup3_spi_apps_clk_src", |
|---|
| 1364 | 1469 | }, |
|---|
| 1365 | 1470 | .num_parents = 1, |
|---|
| 1471 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1366 | 1472 | .ops = &clk_branch2_ops, |
|---|
| 1367 | 1473 | }, |
|---|
| 1368 | 1474 | }, |
|---|
| .. | .. |
|---|
| 1380 | 1486 | "blsp1_qup4_i2c_apps_clk_src", |
|---|
| 1381 | 1487 | }, |
|---|
| 1382 | 1488 | .num_parents = 1, |
|---|
| 1489 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1383 | 1490 | .ops = &clk_branch2_ops, |
|---|
| 1384 | 1491 | }, |
|---|
| 1385 | 1492 | }, |
|---|
| .. | .. |
|---|
| 1397 | 1504 | "blsp1_qup4_spi_apps_clk_src", |
|---|
| 1398 | 1505 | }, |
|---|
| 1399 | 1506 | .num_parents = 1, |
|---|
| 1507 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1400 | 1508 | .ops = &clk_branch2_ops, |
|---|
| 1401 | 1509 | }, |
|---|
| 1402 | 1510 | }, |
|---|
| .. | .. |
|---|
| 1414 | 1522 | "blsp1_qup5_i2c_apps_clk_src", |
|---|
| 1415 | 1523 | }, |
|---|
| 1416 | 1524 | .num_parents = 1, |
|---|
| 1525 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1417 | 1526 | .ops = &clk_branch2_ops, |
|---|
| 1418 | 1527 | }, |
|---|
| 1419 | 1528 | }, |
|---|
| .. | .. |
|---|
| 1431 | 1540 | "blsp1_qup5_spi_apps_clk_src", |
|---|
| 1432 | 1541 | }, |
|---|
| 1433 | 1542 | .num_parents = 1, |
|---|
| 1543 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1434 | 1544 | .ops = &clk_branch2_ops, |
|---|
| 1435 | 1545 | }, |
|---|
| 1436 | 1546 | }, |
|---|
| .. | .. |
|---|
| 1448 | 1558 | "blsp1_qup6_i2c_apps_clk_src", |
|---|
| 1449 | 1559 | }, |
|---|
| 1450 | 1560 | .num_parents = 1, |
|---|
| 1561 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1451 | 1562 | .ops = &clk_branch2_ops, |
|---|
| 1452 | 1563 | }, |
|---|
| 1453 | 1564 | }, |
|---|
| .. | .. |
|---|
| 1465 | 1576 | "blsp1_qup6_spi_apps_clk_src", |
|---|
| 1466 | 1577 | }, |
|---|
| 1467 | 1578 | .num_parents = 1, |
|---|
| 1579 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1468 | 1580 | .ops = &clk_branch2_ops, |
|---|
| 1469 | 1581 | }, |
|---|
| 1470 | 1582 | }, |
|---|
| .. | .. |
|---|
| 1495 | 1607 | "blsp1_uart1_apps_clk_src", |
|---|
| 1496 | 1608 | }, |
|---|
| 1497 | 1609 | .num_parents = 1, |
|---|
| 1610 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1498 | 1611 | .ops = &clk_branch2_ops, |
|---|
| 1499 | 1612 | }, |
|---|
| 1500 | 1613 | }, |
|---|
| .. | .. |
|---|
| 1512 | 1625 | "blsp1_uart2_apps_clk_src", |
|---|
| 1513 | 1626 | }, |
|---|
| 1514 | 1627 | .num_parents = 1, |
|---|
| 1628 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1515 | 1629 | .ops = &clk_branch2_ops, |
|---|
| 1516 | 1630 | }, |
|---|
| 1517 | 1631 | }, |
|---|
| .. | .. |
|---|
| 1529 | 1643 | "blsp1_uart3_apps_clk_src", |
|---|
| 1530 | 1644 | }, |
|---|
| 1531 | 1645 | .num_parents = 1, |
|---|
| 1646 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1532 | 1647 | .ops = &clk_branch2_ops, |
|---|
| 1533 | 1648 | }, |
|---|
| 1534 | 1649 | }, |
|---|
| .. | .. |
|---|
| 1559 | 1674 | "blsp2_qup1_i2c_apps_clk_src", |
|---|
| 1560 | 1675 | }, |
|---|
| 1561 | 1676 | .num_parents = 1, |
|---|
| 1677 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1562 | 1678 | .ops = &clk_branch2_ops, |
|---|
| 1563 | 1679 | }, |
|---|
| 1564 | 1680 | }, |
|---|
| .. | .. |
|---|
| 1576 | 1692 | "blsp2_qup1_spi_apps_clk_src", |
|---|
| 1577 | 1693 | }, |
|---|
| 1578 | 1694 | .num_parents = 1, |
|---|
| 1695 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1579 | 1696 | .ops = &clk_branch2_ops, |
|---|
| 1580 | 1697 | }, |
|---|
| 1581 | 1698 | }, |
|---|
| .. | .. |
|---|
| 1593 | 1710 | "blsp2_qup2_i2c_apps_clk_src", |
|---|
| 1594 | 1711 | }, |
|---|
| 1595 | 1712 | .num_parents = 1, |
|---|
| 1713 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1596 | 1714 | .ops = &clk_branch2_ops, |
|---|
| 1597 | 1715 | }, |
|---|
| 1598 | 1716 | }, |
|---|
| .. | .. |
|---|
| 1610 | 1728 | "blsp2_qup2_spi_apps_clk_src", |
|---|
| 1611 | 1729 | }, |
|---|
| 1612 | 1730 | .num_parents = 1, |
|---|
| 1731 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1613 | 1732 | .ops = &clk_branch2_ops, |
|---|
| 1614 | 1733 | }, |
|---|
| 1615 | 1734 | }, |
|---|
| .. | .. |
|---|
| 1627 | 1746 | "blsp2_qup3_i2c_apps_clk_src", |
|---|
| 1628 | 1747 | }, |
|---|
| 1629 | 1748 | .num_parents = 1, |
|---|
| 1749 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1630 | 1750 | .ops = &clk_branch2_ops, |
|---|
| 1631 | 1751 | }, |
|---|
| 1632 | 1752 | }, |
|---|
| .. | .. |
|---|
| 1644 | 1764 | "blsp2_qup3_spi_apps_clk_src", |
|---|
| 1645 | 1765 | }, |
|---|
| 1646 | 1766 | .num_parents = 1, |
|---|
| 1767 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1647 | 1768 | .ops = &clk_branch2_ops, |
|---|
| 1648 | 1769 | }, |
|---|
| 1649 | 1770 | }, |
|---|
| .. | .. |
|---|
| 1661 | 1782 | "blsp2_qup4_i2c_apps_clk_src", |
|---|
| 1662 | 1783 | }, |
|---|
| 1663 | 1784 | .num_parents = 1, |
|---|
| 1785 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1664 | 1786 | .ops = &clk_branch2_ops, |
|---|
| 1665 | 1787 | }, |
|---|
| 1666 | 1788 | }, |
|---|
| .. | .. |
|---|
| 1678 | 1800 | "blsp2_qup4_spi_apps_clk_src", |
|---|
| 1679 | 1801 | }, |
|---|
| 1680 | 1802 | .num_parents = 1, |
|---|
| 1803 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1681 | 1804 | .ops = &clk_branch2_ops, |
|---|
| 1682 | 1805 | }, |
|---|
| 1683 | 1806 | }, |
|---|
| .. | .. |
|---|
| 1695 | 1818 | "blsp2_qup5_i2c_apps_clk_src", |
|---|
| 1696 | 1819 | }, |
|---|
| 1697 | 1820 | .num_parents = 1, |
|---|
| 1821 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1698 | 1822 | .ops = &clk_branch2_ops, |
|---|
| 1699 | 1823 | }, |
|---|
| 1700 | 1824 | }, |
|---|
| .. | .. |
|---|
| 1712 | 1836 | "blsp2_qup5_spi_apps_clk_src", |
|---|
| 1713 | 1837 | }, |
|---|
| 1714 | 1838 | .num_parents = 1, |
|---|
| 1839 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1715 | 1840 | .ops = &clk_branch2_ops, |
|---|
| 1716 | 1841 | }, |
|---|
| 1717 | 1842 | }, |
|---|
| .. | .. |
|---|
| 1729 | 1854 | "blsp2_qup6_i2c_apps_clk_src", |
|---|
| 1730 | 1855 | }, |
|---|
| 1731 | 1856 | .num_parents = 1, |
|---|
| 1857 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1732 | 1858 | .ops = &clk_branch2_ops, |
|---|
| 1733 | 1859 | }, |
|---|
| 1734 | 1860 | }, |
|---|
| .. | .. |
|---|
| 1746 | 1872 | "blsp2_qup6_spi_apps_clk_src", |
|---|
| 1747 | 1873 | }, |
|---|
| 1748 | 1874 | .num_parents = 1, |
|---|
| 1875 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1749 | 1876 | .ops = &clk_branch2_ops, |
|---|
| 1750 | 1877 | }, |
|---|
| 1751 | 1878 | }, |
|---|
| .. | .. |
|---|
| 1776 | 1903 | "blsp2_uart1_apps_clk_src", |
|---|
| 1777 | 1904 | }, |
|---|
| 1778 | 1905 | .num_parents = 1, |
|---|
| 1906 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1779 | 1907 | .ops = &clk_branch2_ops, |
|---|
| 1780 | 1908 | }, |
|---|
| 1781 | 1909 | }, |
|---|
| .. | .. |
|---|
| 1793 | 1921 | "blsp2_uart2_apps_clk_src", |
|---|
| 1794 | 1922 | }, |
|---|
| 1795 | 1923 | .num_parents = 1, |
|---|
| 1924 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1796 | 1925 | .ops = &clk_branch2_ops, |
|---|
| 1797 | 1926 | }, |
|---|
| 1798 | 1927 | }, |
|---|
| .. | .. |
|---|
| 1810 | 1939 | "blsp2_uart3_apps_clk_src", |
|---|
| 1811 | 1940 | }, |
|---|
| 1812 | 1941 | .num_parents = 1, |
|---|
| 1942 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1813 | 1943 | .ops = &clk_branch2_ops, |
|---|
| 1814 | 1944 | }, |
|---|
| 1815 | 1945 | }, |
|---|
| .. | .. |
|---|
| 1827 | 1957 | "usb30_master_clk_src", |
|---|
| 1828 | 1958 | }, |
|---|
| 1829 | 1959 | .num_parents = 1, |
|---|
| 1960 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1830 | 1961 | .ops = &clk_branch2_ops, |
|---|
| 1831 | 1962 | }, |
|---|
| 1832 | 1963 | }, |
|---|
| .. | .. |
|---|
| 1844 | 1975 | "gp1_clk_src", |
|---|
| 1845 | 1976 | }, |
|---|
| 1846 | 1977 | .num_parents = 1, |
|---|
| 1978 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1847 | 1979 | .ops = &clk_branch2_ops, |
|---|
| 1848 | 1980 | }, |
|---|
| 1849 | 1981 | }, |
|---|
| .. | .. |
|---|
| 1861 | 1993 | "gp2_clk_src", |
|---|
| 1862 | 1994 | }, |
|---|
| 1863 | 1995 | .num_parents = 1, |
|---|
| 1996 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1864 | 1997 | .ops = &clk_branch2_ops, |
|---|
| 1865 | 1998 | }, |
|---|
| 1866 | 1999 | }, |
|---|
| .. | .. |
|---|
| 1878 | 2011 | "gp3_clk_src", |
|---|
| 1879 | 2012 | }, |
|---|
| 1880 | 2013 | .num_parents = 1, |
|---|
| 2014 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2015 | + .ops = &clk_branch2_ops, |
|---|
| 2016 | + }, |
|---|
| 2017 | + }, |
|---|
| 2018 | +}; |
|---|
| 2019 | + |
|---|
| 2020 | +static struct clk_branch gcc_bimc_gfx_clk = { |
|---|
| 2021 | + .halt_reg = 0x46040, |
|---|
| 2022 | + .halt_check = BRANCH_HALT, |
|---|
| 2023 | + .clkr = { |
|---|
| 2024 | + .enable_reg = 0x46040, |
|---|
| 2025 | + .enable_mask = BIT(0), |
|---|
| 2026 | + .hw.init = &(struct clk_init_data){ |
|---|
| 2027 | + .name = "gcc_bimc_gfx_clk", |
|---|
| 1881 | 2028 | .ops = &clk_branch2_ops, |
|---|
| 1882 | 2029 | }, |
|---|
| 1883 | 2030 | }, |
|---|
| .. | .. |
|---|
| 1947 | 2094 | "hmss_ahb_clk_src", |
|---|
| 1948 | 2095 | }, |
|---|
| 1949 | 2096 | .num_parents = 1, |
|---|
| 2097 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1950 | 2098 | .ops = &clk_branch2_ops, |
|---|
| 1951 | 2099 | }, |
|---|
| 1952 | 2100 | }, |
|---|
| .. | .. |
|---|
| 1965 | 2113 | }, |
|---|
| 1966 | 2114 | }; |
|---|
| 1967 | 2115 | |
|---|
| 1968 | | -static struct clk_branch gcc_hmss_dvm_bus_clk = { |
|---|
| 1969 | | - .halt_reg = 0x4808c, |
|---|
| 1970 | | - .halt_check = BRANCH_HALT, |
|---|
| 1971 | | - .clkr = { |
|---|
| 1972 | | - .enable_reg = 0x4808c, |
|---|
| 1973 | | - .enable_mask = BIT(0), |
|---|
| 1974 | | - .hw.init = &(struct clk_init_data){ |
|---|
| 1975 | | - .name = "gcc_hmss_dvm_bus_clk", |
|---|
| 1976 | | - .ops = &clk_branch2_ops, |
|---|
| 1977 | | - }, |
|---|
| 1978 | | - }, |
|---|
| 1979 | | -}; |
|---|
| 1980 | | - |
|---|
| 1981 | 2116 | static struct clk_branch gcc_hmss_rbcpr_clk = { |
|---|
| 1982 | 2117 | .halt_reg = 0x48008, |
|---|
| 1983 | 2118 | .halt_check = BRANCH_HALT, |
|---|
| .. | .. |
|---|
| 1990 | 2125 | "hmss_rbcpr_clk_src", |
|---|
| 1991 | 2126 | }, |
|---|
| 1992 | 2127 | .num_parents = 1, |
|---|
| 2128 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 1993 | 2129 | .ops = &clk_branch2_ops, |
|---|
| 1994 | 2130 | }, |
|---|
| 1995 | 2131 | }, |
|---|
| .. | .. |
|---|
| 2008 | 2144 | }, |
|---|
| 2009 | 2145 | }; |
|---|
| 2010 | 2146 | |
|---|
| 2011 | | -static struct clk_branch gcc_lpass_at_clk = { |
|---|
| 2012 | | - .halt_reg = 0x47020, |
|---|
| 2013 | | - .halt_check = BRANCH_HALT, |
|---|
| 2014 | | - .clkr = { |
|---|
| 2015 | | - .enable_reg = 0x47020, |
|---|
| 2016 | | - .enable_mask = BIT(0), |
|---|
| 2017 | | - .hw.init = &(struct clk_init_data){ |
|---|
| 2018 | | - .name = "gcc_lpass_at_clk", |
|---|
| 2019 | | - .ops = &clk_branch2_ops, |
|---|
| 2020 | | - }, |
|---|
| 2021 | | - }, |
|---|
| 2022 | | -}; |
|---|
| 2023 | | - |
|---|
| 2024 | | -static struct clk_branch gcc_lpass_trig_clk = { |
|---|
| 2025 | | - .halt_reg = 0x4701c, |
|---|
| 2026 | | - .halt_check = BRANCH_HALT, |
|---|
| 2027 | | - .clkr = { |
|---|
| 2028 | | - .enable_reg = 0x4701c, |
|---|
| 2029 | | - .enable_mask = BIT(0), |
|---|
| 2030 | | - .hw.init = &(struct clk_init_data){ |
|---|
| 2031 | | - .name = "gcc_lpass_trig_clk", |
|---|
| 2032 | | - .ops = &clk_branch2_ops, |
|---|
| 2033 | | - }, |
|---|
| 2034 | | - }, |
|---|
| 2035 | | -}; |
|---|
| 2036 | | - |
|---|
| 2037 | 2147 | static struct clk_branch gcc_mmss_noc_cfg_ahb_clk = { |
|---|
| 2038 | 2148 | .halt_reg = 0x9004, |
|---|
| 2039 | 2149 | .halt_check = BRANCH_HALT, |
|---|
| .. | .. |
|---|
| 2043 | 2153 | .hw.init = &(struct clk_init_data){ |
|---|
| 2044 | 2154 | .name = "gcc_mmss_noc_cfg_ahb_clk", |
|---|
| 2045 | 2155 | .ops = &clk_branch2_ops, |
|---|
| 2156 | + /* |
|---|
| 2157 | + * Any access to mmss depends on this clock. |
|---|
| 2158 | + * Gating this clock has been shown to crash the system |
|---|
| 2159 | + * when mmssnoc_axi_rpm_clk is inited in rpmcc. |
|---|
| 2160 | + */ |
|---|
| 2161 | + .flags = CLK_IS_CRITICAL, |
|---|
| 2046 | 2162 | }, |
|---|
| 2047 | 2163 | }, |
|---|
| 2048 | 2164 | }; |
|---|
| .. | .. |
|---|
| 2111 | 2227 | "pcie_aux_clk_src", |
|---|
| 2112 | 2228 | }, |
|---|
| 2113 | 2229 | .num_parents = 1, |
|---|
| 2230 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2114 | 2231 | .ops = &clk_branch2_ops, |
|---|
| 2115 | 2232 | }, |
|---|
| 2116 | 2233 | }, |
|---|
| .. | .. |
|---|
| 2180 | 2297 | "pcie_aux_clk_src", |
|---|
| 2181 | 2298 | }, |
|---|
| 2182 | 2299 | .num_parents = 1, |
|---|
| 2300 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2183 | 2301 | .ops = &clk_branch2_ops, |
|---|
| 2184 | 2302 | }, |
|---|
| 2185 | 2303 | }, |
|---|
| .. | .. |
|---|
| 2197 | 2315 | "pdm2_clk_src", |
|---|
| 2198 | 2316 | }, |
|---|
| 2199 | 2317 | .num_parents = 1, |
|---|
| 2318 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2200 | 2319 | .ops = &clk_branch2_ops, |
|---|
| 2201 | 2320 | }, |
|---|
| 2202 | 2321 | }, |
|---|
| .. | .. |
|---|
| 2266 | 2385 | "sdcc2_apps_clk_src", |
|---|
| 2267 | 2386 | }, |
|---|
| 2268 | 2387 | .num_parents = 1, |
|---|
| 2388 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2269 | 2389 | .ops = &clk_branch2_ops, |
|---|
| 2270 | 2390 | }, |
|---|
| 2271 | 2391 | }, |
|---|
| .. | .. |
|---|
| 2296 | 2416 | "sdcc4_apps_clk_src", |
|---|
| 2297 | 2417 | }, |
|---|
| 2298 | 2418 | .num_parents = 1, |
|---|
| 2419 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2299 | 2420 | .ops = &clk_branch2_ops, |
|---|
| 2300 | 2421 | }, |
|---|
| 2301 | 2422 | }, |
|---|
| .. | .. |
|---|
| 2339 | 2460 | "tsif_ref_clk_src", |
|---|
| 2340 | 2461 | }, |
|---|
| 2341 | 2462 | .num_parents = 1, |
|---|
| 2463 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2342 | 2464 | .ops = &clk_branch2_ops, |
|---|
| 2343 | 2465 | }, |
|---|
| 2344 | 2466 | }, |
|---|
| .. | .. |
|---|
| 2369 | 2491 | "ufs_axi_clk_src", |
|---|
| 2370 | 2492 | }, |
|---|
| 2371 | 2493 | .num_parents = 1, |
|---|
| 2494 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2372 | 2495 | .ops = &clk_branch2_ops, |
|---|
| 2373 | 2496 | }, |
|---|
| 2374 | 2497 | }, |
|---|
| .. | .. |
|---|
| 2447 | 2570 | .enable_mask = BIT(0), |
|---|
| 2448 | 2571 | .hw.init = &(struct clk_init_data){ |
|---|
| 2449 | 2572 | .name = "gcc_ufs_unipro_core_clk", |
|---|
| 2573 | + .parent_names = (const char *[]){ |
|---|
| 2574 | + "ufs_unipro_core_clk_src", |
|---|
| 2575 | + }, |
|---|
| 2576 | + .num_parents = 1, |
|---|
| 2577 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2450 | 2578 | .ops = &clk_branch2_ops, |
|---|
| 2451 | 2579 | }, |
|---|
| 2452 | 2580 | }, |
|---|
| .. | .. |
|---|
| 2464 | 2592 | "usb30_master_clk_src", |
|---|
| 2465 | 2593 | }, |
|---|
| 2466 | 2594 | .num_parents = 1, |
|---|
| 2595 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2467 | 2596 | .ops = &clk_branch2_ops, |
|---|
| 2468 | 2597 | }, |
|---|
| 2469 | 2598 | }, |
|---|
| .. | .. |
|---|
| 2481 | 2610 | "usb30_mock_utmi_clk_src", |
|---|
| 2482 | 2611 | }, |
|---|
| 2483 | 2612 | .num_parents = 1, |
|---|
| 2613 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2484 | 2614 | .ops = &clk_branch2_ops, |
|---|
| 2485 | 2615 | }, |
|---|
| 2486 | 2616 | }, |
|---|
| .. | .. |
|---|
| 2511 | 2641 | "usb3_phy_aux_clk_src", |
|---|
| 2512 | 2642 | }, |
|---|
| 2513 | 2643 | .num_parents = 1, |
|---|
| 2644 | + .flags = CLK_SET_RATE_PARENT, |
|---|
| 2514 | 2645 | .ops = &clk_branch2_ops, |
|---|
| 2515 | 2646 | }, |
|---|
| 2516 | 2647 | }, |
|---|
| .. | .. |
|---|
| 2518 | 2649 | |
|---|
| 2519 | 2650 | static struct clk_branch gcc_usb3_phy_pipe_clk = { |
|---|
| 2520 | 2651 | .halt_reg = 0x50004, |
|---|
| 2521 | | - .halt_check = BRANCH_HALT, |
|---|
| 2652 | + .halt_check = BRANCH_HALT_SKIP, |
|---|
| 2522 | 2653 | .clkr = { |
|---|
| 2523 | 2654 | .enable_reg = 0x50004, |
|---|
| 2524 | 2655 | .enable_mask = BIT(0), |
|---|
| .. | .. |
|---|
| 2537 | 2668 | .enable_mask = BIT(0), |
|---|
| 2538 | 2669 | .hw.init = &(struct clk_init_data){ |
|---|
| 2539 | 2670 | .name = "gcc_usb_phy_cfg_ahb2phy_clk", |
|---|
| 2671 | + .ops = &clk_branch2_ops, |
|---|
| 2672 | + }, |
|---|
| 2673 | + }, |
|---|
| 2674 | +}; |
|---|
| 2675 | + |
|---|
| 2676 | +static struct clk_branch gcc_hdmi_clkref_clk = { |
|---|
| 2677 | + .halt_reg = 0x88000, |
|---|
| 2678 | + .clkr = { |
|---|
| 2679 | + .enable_reg = 0x88000, |
|---|
| 2680 | + .enable_mask = BIT(0), |
|---|
| 2681 | + .hw.init = &(struct clk_init_data){ |
|---|
| 2682 | + .name = "gcc_hdmi_clkref_clk", |
|---|
| 2683 | + .parent_names = (const char *[]){ "xo" }, |
|---|
| 2684 | + .num_parents = 1, |
|---|
| 2685 | + .ops = &clk_branch2_ops, |
|---|
| 2686 | + }, |
|---|
| 2687 | + }, |
|---|
| 2688 | +}; |
|---|
| 2689 | + |
|---|
| 2690 | +static struct clk_branch gcc_ufs_clkref_clk = { |
|---|
| 2691 | + .halt_reg = 0x88004, |
|---|
| 2692 | + .clkr = { |
|---|
| 2693 | + .enable_reg = 0x88004, |
|---|
| 2694 | + .enable_mask = BIT(0), |
|---|
| 2695 | + .hw.init = &(struct clk_init_data){ |
|---|
| 2696 | + .name = "gcc_ufs_clkref_clk", |
|---|
| 2697 | + .parent_names = (const char *[]){ "xo" }, |
|---|
| 2698 | + .num_parents = 1, |
|---|
| 2699 | + .ops = &clk_branch2_ops, |
|---|
| 2700 | + }, |
|---|
| 2701 | + }, |
|---|
| 2702 | +}; |
|---|
| 2703 | + |
|---|
| 2704 | +static struct clk_branch gcc_usb3_clkref_clk = { |
|---|
| 2705 | + .halt_reg = 0x88008, |
|---|
| 2706 | + .clkr = { |
|---|
| 2707 | + .enable_reg = 0x88008, |
|---|
| 2708 | + .enable_mask = BIT(0), |
|---|
| 2709 | + .hw.init = &(struct clk_init_data){ |
|---|
| 2710 | + .name = "gcc_usb3_clkref_clk", |
|---|
| 2711 | + .parent_names = (const char *[]){ "xo" }, |
|---|
| 2712 | + .num_parents = 1, |
|---|
| 2713 | + .ops = &clk_branch2_ops, |
|---|
| 2714 | + }, |
|---|
| 2715 | + }, |
|---|
| 2716 | +}; |
|---|
| 2717 | + |
|---|
| 2718 | +static struct clk_branch gcc_pcie_clkref_clk = { |
|---|
| 2719 | + .halt_reg = 0x8800c, |
|---|
| 2720 | + .clkr = { |
|---|
| 2721 | + .enable_reg = 0x8800c, |
|---|
| 2722 | + .enable_mask = BIT(0), |
|---|
| 2723 | + .hw.init = &(struct clk_init_data){ |
|---|
| 2724 | + .name = "gcc_pcie_clkref_clk", |
|---|
| 2725 | + .parent_names = (const char *[]){ "xo" }, |
|---|
| 2726 | + .num_parents = 1, |
|---|
| 2727 | + .ops = &clk_branch2_ops, |
|---|
| 2728 | + }, |
|---|
| 2729 | + }, |
|---|
| 2730 | +}; |
|---|
| 2731 | + |
|---|
| 2732 | +static struct clk_branch gcc_rx1_usb2_clkref_clk = { |
|---|
| 2733 | + .halt_reg = 0x88014, |
|---|
| 2734 | + .clkr = { |
|---|
| 2735 | + .enable_reg = 0x88014, |
|---|
| 2736 | + .enable_mask = BIT(0), |
|---|
| 2737 | + .hw.init = &(struct clk_init_data){ |
|---|
| 2738 | + .name = "gcc_rx1_usb2_clkref_clk", |
|---|
| 2739 | + .parent_names = (const char *[]){ "xo" }, |
|---|
| 2740 | + .num_parents = 1, |
|---|
| 2540 | 2741 | .ops = &clk_branch2_ops, |
|---|
| 2541 | 2742 | }, |
|---|
| 2542 | 2743 | }, |
|---|
| .. | .. |
|---|
| 2648 | 2849 | [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, |
|---|
| 2649 | 2850 | [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, |
|---|
| 2650 | 2851 | [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, |
|---|
| 2852 | + [GCC_BIMC_GFX_CLK] = &gcc_bimc_gfx_clk.clkr, |
|---|
| 2651 | 2853 | [GCC_GPU_BIMC_GFX_CLK] = &gcc_gpu_bimc_gfx_clk.clkr, |
|---|
| 2652 | 2854 | [GCC_GPU_BIMC_GFX_SRC_CLK] = &gcc_gpu_bimc_gfx_src_clk.clkr, |
|---|
| 2653 | 2855 | [GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr, |
|---|
| 2654 | 2856 | [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr, |
|---|
| 2655 | 2857 | [GCC_HMSS_AHB_CLK] = &gcc_hmss_ahb_clk.clkr, |
|---|
| 2656 | 2858 | [GCC_HMSS_AT_CLK] = &gcc_hmss_at_clk.clkr, |
|---|
| 2657 | | - [GCC_HMSS_DVM_BUS_CLK] = &gcc_hmss_dvm_bus_clk.clkr, |
|---|
| 2658 | 2859 | [GCC_HMSS_RBCPR_CLK] = &gcc_hmss_rbcpr_clk.clkr, |
|---|
| 2659 | 2860 | [GCC_HMSS_TRIG_CLK] = &gcc_hmss_trig_clk.clkr, |
|---|
| 2660 | | - [GCC_LPASS_AT_CLK] = &gcc_lpass_at_clk.clkr, |
|---|
| 2661 | | - [GCC_LPASS_TRIG_CLK] = &gcc_lpass_trig_clk.clkr, |
|---|
| 2662 | 2861 | [GCC_MMSS_NOC_CFG_AHB_CLK] = &gcc_mmss_noc_cfg_ahb_clk.clkr, |
|---|
| 2663 | 2862 | [GCC_MMSS_QM_AHB_CLK] = &gcc_mmss_qm_ahb_clk.clkr, |
|---|
| 2664 | 2863 | [GCC_MMSS_QM_CORE_CLK] = &gcc_mmss_qm_core_clk.clkr, |
|---|
| .. | .. |
|---|
| 2731 | 2930 | [SDCC4_APPS_CLK_SRC] = &sdcc4_apps_clk_src.clkr, |
|---|
| 2732 | 2931 | [TSIF_REF_CLK_SRC] = &tsif_ref_clk_src.clkr, |
|---|
| 2733 | 2932 | [UFS_AXI_CLK_SRC] = &ufs_axi_clk_src.clkr, |
|---|
| 2933 | + [UFS_UNIPRO_CORE_CLK_SRC] = &ufs_unipro_core_clk_src.clkr, |
|---|
| 2734 | 2934 | [USB30_MASTER_CLK_SRC] = &usb30_master_clk_src.clkr, |
|---|
| 2735 | 2935 | [USB30_MOCK_UTMI_CLK_SRC] = &usb30_mock_utmi_clk_src.clkr, |
|---|
| 2736 | 2936 | [USB3_PHY_AUX_CLK_SRC] = &usb3_phy_aux_clk_src.clkr, |
|---|
| 2937 | + [GCC_HDMI_CLKREF_CLK] = &gcc_hdmi_clkref_clk.clkr, |
|---|
| 2938 | + [GCC_UFS_CLKREF_CLK] = &gcc_ufs_clkref_clk.clkr, |
|---|
| 2939 | + [GCC_USB3_CLKREF_CLK] = &gcc_usb3_clkref_clk.clkr, |
|---|
| 2940 | + [GCC_PCIE_CLKREF_CLK] = &gcc_pcie_clkref_clk.clkr, |
|---|
| 2941 | + [GCC_RX1_USB2_CLKREF_CLK] = &gcc_rx1_usb2_clkref_clk.clkr, |
|---|
| 2942 | + [GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr, |
|---|
| 2943 | + [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, |
|---|
| 2944 | + [GCC_MSS_GPLL0_DIV_CLK_SRC] = &gcc_mss_gpll0_div_clk_src.clkr, |
|---|
| 2945 | + [GCC_MSS_SNOC_AXI_CLK] = &gcc_mss_snoc_axi_clk.clkr, |
|---|
| 2946 | + [GCC_MSS_MNOC_BIMC_AXI_CLK] = &gcc_mss_mnoc_bimc_axi_clk.clkr, |
|---|
| 2737 | 2947 | }; |
|---|
| 2738 | 2948 | |
|---|
| 2739 | 2949 | static struct gdsc *gcc_msm8998_gdscs[] = { |
|---|
| .. | .. |
|---|
| 2762 | 2972 | [GCC_TSIF_BCR] = { 0x36000 }, |
|---|
| 2763 | 2973 | [GCC_UFS_BCR] = { 0x75000 }, |
|---|
| 2764 | 2974 | [GCC_USB_30_BCR] = { 0xf000 }, |
|---|
| 2975 | + [GCC_SYSTEM_NOC_BCR] = { 0x4000 }, |
|---|
| 2976 | + [GCC_CONFIG_NOC_BCR] = { 0x5000 }, |
|---|
| 2977 | + [GCC_AHB2PHY_EAST_BCR] = { 0x7000 }, |
|---|
| 2978 | + [GCC_IMEM_BCR] = { 0x8000 }, |
|---|
| 2979 | + [GCC_PIMEM_BCR] = { 0xa000 }, |
|---|
| 2980 | + [GCC_MMSS_BCR] = { 0xb000 }, |
|---|
| 2981 | + [GCC_QDSS_BCR] = { 0xc000 }, |
|---|
| 2982 | + [GCC_WCSS_BCR] = { 0x11000 }, |
|---|
| 2983 | + [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 }, |
|---|
| 2984 | + [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 }, |
|---|
| 2985 | + [GCC_BLSP1_BCR] = { 0x17000 }, |
|---|
| 2986 | + [GCC_BLSP1_UART1_BCR] = { 0x1a000 }, |
|---|
| 2987 | + [GCC_BLSP1_UART2_BCR] = { 0x1c000 }, |
|---|
| 2988 | + [GCC_BLSP1_UART3_BCR] = { 0x1e000 }, |
|---|
| 2989 | + [GCC_CM_PHY_REFGEN1_BCR] = { 0x22000 }, |
|---|
| 2990 | + [GCC_CM_PHY_REFGEN2_BCR] = { 0x24000 }, |
|---|
| 2991 | + [GCC_BLSP2_BCR] = { 0x25000 }, |
|---|
| 2992 | + [GCC_BLSP2_UART1_BCR] = { 0x27000 }, |
|---|
| 2993 | + [GCC_BLSP2_UART2_BCR] = { 0x29000 }, |
|---|
| 2994 | + [GCC_BLSP2_UART3_BCR] = { 0x2b000 }, |
|---|
| 2995 | + [GCC_SRAM_SENSOR_BCR] = { 0x2d000 }, |
|---|
| 2996 | + [GCC_PRNG_BCR] = { 0x34000 }, |
|---|
| 2997 | + [GCC_TSIF_0_RESET] = { 0x36024 }, |
|---|
| 2998 | + [GCC_TSIF_1_RESET] = { 0x36028 }, |
|---|
| 2999 | + [GCC_TCSR_BCR] = { 0x37000 }, |
|---|
| 3000 | + [GCC_BOOT_ROM_BCR] = { 0x38000 }, |
|---|
| 3001 | + [GCC_MSG_RAM_BCR] = { 0x39000 }, |
|---|
| 3002 | + [GCC_TLMM_BCR] = { 0x3a000 }, |
|---|
| 3003 | + [GCC_MPM_BCR] = { 0x3b000 }, |
|---|
| 3004 | + [GCC_SEC_CTRL_BCR] = { 0x3d000 }, |
|---|
| 3005 | + [GCC_SPMI_BCR] = { 0x3f000 }, |
|---|
| 3006 | + [GCC_SPDM_BCR] = { 0x40000 }, |
|---|
| 3007 | + [GCC_CE1_BCR] = { 0x41000 }, |
|---|
| 3008 | + [GCC_BIMC_BCR] = { 0x44000 }, |
|---|
| 3009 | + [GCC_SNOC_BUS_TIMEOUT0_BCR] = { 0x49000 }, |
|---|
| 3010 | + [GCC_SNOC_BUS_TIMEOUT1_BCR] = { 0x49008 }, |
|---|
| 3011 | + [GCC_SNOC_BUS_TIMEOUT3_BCR] = { 0x49010 }, |
|---|
| 3012 | + [GCC_SNOC_BUS_TIMEOUT_EXTREF_BCR] = { 0x49018 }, |
|---|
| 3013 | + [GCC_PNOC_BUS_TIMEOUT0_BCR] = { 0x4a000 }, |
|---|
| 3014 | + [GCC_CNOC_PERIPH_BUS_TIMEOUT1_BCR] = { 0x4a004 }, |
|---|
| 3015 | + [GCC_CNOC_PERIPH_BUS_TIMEOUT2_BCR] = { 0x4a00c }, |
|---|
| 3016 | + [GCC_CNOC_BUS_TIMEOUT0_BCR] = { 0x4b000 }, |
|---|
| 3017 | + [GCC_CNOC_BUS_TIMEOUT1_BCR] = { 0x4b008 }, |
|---|
| 3018 | + [GCC_CNOC_BUS_TIMEOUT2_BCR] = { 0x4b010 }, |
|---|
| 3019 | + [GCC_CNOC_BUS_TIMEOUT3_BCR] = { 0x4b018 }, |
|---|
| 3020 | + [GCC_CNOC_BUS_TIMEOUT4_BCR] = { 0x4b020 }, |
|---|
| 3021 | + [GCC_CNOC_BUS_TIMEOUT5_BCR] = { 0x4b028 }, |
|---|
| 3022 | + [GCC_CNOC_BUS_TIMEOUT6_BCR] = { 0x4b030 }, |
|---|
| 3023 | + [GCC_CNOC_BUS_TIMEOUT7_BCR] = { 0x4b038 }, |
|---|
| 3024 | + [GCC_APB2JTAG_BCR] = { 0x4c000 }, |
|---|
| 3025 | + [GCC_RBCPR_CX_BCR] = { 0x4e000 }, |
|---|
| 3026 | + [GCC_RBCPR_MX_BCR] = { 0x4f000 }, |
|---|
| 3027 | + [GCC_USB3_PHY_BCR] = { 0x50020 }, |
|---|
| 3028 | + [GCC_USB3PHY_PHY_BCR] = { 0x50024 }, |
|---|
| 3029 | + [GCC_USB3_DP_PHY_BCR] = { 0x50028 }, |
|---|
| 3030 | + [GCC_SSC_BCR] = { 0x63000 }, |
|---|
| 3031 | + [GCC_SSC_RESET] = { 0x63020 }, |
|---|
| 3032 | + [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 }, |
|---|
| 3033 | + [GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 }, |
|---|
| 3034 | + [GCC_PCIE_0_PHY_BCR] = { 0x6c01c }, |
|---|
| 3035 | + [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 }, |
|---|
| 3036 | + [GCC_PCIE_PHY_BCR] = { 0x6f000 }, |
|---|
| 3037 | + [GCC_PCIE_PHY_NOCSR_COM_PHY_BCR] = { 0x6f00c }, |
|---|
| 3038 | + [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f010 }, |
|---|
| 3039 | + [GCC_PCIE_PHY_COM_BCR] = { 0x6f014 }, |
|---|
| 3040 | + [GCC_GPU_BCR] = { 0x71000 }, |
|---|
| 3041 | + [GCC_SPSS_BCR] = { 0x72000 }, |
|---|
| 3042 | + [GCC_OBT_ODT_BCR] = { 0x73000 }, |
|---|
| 3043 | + [GCC_MSS_RESTART] = { 0x79000 }, |
|---|
| 3044 | + [GCC_VS_BCR] = { 0x7a000 }, |
|---|
| 3045 | + [GCC_MSS_VS_RESET] = { 0x7a100 }, |
|---|
| 3046 | + [GCC_GPU_VS_RESET] = { 0x7a104 }, |
|---|
| 3047 | + [GCC_APC0_VS_RESET] = { 0x7a108 }, |
|---|
| 3048 | + [GCC_APC1_VS_RESET] = { 0x7a10c }, |
|---|
| 3049 | + [GCC_CNOC_BUS_TIMEOUT8_BCR] = { 0x80000 }, |
|---|
| 3050 | + [GCC_CNOC_BUS_TIMEOUT9_BCR] = { 0x80008 }, |
|---|
| 3051 | + [GCC_CNOC_BUS_TIMEOUT10_BCR] = { 0x80010 }, |
|---|
| 3052 | + [GCC_CNOC_BUS_TIMEOUT11_BCR] = { 0x80018 }, |
|---|
| 3053 | + [GCC_CNOC_BUS_TIMEOUT12_BCR] = { 0x80020 }, |
|---|
| 3054 | + [GCC_CNOC_BUS_TIMEOUT13_BCR] = { 0x80028 }, |
|---|
| 3055 | + [GCC_CNOC_BUS_TIMEOUT14_BCR] = { 0x80030 }, |
|---|
| 3056 | + [GCC_CNOC_BUS_TIMEOUT_EXTREF_BCR] = { 0x80038 }, |
|---|
| 3057 | + [GCC_AGGRE1_NOC_BCR] = { 0x82000 }, |
|---|
| 3058 | + [GCC_AGGRE2_NOC_BCR] = { 0x83000 }, |
|---|
| 3059 | + [GCC_DCC_BCR] = { 0x84000 }, |
|---|
| 3060 | + [GCC_QREFS_VBG_CAL_BCR] = { 0x88028 }, |
|---|
| 3061 | + [GCC_IPA_BCR] = { 0x89000 }, |
|---|
| 3062 | + [GCC_GLM_BCR] = { 0x8b000 }, |
|---|
| 3063 | + [GCC_SKL_BCR] = { 0x8c000 }, |
|---|
| 3064 | + [GCC_MSMPU_BCR] = { 0x8d000 }, |
|---|
| 2765 | 3065 | }; |
|---|
| 2766 | 3066 | |
|---|
| 2767 | 3067 | static const struct regmap_config gcc_msm8998_regmap_config = { |
|---|
| .. | .. |
|---|
| 2772 | 3072 | .fast_io = true, |
|---|
| 2773 | 3073 | }; |
|---|
| 2774 | 3074 | |
|---|
| 3075 | +static struct clk_hw *gcc_msm8998_hws[] = { |
|---|
| 3076 | + &xo.hw, |
|---|
| 3077 | +}; |
|---|
| 3078 | + |
|---|
| 2775 | 3079 | static const struct qcom_cc_desc gcc_msm8998_desc = { |
|---|
| 2776 | 3080 | .config = &gcc_msm8998_regmap_config, |
|---|
| 2777 | 3081 | .clks = gcc_msm8998_clocks, |
|---|
| .. | .. |
|---|
| 2780 | 3084 | .num_resets = ARRAY_SIZE(gcc_msm8998_resets), |
|---|
| 2781 | 3085 | .gdscs = gcc_msm8998_gdscs, |
|---|
| 2782 | 3086 | .num_gdscs = ARRAY_SIZE(gcc_msm8998_gdscs), |
|---|
| 3087 | + .clk_hws = gcc_msm8998_hws, |
|---|
| 3088 | + .num_clk_hws = ARRAY_SIZE(gcc_msm8998_hws), |
|---|
| 2783 | 3089 | }; |
|---|
| 2784 | 3090 | |
|---|
| 2785 | 3091 | static int gcc_msm8998_probe(struct platform_device *pdev) |
|---|
| .. | .. |
|---|
| 2813 | 3119 | .driver = { |
|---|
| 2814 | 3120 | .name = "gcc-msm8998", |
|---|
| 2815 | 3121 | .of_match_table = gcc_msm8998_match_table, |
|---|
| 3122 | + .sync_state = clk_sync_state, |
|---|
| 2816 | 3123 | }, |
|---|
| 2817 | 3124 | }; |
|---|
| 2818 | 3125 | |
|---|