/kernel/linux/linux-6.6/drivers/pwm/ |
H A D | pwm-xilinx.c | 105 u64 period_cycles, duty_cycles; in xilinx_pwm_apply() local 120 period_cycles = min_t(u64, state->period, U32_MAX * NSEC_PER_SEC); in xilinx_pwm_apply() 121 period_cycles = mul_u64_u32_div(period_cycles, rate, NSEC_PER_SEC); in xilinx_pwm_apply() 122 period_cycles = min_t(u64, period_cycles, priv->max + 2); in xilinx_pwm_apply() 123 if (period_cycles < 2) in xilinx_pwm_apply() 135 if (duty_cycles >= period_cycles) in xilinx_pwm_apply() 136 duty_cycles = period_cycles - 1; in xilinx_pwm_apply() 140 duty_cycles = period_cycles; in xilinx_pwm_apply() [all...] |
H A D | pwm-ep93xx.c | 69 unsigned long period_cycles; in ep93xx_pwm_apply() local 118 period_cycles = c; in ep93xx_pwm_apply() 120 c = period_cycles; in ep93xx_pwm_apply() 125 if (period_cycles < 0x10000 && duty_cycles < 0x10000) { in ep93xx_pwm_apply() 129 if (period_cycles > term) { in ep93xx_pwm_apply() 130 writew(period_cycles, base + EP93XX_PWMx_TERM_COUNT); in ep93xx_pwm_apply() 134 writew(period_cycles, base + EP93XX_PWMx_TERM_COUNT); in ep93xx_pwm_apply()
|
H A D | pwm-lpc32xx.c | 34 int period_cycles, duty_cycles; in lpc32xx_pwm_config() local 39 period_cycles = div64_u64(c * period_ns, in lpc32xx_pwm_config() 41 if (!period_cycles || period_cycles > 256) in lpc32xx_pwm_config() 43 if (period_cycles == 256) in lpc32xx_pwm_config() 44 period_cycles = 0; in lpc32xx_pwm_config() 56 val |= (period_cycles << 8) | duty_cycles; in lpc32xx_pwm_config()
|
H A D | pwm-tiehrpwm.c | 111 unsigned long period_cycles[NUM_PWM_CHANNEL]; member 215 * period_ns = 10^9 * (ps_divval * period_cycles) / PWM_CLK_RATE 222 u32 period_cycles, duty_cycles; in ehrpwm_pwm_config() local 233 period_cycles = (unsigned long)c; in ehrpwm_pwm_config() 235 if (period_cycles < 1) { in ehrpwm_pwm_config() 236 period_cycles = 1; in ehrpwm_pwm_config() 250 if (pc->period_cycles[i] && in ehrpwm_pwm_config() 251 (pc->period_cycles[i] != period_cycles)) { in ehrpwm_pwm_config() 266 pc->period_cycles[pw in ehrpwm_pwm_config() [all...] |
H A D | pwm-pxa.c | 73 unsigned long period_cycles, prescale, pv, dc; in pxa_pwm_config() local 81 period_cycles = c; in pxa_pwm_config() 83 if (period_cycles < 1) in pxa_pwm_config() 84 period_cycles = 1; in pxa_pwm_config() 85 prescale = (period_cycles - 1) / 1024; in pxa_pwm_config() 86 pv = period_cycles / (prescale + 1) - 1; in pxa_pwm_config()
|
H A D | pwm-imx27.c | 220 unsigned long period_cycles, duty_cycles, prescale; in pwm_imx27_apply() local 234 period_cycles = c; in pwm_imx27_apply() 236 prescale = period_cycles / 0x10000 + 1; in pwm_imx27_apply() 238 period_cycles /= prescale; in pwm_imx27_apply() 248 if (period_cycles > 2) in pwm_imx27_apply() 249 period_cycles -= 2; in pwm_imx27_apply() 251 period_cycles = 0; in pwm_imx27_apply() 268 writel(period_cycles, imx->mmio_base + MX3_PWMPR); in pwm_imx27_apply()
|
H A D | pwm-omap-dmtimer.c | 156 u32 period_cycles, duty_cycles; in pwm_omap_dmtimer_config() local 198 period_cycles = pwm_omap_dmtimer_get_clock_cycles(clk_rate, period_ns); in pwm_omap_dmtimer_config() 201 if (period_cycles < 2) { in pwm_omap_dmtimer_config() 214 } else if (duty_cycles >= period_cycles) { in pwm_omap_dmtimer_config() 219 duty_cycles = period_cycles - 1; in pwm_omap_dmtimer_config() 225 DIV_ROUND_CLOSEST_ULL((u64)NSEC_PER_SEC * period_cycles, in pwm_omap_dmtimer_config() 228 load_value = (DM_TIMER_MAX - period_cycles) + 1; in pwm_omap_dmtimer_config()
|
H A D | pwm-vt8500.c | 74 unsigned long period_cycles, prescale, pv, dc; in vt8500_pwm_config() local 87 period_cycles = c; in vt8500_pwm_config() 89 if (period_cycles < 1) in vt8500_pwm_config() 90 period_cycles = 1; in vt8500_pwm_config() 91 prescale = (period_cycles - 1) / 4096; in vt8500_pwm_config() 92 pv = period_cycles / (prescale + 1) - 1; in vt8500_pwm_config()
|
H A D | pwm-tiecap.c | 47 * period_ns = 10^9 * period_cycles / PWM_CLK_RATE 54 u32 period_cycles, duty_cycles; in ecap_pwm_config() local 61 period_cycles = (u32)c; in ecap_pwm_config() 63 if (period_cycles < 1) { in ecap_pwm_config() 64 period_cycles = 1; in ecap_pwm_config() 85 writel(period_cycles, pc->mmio_base + CAP1); in ecap_pwm_config() 93 writel(period_cycles, pc->mmio_base + CAP3); in ecap_pwm_config()
|
H A D | pwm-bcm2835.c | 67 unsigned long long period_cycles; in bcm2835_pwm_apply() local 78 * period_cycles must be a 32 bit value, so period * rate / NSEC_PER_SEC in bcm2835_pwm_apply() 97 period_cycles = DIV_ROUND_CLOSEST_ULL(state->period * rate, NSEC_PER_SEC); in bcm2835_pwm_apply() 100 if (period_cycles < PERIOD_MIN) in bcm2835_pwm_apply() 103 writel(period_cycles, pc->base + PERIOD(pwm->hwpwm)); in bcm2835_pwm_apply()
|
H A D | pwm-mxs.c | 52 unsigned int period_cycles, duty_cycles; in mxs_pwm_apply() local 83 period_cycles = c; in mxs_pwm_apply() 99 writel(PERIOD_PERIOD(period_cycles) | pol_bits | PERIOD_CDIV(div), in mxs_pwm_apply()
|
H A D | pwm-rz-mtu3.c | 115 u64 period_cycles) in rz_mtu3_pwm_calculate_prescale() 124 prescaled_period_cycles = period_cycles >> 16; in rz_mtu3_pwm_calculate_prescale() 325 u64 period_cycles; in rz_mtu3_pwm_config() local 335 period_cycles = mul_u64_u32_div(state->period, rz_mtu3_pwm->rate, in rz_mtu3_pwm_config() 337 prescale = rz_mtu3_pwm_calculate_prescale(rz_mtu3_pwm, period_cycles); in rz_mtu3_pwm_config() 352 pv = rz_mtu3_pwm_calculate_pv_or_dc(period_cycles, prescale); in rz_mtu3_pwm_config() 114 rz_mtu3_pwm_calculate_prescale(struct rz_mtu3_pwm_chip *rz_mtu3, u64 period_cycles) rz_mtu3_pwm_calculate_prescale() argument
|
/kernel/linux/linux-5.10/drivers/pwm/ |
H A D | pwm-lpc32xx.c | 34 int period_cycles, duty_cycles; in lpc32xx_pwm_config() local 39 period_cycles = div64_u64(c * period_ns, in lpc32xx_pwm_config() 41 if (!period_cycles || period_cycles > 256) in lpc32xx_pwm_config() 43 if (period_cycles == 256) in lpc32xx_pwm_config() 44 period_cycles = 0; in lpc32xx_pwm_config() 56 val |= (period_cycles << 8) | duty_cycles; in lpc32xx_pwm_config()
|
H A D | pwm-tiehrpwm.c | 111 unsigned long period_cycles[NUM_PWM_CHANNEL]; member 215 * period_ns = 10^9 * (ps_divval * period_cycles) / PWM_CLK_RATE 222 u32 period_cycles, duty_cycles; in ehrpwm_pwm_config() local 233 period_cycles = (unsigned long)c; in ehrpwm_pwm_config() 235 if (period_cycles < 1) { in ehrpwm_pwm_config() 236 period_cycles = 1; in ehrpwm_pwm_config() 250 if (pc->period_cycles[i] && in ehrpwm_pwm_config() 251 (pc->period_cycles[i] != period_cycles)) { in ehrpwm_pwm_config() 266 pc->period_cycles[pw in ehrpwm_pwm_config() [all...] |
H A D | pwm-ep93xx.c | 67 unsigned long period_cycles; in ep93xx_pwm_config() local 85 period_cycles = c; in ep93xx_pwm_config() 87 c = period_cycles; in ep93xx_pwm_config() 92 if (period_cycles < 0x10000 && duty_cycles < 0x10000) { in ep93xx_pwm_config() 96 if (period_cycles > term) { in ep93xx_pwm_config() 97 writew(period_cycles, base + EP93XX_PWMx_TERM_COUNT); in ep93xx_pwm_config() 101 writew(period_cycles, base + EP93XX_PWMx_TERM_COUNT); in ep93xx_pwm_config()
|
H A D | pwm-imx27.c | 218 unsigned long period_cycles, duty_cycles, prescale; in pwm_imx27_apply() local 232 period_cycles = c; in pwm_imx27_apply() 234 prescale = period_cycles / 0x10000 + 1; in pwm_imx27_apply() 236 period_cycles /= prescale; in pwm_imx27_apply() 246 if (period_cycles > 2) in pwm_imx27_apply() 247 period_cycles -= 2; in pwm_imx27_apply() 249 period_cycles = 0; in pwm_imx27_apply() 266 writel(period_cycles, imx->mmio_base + MX3_PWMPR); in pwm_imx27_apply()
|
H A D | pwm-pxa.c | 65 unsigned long period_cycles, prescale, pv, dc; in pxa_pwm_config() local 74 period_cycles = c; in pxa_pwm_config() 76 if (period_cycles < 1) in pxa_pwm_config() 77 period_cycles = 1; in pxa_pwm_config() 78 prescale = (period_cycles - 1) / 1024; in pxa_pwm_config() 79 pv = period_cycles / (prescale + 1) - 1; in pxa_pwm_config()
|
H A D | pwm-omap-dmtimer.c | 156 u32 period_cycles, duty_cycles; in pwm_omap_dmtimer_config() local 198 period_cycles = pwm_omap_dmtimer_get_clock_cycles(clk_rate, period_ns); in pwm_omap_dmtimer_config() 201 if (period_cycles < 2) { in pwm_omap_dmtimer_config() 214 } else if (duty_cycles >= period_cycles) { in pwm_omap_dmtimer_config() 219 duty_cycles = period_cycles - 1; in pwm_omap_dmtimer_config() 225 DIV_ROUND_CLOSEST_ULL((u64)NSEC_PER_SEC * period_cycles, in pwm_omap_dmtimer_config() 228 load_value = (DM_TIMER_MAX - period_cycles) + 1; in pwm_omap_dmtimer_config()
|
H A D | pwm-tiecap.c | 47 * period_ns = 10^9 * period_cycles / PWM_CLK_RATE 54 u32 period_cycles, duty_cycles; in ecap_pwm_config() local 64 period_cycles = (u32)c; in ecap_pwm_config() 66 if (period_cycles < 1) { in ecap_pwm_config() 67 period_cycles = 1; in ecap_pwm_config() 88 writel(period_cycles, pc->mmio_base + CAP1); in ecap_pwm_config() 96 writel(period_cycles, pc->mmio_base + CAP3); in ecap_pwm_config()
|
H A D | pwm-vt8500.c | 77 unsigned long period_cycles, prescale, pv, dc; in vt8500_pwm_config() local 90 period_cycles = c; in vt8500_pwm_config() 92 if (period_cycles < 1) in vt8500_pwm_config() 93 period_cycles = 1; in vt8500_pwm_config() 94 prescale = (period_cycles - 1) / 4096; in vt8500_pwm_config() 95 pv = period_cycles / (prescale + 1) - 1; in vt8500_pwm_config()
|
H A D | pwm-mxs.c | 52 unsigned int period_cycles, duty_cycles; in mxs_pwm_apply() local 83 period_cycles = c; in mxs_pwm_apply() 99 writel(PERIOD_PERIOD(period_cycles) | pol_bits | PERIOD_CDIV(div), in mxs_pwm_apply()
|
H A D | pwm-zx.c | 101 unsigned int period_cycles, duty_cycles; in zx_pwm_config() local 124 period_cycles = c; in zx_pwm_config() 139 zx_pwm_writel(zpc, pwm->hwpwm, ZX_PWM_PERIOD, period_cycles); in zx_pwm_config()
|