| /linux/drivers/pwm/ | 
| H A D | pwm-sl28cpld.c | 10  * With the prescaler setting you can select which bit of the counter is used16  * | prescaler |  reset | counter bits | frequency | period length |
 25  * - The hardware cannot generate a 100% duty cycle if the prescaler is 0.
 26  * - The hardware cannot atomically set the prescaler and the counter value,
 28  * - The counter is not reset if you switch the prescaler which leads
 55 #define SL28CPLD_PWM_MAX_DUTY_CYCLE(prescaler)	(1 << (7 - (prescaler)))  argument
 56 #define SL28CPLD_PWM_PERIOD(prescaler) \  argument
 57 	(NSEC_PER_SEC / SL28CPLD_PWM_CLK * SL28CPLD_PWM_MAX_DUTY_CYCLE(prescaler))
 64  *   max_period_ns = 1 << (7 - prescaler) / SL28CPLD_PWM_CLK * NSEC_PER_SEC
 65  *   max_duty_cycle = 1 << (7 - prescaler)
 [all …]
 
 | 
| H A D | pwm-sun4i.c | 114 	unsigned int prescaler;  in sun4i_pwm_get_state()  local138 		prescaler = 1;  in sun4i_pwm_get_state()
 140 		prescaler = prescaler_table[PWM_REG_PRESCAL(val, pwm->hwpwm)];  in sun4i_pwm_get_state()
 142 	if (prescaler == 0)  in sun4i_pwm_get_state()
 158 	tmp = (u64)prescaler * NSEC_PER_SEC * PWM_REG_DTY(val);  in sun4i_pwm_get_state()
 161 	tmp = (u64)prescaler * NSEC_PER_SEC * PWM_REG_PRD(val);  in sun4i_pwm_get_state()
 173 	unsigned int prescaler = 0;  in sun4i_pwm_calculate()  local
 188 		/* First, test without any prescaler when available */  in sun4i_pwm_calculate()
 189 		prescaler = PWM_PRESCAL_MASK;  in sun4i_pwm_calculate()
 191 		 * When not using any prescaler, the clock period in nanoseconds  in sun4i_pwm_calculate()
 [all …]
 
 | 
| H A D | pwm-renesas-tpu.c | 75 	unsigned int prescaler;  member172 	 * - Set prescaler  in tpu_pwm_timer_start()
 178 		      tpd->prescaler);  in tpu_pwm_timer_start()
 225 	tpd->prescaler = 0;  in tpu_pwm_request()
 247 	unsigned int prescaler;  in tpu_pwm_config()  local
 268 	 * Find the minimal prescaler in [0..3] such that  in tpu_pwm_config()
 270 	 *     period >> (2 * prescaler) < 0x10000  in tpu_pwm_config()
 274 	 *     prescaler = max(ilog2(period) / 2, 7) - 7;  in tpu_pwm_config()
 281 		prescaler = 0;  in tpu_pwm_config()
 285 		prescaler = 1;  in tpu_pwm_config()
 [all …]
 
 | 
| H A D | pwm-rockchip.c | 50 	unsigned int prescaler;  member66 	u64 prescaled_ns = (u64)pc->data->prescaler * NSEC_PER_SEC;  in rockchip_pwm_get_state()
 109 	u64 prescaled_ns = (u64)pc->data->prescaler * NSEC_PER_SEC;  in rockchip_pwm_config()
 119 	 * default prescaler value for all practical clock rate values.  in rockchip_pwm_config()
 246 	.prescaler = 2,
 259 	.prescaler = 1,
 273 	.prescaler = 1,
 287 	.prescaler = 1,
 
 | 
