pll2
K230_CLK_PLL_FORMAT(pll2, 2, CLK_IS_CRITICAL, NULL);
&pll2,
K230_CLK_FIXED_FACTOR_FORMAT(pll2_div2, 1, 2, 0, &pll2.hw);
K230_CLK_FIXED_FACTOR_FORMAT(pll2_div3, 1, 3, 0, &pll2.hw);
K230_CLK_FIXED_FACTOR_FORMAT(pll2_div4, 1, 4, 0, &pll2.hw);
clks[pll2] = mxs_clk_pll("pll2", "ref_xtal", PLL2CTRL0, 23, 50000000);
{ .hw = &pll2.clkr.hw },
{ .hw = &pll2.clkr.hw },
{ .hw = &pll2.clkr.hw },
[PLL2] = &pll2.clkr,
[PLL2] = &pll2.clkr,
static struct clk_pll pll2 = {
CCU_PLL_DEFINE(pll2, pll2_rate_tbl, APBS_PLL2_SWCR1, APBS_PLL2_SWCR3, MPMU_POSR, POSR_PLL2_LOCK,
CCU_FACTOR_GATE_DEFINE(pll2_d1, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(0), 1, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d2, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(1), 2, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d3, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(2), 3, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d4, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(3), 4, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d5, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(4), 5, 1);
[CLK_PLL2] = &pll2.common.hw,
CCU_FACTOR_GATE_DEFINE(pll2_d6, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(5), 6, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d7, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(6), 7, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d8, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(7), 8, 1);
[CLK_PLL2] = &pll2.common.hw,
CCU_PLLA_DEFINE(pll2, pll2_rate_tbl, APBS_PLL2_SWCR1, APBS_PLL2_SWCR2, APBS_PLL2_SWCR3,
CCU_FACTOR_GATE_DEFINE(pll2_d1, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(0), 1, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d2, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(1), 2, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d3, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(2), 3, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d4, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(3), 4, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d5, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(4), 5, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d6, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(5), 6, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d7, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(6), 7, 1);
CCU_FACTOR_GATE_DEFINE(pll2_d8, CCU_PARENT_HW(pll2), APBS_PLL2_SWCR2, BIT(7), 8, 1);
static void get_pll_config(struct drm_display_mode *mode, u32 *pll1, u32 *pll2)
*pll2 = CRT_PLL2_HS_25MHZ;
*pll2 = hibmc_pll_table[idx].pll2_config_value;
u32 pll2; /* bit[63:32] of PLL */
get_pll_config(mode, &pll1, &pll2);
writel(pll2, priv->mmio + CRT_PLL2_HS);
PORT_PLL_M2_FRAC_MASK, hw_state->pll2);
hw_state->pll2 = intel_de_read(display, BXT_PORT_PLL(phy, ch, 2));
hw_state->pll2 &= PORT_PLL_M2_FRAC_MASK;
hw_state->pll2 = PORT_PLL_M2_FRAC(clk_div->m2 & 0x3fffff);
hw_state->pll2);
hw_state->pll0, hw_state->pll1, hw_state->pll2, hw_state->pll3,
a->pll2 == b->pll2 &&
u32 ebb0, ebb4, pll0, pll1, pll2, pll3, pll6, pll8, pll9, pll10, pcsdw12;
uint32_t pll2, struct nvkm_pll_vals *pllvals)
pllvals->NM1 = pll2 & 0xffff;
pllvals->NM2 = pll2 >> 16;
if (nv_two_reg_pll(dev) && pll2 & NV31_RAMDAC_ENABLE_VCO2)
pllvals->NM2 = pll2 & 0xffff;
uint32_t reg1, pll1, pll2 = 0;
pll2 = nvif_rd32(device, reg1 + 4);
pll2 = nvif_rd32(device, reg2);
pll2 = 0;
pll2 = 0;
nouveau_hw_decode_pll(dev, reg1, pll1, pll2, pllvals);
uint32_t pll2 = (oldpll2 & 0x7fff0000) | 1 << 31 | pv->NM2;
pll2 = 0;
pll2 |= 0x011f;
if (oldpll1 == pll1 && oldpll2 == pll2)
nvkm_wr32(device, reg2, pll2);
value = tegra_sor_readl(sor, sor->soc->regs->pll2);
tegra_sor_writel(sor, value, sor->soc->regs->pll2);
value = tegra_sor_readl(sor, sor->soc->regs->pll2);
tegra_sor_writel(sor, value, sor->soc->regs->pll2);
value = tegra_sor_readl(sor, sor->soc->regs->pll2);
tegra_sor_writel(sor, value, sor->soc->regs->pll2);
value = tegra_sor_readl(sor, sor->soc->regs->pll2);
tegra_sor_writel(sor, value, sor->soc->regs->pll2);
value = tegra_sor_readl(sor, sor->soc->regs->pll2);
tegra_sor_writel(sor, value, sor->soc->regs->pll2);
value = tegra_sor_readl(sor, sor->soc->regs->pll2);
tegra_sor_writel(sor, value, sor->soc->regs->pll2);
value = tegra_sor_readl(sor, sor->soc->regs->pll2);
tegra_sor_writel(sor, value, sor->soc->regs->pll2);
value = tegra_sor_readl(sor, sor->soc->regs->pll2);
tegra_sor_writel(sor, value, sor->soc->regs->pll2);
.pll2 = 0x19,
.pll2 = 0x19,
.pll2 = 0x165,
.pll2 = 0x16b,
unsigned int pll2;
const struct ov7251_pll2_cfg *pll2;
.pll2 = &ov7251_pll2_cfg_19_2_mhz,
.pll2 = &ov7251_pll2_cfg_24_mhz,
configs->pll2->pre_div);
configs->pll2->mult);
configs->pll2->div);
configs->pll2->sys_div);
configs->pll2->adc_div);
static unsigned long decode_div(unsigned long pll2, unsigned long val,
pll2 = 288 * MHZ;
return pll2 / div_tab[(val >> lshft) & mask];
unsigned long pll2 = 0;
pll2 = 336 * MHZ;
pll2 = 288 * MHZ;
pll2 = 240 * MHZ;
pll2 = 192 * MHZ;
sdclk0 = (misct & (1<<12)) ? pll2 : 288 * MHZ;
sdclk1 = (misct & (1<<20)) ? pll2 : 288 * MHZ;
fmt_freq(pll2), sdclk0, sdclk1);
fmt_freq(decode_div(pll2, pm0, 24, 1<<29, 31)),
fmt_freq(decode_div(pll2, pm0, 16, 1<<20, 15)),
fmt_freq(decode_div(pll2, pm0, 8, 1<<12, 15)),
fmt_freq(decode_div(pll2, pm0, 0, 1<<4, 15)));
fmt_freq(decode_div(pll2, pm1, 24, 1<<29, 31)),
fmt_freq(decode_div(pll2, pm1, 16, 1<<20, 15)),
fmt_freq(decode_div(pll2, pm1, 8, 1<<12, 15)),
fmt_freq(decode_div(pll2, pm1, 0, 1<<4, 15)));
u16 pll2;
ret |= fs210x_reg_write(fs210x, FS210X_A2H_PLLCTRL2, pll_div->pll2);
struct pll pll2;
pll_init(&tscs454->pll2, 2);
aif->pll = &tscs454->pll2;
tscs454->internal_rate.pll = &tscs454->pll2;
mutex_lock(&tscs454->pll2.lock);
mutex_unlock(&tscs454->pll2.lock);
mutex_lock(&tscs454->pll2.lock);
users = tscs454->pll2.users;
mutex_unlock(&tscs454->pll2.lock);