| /linux/drivers/pwm/ |
| H A D | pwm-lpc18xx-sct.c | 98 unsigned int period_ns; member 141 static void lpc18xx_pwm_config_period(struct pwm_chip *chip, u64 period_ns) in lpc18xx_pwm_config_period() argument 152 val = mul_u64_u64_div_u64(period_ns, lpc18xx_pwm->clk_rate, NSEC_PER_SEC); in lpc18xx_pwm_config_period() 186 int duty_ns, int period_ns) in lpc18xx_pwm_config() argument 191 if (period_ns < lpc18xx_pwm->min_period_ns || in lpc18xx_pwm_config() 192 period_ns > lpc18xx_pwm->max_period_ns) { in lpc18xx_pwm_config() 193 dev_err(pwmchip_parent(chip), "period %d not in range\n", period_ns); in lpc18xx_pwm_config() 205 if (requested_events > 2 && lpc18xx_pwm->period_ns != period_ns && in lpc18xx_pwm_config() 206 lpc18xx_pwm->period_ns) { in lpc18xx_pwm_config() 212 if ((requested_events <= 2 && lpc18xx_pwm->period_ns != period_ns) || in lpc18xx_pwm_config() [all …]
|
| H A D | pwm-airoha.c | 134 static u32 airoha_pwm_get_period_ticks_from_ns(u32 period_ns) in airoha_pwm_get_period_ticks_from_ns() argument 136 return period_ns / AIROHA_PWM_PERIOD_TICK_NS; in airoha_pwm_get_period_ticks_from_ns() 139 static u32 airoha_pwm_get_duty_ticks_from_ns(u32 period_ns, u32 duty_ns) in airoha_pwm_get_duty_ticks_from_ns() argument 141 return mul_u64_u32_div(duty_ns, AIROHA_PWM_DUTY_FULL, period_ns); in airoha_pwm_get_duty_ticks_from_ns() 151 u32 period_ns = period_tick * AIROHA_PWM_PERIOD_TICK_NS; in airoha_pwm_get_duty_ns_from_ticks() local 158 return DIV_U64_ROUND_UP(duty_tick * period_ns, AIROHA_PWM_DUTY_FULL); in airoha_pwm_get_duty_ns_from_ticks() 162 u64 *period_ns, u64 *duty_ns) in airoha_pwm_get_bucket() argument 179 *period_ns = airoha_pwm_get_period_ns_from_ticks(period_tick); in airoha_pwm_get_bucket() 510 u32 period_ns, duty_ns; in airoha_pwm_apply() local 527 period_ns = AIROHA_PWM_PERIOD_MAX_NS; in airoha_pwm_apply() [all …]
|
| H A D | pwm-samsung.c | 65 u32 period_ns; member 309 int duty_ns, int period_ns, bool force_period) in __pwm_samsung_config() argument 322 if (chan->period_ns != period_ns || force_period) { in __pwm_samsung_config() 326 period = NSEC_PER_SEC / period_ns; in __pwm_samsung_config() 329 duty_ns, period_ns, period); in __pwm_samsung_config() 336 tcnt = period_ns / tin_ns; in __pwm_samsung_config() 373 chan->period_ns = period_ns; in __pwm_samsung_config() 381 int duty_ns, int period_ns) in pwm_samsung_config() argument 383 return __pwm_samsung_config(chip, pwm, duty_ns, period_ns, false); in pwm_samsung_config() 617 if (chan->period_ns) { in pwm_samsung_resume() [all …]
|
| H A D | pwm-lp3943.c | 88 u64 duty_ns, u64 period_ns) in lp3943_pwm_config() argument 118 period_ns = clamp(period_ns, (u64)LP3943_MIN_PERIOD, (u64)LP3943_MAX_PERIOD); in lp3943_pwm_config() 119 val = (u8)((int)period_ns / LP3943_MIN_PERIOD - 1); in lp3943_pwm_config() 125 duty_ns = min(duty_ns, period_ns); in lp3943_pwm_config() 126 val = (u8)((int)duty_ns * LP3943_MAX_DUTY / (int)period_ns); in lp3943_pwm_config()
|
| H A D | pwm-fsl-ftm.c | 126 unsigned int period_ns, in fsl_pwm_calculate_period_clk() argument 135 c = c * period_ns; in fsl_pwm_calculate_period_clk() 153 unsigned int period_ns, in fsl_pwm_calculate_period() argument 160 ret = fsl_pwm_calculate_period_clk(fpc, period_ns, FSL_PWM_CLK_SYS, in fsl_pwm_calculate_period() 176 ret = fsl_pwm_calculate_period_clk(fpc, period_ns, m0, periodcfg); in fsl_pwm_calculate_period() 180 return fsl_pwm_calculate_period_clk(fpc, period_ns, m1, periodcfg); in fsl_pwm_calculate_period() 189 unsigned int period_ns = fsl_pwm_ticks_to_ns(fpc, period); in fsl_pwm_calculate_duty() local 191 if (!period_ns) in fsl_pwm_calculate_duty() 195 do_div(duty, period_ns); in fsl_pwm_calculate_duty()
|
| H A D | pwm-lpc32xx.c | 31 int duty_ns, int period_ns) in lpc32xx_pwm_config() argument 40 period_cycles = div64_u64(c * period_ns, in lpc32xx_pwm_config() 48 duty_cycles = div64_u64((unsigned long long)(period_ns - duty_ns) * 256, in lpc32xx_pwm_config() 49 period_ns); in lpc32xx_pwm_config()
|
| H A D | pwm-omap-dmtimer.c | 148 int duty_ns, int period_ns) in pwm_omap_dmtimer_config() argument 157 duty_ns, period_ns); in pwm_omap_dmtimer_config() 160 period_ns == pwm_get_period(pwm)) in pwm_omap_dmtimer_config() 193 period_cycles = pwm_omap_dmtimer_get_clock_cycles(clk_rate, period_ns); in pwm_omap_dmtimer_config() 199 period_ns, clk_rate); in pwm_omap_dmtimer_config() 212 duty_ns, period_ns, clk_rate); in pwm_omap_dmtimer_config()
|
| H A D | pwm-pxa.c | 69 u64 duty_ns, u64 period_ns) in pxa_pwm_config() argument 79 c = c * period_ns; in pxa_pwm_config() 91 if (duty_ns == period_ns) in pxa_pwm_config() 94 dc = mul_u64_u64_div_u64(pv + 1, duty_ns, period_ns); in pxa_pwm_config()
|
| H A D | pwm-tegra.c | 95 int duty_ns, int period_ns) in tegra_pwm_config() argument 109 c = DIV_ROUND_CLOSEST_ULL(c, period_ns); in tegra_pwm_config() 116 if (period_ns < pc->min_period_ns) in tegra_pwm_config() 145 period_ns); in tegra_pwm_config() 167 rate = mul_u64_u64_div_u64(pc->clk_rate, period_ns, in tegra_pwm_config()
|
| H A D | pwm-rcar.c | 73 static int rcar_pwm_get_clock_division(struct rcar_pwm_chip *rp, int period_ns) in rcar_pwm_get_clock_division() argument 82 tmp = (u64)period_ns * clk_rate + div - 1; in rcar_pwm_get_clock_division() 107 u64 period_ns) in rcar_pwm_set_counter() argument 114 tmp = mul_u64_u64_div_u64(period_ns, clk_rate, (u64)NSEC_PER_SEC << div); in rcar_pwm_set_counter()
|
| H A D | pwm-img.c | 90 int duty_ns, int period_ns) in img_pwm_config() argument 98 if (period_ns < imgchip->min_period_ns || in img_pwm_config() 99 period_ns > imgchip->max_period_ns) { in img_pwm_config() 105 output_clk_hz = DIV_ROUND_UP(NSEC_PER_SEC, period_ns); in img_pwm_config() 126 duty = DIV_ROUND_UP(timebase * duty_ns, period_ns); in img_pwm_config()
|
| H A D | pwm-twl-led.c | 70 int duty_ns, int period_ns) in twl4030_pwmled_config() argument 72 int duty_cycle = DIV_ROUND_UP(duty_ns * TWL4030_LED_MAX, period_ns) + 1; in twl4030_pwmled_config() 181 int duty_ns, int period_ns) in twl6030_pwmled_config() argument 183 int duty_cycle = (duty_ns * TWL6030_LED_MAX) / period_ns; in twl6030_pwmled_config()
|
| H A D | pwm-stmpe.c | 98 int duty_ns, int period_ns) in stmpe_24xx_pwm_config() argument 153 pwm->hwpwm, duty_ns, period_ns); in stmpe_24xx_pwm_config() 163 } else if (duty_ns == period_ns) { in stmpe_24xx_pwm_config() 187 duty = DIV_ROUND_CLOSEST(duty, period_ns); in stmpe_24xx_pwm_config()
|
| H A D | pwm-brcmstb.c | 96 u64 duty_ns, u64 period_ns) in brcmstb_pwm_config() argument 108 if (duty_ns == period_ns) { in brcmstb_pwm_config() 124 pc = mul_u64_u64_div_u64(period_ns, rate, NSEC_PER_SEC); in brcmstb_pwm_config()
|
| H A D | pwm-sti.c | 157 int duty_ns, int period_ns) in sti_pwm_config() argument 168 period_same = (period_ns == pwm_get_period(cur)); in sti_pwm_config() 196 ret = sti_pwm_get_prescale(pc, period_ns, &prescale); in sti_pwm_config() 219 value = pc->max_pwm_cnt * duty_ns / period_ns; in sti_pwm_config() 231 prescale, period_ns, duty_ns, value); in sti_pwm_config()
|
| H A D | pwm-sprd.c | 124 int duty_ns, int period_ns) in sprd_pwm_config() argument 140 duty = duty_ns * SPRD_PWM_MOD_MAX / period_ns; in sprd_pwm_config() 142 tmp = (u64)chn->clk_rate * period_ns; in sprd_pwm_config()
|
| H A D | pwm-lpss.c | 126 int duty_ns, int period_ns) in pwm_lpss_prepare() argument 133 do_div(freq, period_ns); in pwm_lpss_prepare() 147 do_div(on_time_div, period_ns); in pwm_lpss_prepare()
|
| H A D | pwm-berlin.c | 76 u64 duty_ns, u64 period_ns) in berlin_pwm_config() argument 84 cycles *= period_ns; in berlin_pwm_config() 97 do_div(cycles, period_ns); in berlin_pwm_config()
|
| /linux/drivers/gpu/drm/i915/ |
| H A D | i915_pmu.c | 358 static void gen3_engine_sample(struct intel_engine_cs *engine, unsigned int period_ns) in gen3_engine_sample() argument 369 add_sample(&pmu->sample[I915_SAMPLE_WAIT], period_ns); in gen3_engine_sample() 371 add_sample(&pmu->sample[I915_SAMPLE_SEMA], period_ns); in gen3_engine_sample() 390 add_sample(&pmu->sample[I915_SAMPLE_BUSY], period_ns); in gen3_engine_sample() 393 static void gen2_engine_sample(struct intel_engine_cs *engine, unsigned int period_ns) in gen2_engine_sample() argument 403 add_sample(&pmu->sample[I915_SAMPLE_WAIT], period_ns); in gen2_engine_sample() 407 add_sample(&pmu->sample[I915_SAMPLE_BUSY], period_ns); in gen2_engine_sample() 410 static void engine_sample(struct intel_engine_cs *engine, unsigned int period_ns) in engine_sample() argument 413 gen3_engine_sample(engine, period_ns); in engine_sample() 415 gen2_engine_sample(engine, period_ns); in engine_sample() [all …]
|
| /linux/drivers/mtd/nand/raw/ |
| H A D | renesas-nand-controller.c | 191 #define TO_CYCLES64(ps, period_ns) ((unsigned int)DIV_ROUND_UP_ULL(div_u64(ps, 1000), \ argument 192 period_ns)) 900 unsigned int period_ns = 1000000000 / rnandc->ext_clk_rate; in rnandc_setup_interface() local 917 TIMINGS_ASYN_TRWP(TO_CYCLES64(sdr->tRP_min, period_ns)) | in rnandc_setup_interface() 918 TIMINGS_ASYN_TRWH(TO_CYCLES64(sdr->tREH_min, period_ns)); in rnandc_setup_interface() 920 TIM_SEQ0_TCCS(TO_CYCLES64(sdr->tCCS_min, period_ns)) | in rnandc_setup_interface() 921 TIM_SEQ0_TADL(TO_CYCLES64(sdr->tADL_min, period_ns)) | in rnandc_setup_interface() 922 TIM_SEQ0_TRHW(TO_CYCLES64(sdr->tRHW_min, period_ns)) | in rnandc_setup_interface() 923 TIM_SEQ0_TWHR(TO_CYCLES64(sdr->tWHR_min, period_ns)); in rnandc_setup_interface() 925 TIM_SEQ1_TWB(TO_CYCLES64(sdr->tWB_max, period_ns)) | in rnandc_setup_interface() [all …]
|
| H A D | pl35x-nand-controller.c | 99 #define TO_CYCLES(ps, period_ns) (DIV_ROUND_UP((ps) / 1000, period_ns)) argument 791 unsigned int period_ns, val; in pl35x_nfc_setup_interface() local 809 period_ns = NSEC_PER_SEC / clk_get_rate(mclk); in pl35x_nfc_setup_interface() 815 val = TO_CYCLES(sdr->tRC_min, period_ns); in pl35x_nfc_setup_interface() 823 val = TO_CYCLES(sdr->tWC_min, period_ns); in pl35x_nfc_setup_interface() 834 val = TO_CYCLES(sdr->tWP_min, period_ns); in pl35x_nfc_setup_interface() 839 val = TO_CYCLES(sdr->tCLR_min, period_ns); in pl35x_nfc_setup_interface() 844 val = TO_CYCLES(sdr->tAR_min, period_ns); in pl35x_nfc_setup_interface() 849 val = TO_CYCLES(sdr->tRR_min, period_ns); in pl35x_nfc_setup_interface()
|
| /linux/include/linux/ |
| H A D | pwm.h | 412 int period_ns) in pwm_config() argument 419 if (duty_ns < 0 || period_ns < 0) in pwm_config() 423 if (state.duty_cycle == duty_ns && state.period == period_ns) in pwm_config() 427 state.period = period_ns; in pwm_config() 542 int period_ns) in pwm_config() argument
|
| /linux/drivers/net/ethernet/marvell/octeontx2/af/ |
| H A D | ptp.c | 120 ktime_t delta_ns, period_ns; in ptp_reset_thresh() local 132 period_ns = ktime_set(0, (NSEC_PER_SEC + 100 - ptp_clock_hi)); in ptp_reset_thresh() 135 period_ns = ktime_set(0, (NSEC_PER_SEC + 100 - delta_ns)); in ptp_reset_thresh() 138 hrtimer_forward_now(hrtimer, period_ns); in ptp_reset_thresh() 146 ktime_t period_ns; in ptp_hrtimer_start() local 148 period_ns = ktime_set(0, (NSEC_PER_SEC + 100 - start_ns)); in ptp_hrtimer_start() 149 hrtimer_start(&ptp->hrtimer, period_ns, HRTIMER_MODE_REL); in ptp_hrtimer_start()
|
| /linux/drivers/gpu/drm/vmwgfx/ |
| H A D | vmwgfx_vkms.c | 171 du->vkms.period_ns); in vmw_vkms_vblank_simulate() 273 *vblank_time -= du->vkms.period_ns; in vmw_vkms_get_vblank_timestamp() 293 du->vkms.period_ns = ktime_set(0, vblank->framedur_ns); in vmw_vkms_enable_vblank() 294 hrtimer_start(&du->vkms.timer, du->vkms.period_ns, HRTIMER_MODE_REL); in vmw_vkms_enable_vblank() 310 du->vkms.period_ns = ktime_set(0, 0); in vmw_vkms_disable_vblank() 519 s64 nsecs = ktime_to_ns(du->vkms.period_ns); in vmw_vkms_lock_max_wait_ns()
|
| /linux/drivers/net/ethernet/renesas/ |
| H A D | ravb_ptp.c | 214 u64 period_ns; in ravb_ptp_perout() local 217 period_ns = req->period.sec * NSEC_PER_SEC + req->period.nsec; in ravb_ptp_perout() 225 if (period_ns > U32_MAX) { in ravb_ptp_perout() 235 perout->period = (u32)period_ns; in ravb_ptp_perout()
|