| H A D | pwm-stm32-lp.c | 31 /* STM32 Low-Power Timer is preceded by a configurable power-of-2 prescaler */40 	/* Only one PWM on this LPTIMER: enable, prescaler and reload value can be changed */  in stm32_pwm_lp_update_allowed()
 49 	/* More than one channel enabled: enable, prescaler or ARR value can't be changed */  in stm32_pwm_lp_update_allowed()
 55 	 * report if enable, prescaler or ARR value can be changed.  in stm32_pwm_lp_update_allowed()
 165 	/* Calculate the period and prescaler value */  in stm32_pwm_lp_apply()
 178 			dev_err(pwmchip_parent(chip), "max prescaler exceeded\n");  in stm32_pwm_lp_apply()
 194 	 * When there are several channels, they share the same prescaler and reload value.  in stm32_pwm_lp_apply()
 
 | 
| H A D | pwm-stm32.c | 123 		 * First we need to find the minimal value for prescaler such that  in stm32_pwm_round_waveform_tohw()127 		 *   NSEC_PER_SEC * (prescaler + 1)  in stm32_pwm_round_waveform_tohw()
 132 		 *   ---------------------------- < prescaler + 1  in stm32_pwm_round_waveform_tohw()
 138 		 *   (period_ns * clkrate) // (NSEC_PER_SEC * (max_arr + 1)) ≤ prescaler  in stm32_pwm_round_waveform_tohw()
 562 	/* prescaler: fit timeout window provided by upper layer */  in stm32_pwm_capture()
 596 	 * - decrease counter clock prescaler, scale up to max rate.  in stm32_pwm_capture()
 597 	 * - use input prescaler, capture once every /2 /4 or /8 edges.  in stm32_pwm_capture()
 622 		/* input prescaler: also keep arbitrary margin */  in stm32_pwm_capture()
 632 	/* Last chance to improve period accuracy, using input prescaler */  in stm32_pwm_capture()
 645 		 * We may fall here using input prescaler, when input  in stm32_pwm_capture()
 
 | 
