Lines Matching defs:ksc
26 struct k210_sysclk *ksc;
289 struct k210_sysclk *ksc;
440 struct k210_sysclk *ksc = pll->ksc;
443 spin_lock_irqsave(&ksc->clk_lock, flags);
445 k210_pll_enable_hw(ksc->regs, pll);
447 spin_unlock_irqrestore(&ksc->clk_lock, flags);
455 struct k210_sysclk *ksc = pll->ksc;
464 spin_lock_irqsave(&ksc->clk_lock, flags);
472 spin_unlock_irqrestore(&ksc->clk_lock, flags);
510 struct k210_sysclk *ksc = pll->ksc;
514 spin_lock_irqsave(&ksc->clk_lock, flags);
521 spin_unlock_irqrestore(&ksc->clk_lock, flags);
545 struct k210_sysclk *ksc,
549 struct k210_pll *pll = &ksc->plls[pllid];
553 { .hw = &ksc->plls[K210_PLL0].hw },
554 { .hw = &ksc->plls[K210_PLL1].hw },
563 pll->ksc = ksc;
569 struct k210_sysclk *ksc)
574 k210_init_pll(ksc->regs, i, &ksc->plls[i]);
577 ret = k210_register_pll(np, ksc, K210_PLL0, "pll0", 1, &k210_pll_ops);
582 ret = k210_register_pll(np, ksc, K210_PLL1, "pll1", 1, &k210_pll_ops);
589 ret = k210_register_pll(np, ksc, K210_PLL2, "pll2", 3, &k210_pll2_ops);
600 struct k210_sysclk *ksc = to_k210_sysclk(hw);
603 spin_lock_irqsave(&ksc->clk_lock, flags);
605 k210_aclk_set_selector(ksc->regs, index);
607 spin_unlock_irqrestore(&ksc->clk_lock, flags);
614 struct k210_sysclk *ksc = to_k210_sysclk(hw);
617 sel = readl(ksc->regs + K210_SYSCTL_SEL0) & K210_ACLK_SEL;
625 struct k210_sysclk *ksc = to_k210_sysclk(hw);
626 u32 reg = readl(ksc->regs + K210_SYSCTL_SEL0);
648 struct k210_sysclk *ksc)
653 { .hw = &ksc->plls[K210_PLL0].hw },
661 ksc->aclk.init = &init;
663 ret = of_clk_hw_register(np, &ksc->aclk);
677 struct k210_sysclk *ksc = kclk->ksc;
685 spin_lock_irqsave(&ksc->clk_lock, flags);
686 reg = readl(ksc->regs + cfg->gate_reg);
688 writel(reg, ksc->regs + cfg->gate_reg);
689 spin_unlock_irqrestore(&ksc->clk_lock, flags);
697 struct k210_sysclk *ksc = kclk->ksc;
705 spin_lock_irqsave(&ksc->clk_lock, flags);
706 reg = readl(ksc->regs + cfg->gate_reg);
708 writel(reg, ksc->regs + cfg->gate_reg);
709 spin_unlock_irqrestore(&ksc->clk_lock, flags);
715 struct k210_sysclk *ksc = kclk->ksc;
720 spin_lock_irqsave(&ksc->clk_lock, flags);
721 reg = readl(ksc->regs + cfg->mux_reg);
726 writel(reg, ksc->regs + cfg->mux_reg);
727 spin_unlock_irqrestore(&ksc->clk_lock, flags);
735 struct k210_sysclk *ksc = kclk->ksc;
740 spin_lock_irqsave(&ksc->clk_lock, flags);
741 reg = readl(ksc->regs + cfg->mux_reg);
743 spin_unlock_irqrestore(&ksc->clk_lock, flags);
752 struct k210_sysclk *ksc = kclk->ksc;
759 reg = readl(ksc->regs + cfg->div_reg);
791 struct k210_sysclk *ksc, int id,
795 struct k210_clk *kclk = &ksc->clks[id];
809 kclk->ksc = ksc;
824 struct k210_sysclk *ksc, int id)
828 { .hw = &ksc->plls[K210_PLL0].hw }
831 k210_register_clk(np, ksc, id, parent_data, 2, 0);
835 struct k210_sysclk *ksc, int id)
841 k210_register_clk(np, ksc, id, &parent_data, 1, 0);
845 struct k210_sysclk *ksc, int id,
850 .hw = &ksc->plls[pllid].hw,
853 k210_register_clk(np, ksc, id, &parent_data, 1, flags);
857 struct k210_sysclk *ksc, int id,
861 .hw = &ksc->aclk,
864 k210_register_clk(np, ksc, id, &parent_data, 1, flags);
868 struct k210_sysclk *ksc, int id,
872 .hw = &ksc->clks[parent_id].hw,
875 k210_register_clk(np, ksc, id, &parent_data, 1, 0);
881 struct k210_sysclk *ksc = data;
887 return &ksc->clks[idx].hw;
893 struct k210_sysclk *ksc;
896 ksc = kzalloc(sizeof(*ksc), GFP_KERNEL);
897 if (!ksc)
900 spin_lock_init(&ksc->clk_lock);
902 ksc->regs = of_iomap(sysctl_np, 0);
904 if (!ksc->regs) {
909 ret = k210_register_plls(np, ksc);
913 ret = k210_register_aclk(np, ksc);
925 k210_register_aclk_child(np, ksc, K210_CLK_CPU, CLK_IS_CRITICAL);
926 k210_register_aclk_child(np, ksc, K210_CLK_SRAM0, CLK_IS_CRITICAL);
927 k210_register_aclk_child(np, ksc, K210_CLK_SRAM1, CLK_IS_CRITICAL);
928 k210_register_pll_child(np, ksc, K210_CLK_AI, K210_PLL1,
932 k210_register_aclk_child(np, ksc, K210_CLK_DMA, 0);
933 k210_register_aclk_child(np, ksc, K210_CLK_FFT, 0);
934 k210_register_aclk_child(np, ksc, K210_CLK_ROM, 0);
935 k210_register_aclk_child(np, ksc, K210_CLK_DVP, 0);
936 k210_register_aclk_child(np, ksc, K210_CLK_APB0, 0);
937 k210_register_aclk_child(np, ksc, K210_CLK_APB1, 0);
938 k210_register_aclk_child(np, ksc, K210_CLK_APB2, 0);
941 k210_register_pll_child(np, ksc, K210_CLK_SPI0, K210_PLL0, 0);
942 k210_register_pll_child(np, ksc, K210_CLK_SPI1, K210_PLL0, 0);
943 k210_register_pll_child(np, ksc, K210_CLK_SPI2, K210_PLL0, 0);
944 k210_register_pll_child(np, ksc, K210_CLK_I2C0, K210_PLL0, 0);
945 k210_register_pll_child(np, ksc, K210_CLK_I2C1, K210_PLL0, 0);
946 k210_register_pll_child(np, ksc, K210_CLK_I2C2, K210_PLL0, 0);
949 k210_register_pll_child(np, ksc, K210_CLK_I2S0, K210_PLL2, 0);
950 k210_register_pll_child(np, ksc, K210_CLK_I2S1, K210_PLL2, 0);
951 k210_register_pll_child(np, ksc, K210_CLK_I2S2, K210_PLL2, 0);
952 k210_register_pll_child(np, ksc, K210_CLK_I2S0_M, K210_PLL2, 0);
953 k210_register_pll_child(np, ksc, K210_CLK_I2S1_M, K210_PLL2, 0);
954 k210_register_pll_child(np, ksc, K210_CLK_I2S2_M, K210_PLL2, 0);
957 k210_register_in0_child(np, ksc, K210_CLK_WDT0);
958 k210_register_in0_child(np, ksc, K210_CLK_WDT1);
959 k210_register_in0_child(np, ksc, K210_CLK_RTC);
962 k210_register_clk_child(np, ksc, K210_CLK_GPIO, K210_CLK_APB0);
963 k210_register_clk_child(np, ksc, K210_CLK_UART1, K210_CLK_APB0);
964 k210_register_clk_child(np, ksc, K210_CLK_UART2, K210_CLK_APB0);
965 k210_register_clk_child(np, ksc, K210_CLK_UART3, K210_CLK_APB0);
966 k210_register_clk_child(np, ksc, K210_CLK_FPIOA, K210_CLK_APB0);
967 k210_register_clk_child(np, ksc, K210_CLK_SHA, K210_CLK_APB0);
970 k210_register_clk_child(np, ksc, K210_CLK_AES, K210_CLK_APB1);
971 k210_register_clk_child(np, ksc, K210_CLK_OTP, K210_CLK_APB1);
974 k210_register_mux_clk(np, ksc, K210_CLK_SPI3);
975 k210_register_mux_clk(np, ksc, K210_CLK_TIMER0);
976 k210_register_mux_clk(np, ksc, K210_CLK_TIMER1);
977 k210_register_mux_clk(np, ksc, K210_CLK_TIMER2);
981 if (ksc->clks[i].id != i)
985 ret = of_clk_add_hw_provider(np, k210_clk_hw_onecell_get, ksc);
992 np, clk_hw_get_rate(&ksc->clks[K210_CLK_CPU].hw) / 1000000);