| /kernel/linux/linux-5.10/drivers/clk/hisilicon/ |
| D | clkgate-separated.c | 34 struct clkgate_separated *sclk; in clkgate_separated_enable() local 38 sclk = container_of(hw, struct clkgate_separated, hw); in clkgate_separated_enable() 39 if (sclk->lock) in clkgate_separated_enable() 40 spin_lock_irqsave(sclk->lock, flags); in clkgate_separated_enable() 41 reg = BIT(sclk->bit_idx); in clkgate_separated_enable() 42 writel_relaxed(reg, sclk->enable); in clkgate_separated_enable() 43 readl_relaxed(sclk->enable + CLKGATE_SEPERATED_STATUS); in clkgate_separated_enable() 44 if (sclk->lock) in clkgate_separated_enable() 45 spin_unlock_irqrestore(sclk->lock, flags); in clkgate_separated_enable() 51 struct clkgate_separated *sclk; in clkgate_separated_disable() local [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/meson/ |
| D | sclk-div.c | 23 #include "sclk-div.h" 31 static int sclk_div_maxval(struct meson_sclk_div_data *sclk) in sclk_div_maxval() argument 33 return (1 << sclk->div.width) - 1; in sclk_div_maxval() 36 static int sclk_div_maxdiv(struct meson_sclk_div_data *sclk) in sclk_div_maxdiv() argument 38 return sclk_div_maxval(sclk) + 1; in sclk_div_maxdiv() 51 struct meson_sclk_div_data *sclk) in sclk_div_bestdiv() argument 61 maxdiv = sclk_div_maxdiv(sclk); in sclk_div_bestdiv() 92 bestdiv = sclk_div_maxdiv(sclk); in sclk_div_bestdiv() 103 struct meson_sclk_div_data *sclk = meson_sclk_div_data(clk); in sclk_div_round_rate() local 106 div = sclk_div_bestdiv(hw, rate, prate, sclk); in sclk_div_round_rate() [all …]
|
| /kernel/linux/linux-4.19/drivers/clk/meson/ |
| D | sclk-div.c | 27 static int sclk_div_maxval(struct meson_sclk_div_data *sclk) in sclk_div_maxval() argument 29 return (1 << sclk->div.width) - 1; in sclk_div_maxval() 32 static int sclk_div_maxdiv(struct meson_sclk_div_data *sclk) in sclk_div_maxdiv() argument 34 return sclk_div_maxval(sclk) + 1; in sclk_div_maxdiv() 47 struct meson_sclk_div_data *sclk) in sclk_div_bestdiv() argument 57 maxdiv = sclk_div_maxdiv(sclk); in sclk_div_bestdiv() 88 bestdiv = sclk_div_maxdiv(sclk); in sclk_div_bestdiv() 99 struct meson_sclk_div_data *sclk = meson_sclk_div_data(clk); in sclk_div_round_rate() local 102 div = sclk_div_bestdiv(hw, rate, prate, sclk); in sclk_div_round_rate() 108 struct meson_sclk_div_data *sclk) in sclk_apply_ratio() argument [all …]
|
| /kernel/linux/linux-4.19/drivers/clk/hisilicon/ |
| D | clkgate-separated.c | 48 struct clkgate_separated *sclk; in clkgate_separated_enable() local 52 sclk = container_of(hw, struct clkgate_separated, hw); in clkgate_separated_enable() 53 if (sclk->lock) in clkgate_separated_enable() 54 spin_lock_irqsave(sclk->lock, flags); in clkgate_separated_enable() 55 reg = BIT(sclk->bit_idx); in clkgate_separated_enable() 56 writel_relaxed(reg, sclk->enable); in clkgate_separated_enable() 57 readl_relaxed(sclk->enable + CLKGATE_SEPERATED_STATUS); in clkgate_separated_enable() 58 if (sclk->lock) in clkgate_separated_enable() 59 spin_unlock_irqrestore(sclk->lock, flags); in clkgate_separated_enable() 65 struct clkgate_separated *sclk; in clkgate_separated_disable() local [all …]
|
| /kernel/linux/linux-4.19/drivers/clk/ |
| D | clk-scmi.c | 103 static int scmi_clk_ops_init(struct device *dev, struct scmi_clk *sclk) in scmi_clk_ops_init() argument 112 .name = sclk->info->name, in scmi_clk_ops_init() 115 sclk->hw.init = &init; in scmi_clk_ops_init() 116 ret = devm_clk_hw_register(dev, &sclk->hw); in scmi_clk_ops_init() 120 if (sclk->info->rate_discrete) { in scmi_clk_ops_init() 121 int num_rates = sclk->info->list.num_rates; in scmi_clk_ops_init() 126 min_rate = sclk->info->list.rates[0]; in scmi_clk_ops_init() 127 max_rate = sclk->info->list.rates[num_rates - 1]; in scmi_clk_ops_init() 129 min_rate = sclk->info->range.min_rate; in scmi_clk_ops_init() 130 max_rate = sclk->info->range.max_rate; in scmi_clk_ops_init() [all …]
|
| D | clk-scpi.c | 151 struct scpi_clk *sclk, const char *name) in scpi_clk_ops_init() argument 161 sclk->hw.init = &init; in scpi_clk_ops_init() 162 sclk->scpi_ops = get_scpi_ops(); in scpi_clk_ops_init() 165 sclk->info = sclk->scpi_ops->dvfs_get_info(sclk->id); in scpi_clk_ops_init() 166 if (IS_ERR(sclk->info)) in scpi_clk_ops_init() 167 return PTR_ERR(sclk->info); in scpi_clk_ops_init() 169 if (sclk->scpi_ops->clk_get_range(sclk->id, &min, &max) || !max) in scpi_clk_ops_init() 175 ret = devm_clk_hw_register(dev, &sclk->hw); in scpi_clk_ops_init() 177 clk_hw_set_rate_range(&sclk->hw, min, max); in scpi_clk_ops_init() 189 struct scpi_clk *sclk; in scpi_of_clk_src_get() local [all …]
|
| D | clk-nomadik.c | 302 struct clk_src *sclk = to_src(hw); in src_clk_enable() local 303 u32 enreg = sclk->group1 ? SRC_PCKEN1 : SRC_PCKEN0; in src_clk_enable() 304 u32 sreg = sclk->group1 ? SRC_PCKSR1 : SRC_PCKSR0; in src_clk_enable() 306 writel(sclk->clkbit, src_base + enreg); in src_clk_enable() 308 while (!(readl(src_base + sreg) & sclk->clkbit)) in src_clk_enable() 315 struct clk_src *sclk = to_src(hw); in src_clk_disable() local 316 u32 disreg = sclk->group1 ? SRC_PCKDIS1 : SRC_PCKDIS0; in src_clk_disable() 317 u32 sreg = sclk->group1 ? SRC_PCKSR1 : SRC_PCKSR0; in src_clk_disable() 319 writel(sclk->clkbit, src_base + disreg); in src_clk_disable() 321 while (readl(src_base + sreg) & sclk->clkbit) in src_clk_disable() [all …]
|
| D | clk-u300.c | 455 static void syscon_block_reset_enable(struct clk_syscon *sclk) in syscon_block_reset_enable() argument 461 if (!sclk->res_reg) in syscon_block_reset_enable() 464 val = readw(sclk->res_reg); in syscon_block_reset_enable() 465 val |= BIT(sclk->res_bit); in syscon_block_reset_enable() 466 writew(val, sclk->res_reg); in syscon_block_reset_enable() 468 sclk->reset = true; in syscon_block_reset_enable() 471 static void syscon_block_reset_disable(struct clk_syscon *sclk) in syscon_block_reset_disable() argument 477 if (!sclk->res_reg) in syscon_block_reset_disable() 480 val = readw(sclk->res_reg); in syscon_block_reset_disable() 481 val &= ~BIT(sclk->res_bit); in syscon_block_reset_disable() [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/ |
| D | clk-scmi.c | 103 static int scmi_clk_ops_init(struct device *dev, struct scmi_clk *sclk) in scmi_clk_ops_init() argument 112 .name = sclk->info->name, in scmi_clk_ops_init() 115 sclk->hw.init = &init; in scmi_clk_ops_init() 116 ret = devm_clk_hw_register(dev, &sclk->hw); in scmi_clk_ops_init() 120 if (sclk->info->rate_discrete) { in scmi_clk_ops_init() 121 int num_rates = sclk->info->list.num_rates; in scmi_clk_ops_init() 126 min_rate = sclk->info->list.rates[0]; in scmi_clk_ops_init() 127 max_rate = sclk->info->list.rates[num_rates - 1]; in scmi_clk_ops_init() 129 min_rate = sclk->info->range.min_rate; in scmi_clk_ops_init() 130 max_rate = sclk->info->range.max_rate; in scmi_clk_ops_init() [all …]
|
| D | clk-scpi.c | 140 struct scpi_clk *sclk, const char *name) in scpi_clk_ops_init() argument 150 sclk->hw.init = &init; in scpi_clk_ops_init() 151 sclk->scpi_ops = get_scpi_ops(); in scpi_clk_ops_init() 154 sclk->info = sclk->scpi_ops->dvfs_get_info(sclk->id); in scpi_clk_ops_init() 155 if (IS_ERR(sclk->info)) in scpi_clk_ops_init() 156 return PTR_ERR(sclk->info); in scpi_clk_ops_init() 158 if (sclk->scpi_ops->clk_get_range(sclk->id, &min, &max) || !max) in scpi_clk_ops_init() 164 ret = devm_clk_hw_register(dev, &sclk->hw); in scpi_clk_ops_init() 166 clk_hw_set_rate_range(&sclk->hw, min, max); in scpi_clk_ops_init() 178 struct scpi_clk *sclk; in scpi_of_clk_src_get() local [all …]
|
| D | clk-nomadik.c | 302 struct clk_src *sclk = to_src(hw); in src_clk_enable() local 303 u32 enreg = sclk->group1 ? SRC_PCKEN1 : SRC_PCKEN0; in src_clk_enable() 304 u32 sreg = sclk->group1 ? SRC_PCKSR1 : SRC_PCKSR0; in src_clk_enable() 306 writel(sclk->clkbit, src_base + enreg); in src_clk_enable() 308 while (!(readl(src_base + sreg) & sclk->clkbit)) in src_clk_enable() 315 struct clk_src *sclk = to_src(hw); in src_clk_disable() local 316 u32 disreg = sclk->group1 ? SRC_PCKDIS1 : SRC_PCKDIS0; in src_clk_disable() 317 u32 sreg = sclk->group1 ? SRC_PCKSR1 : SRC_PCKSR0; in src_clk_disable() 319 writel(sclk->clkbit, src_base + disreg); in src_clk_disable() 321 while (readl(src_base + sreg) & sclk->clkbit) in src_clk_disable() [all …]
|
| D | clk-u300.c | 455 static void syscon_block_reset_enable(struct clk_syscon *sclk) in syscon_block_reset_enable() argument 461 if (!sclk->res_reg) in syscon_block_reset_enable() 464 val = readw(sclk->res_reg); in syscon_block_reset_enable() 465 val |= BIT(sclk->res_bit); in syscon_block_reset_enable() 466 writew(val, sclk->res_reg); in syscon_block_reset_enable() 468 sclk->reset = true; in syscon_block_reset_enable() 471 static void syscon_block_reset_disable(struct clk_syscon *sclk) in syscon_block_reset_disable() argument 477 if (!sclk->res_reg) in syscon_block_reset_disable() 480 val = readw(sclk->res_reg); in syscon_block_reset_disable() 481 val &= ~BIT(sclk->res_bit); in syscon_block_reset_disable() [all …]
|
| /kernel/linux/linux-4.19/drivers/clk/microchip/ |
| D | clk-core.c | 764 /* System mux clock(aka SCLK) */ 779 struct pic32_sys_clk *sclk = clkhw_to_sys_clk(hw); in sclk_get_rate() local 782 div = (readl(sclk->slew_reg) >> SLEW_SYSDIV_SHIFT) & SLEW_SYSDIV; in sclk_get_rate() 797 struct pic32_sys_clk *sclk = clkhw_to_sys_clk(hw); in sclk_set_rate() local 804 spin_lock_irqsave(&sclk->core->reg_lock, flags); in sclk_set_rate() 807 v = readl(sclk->slew_reg); in sclk_set_rate() 813 writel(v, sclk->slew_reg); in sclk_set_rate() 816 err = readl_poll_timeout_atomic(sclk->slew_reg, v, in sclk_set_rate() 819 spin_unlock_irqrestore(&sclk->core->reg_lock, flags); in sclk_set_rate() 826 struct pic32_sys_clk *sclk = clkhw_to_sys_clk(hw); in sclk_get_parent() local [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/microchip/ |
| D | clk-core.c | 759 /* System mux clock(aka SCLK) */ 774 struct pic32_sys_clk *sclk = clkhw_to_sys_clk(hw); in sclk_get_rate() local 777 div = (readl(sclk->slew_reg) >> SLEW_SYSDIV_SHIFT) & SLEW_SYSDIV; in sclk_get_rate() 792 struct pic32_sys_clk *sclk = clkhw_to_sys_clk(hw); in sclk_set_rate() local 799 spin_lock_irqsave(&sclk->core->reg_lock, flags); in sclk_set_rate() 802 v = readl(sclk->slew_reg); in sclk_set_rate() 808 writel(v, sclk->slew_reg); in sclk_set_rate() 811 err = readl_poll_timeout_atomic(sclk->slew_reg, v, in sclk_set_rate() 814 spin_unlock_irqrestore(&sclk->core->reg_lock, flags); in sclk_set_rate() 821 struct pic32_sys_clk *sclk = clkhw_to_sys_clk(hw); in sclk_get_parent() local [all …]
|
| /kernel/linux/linux-4.19/drivers/gpu/drm/nouveau/nvkm/subdev/clk/ |
| D | gk104.c | 68 u32 sclk; in read_pll() local 77 sclk = device->crystal; in read_pll() 81 sclk = read_pll(clk, 0x132020); in read_pll() 85 sclk = read_div(clk, 0, 0x137320, 0x137330); in read_pll() 92 sclk = read_div(clk, (pll & 0xff) / 0x20, 0x137120, 0x137140); in read_pll() 101 sclk = (sclk * N) + (((u16)(fN + 4096) * sclk) >> 13); in read_pll() 102 return sclk / (M * P); in read_pll() 121 u32 sclk = read_vco(clk, dsrc + (doff * 4)); in read_div() local 123 return (sclk * 2) / sdiv; in read_div() 149 u32 sclk, sdiv; in read_clk() local [all …]
|
| D | gf100.c | 67 u32 sclk; in read_pll() local 75 sclk = device->crystal; in read_pll() 79 sclk = nvkm_clk_read(&clk->base, nv_clk_src_mpllsrc); in read_pll() 82 sclk = nvkm_clk_read(&clk->base, nv_clk_src_mpllsrcref); in read_pll() 88 sclk = read_div(clk, (pll & 0xff) / 0x20, 0x137120, 0x137140); in read_pll() 94 return sclk * N / M / P; in read_pll() 102 u32 sclk, sctl, sdiv = 2; in read_div() local 112 sclk = read_vco(clk, dsrc + (doff * 4)); in read_div() 126 return (sclk * 2) / sdiv; in read_div() 138 u32 sclk, sdiv; in read_clk() local [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/clk/ |
| D | gk104.c | 68 u32 sclk; in read_pll() local 77 sclk = device->crystal; in read_pll() 81 sclk = read_pll(clk, 0x132020); in read_pll() 85 sclk = read_div(clk, 0, 0x137320, 0x137330); in read_pll() 92 sclk = read_div(clk, (pll & 0xff) / 0x20, 0x137120, 0x137140); in read_pll() 101 sclk = (sclk * N) + (((u16)(fN + 4096) * sclk) >> 13); in read_pll() 102 return sclk / (M * P); in read_pll() 121 u32 sclk = read_vco(clk, dsrc + (doff * 4)); in read_div() local 123 return (sclk * 2) / sdiv; in read_div() 149 u32 sclk, sdiv; in read_clk() local [all …]
|
| D | gf100.c | 67 u32 sclk; in read_pll() local 75 sclk = device->crystal; in read_pll() 79 sclk = nvkm_clk_read(&clk->base, nv_clk_src_mpllsrc); in read_pll() 82 sclk = nvkm_clk_read(&clk->base, nv_clk_src_mpllsrcref); in read_pll() 88 sclk = read_div(clk, (pll & 0xff) / 0x20, 0x137120, 0x137140); in read_pll() 94 return sclk * N / M / P; in read_pll() 102 u32 sclk, sctl, sdiv = 2; in read_div() local 112 sclk = read_vco(clk, dsrc + (doff * 4)); in read_div() 126 return (sclk * 2) / sdiv; in read_div() 138 u32 sclk, sdiv; in read_clk() local [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/radeon/ |
| D | rv730_dpm.c | 41 RV770_SMC_SCLK_VALUE *sclk) in rv730_populate_sclk_value() argument 108 sclk->sclk_value = cpu_to_be32(engine_clock); in rv730_populate_sclk_value() 109 sclk->vCG_SPLL_FUNC_CNTL = cpu_to_be32(spll_func_cntl); in rv730_populate_sclk_value() 110 sclk->vCG_SPLL_FUNC_CNTL_2 = cpu_to_be32(spll_func_cntl_2); in rv730_populate_sclk_value() 111 sclk->vCG_SPLL_FUNC_CNTL_3 = cpu_to_be32(spll_func_cntl_3); in rv730_populate_sclk_value() 112 sclk->vCG_SPLL_SPREAD_SPECTRUM = cpu_to_be32(cg_spll_spread_spectrum); in rv730_populate_sclk_value() 113 sclk->vCG_SPLL_SPREAD_SPECTRUM_2 = cpu_to_be32(cg_spll_spread_spectrum_2); in rv730_populate_sclk_value() 304 table->ACPIState.levels[0].sclk.vCG_SPLL_FUNC_CNTL = cpu_to_be32(spll_func_cntl); in rv730_populate_smc_acpi_state() 305 table->ACPIState.levels[0].sclk.vCG_SPLL_FUNC_CNTL_2 = cpu_to_be32(spll_func_cntl_2); in rv730_populate_smc_acpi_state() 306 table->ACPIState.levels[0].sclk.vCG_SPLL_FUNC_CNTL_3 = cpu_to_be32(spll_func_cntl_3); in rv730_populate_smc_acpi_state() [all …]
|
| D | rv770_dpm.c | 271 a_n = (int)state->medium.sclk * pi->lmp + in rv770_populate_smc_t() 272 (int)state->low.sclk * (R600_AH_DFLT - pi->rlp); in rv770_populate_smc_t() 273 a_d = (int)state->low.sclk * (100 - (int)pi->rlp) + in rv770_populate_smc_t() 274 (int)state->medium.sclk * pi->lmp; in rv770_populate_smc_t() 279 a_n = (int)state->high.sclk * pi->lhp + (int)state->medium.sclk * in rv770_populate_smc_t() 281 a_d = (int)state->medium.sclk * (100 - (int)pi->rmp) + in rv770_populate_smc_t() 282 (int)state->high.sclk * pi->lhp; in rv770_populate_smc_t() 485 RV770_SMC_SCLK_VALUE *sclk) in rv770_populate_sclk_value() argument 555 sclk->sclk_value = cpu_to_be32(engine_clock); in rv770_populate_sclk_value() 556 sclk->vCG_SPLL_FUNC_CNTL = cpu_to_be32(spll_func_cntl); in rv770_populate_sclk_value() [all …]
|
| /kernel/linux/linux-4.19/drivers/gpu/drm/radeon/ |
| D | rv730_dpm.c | 42 RV770_SMC_SCLK_VALUE *sclk) in rv730_populate_sclk_value() argument 109 sclk->sclk_value = cpu_to_be32(engine_clock); in rv730_populate_sclk_value() 110 sclk->vCG_SPLL_FUNC_CNTL = cpu_to_be32(spll_func_cntl); in rv730_populate_sclk_value() 111 sclk->vCG_SPLL_FUNC_CNTL_2 = cpu_to_be32(spll_func_cntl_2); in rv730_populate_sclk_value() 112 sclk->vCG_SPLL_FUNC_CNTL_3 = cpu_to_be32(spll_func_cntl_3); in rv730_populate_sclk_value() 113 sclk->vCG_SPLL_SPREAD_SPECTRUM = cpu_to_be32(cg_spll_spread_spectrum); in rv730_populate_sclk_value() 114 sclk->vCG_SPLL_SPREAD_SPECTRUM_2 = cpu_to_be32(cg_spll_spread_spectrum_2); in rv730_populate_sclk_value() 305 table->ACPIState.levels[0].sclk.vCG_SPLL_FUNC_CNTL = cpu_to_be32(spll_func_cntl); in rv730_populate_smc_acpi_state() 306 table->ACPIState.levels[0].sclk.vCG_SPLL_FUNC_CNTL_2 = cpu_to_be32(spll_func_cntl_2); in rv730_populate_smc_acpi_state() 307 table->ACPIState.levels[0].sclk.vCG_SPLL_FUNC_CNTL_3 = cpu_to_be32(spll_func_cntl_3); in rv730_populate_smc_acpi_state() [all …]
|
| D | rv770_dpm.c | 272 a_n = (int)state->medium.sclk * pi->lmp + in rv770_populate_smc_t() 273 (int)state->low.sclk * (R600_AH_DFLT - pi->rlp); in rv770_populate_smc_t() 274 a_d = (int)state->low.sclk * (100 - (int)pi->rlp) + in rv770_populate_smc_t() 275 (int)state->medium.sclk * pi->lmp; in rv770_populate_smc_t() 280 a_n = (int)state->high.sclk * pi->lhp + (int)state->medium.sclk * in rv770_populate_smc_t() 282 a_d = (int)state->medium.sclk * (100 - (int)pi->rmp) + in rv770_populate_smc_t() 283 (int)state->high.sclk * pi->lhp; in rv770_populate_smc_t() 486 RV770_SMC_SCLK_VALUE *sclk) in rv770_populate_sclk_value() argument 556 sclk->sclk_value = cpu_to_be32(engine_clock); in rv770_populate_sclk_value() 557 sclk->vCG_SPLL_FUNC_CNTL = cpu_to_be32(spll_func_cntl); in rv770_populate_sclk_value() [all …]
|
| /kernel/linux/linux-5.10/drivers/tty/serial/8250/ |
| D | 8250_em.c | 24 struct clk *sclk; member 100 priv->sclk = devm_clk_get(&pdev->dev, "sclk"); in serial8250_em_probe() 101 if (IS_ERR(priv->sclk)) { in serial8250_em_probe() 103 return PTR_ERR(priv->sclk); in serial8250_em_probe() 114 clk_prepare_enable(priv->sclk); in serial8250_em_probe() 115 up.port.uartclk = clk_get_rate(priv->sclk); in serial8250_em_probe() 126 clk_disable_unprepare(priv->sclk); in serial8250_em_probe() 140 clk_disable_unprepare(priv->sclk); in serial8250_em_remove()
|
| /kernel/linux/linux-4.19/drivers/tty/serial/8250/ |
| D | 8250_em.c | 24 struct clk *sclk; member 96 priv->sclk = devm_clk_get(&pdev->dev, "sclk"); in serial8250_em_probe() 97 if (IS_ERR(priv->sclk)) { in serial8250_em_probe() 99 return PTR_ERR(priv->sclk); in serial8250_em_probe() 110 clk_prepare_enable(priv->sclk); in serial8250_em_probe() 111 up.port.uartclk = clk_get_rate(priv->sclk); in serial8250_em_probe() 122 clk_disable_unprepare(priv->sclk); in serial8250_em_probe() 136 clk_disable_unprepare(priv->sclk); in serial8250_em_remove()
|
| /kernel/linux/linux-4.19/drivers/gpu/drm/armada/ |
| D | armada_510.c | 38 * Armada510 specific SCLK register selection. 39 * This gets called with sclk = NULL to test whether the mode is 40 * supportable, and again with sclk != NULL to set the clocks up for 48 const struct drm_display_mode *mode, uint32_t *sclk) in armada510_crtc_compute_clock() argument 66 if (sclk) { in armada510_crtc_compute_clock() 76 *sclk = div | SCLK_510_EXTCLK1; in armada510_crtc_compute_clock()
|