| /linux/drivers/clocksource/ | 
| H A D | timer-stm32.c | 200  * stm32_timer_set_prescaler - Compute and set the prescaler register203  * Depending on the timer width, compute the prescaler to always
 205  * considered precise and long enough to not use the prescaler.
 209 	int prescaler = 1;  in stm32_timer_set_prescaler()  local
 212 		prescaler = DIV_ROUND_CLOSEST(timer_of_rate(to),  in stm32_timer_set_prescaler()
 215 		 * The prescaler register is an u16, the variable  in stm32_timer_set_prescaler()
 219 		prescaler = prescaler < TIM_PSC_MAX ? prescaler : TIM_PSC_MAX;  in stm32_timer_set_prescaler()
 222 	writel_relaxed(prescaler - 1, timer_of_base(to) + TIM_PSC);  in stm32_timer_set_prescaler()
 226 	/* Adjust rate and period given the prescaler value */  in stm32_timer_set_prescaler()
 227 	to->of_clk.rate = DIV_ROUND_CLOSEST(to->of_clk.rate, prescaler);  in stm32_timer_set_prescaler()
 
 | 
| H A D | arm_global_timer.c | 48  * Note: it is assumed we are using a prescaler value of zero, so this is271 	/* set prescaler and enable timer on all the cores */  in gt_clocksource_init()
 298 		/* prescaler within legal range? */  in gt_clk_rate_change_cb()
 342 	unsigned long prescaler;  member
 348 	 * OPPs, so the initial prescaler has to be compatible with all OPPs
 350 	 * gives us a GCD of 10. Initial frequency is 1000, so the prescaler is
 353 	{ .compatible = "ti,am43", .prescaler = 50 },
 354 	{ .compatible = "xlnx,zynq-7000", .prescaler = 2 },
 367 			return config->prescaler;  in gt_get_initial_prescaler_value()
 
 | 
| H A D | timer-microchip-pit64b.c | 250 	/* Use the biggest prescaler if we didn't match one. */  in mchp_pit64b_pres_compute()257  *			     runtime; this includes prescaler and SGCLK bit
 267  * PMC and then using the internal PIT64B prescaler, if any, to reach the
 270  * choosing the highest prescaler in case it doesn't locate one to match the
 339 	pr_info("PIT64B: using clk=%s with prescaler %u, freq=%lu [Hz]\n",  in mchp_pit64b_init_mode()
 462 	/* Initialize mode (prescaler + SGCK bit). To be used at runtime. */  in mchp_pit64b_dt_init_timer()
 
 | 
| /linux/drivers/tty/serial/8250/ | 
| H A D | 8250_ni.c | 72 	u8 prescaler;  member160 				     u8 prescaler)  in ni16550_config_prescaler()  argument
 180 	/* Set prescaler to CPR register. */  in ni16550_config_prescaler()
 182 	serial_out(up, UART_ICR, prescaler);  in ni16550_config_prescaler()
 283 	unsigned int prescaler;  in ni16550_probe()  local
 347 	prescaler = info->prescaler;  in ni16550_probe()
 348 	device_property_read_u32(dev, "clock-prescaler", &prescaler);  in ni16550_probe()
 349 	if (prescaler) {  in ni16550_probe()
 351 		ni16550_config_prescaler(uart, (u8)prescaler);  in ni16550_probe()
 418 	.prescaler = 0x09,
 [all …]
 
 | 
| /linux/drivers/watchdog/ | 
| H A D | cadence_wdt.c | 34 /* Clock prescaler value and selection */67  * @prescaler: for saving prescaler value
 68  * @ctrl_clksel: counter clock prescaler selection
 78 	u32			prescaler;  member
 163  *		calculated count = (timeout * clock) / prescaler + 1.
 166  * Clears the contents of prescaler and counter reset value. Sets the
 167  * prescaler to 4096 and the calculated count and access key
 186 	count = (wdd->timeout * (clock_f / wdt->prescaler)) /  in cdns_wdt_start()
 338 		wdt->prescaler = CDNS_WDT_PRESCALE_512;  in cdns_wdt_probe()
 341 		wdt->prescaler = CDNS_WDT_PRESCALE_4096;  in cdns_wdt_probe()
 
 | 
| H A D | mpc8xxx_wdt.c | 44 	int prescaler;  member188 	ddata->swtc = min(ddata->wdd.timeout * freq / wdt_type->prescaler,  in mpc8xxx_wdt_probe()
 199 	ddata->wdd.max_hw_heartbeat_ms = (ddata->swtc * wdt_type->prescaler) /  in mpc8xxx_wdt_probe()
 221 			.prescaler = 0x10000,
 228 			.prescaler = 0x10000,
 236 			.prescaler = 0x800,
 
 | 
| H A D | mt7621_wdt.c | 82 	/* set the prescaler to 1ms == 1000us */  in mt7621_wdt_start()182 		 * the prescaler of this driver here into account (the  in mt7621_wdt_probe()
 183 		 * boot loader might be using a different prescaler).  in mt7621_wdt_probe()
 186 		 * we first disable the watchdog, set the new prescaler  in mt7621_wdt_probe()
 
 | 
| H A D | kempld_wdt.c | 133 	u32 prescaler;  in kempld_wdt_set_stage_timeout()  local139 	prescaler = kempld_prescaler[PRESCALER_21];  in kempld_wdt_set_stage_timeout()
 145 	remainder = do_div(stage_timeout64, prescaler);  in kempld_wdt_set_stage_timeout()
 175 	u32 prescaler;  in kempld_wdt_get_timeout()  local
 184 	prescaler = kempld_prescaler[STAGE_CFG_GET_PRESCALER(stage_cfg)];  in kempld_wdt_get_timeout()
 186 	stage_timeout = (stage_timeout & stage->mask) * prescaler;  in kempld_wdt_get_timeout()
 
 | 
| H A D | stm32_iwdg.c | 28 #define IWDG_PR		0x04 /* Prescaler Register */49 #define SR_PVU	BIT(0) /* Watchdog prescaler value update */
 115 	/* The prescaler is align on power of 2 and start at 2 ^ PR_SHIFT. */  in stm32_iwdg_start()
 124 	/* set prescaler & reload registers */  in stm32_iwdg_start()
 136 		dev_err(wdd->parent, "Fail to set prescaler, reload regs\n");  in stm32_iwdg_start()
 
 | 
| /linux/Documentation/misc-devices/ | 
| H A D | oxsemi-tornado.rst | 11 frequency by dividing it by the clock prescaler, which can be set to any19 By default the oversampling rate is set to 16 and the clock prescaler is
 27 prescaler is programmed with the CPR/CPR2 register pair [OX200]_ [OX952]_
 29 the prescaler the enhanced mode has to be explicitly enabled though, by
 31 the prescaler or otherwise it is bypassed as if the value of 1 was used.
 34 devices that do not have the extra prescaler's 9th bit in CPR2, so the
 45 (tcr), the clock prescaler (cpr) and the divisor (div) produced by the
 93 used by encoding the values for, the prescaler, the oversampling rate
 109 oversampling rate to 16 and prescaler values below 1 in CPR2/CPR are
 113 respectively to 0x1f4, 0x0 and 0x04e2, choosing the prescaler value,
 
 | 
| /linux/drivers/rtc/ | 
| H A D | rtc-mpfs.c | 219 	unsigned long prescaler;  in mpfs_rtc_probe()  local259 	/* prescaler hardware adds 1 to reg value */  in mpfs_rtc_probe()
 260 	prescaler = clk_get_rate(devm_clk_get(&pdev->dev, "rtcref")) - 1;  in mpfs_rtc_probe()
 261 	if (prescaler > MAX_PRESCALER_COUNT) {  in mpfs_rtc_probe()
 262 		dev_dbg(&pdev->dev, "invalid prescaler %lu\n", prescaler);  in mpfs_rtc_probe()
 266 	writel(prescaler, rtcdev->base + PRESCALER_REG);  in mpfs_rtc_probe()
 267 	dev_info(&pdev->dev, "prescaler set to: %lu\n", prescaler);  in mpfs_rtc_probe()
 
 | 
| /linux/Documentation/devicetree/bindings/power/supply/ | 
| H A D | lltc,ltc294x.yaml | 39   lltc,prescaler-exponent:42       The prescaler exponent as explained in the datasheet.
 51   - lltc,prescaler-exponent
 64         lltc,prescaler-exponent = <5>; /* 2^(2*5) = 1024 */
 
 | 
| /linux/arch/powerpc/sysdev/ | 
| H A D | fsl_gtm.c | 170 	unsigned int prescaler;  in gtm_set_ref_timer16()  local177 	/* CPM2 doesn't have primary prescaler */  in gtm_set_ref_timer16()
 181 	prescaler = gtm->clock / frequency;  in gtm_set_ref_timer16()
 187 	if (prescaler > max_prescaler)  in gtm_set_ref_timer16()
 190 	if (prescaler > max_prescaler / 16) {  in gtm_set_ref_timer16()
 192 		prescaler /= 16;  in gtm_set_ref_timer16()
 195 	if (prescaler <= 256) {  in gtm_set_ref_timer16()
 197 		sps = prescaler - 1;  in gtm_set_ref_timer16()
 200 		sps = prescaler / 256 - 1;  in gtm_set_ref_timer16()
 366 	/* CPM2 doesn't have primary prescaler */  in gtm_set_shortcuts()
 
 | 
| /linux/Documentation/devicetree/bindings/pwm/ | 
| H A D | ti,omap-dmtimer-pwm.yaml | 29   ti,prescaler:31       Legacy clock prescaler for timer. The timer counter is prescaled
 32       with 2^n where n is the prescaler.
 
 | 
| /linux/drivers/i2c/busses/ | 
| H A D | i2c-mpc.c | 390 	 * According to the AN2919 all MPC824x have prescaler 1, while MPC83xx  in mpc_i2c_get_prescaler_8xxx()391 	 * may have prescaler 1, 2, or 3, depending on the power-on  in mpc_i2c_get_prescaler_8xxx()
 394 	u32 prescaler = 1;  in mpc_i2c_get_prescaler_8xxx()  local
 408 			/* the above 85xx SoCs have prescaler 1 */  in mpc_i2c_get_prescaler_8xxx()
 409 			prescaler = 1;  in mpc_i2c_get_prescaler_8xxx()
 412 			/* the above 85xx SoCs have prescaler 3 or 2 */  in mpc_i2c_get_prescaler_8xxx()
 413 			prescaler = mpc_i2c_get_sec_cfg_8xxx() ? 3 : 2;  in mpc_i2c_get_prescaler_8xxx()
 415 			/* all the other 85xx have prescaler 2 */  in mpc_i2c_get_prescaler_8xxx()
 416 			prescaler = 2;  in mpc_i2c_get_prescaler_8xxx()
 419 	return prescaler;  in mpc_i2c_get_prescaler_8xxx()
 [all …]
 
 | 
| /linux/drivers/hwmon/ | 
| H A D | max6650.c | 38 /* prescaler: Possible values are 1, 2, 4, 8, 16 or 0 for don't change */39 static int prescaler;  variable
 44 module_param(prescaler, int, 0444);
 233  * 2) The prescaler (low three bits of the config register) has already
 234  *    been set to an appropriate value. Use the prescaler module parameter
 252  *    KSCALE is the prescaler value (1, 2, 4, 8, or 16)
 375 		prescale = prescaler;  in max6650_init_client()
 419 		dev_err(dev, "illegal value for prescaler (%d)\n", prescale);  in max6650_init_client()
 422 	dev_info(dev, "Fan voltage: %dV, prescaler: %d.\n",  in max6650_init_client()
 
 | 
| /linux/drivers/usb/serial/ | 
| H A D | keyspan.c | 49 				   u8 *prescaler, int portnum);53 				    u8 *prescaler, int portnum);
 57 				   u8 *prescaler, int portnum);
 61 				     u8 *prescaler, int portnum);
 176 				       u8 *rate_hi, u8 *rate_low, u8 *prescaler,
 1841 /* usa19 function doesn't require prescaler */
 1844 				   u8 *rate_low, u8 *prescaler, int portnum)  in keyspan_usa19_calc_baud()  argument
 1882 /* usa19hs function doesn't require prescaler */
 1885 				     u8 *rate_low, u8 *prescaler, int portnum)  in keyspan_usa19hs_calc_baud()  argument
 1921 				    u8 *rate_low, u8 *prescaler, int portnum)  in keyspan_usa19w_calc_baud()  argument
 [all …]
 
 | 
