Home
last modified time | relevance | path

Searched full:dpll (Results 1 – 25 of 190) sorted by relevance

12345678

/linux-6.8/Documentation/devicetree/bindings/clock/ti/
Ddpll.txt1 Binding for Texas Instruments DPLL clock.
6 register-mapped DPLL with usually two selectable input clocks
12 for the actual DPLL clock.
18 "ti,omap3-dpll-clock",
19 "ti,omap3-dpll-core-clock",
20 "ti,omap3-dpll-per-clock",
21 "ti,omap3-dpll-per-j-type-clock",
22 "ti,omap4-dpll-clock",
23 "ti,omap4-dpll-x2-clock",
24 "ti,omap4-dpll-core-clock",
[all …]
/linux-6.8/drivers/dpll/
Ddpll_core.c3 * dpll_core.c - DPLL subsystem kernel-space interface implementation.
19 /* Mutex lock to protect DPLL subsystem devices and pins */
146 dpll_xa_ref_dpll_add(struct xarray *xa_dplls, struct dpll_device *dpll, in dpll_xa_ref_dpll_add() argument
156 if (ref->dpll != dpll) in dpll_xa_ref_dpll_add()
171 ref->dpll = dpll; in dpll_xa_ref_dpll_add()
173 ret = xa_insert(xa_dplls, dpll->id, ref, GFP_KERNEL); in dpll_xa_ref_dpll_add()
184 xa_erase(xa_dplls, dpll->id); in dpll_xa_ref_dpll_add()
199 dpll_xa_ref_dpll_del(struct xarray *xa_dplls, struct dpll_device *dpll, in dpll_xa_ref_dpll_del() argument
207 if (ref->dpll != dpll) in dpll_xa_ref_dpll_del()
236 struct dpll_device *dpll; in dpll_device_alloc() local
[all …]
Ddpll_netlink.c3 * Generic netlink for DPLL management framework
16 #include <uapi/linux/dpll.h>
34 dpll_msg_add_dev_handle(struct sk_buff *msg, struct dpll_device *dpll) in dpll_msg_add_dev_handle() argument
36 if (nla_put_u32(msg, DPLL_A_ID, dpll->id)) in dpll_msg_add_dev_handle()
92 dpll_msg_add_mode(struct sk_buff *msg, struct dpll_device *dpll, in dpll_msg_add_mode() argument
95 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_msg_add_mode()
99 ret = ops->mode_get(dpll, dpll_priv(dpll), &mode, extack); in dpll_msg_add_mode()
109 dpll_msg_add_mode_supported(struct sk_buff *msg, struct dpll_device *dpll, in dpll_msg_add_mode_supported() argument
112 const struct dpll_device_ops *ops = dpll_device_ops(dpll); in dpll_msg_add_mode_supported()
120 ret = ops->mode_get(dpll, dpll_priv(dpll), &mode, extack); in dpll_msg_add_mode_supported()
[all …]
Ddpll_core.h10 #include <linux/dpll.h>
18 * struct dpll_device - stores DPLL device internal data
19 * @id: unique id number for device given by dpll subsystem
21 * @clock_id: unique identifier (clock_id) of a dpll
23 * @type: type of a dpll
24 * @pin_refs: stores pins registered within a dpll
26 * @registration_list: list of registered ops and priv data of dpll owners
40 * struct dpll_pin - structure for a dpll pin
41 * @id: unique id number for pin given by dpll subsystem
65 * struct dpll_pin_ref - structure for referencing either dpll or pins
[all …]
DMakefile3 # Makefile for DPLL drivers.
6 obj-$(CONFIG_DPLL) += dpll.o
7 dpll-y += dpll_core.o
8 dpll-y += dpll_netlink.o
9 dpll-y += dpll_nl.o
/linux-6.8/drivers/net/ethernet/intel/ice/
Dice_dpll.c7 #include <linux/dpll.h>
107 * @dpll: pointer to dpll
108 * @dpll_priv: private data pointer passed on dpll registration
122 const struct dpll_device *dpll, void *dpll_priv, in ice_dpll_frequency_set() argument
146 * @dpll: pointer to dpll
147 * @dpll_priv: private data pointer passed on dpll registration
160 const struct dpll_device *dpll, void *dpll_priv, in ice_dpll_input_frequency_set() argument
163 return ice_dpll_frequency_set(pin, pin_priv, dpll, dpll_priv, frequency, in ice_dpll_input_frequency_set()
171 * @dpll: pointer to dpll
172 * @dpll_priv: private data pointer passed on dpll registration
[all …]
Dice_dpll.h12 * @pin: dpll pin structure
36 /** ice_dpll - store info required for DPLL control
37 * @dpll: pointer to dpll dev
39 * @dpll_idx: index of dpll on the NIC
42 * @ref_state: state of dpll reference signals
43 * @eec_mode: eec_mode dpll is configured for
44 * @phase_offset: phase offset of active pin vs dpll signal
45 * @prev_phase_offset: previous phase offset of active pin vs dpll signal
47 * @dpll_state: current dpll sync state
48 * @prev_dpll_state: last dpll sync state
[all …]
/linux-6.8/drivers/gpu/drm/i915/display/
Dintel_dpll.c315 static int pnv_calc_dpll_params(int refclk, struct dpll *clock) in pnv_calc_dpll_params()
328 static u32 i9xx_dpll_compute_m(const struct dpll *dpll) in i9xx_dpll_compute_m() argument
330 return 5 * (dpll->m1 + 2) + (dpll->m2 + 2); in i9xx_dpll_compute_m()
333 int i9xx_calc_dpll_params(int refclk, struct dpll *clock) in i9xx_calc_dpll_params()
346 static int vlv_calc_dpll_params(int refclk, struct dpll *clock) in vlv_calc_dpll_params()
359 int chv_calc_dpll_params(int refclk, struct dpll *clock) in chv_calc_dpll_params()
376 u32 dpll = pipe_config->dpll_hw_state.dpll; in i9xx_pll_refclk() local
378 if ((dpll & PLL_REF_INPUT_MASK) == PLLB_REF_INPUT_SPREADSPECTRUMIN) in i9xx_pll_refclk()
394 u32 dpll = pipe_config->dpll_hw_state.dpll; in i9xx_crtc_clock_get() local
396 struct dpll clock; in i9xx_crtc_clock_get()
[all …]
Dintel_dpll_mgr.h34 for ((__i) = 0; (__i) < (__i915)->display.dpll.num_shared_dpll && \
35 ((__pll) = &(__i915)->display.dpll.shared_dplls[(__i)]) ; (__i)++)
47 * enum intel_dpll_id - possible DPLL ids
49 * Enumeration of possible IDs for a DPLL. Real shared dpll ids must be >= 0.
53 * @DPLL_ID_PRIVATE: non-shared dpll in use
58 * @DPLL_ID_PCH_PLL_A: DPLL A in ILK, SNB and IVB
62 * @DPLL_ID_PCH_PLL_B: DPLL B in ILK, SNB and IVB
185 u32 dpll; member
196 * DPLL_CTRL1 has 6 bits for each each this DPLL. We store those in
199 * the DPLL.
[all …]
Dintel_dpll.h11 struct dpll;
23 int i9xx_calc_dpll_params(int refclk, struct dpll *clock);
24 u32 i9xx_dpll_compute_fp(const struct dpll *dpll);
29 const struct dpll *dpll);
39 struct dpll *best_clock);
40 int chv_calc_dpll_params(int refclk, struct dpll *pll_clock);
/linux-6.8/Documentation/driver-api/
Ddpll.rst4 The Linux kernel dpll subsystem
7 DPLL chapter
14 DPLL - Digital Phase Locked Loop is an integrated circuit which in
17 DPLL's input and output may be configurable.
22 The main purpose of dpll subsystem is to provide general interface
32 Single dpll device object means single Digital PLL circuit and bunch of
38 Changing the configuration of dpll device is done with `do` request of
52 The number of pins per dpll vary, but usually multiple pins shall be
53 provided for a single dpll device.
68 In general, selected pin (the one which signal is driving the dpll
[all …]
/linux-6.8/drivers/clk/ti/
Ddpll3xxx.c3 * OMAP3/4 - specific DPLL control functions
46 /* _omap3_dpll_write_clken - write clken_bits arg to a DPLL's enable bits */
60 /* _omap3_wait_dpll_status: wait for a DPLL to enter a specific state */
129 * _omap3_noncore_dpll_lock - instruct a DPLL to lock and wait for readiness
130 * @clk: pointer to a DPLL struct clk
132 * Instructs a non-CORE DPLL to lock. Waits for the DPLL to report
133 * readiness before returning. Will save and restore the DPLL's
134 * autoidle state across the enable, per the CDP code. If the DPLL
135 * locked successfully, return 0; if the DPLL did not lock in the time
145 pr_debug("clock: locking DPLL %s\n", clk_hw_get_name(&clk->hw)); in _omap3_noncore_dpll_lock()
[all …]
Dclkt_dpll.c3 * OMAP2/3/4 DPLL clock functions
25 /* DPLL rate rounding: minimum DPLL multiplier, divider values */
33 * Scale factor to mitigate roundoff errors in DPLL rate rounding.
44 * DPLL valid Fint frequency range for OMAP36xx and OMAP4xxx.
45 * From device data manual section 4.3 "DPLL and DLL Specifications".
57 * _dpll_test_fint - test whether an Fint value is valid for the DPLL
58 * @clk: DPLL struct clk to test
61 * Tests whether a particular divider @n will result in a valid DPLL
62 * internal clock frequency Fint. See the 34xx TRM 4.7.6.2 "DPLL Jitter
75 /* DPLL divider must result in a valid jitter correction val */ in _dpll_test_fint()
[all …]
Ddpll44xx.c3 * OMAP4-specific DPLL control functions
19 * Maximum DPLL input frequency (FINT) and output frequency (FOUT) that
20 * can supported when using the DPLL low-power mode. Frequencies are
79 * omap4_dpll_lpmode_recalc - compute DPLL low-power setting
80 * @dd: pointer to the dpll data structure
104 * omap4_dpll_regm4xen_recalc - compute DPLL rate, considering REGM4XEN bit
106 * @parent_rate: clock rate of the DPLL parent
108 * Compute the output rate for the OMAP4 DPLL represented by @clk.
110 * OMAP4 ABE DPLL. Returns the DPLL's output rate (before M-dividers)
128 /* regm4xen adds a multiplier of 4 to DPLL calculations */ in omap4_dpll_regm4xen_recalc()
[all …]
Ddpll.c3 * OMAP DPLL clock support
145 * _register_dpll - low level registration of a DPLL clock
149 * Finalizes DPLL registration process. In case a failure (clk-ref or
215 * Initializes a DPLL x 2 clock from device tree data.
272 * of_ti_dpll_setup - Setup function for OMAP DPLL clocks
273 * @node: device node containing the DPLL info
274 * @ops: ops for the DPLL
275 * @ddt: DPLL data template to use
277 * Initializes a DPLL clock from device tree data.
322 * Special case for OMAP2 DPLL, register order is different due to in of_ti_dpll_setup()
[all …]
/linux-6.8/Documentation/netlink/specs/
Ddpll.yaml3 name: dpll
5 doc: DPLL subsystem.
12 working modes a dpll can support, differentiates if and how dpll selects
18 doc: input can be only selected by sending a request to dpll
22 doc: highest prio input pin auto selected by dpll
28 provides information of dpll device lock status, valid values for
34 dpll was not yet locked to any valid input (or forced by setting
40 dpll is locked to a valid signal, but no holdover available
44 dpll is locked and holdover acquired
48 dpll is in holdover state - lost a valid lock or was forced
[all …]
/linux-6.8/include/linux/
Ddpll.h10 #include <uapi/linux/dpll.h>
20 int (*mode_get)(const struct dpll_device *dpll, void *dpll_priv,
22 int (*lock_status_get)(const struct dpll_device *dpll, void *dpll_priv,
25 int (*temp_get)(const struct dpll_device *dpll, void *dpll_priv,
31 const struct dpll_device *dpll, void *dpll_priv,
35 const struct dpll_device *dpll, void *dpll_priv,
38 const struct dpll_device *dpll, void *dpll_priv,
42 const struct dpll_device *dpll, void *dpll_priv,
51 const struct dpll_device *dpll,
60 const struct dpll_device *dpll,
[all …]
/linux-6.8/include/uapi/linux/
Ddpll.h3 /* Documentation/netlink/specs/dpll.yaml */
9 #define DPLL_FAMILY_NAME "dpll"
13 * enum dpll_mode - working modes a dpll can support, differentiates if and how
14 * dpll selects one of its inputs to syntonize with it, valid values for
16 * @DPLL_MODE_MANUAL: input can be only selected by sending a request to dpll
17 * @DPLL_MODE_AUTOMATIC: highest prio input pin auto selected by dpll
29 * enum dpll_lock_status - provides information of dpll device lock status,
31 * @DPLL_LOCK_STATUS_UNLOCKED: dpll was not yet locked to any valid input (or
33 * @DPLL_LOCK_STATUS_LOCKED: dpll is locked to a valid signal, but no holdover
35 * @DPLL_LOCK_STATUS_LOCKED_HO_ACQ: dpll is locked and holdover acquired
[all …]
/linux-6.8/drivers/net/ethernet/mellanox/mlx5/core/
Ddpll.c4 #include <linux/dpll.h>
7 /* This structure represents a reference to DPLL, one is created
11 struct dpll_device *dpll; member
121 static int mlx5_dpll_device_lock_status_get(const struct dpll_device *dpll, in mlx5_dpll_device_lock_status_get() argument
137 static int mlx5_dpll_device_mode_get(const struct dpll_device *dpll, in mlx5_dpll_device_mode_get() argument
152 const struct dpll_device *dpll, in mlx5_dpll_pin_direction_get() argument
163 const struct dpll_device *dpll, in mlx5_dpll_state_on_dpll_get() argument
181 const struct dpll_device *dpll, in mlx5_dpll_state_on_dpll_set() argument
195 const struct dpll_device *dpll, void *dpll_priv, in mlx5_dpll_ffo_get() argument
247 dpll_device_change_ntf(mdpll->dpll); in mlx5_dpll_periodic_work()
[all …]
/linux-6.8/drivers/gpu/drm/gma500/
Dpsb_intel_display.c107 u32 dpll = 0, fp = 0, dspcntr, pipeconf; in psb_intel_crtc_mode_set() local
158 dpll = DPLL_VGA_MODE_DIS; in psb_intel_crtc_mode_set()
160 dpll |= DPLLB_MODE_LVDS; in psb_intel_crtc_mode_set()
161 dpll |= DPLL_DVO_HIGH_SPEED; in psb_intel_crtc_mode_set()
163 dpll |= DPLLB_MODE_DAC_SERIAL; in psb_intel_crtc_mode_set()
167 dpll |= DPLL_DVO_HIGH_SPEED; in psb_intel_crtc_mode_set()
168 dpll |= in psb_intel_crtc_mode_set()
173 dpll |= (1 << (clock.p1 - 1)) << 16; in psb_intel_crtc_mode_set()
176 dpll |= DPLL_DAC_SERIAL_P2_CLOCK_DIV_5; in psb_intel_crtc_mode_set()
179 dpll |= DPLLB_LVDS_P2_CLOCK_DIV_7; in psb_intel_crtc_mode_set()
[all …]
Doaktrail_crtc.c244 /* Enable the DPLL */ in oaktrail_crtc_dpms()
245 temp = REG_READ_WITH_AUX(map->dpll, i); in oaktrail_crtc_dpms()
247 REG_WRITE_WITH_AUX(map->dpll, temp, i); in oaktrail_crtc_dpms()
248 REG_READ_WITH_AUX(map->dpll, i); in oaktrail_crtc_dpms()
251 REG_WRITE_WITH_AUX(map->dpll, in oaktrail_crtc_dpms()
253 REG_READ_WITH_AUX(map->dpll, i); in oaktrail_crtc_dpms()
256 REG_WRITE_WITH_AUX(map->dpll, in oaktrail_crtc_dpms()
258 REG_READ_WITH_AUX(map->dpll, i); in oaktrail_crtc_dpms()
317 temp = REG_READ_WITH_AUX(map->dpll, i); in oaktrail_crtc_dpms()
319 REG_WRITE_WITH_AUX(map->dpll, in oaktrail_crtc_dpms()
[all …]
/linux-6.8/include/linux/clk/
Dti.h26 * struct dpll_data - DPLL registers and integration data
27 * @mult_div1_reg: register containing the DPLL M and N bitfields
28 * @mult_mask: mask of the DPLL M bitfield in @mult_div1_reg
29 * @div1_mask: mask of the DPLL N bitfield in @mult_div1_reg
32 * @control_reg: register containing the DPLL mode bitfield
33 * @enable_mask: mask of the DPLL mode bitfield in @control_reg
44 * @max_rate: maximum clock rate for the DPLL
46 * @autoidle_reg: register containing the DPLL autoidle mode bitfield
47 * @idlest_reg: register containing the DPLL idle status bitfield
48 * @autoidle_mask: mask of the DPLL autoidle mode bitfield in @autoidle_reg
[all …]
/linux-6.8/arch/arm/mach-omap2/
Dclkt2xxx_dpll.c3 * OMAP2-specific DPLL control functions
21 * _allow_idle - enable DPLL autoidle bits
22 * @clk: struct clk * of the DPLL to operate on
24 * Enable DPLL automatic idle control. The DPLL will enter low-power
26 * REVISIT: DPLL can optionally enter low-power bypass by writing 0x1
38 * _deny_idle - prevent DPLL from automatically idling
39 * @clk: struct clk * of the DPLL to operate on
41 * Disable DPLL automatic idle control. No return value.
/linux-6.8/Documentation/devicetree/bindings/media/i2c/
Dadv748x.yaml38 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
39 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
40 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
41 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
42 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
43 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
44 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
45 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
46 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
47 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
[all …]
/linux-6.8/arch/arm/boot/dts/ti/omap/
Ddra7xx-clocks.dtsi229 compatible = "ti,omap4-dpll-m4xen-clock";
235 dpll_abe_x2_ck: clock-dpll-abe-x2 {
237 compatible = "ti,omap4-dpll-x2-clock";
242 dpll_abe_m2x2_ck: clock-dpll-abe-m2x2-8@1f0 {
264 dpll_abe_m2_ck: clock-dpll-abe-m2-8@1f0 {
276 dpll_abe_m3x2_ck: clock-dpll-abe-m3x2-8@1f4 {
288 dpll_core_byp_mux: clock-dpll-core-byp-mux-23@12c {
299 compatible = "ti,omap4-dpll-core-clock";
305 dpll_core_x2_ck: clock-dpll-core-x2 {
307 compatible = "ti,omap4-dpll-x2-clock";
[all …]

12345678