/linux-6.12.1/drivers/clk/qcom/ |
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() 35 /* Skip if already enabled or in FSM mode */ 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() [all …]
|
D | clk-alpha-pll.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Copyright (c) 2021, 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved. 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]) [all …]
|
/linux-6.12.1/drivers/clk/spear/ |
D | clk-vco-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 * VCO-PLL clock implementation 9 #define pr_fmt(fmt) "clk-vco-pll: " fmt 11 #include <linux/clk-provider.h> 18 * DOC: VCO-PLL clock 20 * VCO and PLL rate are derived from following equations: 22 * In normal mode 25 * In Dithered mode 28 * pll_rate = pll/2^p 30 * vco and pll are very closely bound to each other, "vco needs to program: [all …]
|
/linux-6.12.1/drivers/clk/sophgo/ |
D | clk-cv18xx-pll.c | 1 // SPDX-License-Identifier: GPL-2.0 6 #include <linux/clk-provider.h> 11 #include "clk-cv18xx-pll.h" 36 struct cv1800_clk_pll *pll = hw_to_cv1800_clk_pll(hw); in ipll_recalc_rate() local 39 value = readl(pll->common.base + pll->pll_reg); in ipll_recalc_rate() 58 for_each_pll_limit_range(pre, &limit->pre_div) { in ipll_find_rate() 59 for_each_pll_limit_range(div, &limit->div) { in ipll_find_rate() 60 for_each_pll_limit_range(post, &limit->post_div) { in ipll_find_rate() 66 if ((trate - tmp) < (trate - best_rate)) { in ipll_find_rate() 85 return -EINVAL; in ipll_find_rate() [all …]
|
/linux-6.12.1/drivers/clk/starfive/ |
D | clk-starfive-jh7110-pll.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * StarFive JH7110 PLL Clock Generator Driver 8 * This driver is about to register JH7110 PLL clock generator and support ops. 9 * The JH7110 have three PLL clock, PLL0, PLL1 and PLL2. 10 * Each PLL clocks work in integer mode or fraction mode by some dividers, 17 * M: frequency dividing ratio of pre-divider, set by prediv[5:0]. 22 #include <linux/clk-provider.h> 30 #include <dt-bindings/clock/starfive,jh7110-crg.h> 86 unsigned mode : 1; member 143 struct jh7110_pll_data pll[JH7110_PLLCLK_END]; member [all …]
|
/linux-6.12.1/drivers/clk/nuvoton/ |
D | clk-ma35d1-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Author: Chi-Fang Li <cfli0@nuvoton.com> 8 #include <linux/clk-provider.h> 16 #include <dt-bindings/clock/nuvoton,ma35d1-clk.h> 18 #include "clk-ma35d1.h" 20 /* PLL frequency limits */ 36 /* bit fields for REG_CLK_PLL0CTL0, which is SMIC PLL design */ 70 u8 mode; member 99 static unsigned long ma35d1_calc_pll_freq(u8 mode, u32 *reg_ctl, unsigned long parent_rate) in ma35d1_calc_pll_freq() argument 111 if (mode == PLL_MODE_INT) { in ma35d1_calc_pll_freq() [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/clock/ |
D | silabs,si5351.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 11 8 outputs. Si5351A also has a reduced pin-count package (10-MSOP) where only 3 16 https://www.skyworksinc.com/-/media/Skyworks/SL/documents/public/data-sheets/Si5351-B.pdf 19 - Alvin Šipraga <alsi@bang-olufsen.dk> 24 - silabs,si5351a # Si5351A, 20-QFN package 25 - silabs,si5351a-msop # Si5351A, 10-MSOP package 26 - silabs,si5351b # Si5351B, 20-QFN package 27 - silabs,si5351c # Si5351C, 20-QFN package [all …]
|
D | silabs,si5341.txt | 6 https://www.silabs.com/documents/public/data-sheets/Si5341-40-D-DataSheet.pdf 8 https://www.silabs.com/documents/public/reference-manuals/Si5341-40-D-RM.pdf 10 https://www.silabs.com/documents/public/reference-manuals/Si5345-44-42-D-RM.pdf 13 clocks. The chip contains a PLL that sources 5 (or 4) multisynth clocks, which 20 The driver can be used in "as is" mode, reading the current settings from the 21 chip at boot, in case you have a (pre-)programmed device. If the PLL is not 33 - compatible: shall be one of the following: 34 "silabs,si5340" - Si5340 A/B/C/D 35 "silabs,si5341" - Si5341 A/B/C/D 36 "silabs,si5342" - Si5342 A/B/C/D [all …]
|
/linux-6.12.1/drivers/clk/zynqmp/ |
D | pll.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Zynq UltraScale+ MPSoC PLL driver 5 * Copyright (C) 2016-2018 Xilinx 9 #include <linux/clk-provider.h> 11 #include "clk-zynqmp.h" 14 * struct zynqmp_pll - PLL clock 15 * @hw: Handle between common and hardware-specific interfaces 16 * @clk_id: PLL clock ID 44 * zynqmp_pll_get_mode() - Get mode of PLL 45 * @hw: Handle between common and hardware-specific interfaces [all …]
|
/linux-6.12.1/drivers/video/fbdev/aty/ |
D | radeon_base.c | 38 * NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR 240 /* these common regs are cleared before mode setting so they do not 263 static int default_dynclk = -2; 283 if (rinfo->no_schedule || oops_in_progress) in _radeon_msleep() 291 /* Called if (rinfo->errata & CHIP_ERRATA_PLL_DUMMYREADS) is set */ in radeon_pll_errata_after_index_slow() 298 if (rinfo->errata & CHIP_ERRATA_PLL_DELAY) { in radeon_pll_errata_after_data_slow() 302 if (rinfo->errata & CHIP_ERRATA_R300_CG) { in radeon_pll_errata_after_data_slow() 317 spin_lock_irqsave(&rinfo->reg_lock, flags); in _OUTREGP() 322 spin_unlock_irqrestore(&rinfo->reg_lock, flags); in _OUTREGP() 410 if (!rinfo->bios_seg) in radeon_unmap_ROM() [all …]
|
/linux-6.12.1/drivers/clk/bcm/ |
D | clk-iproc-armpll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/clk-provider.h> 13 #include "clk-iproc.h" 66 static unsigned int __get_fid(struct iproc_arm_pll *pll) in __get_fid() argument 71 val = readl(pll->base + IPROC_CLK_ARM_DIV_OFFSET); in __get_fid() 80 val = readl(pll->base + IPROC_CLK_POLICY_FREQ_OFFSET); in __get_fid() 84 val = readl(pll->base + IPROC_CLK_POLICY_DBG_OFFSET); in __get_fid() 88 pr_debug("%s: fid override %u->%u\n", __func__, fid, in __get_fid() 101 * - 25 MHz Crystal 102 * - System clock [all …]
|
/linux-6.12.1/arch/arm64/boot/dts/qcom/ |
D | sa8295p-adp.dts | 1 // SPDX-License-Identifier: BSD-3-Clause 7 /dts-v1/; 9 #include <dt-bindings/gpio/gpio.h> 10 #include <dt-bindings/regulator/qcom,rpmh-regulator.h> 11 #include <dt-bindings/spmi/spmi.h> 12 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 15 #include "sa8540p-pmics.dtsi" 19 compatible = "qcom,sa8295p-adp", "qcom,sa8540p"; 26 stdout-path = "serial0:115200n8"; 29 dp2-connector { [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/media/i2c/ |
D | adv7343.txt | 3 The ADV7343 are high speed, digital-to-analog video encoders in a 64-lead LQFP 4 package. Six high speed, 3.3 V, 11-bit video DACs provide support for composite 5 (CVBS), S-Video (Y-C), and component (YPrPb/RGB) analog outputs in standard 10 - compatible: Must be "adi,adv7343" 13 - adi,power-mode-sleep-mode: on enable the current consumption is reduced to 14 micro ampere level. All DACs and the internal PLL 16 - adi,power-mode-pll-ctrl: PLL and oversampling control. This control allows 17 internal PLL 1 circuit to be powered down and the 19 - ad,adv7343-power-mode-dac: array configuring the power on/off DAC's 1..6, 22 - ad,adv7343-sd-config-dac-out: array configure SD DAC Output's 1 and 2, 0 = OFF [all …]
|
/linux-6.12.1/drivers/gpu/drm/radeon/ |
D | atombios_crtc.c | 2 * Copyright 2007-8 Advanced Micro Devices, Inc. 36 #include "atom-bits.h" 39 struct drm_display_mode *mode, in atombios_overscan_setup() argument 42 struct drm_device *dev = crtc->dev; in atombios_overscan_setup() 43 struct radeon_device *rdev = dev->dev_private; in atombios_overscan_setup() 51 args.ucCRTC = radeon_crtc->crtc_id; in atombios_overscan_setup() 53 switch (radeon_crtc->rmx_type) { in atombios_overscan_setup() 55 args.usOverscanTop = cpu_to_le16((adjusted_mode->crtc_vdisplay - mode->crtc_vdisplay) / 2); in atombios_overscan_setup() 56 args.usOverscanBottom = cpu_to_le16((adjusted_mode->crtc_vdisplay - mode->crtc_vdisplay) / 2); in atombios_overscan_setup() 57 args.usOverscanLeft = cpu_to_le16((adjusted_mode->crtc_hdisplay - mode->crtc_hdisplay) / 2); in atombios_overscan_setup() [all …]
|
D | radeon_display.c | 2 * Copyright 2007-8 Advanced Micro Devices, Inc. 52 struct drm_device *dev = crtc->dev; in avivo_crtc_load_lut() 53 struct radeon_device *rdev = dev->dev_private; in avivo_crtc_load_lut() 57 DRM_DEBUG_KMS("%d\n", radeon_crtc->crtc_id); in avivo_crtc_load_lut() 58 WREG32(AVIVO_DC_LUTA_CONTROL + radeon_crtc->crtc_offset, 0); in avivo_crtc_load_lut() 60 WREG32(AVIVO_DC_LUTA_BLACK_OFFSET_BLUE + radeon_crtc->crtc_offset, 0); in avivo_crtc_load_lut() 61 WREG32(AVIVO_DC_LUTA_BLACK_OFFSET_GREEN + radeon_crtc->crtc_offset, 0); in avivo_crtc_load_lut() 62 WREG32(AVIVO_DC_LUTA_BLACK_OFFSET_RED + radeon_crtc->crtc_offset, 0); in avivo_crtc_load_lut() 64 WREG32(AVIVO_DC_LUTA_WHITE_OFFSET_BLUE + radeon_crtc->crtc_offset, 0xffff); in avivo_crtc_load_lut() 65 WREG32(AVIVO_DC_LUTA_WHITE_OFFSET_GREEN + radeon_crtc->crtc_offset, 0xffff); in avivo_crtc_load_lut() [all …]
|
/linux-6.12.1/drivers/gpu/drm/renesas/rcar-du/ |
D | rcar_lvds.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * R-Car LVDS Encoder 5 * Copyright (C) 2013-2018 Renesas Electronics Corporation 13 #include <linux/media-bus-format.h> 53 #define RCAR_LVDS_QUIRK_EXT_PLL BIT(3) /* Has extended PLL */ 54 #define RCAR_LVDS_QUIRK_DUAL_LINK BIT(4) /* Supports dual-link operation */ 88 return ioread32(lvds->mmio + reg); in rcar_lvds_read() 93 iowrite32(data, lvds->mmio + reg); in rcar_lvds_write() 96 /* ----------------------------------------------------------------------------- 97 * PLL Setup [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/phy/ |
D | nvidia,tegra210-xusb-padctl.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/phy/nvidia,tegra210-xusb-padctl.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Thierry Reding <thierry.reding@gmail.com> 11 - Jon Hunter <jonathanh@nvidia.com> 21 Some of the lanes are high-speed lanes, which can be used for PCIe, SATA or 22 super-speed USB. Other lanes are for various types of low-speed, full-speed 23 or high-speed USB (such as UTMI, ULPI and HSIC). The XUSB pad controller 24 contains a software-configurable mux that sits between the I/O controller [all …]
|
D | nvidia,tegra124-xusb-padctl.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/phy/nvidia,tegra124-xusb-padctl.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Thierry Reding <thierry.reding@gmail.com> 11 - Jon Hunter <jonathanh@nvidia.com> 21 Some of the lanes are high-speed lanes, which can be used for PCIe, SATA or 22 super-speed USB. Other lanes are for various types of low-speed, full-speed 23 or high-speed USB (such as UTMI, ULPI and HSIC). The XUSB pad controller 24 contains a software-configurable mux that sits between the I/O controller [all …]
|
/linux-6.12.1/drivers/clk/pistachio/ |
D | clk-pll.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 #include <linux/clk-provider.h> 65 /* Fractional PLL operating modes */ 78 static inline u32 pll_readl(struct pistachio_clk_pll *pll, u32 reg) in pll_readl() argument 80 return readl(pll->base + reg); in pll_readl() 83 static inline void pll_writel(struct pistachio_clk_pll *pll, u32 val, u32 reg) in pll_writel() argument 85 writel(val, pll->base + reg); in pll_writel() 88 static inline void pll_lock(struct pistachio_clk_pll *pll) in pll_lock() argument 90 while (!(pll_readl(pll, PLL_STATUS) & PLL_STATUS_LOCK)) in pll_lock() 107 struct pistachio_clk_pll *pll = to_pistachio_pll(hw); in pll_frac_get_mode() local [all …]
|
/linux-6.12.1/arch/mips/boot/dts/qca/ |
D | ar9331.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 2 #include <dt-bindings/clock/ath79-clk.h> 7 #address-cells = <1>; 8 #size-cells = <1>; 11 #address-cells = <1>; 12 #size-cells = <0>; 17 clocks = <&pll ATH79_CLK_CPU>; 22 cpuintc: interrupt-controller { 23 compatible = "qca,ar7100-cpu-intc"; 25 interrupt-controller; [all …]
|
/linux-6.12.1/drivers/gpu/drm/hisilicon/hibmc/ |
D | hibmc_drm_de.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 60 struct drm_framebuffer *fb = new_plane_state->fb; in hibmc_plane_atomic_check() 61 struct drm_crtc *crtc = new_plane_state->crtc; in hibmc_plane_atomic_check() 63 u32 src_w = new_plane_state->src_w >> 16; in hibmc_plane_atomic_check() 64 u32 src_h = new_plane_state->src_h >> 16; in hibmc_plane_atomic_check() 73 if (src_w != new_plane_state->crtc_w || src_h != new_plane_state->crtc_h) { in hibmc_plane_atomic_check() 74 drm_dbg_atomic(plane->dev, "scale not support\n"); in hibmc_plane_atomic_check() 75 return -EINVAL; in hibmc_plane_atomic_check() 78 if (new_plane_state->crtc_x < 0 || new_plane_state->crtc_y < 0) { in hibmc_plane_atomic_check() 79 drm_dbg_atomic(plane->dev, "crtc_x/y of drm_plane state is invalid\n"); in hibmc_plane_atomic_check() [all …]
|
/linux-6.12.1/drivers/gpu/drm/stm/ |
D | dw_mipi_dsi-stm.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/clk-provider.h> 35 #define WCFGR_DSIM BIT(0) /* DSI Mode */ 42 #define WISR_PLLLS BIT(8) /* PLL Lock Status */ 49 #define DSI_WRPCR 0x0430 /* Wrapper Regulator & Pll Ctrl Reg */ 50 #define WRPCR_PLLEN BIT(0) /* PLL ENable */ 51 #define WRPCR_NDIV GENMASK(8, 2) /* pll loop DIVision Factor */ 52 #define WRPCR_IDF GENMASK(14, 11) /* pll Input Division Factor */ 53 #define WRPCR_ODF GENMASK(17, 16) /* pll Output Division Factor */ 76 /* Sleep & timeout for regulator on/off, pll lock/unlock & fifo empty */ [all …]
|
/linux-6.12.1/drivers/gpu/drm/omapdrm/dss/ |
D | dpi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 37 struct dss_pll *pll; member 49 /* ----------------------------------------------------------------------------- 50 * Clock Handling and PLL 66 if (dss_pll_find_by_src(dpi->dss, DSS_CLK_SRC_PLL1_1)) in dpi_get_clk_src_dra7xx() 72 if (dss_pll_find_by_src(dpi->dss, DSS_CLK_SRC_PLL1_3)) in dpi_get_clk_src_dra7xx() 74 if (dss_pll_find_by_src(dpi->dss, DSS_CLK_SRC_PLL2_3)) in dpi_get_clk_src_dra7xx() 80 if (dss_pll_find_by_src(dpi->dss, DSS_CLK_SRC_PLL2_1)) in dpi_get_clk_src_dra7xx() 82 if (dss_pll_find_by_src(dpi->dss, DSS_CLK_SRC_PLL1_3)) in dpi_get_clk_src_dra7xx() 95 enum omap_channel channel = dpi->output.dispc_channel; in dpi_get_clk_src() [all …]
|
/linux-6.12.1/arch/arm/mach-lpc32xx/ |
D | pm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * arch/arm/mach-lpc32xx/pm.c 15 * direct-run, and halt modes. When switching between halt and run modes, 16 * the CPU transistions through direct-run mode. For Linux, direct-run 17 * mode is not used in normal operation. Halt mode is used when the 20 * Run mode: 22 * derived from the HCLK PLL. The HCLK and PCLK bus rates are divided from 23 * the HCLK_PLL rate. Linux runs in this mode. 25 * Direct-run mode: 28 * source or the frequency of the main oscillator. In this mode, the [all …]
|
/linux-6.12.1/include/linux/clk/ |
D | analogbits-wrpll-cln28hpc.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Copyright (C) 2018-2019 SiFive, Inc. 19 * WRPLL_FLAGS_BYPASS_FLAG: if set, the PLL is either in bypass, or should be 21 * WRPLL_FLAGS_RESET_FLAG: if set, the PLL is in reset 22 * WRPLL_FLAGS_INT_FEEDBACK_FLAG: if set, the PLL is configured for internal 23 * feedback mode 24 * WRPLL_FLAGS_EXT_FEEDBACK_FLAG: if set, the PLL is configured for external 25 * feedback mode (not yet supported by this driver) 37 * struct wrpll_cfg - WRPLL configuration values 38 * @divr: reference divider value (6 bits), as presented to the PLL signals [all …]
|