Lines Matching refs:chan
33 #define REG_TCNTB(chan) (0x0c + ((chan) * 0xc))
34 #define REG_TCMPB(chan) (0x10 + ((chan) * 0xc))
40 #define TCFG1_SHIFT(chan) (4 * (chan))
50 #define TCON_START(chan) BIT(4 * (chan) + 0)
51 #define TCON_MANUALUPDATE(chan) BIT(4 * (chan) + 1)
52 #define TCON_INVERT(chan) BIT(4 * (chan) + 2)
53 #define _TCON_AUTORELOAD(chan) BIT(4 * (chan) + 3)
54 #define _TCON_AUTORELOAD4(chan) BIT(4 * (chan) + 2)
55 #define TCON_AUTORELOAD(chan) \
56 ((chan < 5) ? _TCON_AUTORELOAD(chan) : _TCON_AUTORELOAD4(chan))
140 static int pwm_samsung_is_tdiv(struct samsung_pwm_chip *chip, unsigned int chan)
146 reg >>= TCFG1_SHIFT(chan);
153 unsigned int chan)
161 if (chan >= 2)
169 unsigned int chan, unsigned long freq)
176 if (!pwm_samsung_is_tdiv(chip, chan)) {
177 clk = (chan < 2) ? chip->tclk0 : chip->tclk1;
185 "tclk of PWM %d is inoperational, using tdiv\n", chan);
188 rate = pwm_samsung_get_tin_rate(chip, chan);
209 pwm_samsung_set_divisor(chip, chan, BIT(div));
307 struct samsung_pwm_channel *chan = pwm_get_chip_data(pwm);
308 u32 tin_ns = chan->tin_ns, tcnt, tcmp, oldtcmp;
325 if (chan->period_ns != period_ns || force_period) {
377 chan->period_ns = period_ns;
378 chan->tin_ns = tin_ns;
379 chan->duty_ns = duty_ns;
514 unsigned int chan;
561 for (chan = 0; chan < SAMSUNG_PWM_NUM; ++chan)
562 if (chip->variant.output_mask & BIT(chan))
563 pwm_samsung_set_invert(chip, chan, true);
609 struct samsung_pwm_channel *chan = pwm_get_chip_data(pwm);
611 if (!chan)
618 if (chan->period_ns) {
619 __pwm_samsung_config(chip, pwm, chan->duty_ns,
620 chan->period_ns, true);