Lines Matching refs:chan
35 #define REG_TCNTB(chan) (0x0c + ((chan) * 0xc)) argument
36 #define REG_TCMPB(chan) (0x10 + ((chan) * 0xc)) argument
42 #define TCFG1_SHIFT(chan) (4 * (chan)) argument
52 #define TCON_START(chan) BIT(4 * (chan) + 0) argument
53 #define TCON_MANUALUPDATE(chan) BIT(4 * (chan) + 1) argument
54 #define TCON_INVERT(chan) BIT(4 * (chan) + 2) argument
55 #define _TCON_AUTORELOAD(chan) BIT(4 * (chan) + 3) argument
56 #define _TCON_AUTORELOAD4(chan) BIT(4 * (chan) + 2) argument
57 #define TCON_AUTORELOAD(chan) \ argument
58 ((chan < 5) ? _TCON_AUTORELOAD(chan) : _TCON_AUTORELOAD4(chan))
140 static int pwm_samsung_is_tdiv(struct samsung_pwm_chip *chip, unsigned int chan) in pwm_samsung_is_tdiv() argument
146 reg >>= TCFG1_SHIFT(chan); in pwm_samsung_is_tdiv()
153 unsigned int chan) in pwm_samsung_get_tin_rate() argument
161 if (chan >= 2) in pwm_samsung_get_tin_rate()
169 unsigned int chan, unsigned long freq) in pwm_samsung_calc_tin() argument
176 if (!pwm_samsung_is_tdiv(chip, chan)) { in pwm_samsung_calc_tin()
177 clk = (chan < 2) ? chip->tclk0 : chip->tclk1; in pwm_samsung_calc_tin()
185 "tclk of PWM %d is inoperational, using tdiv\n", chan); in pwm_samsung_calc_tin()
188 rate = pwm_samsung_get_tin_rate(chip, chan); in pwm_samsung_calc_tin()
200 pwm_samsung_set_divisor(chip, chan, BIT(div)); in pwm_samsung_calc_tin()
295 struct samsung_pwm_channel *chan = pwm_get_chip_data(pwm); in pwm_samsung_config() local
296 u32 tin_ns = chan->tin_ns, tcnt, tcmp, oldtcmp; in pwm_samsung_config()
306 if (period_ns == chan->period_ns && duty_ns == chan->duty_ns) in pwm_samsung_config()
316 if (chan->period_ns != period_ns) { in pwm_samsung_config()
368 chan->period_ns = period_ns; in pwm_samsung_config()
369 chan->tin_ns = tin_ns; in pwm_samsung_config()
370 chan->duty_ns = duty_ns; in pwm_samsung_config()
499 unsigned int chan; in pwm_samsung_probe() local
546 for (chan = 0; chan < SAMSUNG_PWM_NUM; ++chan) in pwm_samsung_probe()
547 if (chip->variant.output_mask & BIT(chan)) in pwm_samsung_probe()
548 pwm_samsung_set_invert(chip, chan, true); in pwm_samsung_probe()
598 struct samsung_pwm_channel *chan = pwm_get_chip_data(pwm); in pwm_samsung_suspend() local
600 if (!chan) in pwm_samsung_suspend()
603 chan->period_ns = 0; in pwm_samsung_suspend()
604 chan->duty_ns = 0; in pwm_samsung_suspend()
613 unsigned int chan; in pwm_samsung_resume() local
619 for (chan = 0; chan < SAMSUNG_PWM_NUM; ++chan) { in pwm_samsung_resume()
620 if (chip->variant.output_mask & BIT(chan)) in pwm_samsung_resume()
621 pwm_samsung_set_invert(chip, chan, in pwm_samsung_resume()
622 chip->inverter_mask & BIT(chan)); in pwm_samsung_resume()