|
16 | 16 | #include "clk-regmap.h"
|
17 | 17 | #include "clk-regmap-divider.h"
|
18 | 18 | #include "clk-regmap-mux.h"
|
| 19 | +#include "gdsc.h" |
19 | 20 | #include "reset.h"
|
20 | 21 |
|
21 | 22 | enum {
|
@@ -3452,6 +3453,90 @@ static struct clk_branch gcc_video_axi1_clk = {
|
3452 | 3453 | },
|
3453 | 3454 | };
|
3454 | 3455 |
|
| 3456 | +static struct gdsc pcie_0_gdsc = { |
| 3457 | + .gdscr = 0x6b004, |
| 3458 | + .pd = { |
| 3459 | + .name = "pcie_0_gdsc", |
| 3460 | + }, |
| 3461 | + .pwrsts = PWRSTS_OFF_ON, |
| 3462 | +}; |
| 3463 | + |
| 3464 | +static struct gdsc pcie_1_gdsc = { |
| 3465 | + .gdscr = 0x8d004, |
| 3466 | + .pd = { |
| 3467 | + .name = "pcie_1_gdsc", |
| 3468 | + }, |
| 3469 | + .pwrsts = PWRSTS_OFF_ON, |
| 3470 | +}; |
| 3471 | + |
| 3472 | +static struct gdsc ufs_card_gdsc = { |
| 3473 | + .gdscr = 0x75004, |
| 3474 | + .pd = { |
| 3475 | + .name = "ufs_card_gdsc", |
| 3476 | + }, |
| 3477 | + .pwrsts = PWRSTS_OFF_ON, |
| 3478 | +}; |
| 3479 | + |
| 3480 | +static struct gdsc ufs_phy_gdsc = { |
| 3481 | + .gdscr = 0x77004, |
| 3482 | + .pd = { |
| 3483 | + .name = "ufs_phy_gdsc", |
| 3484 | + }, |
| 3485 | + .pwrsts = PWRSTS_OFF_ON, |
| 3486 | +}; |
| 3487 | + |
| 3488 | +static struct gdsc usb30_prim_gdsc = { |
| 3489 | + .gdscr = 0xf004, |
| 3490 | + .pd = { |
| 3491 | + .name = "usb30_prim_gdsc", |
| 3492 | + }, |
| 3493 | + .pwrsts = PWRSTS_OFF_ON, |
| 3494 | +}; |
| 3495 | + |
| 3496 | +static struct gdsc usb30_sec_gdsc = { |
| 3497 | + .gdscr = 0x10004, |
| 3498 | + .pd = { |
| 3499 | + .name = "usb30_sec_gdsc", |
| 3500 | + }, |
| 3501 | + .pwrsts = PWRSTS_OFF_ON, |
| 3502 | +}; |
| 3503 | + |
| 3504 | +static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = { |
| 3505 | + .gdscr = 0x7d050, |
| 3506 | + .pd = { |
| 3507 | + .name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc", |
| 3508 | + }, |
| 3509 | + .pwrsts = PWRSTS_OFF_ON, |
| 3510 | + .flags = VOTABLE, |
| 3511 | +}; |
| 3512 | + |
| 3513 | +static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = { |
| 3514 | + .gdscr = 0x7d058, |
| 3515 | + .pd = { |
| 3516 | + .name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc", |
| 3517 | + }, |
| 3518 | + .pwrsts = PWRSTS_OFF_ON, |
| 3519 | + .flags = VOTABLE, |
| 3520 | +}; |
| 3521 | + |
| 3522 | +static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc = { |
| 3523 | + .gdscr = 0x7d054, |
| 3524 | + .pd = { |
| 3525 | + .name = "hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc", |
| 3526 | + }, |
| 3527 | + .pwrsts = PWRSTS_OFF_ON, |
| 3528 | + .flags = VOTABLE, |
| 3529 | +}; |
| 3530 | + |
| 3531 | +static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc = { |
| 3532 | + .gdscr = 0x7d06c, |
| 3533 | + .pd = { |
| 3534 | + .name = "hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc", |
| 3535 | + }, |
| 3536 | + .pwrsts = PWRSTS_OFF_ON, |
| 3537 | + .flags = VOTABLE, |
| 3538 | +}; |
| 3539 | + |
3455 | 3540 | static struct clk_regmap *gcc_sm8350_clocks[] = {
|
3456 | 3541 | [GCC_AGGRE_NOC_PCIE_0_AXI_CLK] = &gcc_aggre_noc_pcie_0_axi_clk.clkr,
|
3457 | 3542 | [GCC_AGGRE_NOC_PCIE_1_AXI_CLK] = &gcc_aggre_noc_pcie_1_axi_clk.clkr,
|
@@ -3646,6 +3731,19 @@ static struct clk_regmap *gcc_sm8350_clocks[] = {
|
3646 | 3731 | [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
|
3647 | 3732 | };
|
3648 | 3733 |
|
| 3734 | +static struct gdsc *gcc_sm8350_gdscs[] = { |
| 3735 | + [PCIE_0_GDSC] = &pcie_0_gdsc, |
| 3736 | + [PCIE_1_GDSC] = &pcie_1_gdsc, |
| 3737 | + [UFS_CARD_GDSC] = &ufs_card_gdsc, |
| 3738 | + [UFS_PHY_GDSC] = &ufs_phy_gdsc, |
| 3739 | + [USB30_PRIM_GDSC] = &usb30_prim_gdsc, |
| 3740 | + [USB30_SEC_GDSC] = &usb30_sec_gdsc, |
| 3741 | + [HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc, |
| 3742 | + [HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc, |
| 3743 | + [HLOS1_VOTE_MMNOC_MMU_TBU_SF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc, |
| 3744 | + [HLOS1_VOTE_MMNOC_MMU_TBU_SF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc, |
| 3745 | +}; |
| 3746 | + |
3649 | 3747 | static const struct qcom_reset_map gcc_sm8350_resets[] = {
|
3650 | 3748 | [GCC_CAMERA_BCR] = { 0x26000 },
|
3651 | 3749 | [GCC_DISPLAY_BCR] = { 0x27000 },
|
@@ -3724,6 +3822,8 @@ static const struct qcom_cc_desc gcc_sm8350_desc = {
|
3724 | 3822 | .num_clks = ARRAY_SIZE(gcc_sm8350_clocks),
|
3725 | 3823 | .resets = gcc_sm8350_resets,
|
3726 | 3824 | .num_resets = ARRAY_SIZE(gcc_sm8350_resets),
|
| 3825 | + .gdscs = gcc_sm8350_gdscs, |
| 3826 | + .num_gdscs = ARRAY_SIZE(gcc_sm8350_gdscs), |
3727 | 3827 | };
|
3728 | 3828 |
|
3729 | 3829 | static const struct of_device_id gcc_sm8350_match_table[] = {
|
|
0 commit comments