| /linux/arch/arm/mach-omap2/ | 
| H A D | vc.c | 467  * Calculates voltage ramp prescaler + counter values for a voltage470  * bits[8:9] prescaler ... bits[0:5] counter. See OMAP4 TRM for reference.
 474 	u32 prescaler;  in omap4_calc_volt_ramp()  local
 483 	prescaler = 0;  in omap4_calc_volt_ramp()
 485 	/* shift to next prescaler until no overflow */  in omap4_calc_volt_ramp()
 490 		prescaler++;  in omap4_calc_volt_ramp()
 496 		prescaler++;  in omap4_calc_volt_ramp()
 502 		prescaler++;  in omap4_calc_volt_ramp()
 514 	return (prescaler << OMAP4430_RAMP_UP_PRESCAL_SHIFT) |  in omap4_calc_volt_ramp()
 
 | 
| /linux/drivers/iio/trigger/ | 
| H A D | stm32-timer-trigger.c | 126 	int prescaler = 0, ret;  in stm32_timer_start()  local129 	/* Period and prescaler values depends of clock rate */  in stm32_timer_start()
 137 	 * Increase prescaler value until we get a result that fit  in stm32_timer_start()
 141 		prescaler++;  in stm32_timer_start()
 143 		do_div(div, (prescaler + 1));  in stm32_timer_start()
 147 	if (prescaler > MAX_TIM_PSC) {  in stm32_timer_start()
 148 		dev_err(priv->dev, "prescaler exceeds the maximum value\n");  in stm32_timer_start()
 165 	regmap_write(priv->regmap, TIM_PSC, prescaler);  in stm32_timer_start()
 
 |