| /kernel/linux/linux-6.6/drivers/gpu/drm/i915/display/ |
| D | intel_cx0_phy.c | 1 // SPDX-License-Identifier: MIT 55 drm_WARN_ON(&i915->drm, !enabled); in assert_dc_off() 66 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_cx0_phy_transaction_begin() 75 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_cx0_phy_transaction_end() 99 drm_err_once(&i915->drm, "Failed to bring PHY %c to idle.\n", phy_name(phy)); in intel_cx0_bus_reset() 117 drm_dbg_kms(&i915->drm, "PHY %c Timeout waiting for message ACK. Status: 0x%x\n", in intel_cx0_wait_for_ack() 120 return -ETIMEDOUT; in intel_cx0_wait_for_ack() 124 drm_dbg_kms(&i915->drm, "PHY %c Error occurred during %s command. Status: 0x%x\n", phy_name(phy), in intel_cx0_wait_for_ack() 127 return -EINVAL; in intel_cx0_wait_for_ack() 131 drm_dbg_kms(&i915->drm, "PHY %c Not a %s response. MSGBUS Status: 0x%x.\n", phy_name(phy), in intel_cx0_wait_for_ack() [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/mediatek/ |
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/clk-provider.h> 16 #include "clk-pll.h" 35 struct mtk_clk_pll *pll = to_mtk_clk_pll(hw); in mtk_pll_is_prepared() local 37 return (readl(pll->en_addr) & BIT(pll->data->pll_en_bit)) != 0; in mtk_pll_is_prepared() 40 static unsigned long __mtk_pll_recalc_rate(struct mtk_clk_pll *pll, u32 fin, in __mtk_pll_recalc_rate() argument 43 int pcwbits = pll->data->pcwbits; in __mtk_pll_recalc_rate() 49 /* The fractional part of the PLL divider. */ in __mtk_pll_recalc_rate() 50 ibits = pll->data->pcwibits ? pll->data->pcwibits : INTEGER_BITS; in __mtk_pll_recalc_rate() 52 pcwfbits = pcwbits - ibits; in __mtk_pll_recalc_rate() [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/qcom/ |
| D | clk-alpha-pll.c | 1 // SPDX-License-Identifier: GPL-2.0 9 #include <linux/clk-provider.h> 13 #include "clk-alpha-pll.h" 16 #define PLL_MODE(p) ((p)->offset + 0x0) 36 #define PLL_L_VAL(p) ((p)->offset + (p)->regs[PLL_OFF_L_VAL]) 37 #define PLL_CAL_L_VAL(p) ((p)->offset + (p)->regs[PLL_OFF_CAL_L_VAL]) 38 #define PLL_ALPHA_VAL(p) ((p)->offset + (p)->regs[PLL_OFF_ALPHA_VAL]) 39 #define PLL_ALPHA_VAL_U(p) ((p)->offset + (p)->regs[PLL_OFF_ALPHA_VAL_U]) 41 #define PLL_USER_CTL(p) ((p)->offset + (p)->regs[PLL_OFF_USER_CTL]) 43 # define PLL_POST_DIV_MASK(p) GENMASK((p)->width - 1, 0) [all …]
|
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 #include <linux/clk-provider.h> 17 #include "clk-pll.h" 26 struct clk_pll *pll = to_clk_pll(hw); in clk_pll_enable() local 31 ret = regmap_read(pll->clkr.regmap, pll->mode_reg, &val); in clk_pll_enable() 39 /* Disable PLL bypass mode. */ in clk_pll_enable() 40 ret = regmap_update_bits(pll->clkr.regmap, pll->mode_reg, PLL_BYPASSNL, in clk_pll_enable() 47 * de-asserting the reset. Delay 10us just to be safe. in clk_pll_enable() 51 /* De-assert active-low PLL reset. */ in clk_pll_enable() 52 ret = regmap_update_bits(pll->clkr.regmap, pll->mode_reg, PLL_RESET_N, in clk_pll_enable() [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/tegra/ |
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 #include <linux/clk-provider.h> 31 #define PLL_MISC_CPCON_MASK ((1 << PLL_MISC_CPCON_WIDTH) - 1) 34 #define PLL_MISC_LFCON_MASK ((1 << PLL_MISC_LFCON_WIDTH) - 1) 37 #define PLL_MISC_VCOCON_MASK ((1 << PLL_MISC_VCOCON_WIDTH) - 1) 230 #define pll_readl(offset, p) readl_relaxed(p->clk_base + offset) 231 #define pll_readl_base(p) pll_readl(p->params->base_reg, p) 232 #define pll_readl_misc(p) pll_readl(p->params->misc_reg, p) 233 #define pll_override_readl(offset, p) readl_relaxed(p->pmc + offset) 234 #define pll_readl_sdm_din(p) pll_readl(p->params->sdm_din_reg, p) [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/tegra/ |
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 #include <linux/clk-provider.h> 31 #define PLL_MISC_CPCON_MASK ((1 << PLL_MISC_CPCON_WIDTH) - 1) 34 #define PLL_MISC_LFCON_MASK ((1 << PLL_MISC_LFCON_WIDTH) - 1) 37 #define PLL_MISC_VCOCON_MASK ((1 << PLL_MISC_VCOCON_WIDTH) - 1) 230 #define pll_readl(offset, p) readl_relaxed(p->clk_base + offset) 231 #define pll_readl_base(p) pll_readl(p->params->base_reg, p) 232 #define pll_readl_misc(p) pll_readl(p->params->misc_reg, p) 233 #define pll_override_readl(offset, p) readl_relaxed(p->pmc + offset) 234 #define pll_readl_sdm_din(p) pll_readl(p->params->sdm_din_reg, p) [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/msm/dsi/pll/ |
| D | dsi_pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2012-2015, The Linux Foundation. All rights reserved. 8 static int dsi_pll_enable(struct msm_dsi_pll *pll) in dsi_pll_enable() argument 16 if (unlikely(pll->pll_on)) in dsi_pll_enable() 20 for (i = 0; i < pll->en_seq_cnt; i++) { in dsi_pll_enable() 21 ret = pll->enable_seqs[i](pll); in dsi_pll_enable() 22 DBG("DSI PLL %s after sequence #%d", in dsi_pll_enable() 29 DRM_ERROR("DSI PLL failed to lock\n"); in dsi_pll_enable() 33 pll->pll_on = true; in dsi_pll_enable() 38 static void dsi_pll_disable(struct msm_dsi_pll *pll) in dsi_pll_disable() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/mediatek/ |
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 14 #include "clk-mtk.h" 33 * a divider in the PLL feedback loop which consists of 7 bits for the integer 35 * have a 3 bit power-of-two post divider. 57 struct mtk_clk_pll *pll = to_mtk_clk_pll(hw); in mtk_pll_is_prepared() local 59 return (readl(pll->base_addr + REG_CON0) & CON0_BASE_EN) != 0; in mtk_pll_is_prepared() 62 static unsigned long __mtk_pll_recalc_rate(struct mtk_clk_pll *pll, u32 fin, in __mtk_pll_recalc_rate() argument 65 int pcwbits = pll->data->pcwbits; in __mtk_pll_recalc_rate() 71 /* The fractional part of the PLL divider. */ in __mtk_pll_recalc_rate() 72 ibits = pll->data->pcwibits ? pll->data->pcwibits : INTEGER_BITS; in __mtk_pll_recalc_rate() [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/qcom/ |
| D | clk-alpha-pll.c | 1 // SPDX-License-Identifier: GPL-2.0 8 #include <linux/clk-provider.h> 12 #include "clk-alpha-pll.h" 15 #define PLL_MODE(p) ((p)->offset + 0x0) 34 #define PLL_L_VAL(p) ((p)->offset + (p)->regs[PLL_OFF_L_VAL]) 35 #define PLL_CAL_L_VAL(p) ((p)->offset + (p)->regs[PLL_OFF_CAL_L_VAL]) 36 #define PLL_ALPHA_VAL(p) ((p)->offset + (p)->regs[PLL_OFF_ALPHA_VAL]) 37 #define PLL_ALPHA_VAL_U(p) ((p)->offset + (p)->regs[PLL_OFF_ALPHA_VAL_U]) 39 #define PLL_USER_CTL(p) ((p)->offset + (p)->regs[PLL_OFF_USER_CTL]) 41 # define PLL_POST_DIV_MASK(p) GENMASK((p)->width, 0) [all …]
|
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 #include <linux/clk-provider.h> 17 #include "clk-pll.h" 26 struct clk_pll *pll = to_clk_pll(hw); in clk_pll_enable() local 31 ret = regmap_read(pll->clkr.regmap, pll->mode_reg, &val); in clk_pll_enable() 39 /* Disable PLL bypass mode. */ in clk_pll_enable() 40 ret = regmap_update_bits(pll->clkr.regmap, pll->mode_reg, PLL_BYPASSNL, in clk_pll_enable() 47 * de-asserting the reset. Delay 10us just to be safe. in clk_pll_enable() 51 /* De-assert active-low PLL reset. */ in clk_pll_enable() 52 ret = regmap_update_bits(pll->clkr.regmap, pll->mode_reg, PLL_RESET_N, in clk_pll_enable() [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/sprd/ |
| D | pll.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Spreadtrum pll clock driver 13 #include "pll.h" 18 #define pindex(pll, member) \ argument 19 (pll->factors[member].shift / (8 * sizeof(pll->regs_num))) 21 #define pshift(pll, member) \ argument 22 (pll->factors[member].shift % (8 * sizeof(pll->regs_num))) 24 #define pwidth(pll, member) \ argument 25 pll->factors[member].width 27 #define pmask(pll, member) \ argument [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/sprd/ |
| D | pll.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Spreadtrum pll clock driver 13 #include "pll.h" 18 #define pindex(pll, member) \ argument 19 (pll->factors[member].shift / (8 * sizeof(pll->regs_num))) 21 #define pshift(pll, member) \ argument 22 (pll->factors[member].shift % (8 * sizeof(pll->regs_num))) 24 #define pwidth(pll, member) \ argument 25 pll->factors[member].width 27 #define pmask(pll, member) \ argument [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/imx/ |
| D | clk-pllv3.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 #include <linux/clk-provider.h> 33 * struct clk_pllv3 - IMX PLL clock version 3 35 * @base: base address of PLL registers 36 * @power_bit: pll power bit mask 37 * @powerup_set: set power_bit to power up the PLL 44 * IMX PLL clock version 3, found on i.MX6 series. Divider for pllv3 61 static int clk_pllv3_wait_lock(struct clk_pllv3 *pll) in clk_pllv3_wait_lock() argument 63 u32 val = readl_relaxed(pll->base) & pll->power_bit; in clk_pllv3_wait_lock() 65 /* No need to wait for lock when pll is not powered up */ in clk_pllv3_wait_lock() [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/imx/ |
| D | clk-pllv3.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 #include <linux/clk-provider.h> 32 * struct clk_pllv3 - IMX PLL clock version 3 34 * @base: base address of PLL registers 35 * @power_bit: pll power bit mask 36 * @powerup_set: set power_bit to power up the PLL 43 * IMX PLL clock version 3, found on i.MX6 series. Divider for pllv3 60 static int clk_pllv3_wait_lock(struct clk_pllv3 *pll) in clk_pllv3_wait_lock() argument 62 u32 val = readl_relaxed(pll->base) & pll->power_bit; in clk_pllv3_wait_lock() 64 /* No need to wait for lock when pll is not powered up */ in clk_pllv3_wait_lock() [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/meson/ |
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0 11 * In the most basic form, a Meson PLL is composed as follows: 13 * PLL 14 * +--------------------------------+ 16 * | +--+ | 17 * in >>-----[ /N ]--->| | +-----+ | 18 * | | |------| DCO |---->> out 19 * | +--------->| | +--v--+ | 20 * | | +--+ | | 22 * | +--[ *(M + (F/Fmax) ]<--+ | [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/bcm/ |
| D | clk-iproc-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 #include <linux/clk-provider.h> 13 #include "clk-iproc.h" 19 * PLL MACRO_SELECT modes 0 to 5 choose pre-calculated PLL output frequencies 20 * from a look-up table. Mode 7 allows user to manipulate PLL clock dividers 24 /* number of delay loops waiting for PLL to lock */ 75 struct iproc_pll *pll; member 90 return -EINVAL; in pll_calc_param() 92 residual = target_rate - (ndiv_int * parent_rate); in pll_calc_param() 102 vco_out->ndiv_int = ndiv_int; in pll_calc_param() [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/bcm/ |
| D | clk-iproc-pll.c | 16 #include <linux/clk-provider.h> 23 #include "clk-iproc.h" 29 * PLL MACRO_SELECT modes 0 to 5 choose pre-calculated PLL output frequencies 30 * from a look-up table. Mode 7 allows user to manipulate PLL clock dividers 34 /* number of delay loops waiting for PLL to lock */ 85 struct iproc_pll *pll; member 100 return -EINVAL; in pll_calc_param() 102 residual = target_rate - (ndiv_int * parent_rate); in pll_calc_param() 112 vco_out->ndiv_int = ndiv_int; in pll_calc_param() 113 vco_out->ndiv_frac = ndiv_frac; in pll_calc_param() [all …]
|
| /kernel/linux/linux-6.6/drivers/media/i2c/ |
| D | ccs-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * drivers/media/i2c/ccs-pll.c 5 * Generic MIPI CCS/SMIA/SMIA++ PLL calculator 8 * Copyright (C) 2011--2012 Nokia Corporation 17 #include "ccs-pll.h" 55 dev_dbg(dev, "%s_%s out of bounds: %d (%d--%d)\n", prefix, in bounds_check() 58 return -EINVAL; in bounds_check() 78 static void print_pll(struct device *dev, struct ccs_pll *pll) in print_pll() argument 85 { &pll->vt_fr, &pll->vt_bk, PLL_VT }, in print_pll() 86 { &pll->op_fr, &pll->op_bk, PLL_OP } in print_pll() [all …]
|
| /kernel/linux/linux-5.10/drivers/media/i2c/ |
| D | smiapp-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * drivers/media/i2c/smiapp-pll.c 7 * Copyright (C) 2011--2012 Nokia Corporation 16 #include "smiapp-pll.h" 48 dev_dbg(dev, "%s out of bounds: %d (%d--%d)\n", str, val, min, max); in bounds_check() 50 return -EINVAL; in bounds_check() 53 static void print_pll(struct device *dev, struct smiapp_pll *pll) in print_pll() argument 55 dev_dbg(dev, "pre_pll_clk_div\t%u\n", pll->pre_pll_clk_div); in print_pll() 56 dev_dbg(dev, "pll_multiplier \t%u\n", pll->pll_multiplier); in print_pll() 57 if (!(pll->flags & SMIAPP_PLL_FLAG_NO_OP_CLOCKS)) { in print_pll() [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/rockchip/ |
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 * Author: Xing Zheng <zhengxing@rock-chips.com> 14 #include <linux/clk-provider.h> 51 struct rockchip_clk_pll *pll, unsigned long rate) in rockchip_get_pll_settings() argument 53 const struct rockchip_pll_rate_table *rate_table = pll->rate_table; in rockchip_get_pll_settings() 56 for (i = 0; i < pll->rate_count; i++) { in rockchip_get_pll_settings() 67 struct rockchip_clk_pll *pll = to_rockchip_clk_pll(hw); in rockchip_pll_round_rate() local 68 const struct rockchip_pll_rate_table *rate_table = pll->rate_table; in rockchip_pll_round_rate() 72 for (i = 0; i < pll->rate_count; i++) { in rockchip_pll_round_rate() 78 return rate_table[i - 1].rate; in rockchip_pll_round_rate() [all …]
|
| /kernel/linux/linux-6.6/drivers/video/fbdev/aty/ |
| D | mach64_ct.c | 1 // SPDX-License-Identifier: GPL-2.0 18 static int aty_valid_pll_ct (const struct fb_info *info, u32 vclk_per, struct pll_ct *pll); 19 static int aty_dsp_gt (const struct fb_info *info, u32 bpp, struct pll_ct *pll); 20 static int aty_var_to_pll_ct(const struct fb_info *info, u32 vclk_per, u32 bpp, union aty_pll *pll); 21 static u32 aty_pll_to_var_ct(const struct fb_info *info, const union aty_pll *pll); 51 * CLK = ---------------------- 68 * XCLK The clock rate of the on-chip memory 75 * SCLK Multi-purpose clock 77 * - MCLK and XCLK use the same FB_DIV 78 * - VCLK0 .. VCLK3 use the same FB_DIV [all …]
|
| /kernel/linux/linux-5.10/drivers/video/fbdev/aty/ |
| D | mach64_ct.c | 1 // SPDX-License-Identifier: GPL-2.0 18 static int aty_valid_pll_ct (const struct fb_info *info, u32 vclk_per, struct pll_ct *pll); 19 static int aty_dsp_gt (const struct fb_info *info, u32 bpp, struct pll_ct *pll); 20 static int aty_var_to_pll_ct(const struct fb_info *info, u32 vclk_per, u32 bpp, union aty_pll *pll); 21 static u32 aty_pll_to_var_ct(const struct fb_info *info, const union aty_pll *pll); 53 * CLK = ---------------------- 70 * XCLK The clock rate of the on-chip memory 77 * SCLK Multi-purpose clock 79 * - MCLK and XCLK use the same FB_DIV 80 * - VCLK0 .. VCLK3 use the same FB_DIV [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/meson/ |
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0 11 * In the most basic form, a Meson PLL is composed as follows: 13 * PLL 14 * +--------------------------------+ 16 * | +--+ | 17 * in >>-----[ /N ]--->| | +-----+ | 18 * | | |------| DCO |---->> out 19 * | +--------->| | +--v--+ | 20 * | | +--+ | | 22 * | +--[ *(M + (F/Fmax) ]<--+ | [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/samsung/ |
| D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 * This file contains the utility functions to register the pll clocks. 15 #include <linux/clk-provider.h> 18 #include "clk-pll.h" 27 /* PLL enable control bit offset in @con_reg register */ 29 /* PLL lock status bit offset in @con_reg register */ 39 struct samsung_clk_pll *pll, unsigned long rate) in samsung_get_pll_settings() argument 41 const struct samsung_pll_rate_table *rate_table = pll->rate_table; in samsung_get_pll_settings() 44 for (i = 0; i < pll->rate_count; i++) { in samsung_get_pll_settings() 55 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll_round_rate() local [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/visconti/ |
| D | pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Toshiba Visconti PLL driver 12 #include <linux/clk-provider.h> 17 #include "pll.h" 48 #define PLL_CREATE_FRACMODE(table) (table->dacen << 4 | table->dsmen) 49 #define PLL_CREATE_OSTDIV(table) (table->postdiv2 << 4 | table->postdiv1) 56 static void visconti_pll_get_params(struct visconti_pll *pll, in visconti_pll_get_params() argument 61 val = readl(pll->pll_base + PLL_FRACMODE_REG); in visconti_pll_get_params() 63 rate_table->dacen = FIELD_GET(PLL0_FRACMODE_DACEN, val); in visconti_pll_get_params() 64 rate_table->dsmen = FIELD_GET(PLL0_FRACMODE_DSMEN, val); in visconti_pll_get_params() [all …]
|